X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/1cad60261451f283d49cff80d02b819ccd6902dd..258f516ed932787fc3a5e1c970831a885e00872f:/src/editor/modules/rng/rng.js?ds=sidebyside diff --git a/src/editor/modules/rng/rng.js b/src/editor/modules/rng/rng.js index 469d0e4..c9514f8 100644 --- a/src/editor/modules/rng/rng.js +++ b/src/editor/modules/rng/rng.js @@ -1,4 +1,5 @@ define([ +'./documentSummary', 'libs/underscore', 'fnpjs/layout', 'fnpjs/vbox', @@ -7,7 +8,7 @@ define([ 'libs/text!./mainLayout.html', 'libs/text!./editingLayout.html', 'libs/text!./diffLayout.html', -], function(_, layout, vbox, logging, tabs, mainLayoutTemplate, visualEditingLayoutTemplate, diffLayoutTemplate) { +], function(documentSummary, _, layout, vbox, logging, tabs, mainLayoutTemplate, visualEditingLayoutTemplate, diffLayoutTemplate) { 'use strict'; @@ -86,10 +87,18 @@ return function(sandbox) { }; eventHandlers.data = { - ready: function() { + ready: function(usingDraft, draftTimestamp) { views.mainLayout.setView('mainView', views.mainTabs.getAsView()); - _.each(['sourceEditor', 'documentCanvas', 'documentToolbar', 'nodePane', 'metadataEditor', 'nodeFamilyTree', 'nodeBreadCrumbs', 'mainBar', 'indicator', 'documentHistory', 'diffViewer'], function(moduleName) { + documentSummary.init(sandbox.getConfig().documentSummaryView); + documentSummary.render(sandbox.getModule('data').getDocumentProperties()); + documentSummary.setDraftField(usingDraft ? (draftTimestamp || '???') : '-'); + views.currentNodePaneLayout.appendView(documentSummary.dom); + + sandbox.getModule('mainBar').setCommandEnabled('drop-draft', usingDraft); + sandbox.getModule('mainBar').setCommandEnabled('save', usingDraft); + + _.each(['sourceEditor', 'documentCanvas', 'documentToolbar', 'metadataEditor', 'nodeBreadCrumbs', 'mainBar', 'indicator', 'documentHistory', 'diffViewer'], function(moduleName) { sandbox.getModule(moduleName).start(); }); @@ -97,11 +106,17 @@ return function(sandbox) { documentIsDirty = false; wlxmlDocument.on('change', function() { documentIsDirty = true; + sandbox.getModule('mainBar').setCommandEnabled('save', true); }); wlxmlDocument.on('contentSet', function() { documentIsDirty = true; }); }, + draftDropped: function() { + documentSummary.setDraftField('-'); + sandbox.getModule('mainBar').setCommandEnabled('drop-draft', false); + sandbox.getModule('mainBar').setCommandEnabled('save', false); + }, savingStarted: function(what) { var msg = { remote: gettext('Saving document'), @@ -110,16 +125,27 @@ return function(sandbox) { sandbox.getModule('mainBar').setCommandEnabled('save', false); sandbox.getModule('indicator').showMessage(msg[what] + '...'); }, - savingEnded: function(status, what, current_version) { + savingEnded: function(status, what, data) { void(status); var msg = { remote: gettext('Document saved'), local: gettext('Local copy saved') }; documentIsDirty = false; - sandbox.getModule('mainBar').setCommandEnabled('save', true); + sandbox.getModule('indicator').clearMessage({message: msg[what]}); - sandbox.getModule('mainBar').setVersion(current_version); + if(status === 'success' && what === 'remote') { + sandbox.getModule('mainBar').setVersion(data.version); + documentSummary.render(data); + documentSummary.setDraftField('-'); + sandbox.getModule('mainBar').setCommandEnabled('drop-draft', false); + sandbox.getModule('mainBar').setCommandEnabled('save', false); + } + if(what === 'local') { + documentSummary.setDraftField(data.timestamp); + sandbox.getModule('mainBar').setCommandEnabled('drop-draft', true); + sandbox.getModule('mainBar').setCommandEnabled('save', true); + } }, restoringStarted: function(event) { sandbox.getModule('mainBar').setCommandEnabled('save', false); @@ -133,7 +159,6 @@ return function(sandbox) { }, documentReverted: function(version) { documentIsDirty = false; - sandbox.getModule('mainBar').setCommandEnabled('save', true); sandbox.getModule('indicator').clearMessage({message:'Wersja ' + version + ' przywrócona'}); sandbox.getModule('mainBar').setVersion(version); } @@ -141,7 +166,7 @@ return function(sandbox) { eventHandlers.mainBar = { ready: function() { - sandbox.getModule('mainBar').setVersion(sandbox.getModule('data').getDocumentVersion()); + sandbox.getModule('mainBar').setVersion(sandbox.getModule('data').getDocumentProperties().version); views.mainLayout.setView('topPanel', sandbox.getModule('mainBar').getView()); }, 'cmd.save': function() { @@ -151,6 +176,9 @@ return function(sandbox) { sourceEditor.commitChanges(); } sandbox.getModule('data').saveDocument(); + }, + 'cmd.drop-draft': function() { + sandbox.getModule('data').dropDraft(); } }; @@ -289,7 +317,7 @@ return function(sandbox) { logger.debug('Handling event ' + eventRepr); eventHandlers[moduleName][eventName].apply(eventHandlers, args); } else { - logger.debug('No event handler for ' + eventRepr); + logger.warning('No event handler for ' + eventRepr); } }