X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/eb8ad1c4836166891f3456d5baa8eb12275bc46e..8acf84ebc364a5a7ac6d253fc3875787f8e620b9:/src/editor/modules/sourceEditor/sourceEditor.js diff --git a/src/editor/modules/sourceEditor/sourceEditor.js b/src/editor/modules/sourceEditor/sourceEditor.js index 8159680..1930939 100644 --- a/src/editor/modules/sourceEditor/sourceEditor.js +++ b/src/editor/modules/sourceEditor/sourceEditor.js @@ -1,10 +1,10 @@ -define(function() { +define(['libs/jquery', 'libs/text!./template.html'], function($, template) { 'use strict'; return function(sandbox) { - var view = $(sandbox.getTemplate('main')()), + var view = $(template), documentIsDirty = true, documentEditedHere = false, wlxmlDocument; @@ -13,28 +13,27 @@ return function(sandbox) { if(documentIsDirty) { editor.setValue(wlxmlDocument.toXML()); editor.gotoLine(0); + documentEditedHere = false; + sandbox.publish('documentSet'); documentIsDirty = false; } - } + }; view.onHide = function() { if(documentEditedHere) { documentEditedHere = false; wlxmlDocument.loadXML(editor.getValue()); } - } + }; + /* globals ace */ var editor = ace.edit(view.find('#rng-sourceEditor-editor')[0]), session = editor.getSession(); - editor.setTheme("ace/theme/chrome"); - session.setMode("ace/mode/xml") + editor.setTheme('ace/theme/chrome'); + session.setMode('ace/mode/xml'); session.setUseWrapMode(true); - $('textarea', view).on('keyup', function() { - documentEditedHere = true; - }); - editor.getSession().on('change', function() { documentEditedHere = true; }); @@ -50,6 +49,9 @@ return function(sandbox) { wlxmlDocument.on('change', function() { documentIsDirty = true; }); + wlxmlDocument.on('contentSet', function() { + documentIsDirty = true; + }); }, getDocument: function() { return editor.getValue();