X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/bc66743b16ddd321649f243f0294ed26bc25ee3e..cf92775489840f1dc7b2c65fae6b968beadbad7e:/modules/rng.js?ds=sidebyside diff --git a/modules/rng.js b/modules/rng.js index 6068d4d..f87aa17 100644 --- a/modules/rng.js +++ b/modules/rng.js @@ -1,56 +1,24 @@ -define(function() { +define([ +'fnpjs/layout', +'views/tabs/tabs', +'libs/text!./rng/mainLayout.html' +], function(layout, tabs, mainLayoutTemplate) { return function(sandbox) { 'use strict'; + var mainTabs = (new tabs.View()).render(); + var mainLayout = new layout.Layout(mainLayoutTemplate); + sandbox.getDOM().append(mainLayout.getAsView()); + function addTab(title, slug, view) { - sandbox.getModule('tabsManager').addTab(title, slug, view); + mainTabs.addTab(title, slug, view); } /* Events handling */ var eventHandlers = {}; - - eventHandlers.skelton = { - ready: function() { - sandbox.getModule('tabsManager').start(); - }, - 'cmd.save': function() { - var editorSlugs = ['visual', 'source']; - var slug = sandbox.getModule('tabsManager').getCurrentSlug(); - if(_.contains(editorSlugs, slug)) { - var editor = sandbox.getModule(slug+'Editor'); - if(editor.isDirty()) { - sandbox.getModule('data').commitDocument(editor.getDocument(), slug + '_edit'); - editor.setDirty(false); - } - } - sandbox.getModule('data').saveDocument(); - } - }; - - eventHandlers.tabsManager = { - ready: function() { - sandbox.getModule('skelton').setMainView(sandbox.getModule('tabsManager').getView()); - _.each(['visualEditor', 'sourceEditor'], function(moduleName) { - sandbox.getModule(moduleName).start(); - }); - }, - leaving: function(slug) { - if(slug === 'source' || slug === 'visual') { - var editor = sandbox.getModule(slug+'Editor'); - if(editor.isDirty()) { - sandbox.getModule('data').commitDocument(editor.getDocument(), slug + '_edit'); - editor.setDirty(false); - } - } - }, - showed: function(slug) { - if(slug === 'visual') - sandbox.getModule('visualEditor').onShowed(); - } - }; - + eventHandlers.sourceEditor = { ready: function() { addTab(gettext('Source'), 'source', sandbox.getModule('sourceEditor').getView()); @@ -68,22 +36,47 @@ return function(sandbox) { eventHandlers.data = { ready: function() { - sandbox.getModule('skelton').start(); + mainLayout.setView('mainView', mainTabs.getAsView()); + + _.each(['visualEditor', 'sourceEditor', 'rng2', 'mainBar', 'indicator'], function(moduleName) { + sandbox.getModule(moduleName).start(); + }); }, documentChanged: function(document, reason) { var slug = (reason === 'visual_edit' ? 'source' : 'visual'); sandbox.getModule(slug+'Editor').setDocument(document); }, savingStarted: function() { - sandbox.getModule('skelton').deactivateCommand('save'); - sandbox.getModule('skelton').showMessage(gettext('Saving...')); + sandbox.getModule('mainBar').setCommandEnabled('save', false); + sandbox.getModule('indicator').showMessage(gettext('Saving...')); }, savingEnded: function(status) { - sandbox.getModule('skelton').activateCommand('save'); - sandbox.getModule('skelton').clearMessage(); + sandbox.getModule('mainBar').setCommandEnabled('save', true); + sandbox.getModule('indicator').clearMessage(); } } + eventHandlers.rng2 = { + ready: function() { + addTab('rng2 test', 'rng2test', sandbox.getModule('rng2').getView()); + + } + } + + eventHandlers.mainBar = { + ready: function() { + mainLayout.setView('topPanel', sandbox.getModule('mainBar').getView()); + }, + 'cmd.save': function() { + sandbox.getModule('data').fakeSave(); + } + } + + eventHandlers.indicator = { + ready: function() { + mainLayout.setView('messages', sandbox.getModule('indicator').getView()); + } + } /* api */ @@ -92,7 +85,9 @@ return function(sandbox) { sandbox.getModule('data').start(); }, handleEvent: function(moduleName, eventName, args) { - if(eventHandlers[moduleName] && eventHandlers[moduleName][eventName]) { + if('') + wysiwigHandler.handleEvent(moduleName, eventName, args); + else if(eventHandlers[moduleName] && eventHandlers[moduleName][eventName]) { eventHandlers[moduleName][eventName].apply(eventHandlers, args); } }