@@ -828,10 +828,13 @@
828 828 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.base.originalHref = P.base.tag.href;
829 829 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.e = { /* various DOM elements we work with... */
830 830 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
taEditor: E('#wikiedit-content-editor'),
831 831 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
btnReload: E("#wikiedit-tab-content button.wikiedit-content-reload"),
832 832 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
btnSave: E("button.wikiedit-save"),
833 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ btnSaveClose: D.attr(E("button.wikiedit-save-close"),
834 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'title',
835 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ 'Save changes and return to the wiki reader.'),
833 836 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
selectMimetype: E('select[name=mimetype]'),
834 837 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
selectFontSizeWrap: E('#select-font-size'),
835 838 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
// selectDiffWS: E('select[name=diff_ws]'),
836 839 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
cbAutoPreview: E('#cb-preview-autoupdate > input[type=checkbox]'),
837 840 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
previewTarget: E('#wikiedit-tab-preview-wrapper'),
@@ -861,10 +864,11 @@
861 864 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const theTab = ev.detail, btnSlot = theTab.querySelector('.save-button-slot');
862 865 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(btnSlot){
863 866 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* Several places make sense for a save button, so we'll
864 867 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
move that button around to those tabs where it makes sense. */
865 868 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
btnSlot.parentNode.insertBefore( P.e.btnSave, btnSlot );
869 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ btnSlot.parentNode.insertBefore( P.e.btnSaveClose, btnSlot );
866 870 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.updateSaveButton();
867 871 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
868 872 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(theTab===P.e.tabs.preview){
869 873 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.baseHrefForWiki();
870 874 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(P.previewNeedsUpdate && P.e.cbAutoPreview.checked) P.preview();
@@ -908,18 +912,24 @@
908 912 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"click",(e)=>P.diff(false), false
909 913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
910 914 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(0) P.e.btnCommit.addEventListener(
911 915 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"click",(e)=>P.commit(), false
912 916 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
913 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const doSave = function(e){
917 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const doSave = function(alsoClose){
914 918 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const w = P.winfo;
915 919 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!w){
916 920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.error("No page loaded.");
917 921 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return;
918 922 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
919 923 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
setTimeout(
920 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- ()=>P.save(), 0
924 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ function(){
925 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if(alsoClose){
926 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.save(()=>window.location.href=F.repoUrl('wiki',{name: w.name}));
927 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }else{
928 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.save();
929 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
930 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }, 0
921 931 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/* timeout is a workaround to allow save() to update the
922 932 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
button's text (per forum feedback). The idea is to force
923 933 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
the call of save() to happen *after* the confirmer
924 934 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
callback returns so that we can change the button label
925 935 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
without the confirmer setting it back to its
@@ -964,15 +974,21 @@
964 974 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.e.btnReload.addEventListener('click', doReload, false);
965 975 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
966 976 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(P.config.useConfirmerButtons.save){
967 977 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.confirmer(P.e.btnSave, {
968 978 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
confirmText: "Really save changes?",
969 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- onconfirm: doSave,
979 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onconfirm: ()=>doSave(),
980 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ ticks: F.config.confirmerButtonTicks
981 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ });
982 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.confirmer(P.e.btnSaveClose, {
983 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ confirmText: "Really save changes?",
984 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onconfirm: ()=>doSave(true),
970 985 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
ticks: F.config.confirmerButtonTicks
971 986 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
972 987 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
973 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P.e.btnSave.addEventListener('click', doSave, false);
988 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.btnSave.addEventListener('click', ()=>doSave(), false);
989 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.e.btnSaveClose.addEventListener('click', ()=>doSave(true), false);
974 990 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
975 991 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
976 992 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.e.taEditor.addEventListener(
977 993 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
'change', ()=>P.stashContentChange(), false
978 994 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
@@ -1088,11 +1104,12 @@
1088 1104 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.append(
1089 1105 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
f.eLinks,
1090 1106 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.a(F.repoUrl('wiki',{name:wi.name}),"viewer"),
1091 1107 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.a(F.repoUrl('whistory',{name:wi.name}),'history'),
1092 1108 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.a(F.repoUrl('attachlist',{page:wi.name}),"attachments"),
1093 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.a(F.repoUrl('attachadd',{page:wi.name,from: F.repoUrl('wikiedit',{name: wi.name})}), "attach")
1109 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.a(F.repoUrl('attachadd',{page:wi.name,from: F.repoUrl('wikiedit',{name: wi.name})}), "attach"),
1110 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.a(F.repoUrl('wikiedit',{name:wi.name}),"editor permalink")
1094 1111 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
);
1095 1112 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1096 1113 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
1097 1114 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1098 1115 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
@@ -1116,12 +1133,14 @@
1116 1133 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1117 1134 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.updateSaveButton = function(){
1118 1135 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!this.winfo || !this.getStashedWinfo(this.winfo)){
1119 1136 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
D.disable(this.e.btnSave).innerText =
1120 1137 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"No changes to save";
1138 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.disable(this.e.btnSaveClose);
1121 1139 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}else{
1122 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.enable(this.e.btnSave).innerText = "Save changes";
1140 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.enable(this.e.btnSave).innerText = "Save";
1141 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.enable(this.e.btnSaveClose);
1123 1142 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
}
1124 1143 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
1125 1144 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
1126 1145 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1127 1146 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
@@ -1357,24 +1376,27 @@
1357 1376 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
return this;
1358 1377 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
};
1359 1378 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
1360 1379 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
/**
1361 1380 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
Saves the current wiki page and re-populates the editor
1362 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- with the saved state.
1381 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ with the saved state. If passed an argument, it is
1382 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ expected to be a function, which is called only if
1383 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ saving succeeds, after all other post-save processing.
1363 1384 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
*/
1364 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- P.save = function callee(){
1385 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ P.save = function callee(onSuccessCallback){
1365 1386 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
if(!affirmPageLoaded()) return this;
1366 1387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const content = this.wikiContent();
1367 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- if(!callee.onload){
1368 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const self = this;
1369 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- callee.onload = function(w){
1370 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- const oldWinfo = self.winfo;
1371 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- self.unstashContent(oldWinfo);
1372 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- self.dispatchEvent('wiki-page-loaded', w);
1373 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- F.message("Saved page: ["+w.name+"].");
1374 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1375 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- }
1388 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const self = this;
1389 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ callee.onload = function(w){
1390 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ const oldWinfo = self.winfo;
1391 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ self.unstashContent(oldWinfo);
1392 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ self.dispatchEvent('wiki-page-loaded', w)/* will reset save buttons */;
1393 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ F.message("Saved page: ["+w.name+"].");
1394 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ if('function'===typeof onSuccessCallback){
1395 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ onSuccessCallback();
1396 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ }
1397 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ };
1376 1398 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
const fd = new FormData(), w = P.winfo;
1377 1399 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('page',w.name);
1378 1400 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('mimetype', w.mimetype);
1379 1401 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('isnew', w.version ? 0 : 1);
1380 1402 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
fd.append('content', P.wikiContent());
@@ -1382,11 +1404,11 @@
1382 1404 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
"Saving page..."
1383 1405 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
).fetch('wikiajax/save',{
1384 1406 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
payload: fd,
1385 1407 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
responseType: 'json',
1386 1408 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
beforesend: function(){
1387 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
- D.disable(P.e.btnSave);
1409 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
+ D.disable(P.e.btnSave, P.e.btnSaveClose);
1388 1410 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
P.e.btnSave.innerText = "Saving...";
1389 1411 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
F.fetch.beforesend();
1390 1412 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
},
1391 1413 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
onload: callee.onload
1392 1414 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!
});
1393 1415 { copied = false; pop = false }, 1000)" :class="copied && 'copied'">Copy link Copied!