@@ -407,33 +407,53 @@
407 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** page=WIKIPAGE
408 408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** technote=HASH
409 409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** forumpost=HASH
410 410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** from=URL
411 411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
**
412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Or:
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** target=ATTACHMENT_TARGET
415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Behaves exactly like /attachaddV2.
417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ **
412 418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
413 419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void attachadd_page(void){
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zPage = P("page");
415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zForumPost = P("forumpost");
416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zTkt = P("tkt");
417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zTechNote = P("technote");
418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zFrom = P("from");
419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *aContent = P("f");
420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zName = PD("f:filename","unknown");
421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zComment = PD("comment", "");
420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zPage;
421 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zForumPost;
422 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zTkt;
423 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zTechNote;
424 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zFrom;
425 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *aContent;
426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zName;
427 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zComment;
422 428 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const char *zTarget;
423 429 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char * zTo = 0;
424 430 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zTargetType = 0;
425 431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zExtraFree = 0;
426 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- int szContent = atoi(PD("f:bytes","0"));
432 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ int szContent;
427 433 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int goodCaptcha = 1;
428 434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int szLimit = 0;
429 435 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
436 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( P("target")!=0 ){
437 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ attachaddV2_page();
438 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ return;
439 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
440 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zPage = P("page");
441 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zForumPost = P("forumpost");
442 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zTkt = P("tkt");
443 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zTechNote = P("technote");
444 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zFrom = P("from");
445 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ aContent = P("f");
446 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zName = PD("f:filename","unknown");
447 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zComment = PD("comment", "");
448 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ szContent = atoi(PD("f:bytes","0"));
449 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
430 450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zFrom==0 ) zFrom = mprintf("%R/home");
431 451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( P("cancel") ) cgi_redirect(zFrom);
432 452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( (!!zPage + !!zTkt + !!zTechNote + !!zForumPost)!=1 ){
433 453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
webpage_error("Requires exactly one one: page=X, tkt=X, forumpost=X,"
434 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- " or technote=X");
454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ " technote=X, or target=X");
435 455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
436 456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
login_check_credentials();
437 457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( zForumPost ){
438 458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int fpid;
439 459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( g.perm.AttachForum==0 ){
@@ -559,11 +579,11 @@
559 579 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** Responds with JSON: an empty object on success and
560 580 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** {error:"message"} on error. The on-success response structure is
561 581 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
** subject to amendment.
562 582 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
563 583 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
void attachaddV2_ajax_post(void){
564 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const char *zTarget = P("target");
584 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const char *zTarget;
565 585 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char *zExtraFree = 0;
566 586 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int iTgtType = 0;
567 587 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bNeedsModeration = 0;
568 588 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int i;
569 589 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int goodCaptcha = 1;
@@ -571,16 +591,18 @@
571 591 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
int bRollback = 0; /* Roll back if true. */
572 592 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char aKeyPrefix[20]; /* Buffer for key "file%d" */
573 593 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char aKeySize[30]; /* Buffer for key "file%d:bytes" */
574 594 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char aKeyName[30]; /* Buffer for key "file%d:filename" */
575 595 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
char aKeyDesc[30]; /* Buffer for key "file%d_desc" */
596 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
576 597 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( ! ajax_route_bootstrap(0, 1) ){
577 598 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
578 599 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( !(goodCaptcha = captcha_is_correct(0)) ){
579 600 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
goto ajax_post_403;
580 601 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
581 602 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_begin_transaction();
603 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ zTarget = P("target");
582 604 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
iTgtType = attachment_target_type(zTarget);
583 605 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
switch( iTgtType ){
584 606 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
default:
585 607 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
case 0:
586 608 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ajax_route_error(400, "Invalid attachment target.");
@@ -828,10 +850,11 @@
828 850 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Form gets fleshed out and activate from fossil.attach.js. */
829 851 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <div id='attachadd-form-wrapper'>
830 852 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="hidden" name="target" value="%h(zTarget)">
831 853 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ <input type="hidden" name="from" value="%h(zFrom)">
832 854 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
captcha_generate(0);
855 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ login_insert_csrf_secret();
833 856 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@ </div>
834 857 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
builtin_fossil_js_bundle_or("attach", NULL);
835 858 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
db_end_transaction(0);
836 859 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
style_finish_page();
837 860 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil_free(zTargetType);
838 861 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!