X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/0214643f72c6aaa8e85eaba2ad27f2ca03ca6401..189dfb1a02272bf58fe1ad33d60461b4d05eb944:/modules/nodePane/nodePane.js?ds=sidebyside diff --git a/modules/nodePane/nodePane.js b/modules/nodePane/nodePane.js index 47777b7..3a4a0ef 100644 --- a/modules/nodePane/nodePane.js +++ b/modules/nodePane/nodePane.js @@ -1,35 +1,43 @@ -define([ -'libs/text!./template.html', -'libs/jquery-1.9.1.min', -'libs/underscore-min', - -], function(templateSrc, $, _) { - -return function(sandbox) { - - view = $(_.template(templateSrc)()); - - view.on('change', 'select', function(e) { - var target = $(e.target); - var attr = target.attr('class').split('-')[2].split('nodePane')[1].substr(0,3) === 'Tag' ? 'tag' : 'class'; - sandbox.publish('nodeChanged', attr, target.val()); - }); - - return { - start: function() { - sandbox.publish('ready'); - }, - getView: function() { - return view; - }, - setNode: function(node) { - var tag = node.attr('wlxml-tag'); - var klass = node.attr('wlxml-class'); - view.find('.rng-module-nodePane-tagSelect').val(tag); - view.find('.rng-module-nodePane-classSelect').val(klass); - } - } - -} - +define([ +'libs/text!./template.html', +'libs/jquery-1.9.1.min', +'libs/underscore-min', +'modules/nodePane/metaWidget/metaWidget' +], function(templateSrc, $, _, metaWidget) { + +'use strict'; + +return function(sandbox) { + + var view = $(_.template(templateSrc)()); + + view.on('change', 'select', function(e) { + var target = $(e.target); + var attr = target.attr('class').split('-')[3] === 'tagSelect' ? 'tag' : 'class'; + sandbox.publish('nodeElementChange', attr, target.val().replace(/-/g, '.')); + }); + + return { + start: function() { + sandbox.publish('ready'); + }, + getView: function() { + return view; + }, + setNodeElement: function(nodeElement) { + view.find('.rng-module-nodePane-tagSelect').val(nodeElement.getWlxmlTag()); + + var escapedClassName = (nodeElement.getWlxmlClass() || '').replace(/\./g, '-') + view.find('.rng-module-nodePane-classSelect').val(escapedClassName); + + var widget = metaWidget.create({attrs:nodeElement.getWlxmlMetaAttrs()}); + widget.on('valueChanged', function(key, value) { + sandbox.publish('nodeElementChange', key, value); + }); + view.find('.metaFields').empty().append(widget.el); + } + }; + +}; + }); \ No newline at end of file