X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/2981e2d70a5e01cea54e6204e5690285a28e2d91..8b83f8a0f1562b8365ccc7735a6301eba613d28c:/src/editor/modules/data/data.js?ds=sidebyside diff --git a/src/editor/modules/data/data.js b/src/editor/modules/data/data.js index af8c053..7488390 100644 --- a/src/editor/modules/data/data.js +++ b/src/editor/modules/data/data.js @@ -41,11 +41,14 @@ return function(sandbox) { }); var modificationFlag = true; - wlxmlDocument.on('change', function() { + var handleChange = function() { documentDirty = true; draftDirty = true; modificationFlag = true; - }); + }; + wlxmlDocument.on('change', handleChange); + wlxmlDocument.on('contentSet', handleChange); + if(window.localStorage) { window.setInterval(function() { if(modificationFlag) { @@ -54,9 +57,9 @@ return function(sandbox) { } if(wlxmlDocument && documentDirty && draftDirty) { logger.debug('Saving draft to local storage.'); - sandbox.publish('savingStarted'); + sandbox.publish('savingStarted', 'local'); window.localStorage.setItem(getLocalStorageKey(), wlxmlDocument.toXML()); - sandbox.publish('savingEnded', 'success'); + sandbox.publish('savingEnded', 'success', 'local'); draftDirty = false; } }, sandbox.getConfig().autoSaveInterval || 2500); @@ -115,7 +118,7 @@ return function(sandbox) { var dialog = Dialog.create({ title: gettext('Local draft of a document exists'), text: gettext('Unsaved local draft of this version of the document exists in your browser. Do you want to load it instead?'), - submitButtonText: gettext('Yes, restore local draft'), + executeButtonText: gettext('Yes, restore local draft'), cancelButtonText: gettext('No, use version loaded from the server') }); dialog.on('cancel', function() { @@ -123,7 +126,7 @@ return function(sandbox) { text = sandbox.getBootstrappedData().document; }); - dialog.on('save', function(event) { + dialog.on('execute', function(event) { logger.debug('Local draft chosen'); event.success(); }); @@ -152,11 +155,11 @@ return function(sandbox) { dialog = Dialog.create({ fields: documentSaveForm.fields, title: gettext('Save Document'), - submitButtonText: gettext('Save') + executeButtonText: gettext('Save') }); - dialog.on('save', function(event) { - sandbox.publish('savingStarted'); + dialog.on('execute', function(event) { + sandbox.publish('savingStarted', 'remote'); var formData = event.formData; formData[documentSaveForm.content_field_name] = wlxmlDocument.toXML(); @@ -172,11 +175,11 @@ return function(sandbox) { data: formData, success: function(data) { event.success(); - sandbox.publish('savingEnded', 'success', data.version); + sandbox.publish('savingEnded', 'success', 'remote', data.version); document_version = data.version; reloadHistory(); }, - error: function() {event.error(); sandbox.publish('savingEnded', 'error');} + error: function() {event.error(); sandbox.publish('savingEnded', 'error', 'remote');} }); }); dialog.on('cancel', function() { @@ -208,10 +211,10 @@ return function(sandbox) { dialog = Dialog.create({ fields: documentRestoreForm.fields, title: gettext('Restore Version'), - submitButtonText: gettext('Restore') + executeButtonText: gettext('Restore') }); - dialog.on('save', function(event) { + dialog.on('execute', function(event) { var formData = event.formData; formData[documentRestoreForm.version_field_name] = version; sandbox.publish('restoringStarted', {version: version});