@@ -41,16 +41,21 @@
41 41 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
lose focus. If old state is found, the form is pre-populated
42 42 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
from it. The state is cleared on a successful submit.
43 43 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
44 44 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
opt.ondiscard[=function]: if set, a Discard button is added
45 45 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
which, when activated, clears the current draft and removes
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this object's widget from the DOM. After that, opt.ondiscard()
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- is called and passed no arguments.
46 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this object's widget from the DOM. After doing so,
47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ opt.ondiscard() is called and passed no arguments. Exceptions
48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ thrown by ondiscard() are ignored but may be logged.
48 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
49 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
opt.onsubmit[=function]: if set, this function is called
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- immediately after the post has been successfully saved,
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- and passed this object.
51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ immediately after the post has been successfully saved, and
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ passed this object and a JSON-format response object from the
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ save request. On a successful edit, if the artifact was
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ actually modified then submission will redirect the page to
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /forumpost/THE_POST_ID. Exceptions thrown by onsubmit()
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ are ignored but may be logged.
52 57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
53 58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
opt.hiddenFields: an optional list of input elements to
54 59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
incorporate into the form for requests which request the
55 60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
preview or save the post.
56 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -152,10 +157,13 @@
152 157 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onconfirm: ()=>this.discard()
153 158 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
154 159 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
155 160 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
156 161 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.button.submit.addEventListener('click', ()=>this.#submit());
162 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( e.button.discard ){
163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ e.button.submit.addEventListener('click', ()=>this.discard());
164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
157 165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
158 166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.button.submit.setAttribute('disabled', '');
159 167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wrapper.append(e.buttons);
160 168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
161 169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.error = D.addClass(D.div(), 'error', 'hidden');
@@ -249,11 +257,17 @@
249 257 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
250 258 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.#tabs.addTab(e.debug);
251 259 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
252 260 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.buttons.append(e.mimetype.wrapper);
253 261 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
254 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( opt.edit
262 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 0 /* 2026-06-09: disabling the status selection to keep
263 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ people from using the editor to change just that,
264 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ because doing so leaves us in a staet where we know
265 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ whether or not a Submit modifies the post, but not
266 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ whether or not out-of-band state like the status and
267 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ attachments were modified. */
268 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && opt.edit
255 269 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& !opt.inReplyTo
256 270 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
&& F.config.forumStatuses?.length>0 ){
257 271 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Status selection. We probably don't _really_ want this in
258 272 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
the editor because people will open the editor, change the
259 273 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
status, and tap submit, resulting in a whole new, unedited
@@ -372,10 +386,14 @@
372 386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.buttons.append(e.button.toggleHeader);
373 387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
374 388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
375 389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}/*constructor*/
376 390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Removes this object from the DOM. It has no side effects if
393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** it's not in the DOM.
394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
377 395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
close(){
378 396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const e = this.#e.widget;
379 397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( e?.parentNode ){
380 398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( this.#opt.onclose instanceof Function ){
381 399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
try{this.#opt.onclose();}
@@ -387,10 +405,16 @@
387 405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.classList.add('animate-exit');
388 406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.addEventListener('animationend', ()=>e.remove(), {once: true});
389 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
390 408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
391 409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** Discards any draft edits then calls close(). If an ondiscard
412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** callback was provided to the constructor then it is called
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** before the drafts are cleared and any exceptions it throws are
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ** ignored (but may be logged).
415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
392 416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
discard(){
393 417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( this.#opt.ondiscard instanceof Function ){
394 418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
try{this.#opt.ondiscard();}
395 419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
catch(e){
396 420 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
console.error("ForumPostEditor.ondiscard() threw:",e);
@@ -426,11 +450,15 @@
426 450 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const e = this.#e.error;
427 451 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.clearElement(e);
428 452 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( msg.length ){
429 453 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
console.error('ForumPostEditor:',...msg);
430 454 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.classList.remove('hidden');
431 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- e.append(...msg);
455 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ e.append(
456 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ...msg, D.br(),
457 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.button("Clear", ()=>this.reportError())
458 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Looks horrid in the Blitz skin */
459 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ );
432 460 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
433 461 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.classList.add('hidden');
434 462 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
435 463 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
436 464 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
@@ -654,16 +682,32 @@
654 682 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
655 683 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
656 684 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( 1 ){
657 685 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.#clearDraft();
658 686 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( this.#opt.onsubmit instanceof Function ){
659 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- try{this.#opt.onsubmit(this);}
687 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ try{this.#opt.onsubmit(this, j);}
660 688 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
catch(e){
661 689 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
console.error("ForumPostEditor.onsubmit() threw: ", e);
662 690 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
663 691 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
664 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- window.location = F.repoUrl('forumpost/'+j.uuid);
692 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /*
693 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( this.#opt.edit?.uuid === j.uuid ) then we know the
694 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ content did not change, but it's possible that attachments
695 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ and/or a status tag did. Ergo, we need to unconditionally
696 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ reload to render those changes (if any). The other option
697 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ is to tell the user "nothing changed" and leave them in
698 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ the editor, but that could be a lie because we don't know
699 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if any attachments or tags were changed.
700 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ */
701 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( 0 ){
702 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( this.#opt.edit.uuid === j.uuid
703 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && !j.statusModified && 0===j.attachedCount ){
704 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.reportError("No changes made.");
705 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
706 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ window.location = F.repoUrl('forumpost/'+j.uuid);
707 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
708 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
665 709 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
666 710 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.reportError(
667 711 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"Saving worked but we're ignoring it and staying here."
668 712 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
669 713 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -896,12 +940,10 @@
896 940 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
897 941 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
898 942 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
899 943 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
900 944 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
901 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.user.isIndividual = ['anonymous','nobody'].indexOf(F.user.name)<0;
902 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
903 945 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Page-specific style tweaks for a ForumPostEditor instance. */
904 946 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const initFPEWidget = (ePost, fpe)=>{
905 947 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const w = fpe.widget;
906 948 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
w.style.borderTop = '1px dotted';
907 949 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
//w.style.marginTop = '0.35em';
@@ -928,10 +970,13 @@
928 970 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const fpe = new F.ForumPostEditor({
929 971 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
draftKey: 'draft-forumnew',
930 972 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
hiddenFields: eForumNew.querySelectorAll('input[type=hidden]'),
931 973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ondiscard: ()=>{
932 974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
window.location = F.repoUrl('forum');
975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ },
976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onsubmit: (fpe, artifact)=>{
977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ window.location = F.repoUrl('forumpost/'+artifact.uuid);
933 978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
934 979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
935 980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
eForumNew.parentElement.insertBefore(fpe.widget, eForumNew);
936 981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
eForumNew.remove();
937 982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fossil.page.fpe = fpe /* for testing via the console */;
@@ -974,17 +1019,17 @@
974 1019 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
975 1020 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const replyClicked = (form, ePost, eBtnReply, eToDisable)=>{
976 1021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const fpid = setupEditReplyElement(ePost, eBtnReply, eToDisable);
977 1022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const fEditHead = ePost.dataset.fedithead;
978 1023 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
eBtnReply.innerText = "Replying...";
979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const ondone = (fpe)=>{
1024 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const ondone = (fpe, response)=>{
1025 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* onsubmit() and ondiscard() callback */
980 1026 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
restoreEditReplyElement(ePost, eBtnReply, eToDisable);
981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- //console.debug("ondiscard/onsubmit", fpe, eToDisable);
982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( fpe/*onsubmit*/ ){
983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( fpe.widget.parentNode ){
984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fpe.widget.remove();
985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1027 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ //console.debug("ondiscard/onsubmit", fpe, artifact);
1028 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( response/*onsubmit*/ ){
1029 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ window.location = F.repoUrl('forumpost/'+response.uuid);
1030 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fpe.close();
986 1031 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
987 1032 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
988 1033 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const fpe = new F.ForumPostEditor({
989 1034 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
hiddenFields: form.querySelectorAll(
990 1035 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'input[type=hidden][name=csrf]'
@@ -1012,17 +1057,24 @@
1012 1057 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const firt = ePost.dataset.firt;
1013 1058 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const fEditHead = ePost.dataset.fedithead;
1014 1059 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
eBtnEdit.innerText = "Editing...";
1015 1060 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fetchPost(fpid)
1016 1061 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
.then(artifact=>{
1017 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const ondone = (fpe)=>{
1018 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- restoreEditReplyElement(ePost, eBtnEdit, eToDisable);
1062 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const ondone = (fpe, response)=>{
1063 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* onsubmit() and ondiscard() callback */
1019 1064 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
//console.debug("ondiscard/onsubmit", fpe, eToDisable);
1020 1065 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( fpe/*onsubmit*/ ){
1021 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( fpe.widget.parentNode ){
1022 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fpe.widget.remove();
1066 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( fpid === response.uuid
1067 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && !response.statusModified
1068 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ && 0===response.attachedCount ){
1069 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fpe.reportError("No changes made.");
1070 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1071 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ restoreEditReplyElement(ePost, eBtnEdit, eToDisable);
1072 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ window.location = F.repoUrl('forumpost/'+response.uuid);
1023 1073 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1074 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
1075 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ restoreEditReplyElement(ePost, eBtnEdit, eToDisable);
1024 1076 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1025 1077 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
1026 1078 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const eStatusSelect = ePost.querySelector(
1027 1079 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
':scope > fieldset.forum-status-selection select[name=status]'
1028 1080 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
@@ -1031,21 +1083,21 @@
1031 1083 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
hiddenFields: form.querySelectorAll('input[type=hidden]'),
1032 1084 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ondiscard: ondone,
1033 1085 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onsubmit: ondone,
1034 1086 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
draftKey: 'draft-forumedit-'+(fEditHead || fpid).substr(0,12),
1035 1087 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
edit: artifact,
1036 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- status: eStatusSelect?.value,
1088 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ //status: eStatusSelect?.value,
1037 1089 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
inReplyTo: firt
1038 1090 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
1039 1091 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
initFPEWidget(ePost, fpe);
1040 1092 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
1041 1093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}/*editClicked()*/;
1042 1094 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1043 1095 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
document.body.querySelectorAll(
1044 1096 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'.forumpost-single-controls > form'
1045 1097 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
).forEach(form=>{
1046 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- //console.debug("Checking form",form);
1098 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* For each forum post... */
1047 1099 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const eToDisable = [];
1048 1100 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const eThePost = form.parentElement.parentElement;
1049 1101 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !eThePost?.dataset?.fpid ){
1050 1102 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
console.warn("Unexpected missing fpid", eThePost);
1051 1103 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
1052 1104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!