X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/b41ddda14e70e0a8ee1705b8c8edcb7625553e5e..06f085a7b35932bcf2c83b3279d5adc687de908c:/modules/visualEditor.js?ds=sidebyside diff --git a/modules/visualEditor.js b/modules/visualEditor.js index d8b30b7..38f3302 100644 --- a/modules/visualEditor.js +++ b/modules/visualEditor.js @@ -3,6 +3,32 @@ rng.modules.visualEditor = function(sandbox) { var view = { node: $(sandbox.getTemplate('main')()), + setup: function() { + var view = this; + + this.node.find('#rng-visualEditor-content').on('keyup', function() { + isDirty = true; + }); + + this.node.find('#rng-visualEditor-meta').on('keyup', function() { + isDirty = true; + }); + + this.node.on('mouseover', '.rng', function(e) { $(e.target).addClass('rng-hover')}); + this.node.on('mouseout', '.rng', function(e) { $(e.target).removeClass('rng-hover')}); + this.node.on('click', '.rng', function(e) { + view._markSelected($(e.target)); + }); + + this.node.on('keyup', function(e) { + var anchor = $(window.getSelection().anchorNode); + if(anchor[0].nodeType === Node.TEXT_NODE) + anchor = anchor.parent(); + if(!anchor.hasClass('rng')) + return; + view._markSelected(anchor); + }); + }, getMetaData: function() { var toret = {}; this.node.find('#rng-visualEditor-meta table tr').each(function() { @@ -25,21 +51,18 @@ rng.modules.visualEditor = function(sandbox) { this.node.find('#rng-visualEditor-content').html(HTMLTree); }, getBody: function() { - return this.find('#rng-visualEditor-content').html(); - } + return this.node.find('#rng-visualEditor-content').html(); + }, + _markSelected: function(node) { + this.node.find('.rng').removeClass('rng-current'); + node.addClass('rng-current'); + } }; + view.setup(); var isDirty = false; - $('#rng-visualEditor-content', view).on('keyup', function() { - isDirty = true; - }); - - $('#rng-visualEditor-meta', view).on('keyup', function() { - isDirty = true; - }); - return { start: function() { sandbox.publish('ready');