diff --git a/lib/zin/wg/docapp/js/v1.js b/lib/zin/wg/docapp/js/v1.js index b6f7867abf..75ee362a41 100644 --- a/lib/zin/wg/docapp/js/v1.js +++ b/lib/zin/wg/docapp/js/v1.js @@ -408,7 +408,12 @@ function removeEmoji(text) */ function submitNewDoc(doc, spaceID, libID, moduleID, formData) { - const docApp = getDocApp(); + const docApp = getDocApp(); + + if(docApp.isSavingDoc) return; + docApp.isSavingDoc = true; + $(docApp.element).find('[zui-command^="saveDoc"],[zui-command^="saveNewDoc"]').attr('disabled', true); + const spaceType = docApp.signals.spaceType.value; const url = $.createLink('doc', 'create', `objectType=${spaceType}&objectID=${Math.max(spaceID, 0)}&libID=${libID}&moduleID=${moduleID}`); const docData = @@ -466,6 +471,9 @@ function submitNewDoc(doc, spaceID, libID, moduleID, formData) }).fail(error => { resolve(false); showSaveFailedAlert(error); + }).complete(() => { + docApp.isSavingDoc = false; + $(docApp.element).find('[zui-command^="saveDoc"],[zui-command^="saveNewDoc"]').removeAttr('disabled'); }); }); } @@ -487,7 +495,12 @@ function handleCreateDoc(doc, spaceID, libID, moduleID) */ function handleSaveDoc(doc) { - const docApp = getDocApp(); + const docApp = getDocApp(); + + if(docApp.isSavingDoc) return; + docApp.isSavingDoc = true; + $(docApp.element).find('[zui-command^="saveDoc"],[zui-command^="saveNewDoc"]').attr('disabled', true); + const spaceType = doc.object ? doc.object.type : (doc.objectType || docApp.signals.spaceType.value); const libID = doc.libInfo ? doc.libInfo.id : (doc.lib || docApp.signals.libID.value); const moduleID = doc.module || docApp.signals.moduleID.value; @@ -549,6 +562,9 @@ function handleSaveDoc(doc) }).fail(error => { resolve(false); showSaveFailedAlert(error); + }).complete(() => { + docApp.isSavingDoc = false; + $(docApp.element).find('[zui-command^="saveDoc"],[zui-command^="saveNewDoc"]').removeAttr('disabled'); }); }); }