@@ -28,10 +28,12 @@
28 28 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* DOM element of the current active tab. */
29 29 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#activeTab;
30 30 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Extra input[type=hidden] fields imported from fossil's
31 31 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
static page generation. */
32 32 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#extraFields;
33 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Persistent draft message object. */
34 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #draft;
33 35 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
34 36 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
35 37 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Options:
36 38 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
37 39 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
opt.draftKey[string=undefined]: if set then this object's state
@@ -45,11 +47,18 @@
45 47 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// replyTo: hash
46 48 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// edit: hash
47 49 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
draftKey: undefined
48 50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}, opt);
49 51 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
opt.isNewThread = !opt.replyTo && !opt.edit;
50 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( !opt.draftKey) opt.draftKey = '';
52 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( opt.draftKey ){
53 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#draft = F.storage.getJSON(opt.draftKey, F.nu({
54 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ title: undefined,
55 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ content: undefined,
56 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ mimetype: undefined,
57 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ status: undefined
58 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }));
59 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
51 60 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const e = this.#e = F.nu({
52 61 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
mimetype: F.nu(),
53 62 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
button: F.nu()
54 63 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
55 64 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const wrapper = e.widget = D.addClass(D.div(), 'ForumPostEditor');
@@ -62,16 +71,16 @@
62 71 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.title.setAttribute('maxlength', 125);
63 72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.titleBar.append(
64 73 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(D.span(), "Title:"),
65 74 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.title
66 75 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
67 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( opt.draftKey ){
68 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const key = opt.draftKey+'.title';
76 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( this.#draft ){
69 77 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.title.addEventListener('blur', ()=>{
70 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.storage.set(key, e.title.value)
78 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#draft.title = e.title.value;
79 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#storeDraft();
71 80 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
72 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- e.title.value = opt.title || F.storage.get(key, '');
81 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ e.title.value = opt.title || this.#draft.title;
73 82 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else if( opt.title ){
74 83 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.title.value = opt.title;
75 84 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
76 85 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wrapper.append(e.titleBar);
77 86 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
@@ -154,10 +163,13 @@
154 163 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( e.help.$needsInit ){
155 164 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
delete e.help.$needsInit;
156 165 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.#initHelpTab();
157 166 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
158 167 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
break;
168 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ case e.tabAttach:
169 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( !this.#att ) this.#initAttacherTab();
170 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ break;
159 171 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
160 172 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
161 173 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
wrapper.append( e.tabs );
162 174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
163 175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.tabEdit = D.div();
@@ -169,15 +181,17 @@
169 181 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
170 182 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.tabEdit.append(e.editor);
171 183 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.tabEdit.dataset.tabLabel = 'Edit';
172 184 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.#tabs.addTab( e.tabEdit );
173 185 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.#tabs.switchToTab( e.tabEdit );
174 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( opt.draftKey ){
175 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const key = opt.draftKey+'.content';
176 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this.editorContent = F.storage.get(key,'');
186 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( this.#draft ){
187 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.editorContent = this.#draft.content;
177 188 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.editor.addEventListener(
178 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- 'blur', ()=>F.storage.set(key, this.editorContent)
189 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'blur', ()=>{
190 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#draft.content = this.editorContent;
191 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#storeDraft();
192 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
179 193 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
180 194 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
181 195 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.preview = D.addClass(D.div(), 'preview');
182 196 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.preview.dataset.tabLabel = 'Preview';
183 197 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.#tabs.addTab( e.preview );
@@ -210,10 +224,11 @@
210 224 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
added to it.
211 225 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
212 226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( F.config.forumStatuses?.length>0 ){
213 227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const sel = e.status = D.select();
214 228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.option(sel, "", "- Status -").disabled = true;
229 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ sel.dataset.originalValue = opt.status;
215 230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for( const status of F.config.forumStatuses ){
216 231 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.option(sel, status.value, status.label);
217 232 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
218 233 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.buttons.append(sel);
219 234 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( opt.status ){
@@ -221,20 +236,17 @@
221 236 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
222 237 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
223 238 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
224 239 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
225 240 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( F.user.mayAttachForum ){
226 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this.#att = new F.Attacher({
227 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- reverse: true
228 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- });
229 241 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
//e.buttons.append( e.button.addAttach = this.#att.takeAddButton() );
230 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- e.tabAttach = D.append(D.div(), this.#att.widget);
242 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ e.tabAttach = D.div();
231 243 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.tabAttach.setAttribute('id', idPrefix+'-attach');
232 244 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.tabAttach.dataset.tabLabel = 'Attachments';
233 245 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.#tabs.addTab(e.tabAttach);
234 246 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Reminder: we don't currently have a way to disable/enable
235 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- an Attacher's controls. */
247 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ an Attacher's controls during ajax traffic. */
236 248 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
237 249 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.buttons.append(e.button.preview, e.button.submit);
238 250 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.#toDisable.push(e.button.preview);
239 251 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
240 252 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.help = D.attr(D.div(), 'id', idPrefix+'-help');
@@ -329,20 +341,16 @@
329 341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
330 342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
set editorContent(v){
331 343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.#e.editor.value = v;
332 344 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
333 345 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
334 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- get status(){
335 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- return this.#e.status?.value;
336 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
337 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
-
338 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- /** Clears any draft state. */
339 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- clearDraft(){
340 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const k = this.#opt.draftKey;
341 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( k ){
342 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.storage.remove(k+'.content');
343 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.storage.remove(k+'.title');
346 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /** Clears any persistent draft state. Does not clear the UI
347 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ widgets. */
348 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #clearDraft(){
349 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( this.#draft ){
350 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.storage.remove(this.#opt.draftKey);
351 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#draft = F.nu();
344 352 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
345 353 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
346 354 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
347 355 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
348 356 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Reports an error by appending each argument to the error widget
@@ -395,10 +403,17 @@
395 403 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.attr(D.a(F.repoUrl('markup_help'), 'Markup styles'),
396 404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'target', '_new')
397 405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
398 406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
eh.append(list);
399 407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #initAttacherTab(){
410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#att = new F.Attacher({
411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ reverse: true
412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#e.tabAttach.append(this.#att.widget);
414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
400 415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
401 416 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
#newFormData(addThisContent){
402 417 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const fd = new FormData;
403 418 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
for(const f of this.#extraFields){
404 419 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append(f.name, f.value);
@@ -451,10 +466,11 @@
451 466 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
452 467 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
453 468 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.#isWaiting = true;
454 469 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.clearElement(e.preview);
455 470 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const content = this.editorContent.trim();
471 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ //console.debug("content to preview", content);
456 472 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !content ){
457 473 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
458 474 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
459 475 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.disable(this.#toDisable, e.button.submit);
460 476 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
e.preview.textContent = "Fetching preview...";
@@ -493,28 +509,48 @@
493 509 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( this.#isWaiting ) return;
494 510 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( !this.#validate() ) return;
495 511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
this.#isWaiting = true;
496 512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const e = this.#e;
497 513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.disable(e.button.submit);
498 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this.reportError("Submit is TODO.");
499 514 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const fd = this.#newFormData();
500 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this.#att.populateFormData(fd);
515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( this.#att ){
516 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#att.populateFormData(fd);
517 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
501 518 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if( this.#e.status ){
502 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- fd.append( "status", this.status );
519 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ /* Send the status only if it was modified, otherwise we may
520 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ add a superfluous tag. */
521 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const v = this.#e.status.value;
522 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( this.#e.status.dataset.originalValue !== v ){
523 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ fd.append( "status", v );
524 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
503 525 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
504 526 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
console.warn("Ready to submit",fd);
505 527 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
506 528 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TODO: save it, set #isWaiting=false, then handle error or
507 529 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
redirect to the post (if this is a new post) or, if replying
508 530 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
inline, replace this object with a static rendering from the
509 531 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
response.
510 532 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
511 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if( 0 && this.#opt.draftKey ){
512 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.storage.remove(this.#opt.draftKey+'.content');
513 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.storage.remove(this.#opt.draftKey+'.title');
533 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const resp = window.fetch(F.repoUrl('forumajax_save'), {
534 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ method: 'POST',
535 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ body: fd
536 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }).then(r=>r.json())
537 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .then(j=>{
538 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( j.error ){
539 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ throw new Error(j.error);
540 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
541 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ this.#clearDraft();
542 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ window.location = F.repoUrl('forumpost/'+j.uuid);
543 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ })
544 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .catch((e)=>this.reportError(e.message))
545 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ .finally(()=>this.#isWaiting = false);
546 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
547 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+
548 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ #storeDraft(){
549 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if( this.#draft ){
550 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.storage.setJSON(this.#opt.draftKey, this.#draft);
514 551 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
515 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- this.#isWaiting = false;
516 552 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
517 553 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
518 554 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
async #fetchPost(){
519 555 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/*
520 556 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
TODO: when editing an existing post, fetch the raw body of the
521 557 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!