X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/fcecb8e0ed56cd955b1d2bcbc12e2675f40f0243..8244aae227025150a77d6377caa52e0b7b0b5cbc:/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 665d3a9..78145a5 100644 --- a/src/editor/modules/rng/rng.js +++ b/src/editor/modules/rng/rng.js @@ -2,17 +2,20 @@ define([ 'libs/underscore', 'fnpjs/layout', 'fnpjs/vbox', +'fnpjs/logging/logging', 'views/tabs/tabs', 'libs/text!./mainLayout.html', 'libs/text!./editingLayout.html', 'libs/text!./diffLayout.html', -], function(_, layout, vbox, tabs, mainLayoutTemplate, visualEditingLayoutTemplate, diffLayoutTemplate) { +], function(_, layout, vbox, logging, tabs, mainLayoutTemplate, visualEditingLayoutTemplate, diffLayoutTemplate) { 'use strict'; return function(sandbox) { /* globals gettext */ + + var logger = logging.getLogger('editor.modules.rng'); function addMainTab(title, slug, view) { views.mainTabs.addTab(title, slug, view); @@ -99,15 +102,23 @@ return function(sandbox) { documentIsDirty = true; }); }, - savingStarted: function() { + savingStarted: function(what) { + var msg = { + remote: gettext('Saving document'), + local: gettext('Saving local copy') + }; sandbox.getModule('mainBar').setCommandEnabled('save', false); - sandbox.getModule('indicator').showMessage(gettext('Saving...')); + sandbox.getModule('indicator').showMessage(msg[what] + '...'); }, - savingEnded: function(status, current_version) { + savingEnded: function(status, what, current_version) { 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:'Dokument zapisany'}); + sandbox.getModule('indicator').clearMessage({message: msg[what]}); sandbox.getModule('mainBar').setVersion(current_version); }, restoringStarted: function(event) { @@ -134,7 +145,15 @@ return function(sandbox) { views.mainLayout.setView('topPanel', sandbox.getModule('mainBar').getView()); }, 'cmd.save': function() { + var sourceEditor = sandbox.getModule('sourceEditor'); + if(!sourceEditor.changesCommited()) { + logger.debug('Source editor has uncommited changes, commiting...'); + sourceEditor.commitChanges(); + } sandbox.getModule('data').saveDocument(); + }, + 'cmd.drop-draft': function() { + sandbox.getModule('data').dropDraft(); } }; @@ -268,9 +287,14 @@ return function(sandbox) { sandbox.getModule('data').start(); }, handleEvent: function(moduleName, eventName, args) { + var eventRepr = moduleName + '.' + eventName; if(eventHandlers[moduleName] && eventHandlers[moduleName][eventName]) { + logger.debug('Handling event ' + eventRepr); eventHandlers[moduleName][eventName].apply(eventHandlers, args); + } else { + logger.warning('No event handler for ' + eventRepr); } + } }; };