wip: Experimenting with new approach - dividing visualEditor module
[fnpeditor.git] / modules / visualEditor.js
index 1c61ef0..65de452 100644 (file)
@@ -1,5 +1,6 @@
-rng.modules.visualEditor = function(sandbox) {\r
-    var transformations = rng.modules.visualEditor.transformations;\r
+define(['./visualEditor.transformations'], function(transformations) {\r
+\r
+return function(sandbox) {\r
 \r
     var view = {\r
         node: $(sandbox.getTemplate('main')()),\r
 \r
     var view = {\r
         node: $(sandbox.getTemplate('main')()),\r
@@ -277,6 +278,7 @@ rng.modules.visualEditor = function(sandbox) {
             var view = this;\r
             this.node.find('#rng-visualEditor-sidebarButtons a').click(function(e) {\r
                 e.preventDefault();\r
             var view = this;\r
             this.node.find('#rng-visualEditor-sidebarButtons a').click(function(e) {\r
                 e.preventDefault();\r
+                e.stopPropagation();\r
                 var target = $(e.currentTarget);\r
                 if(!target.attr('data-content-id'))\r
                     return;\r
                 var target = $(e.currentTarget);\r
                 if(!target.attr('data-content-id'))\r
                     return;\r
@@ -315,16 +317,18 @@ rng.modules.visualEditor = function(sandbox) {
         },\r
         updateEditPane: function(node) {\r
             var pane = this.node.find('#rng-visualEditor-edit');\r
         },\r
         updateEditPane: function(node) {\r
             var pane = this.node.find('#rng-visualEditor-edit');\r
+            var parentClass = node.parent().attr('wlxml-class');\r
             pane.html( $(sandbox.getTemplate('editPane')({tag: node.attr('wlxml-tag'), klass: node.attr('wlxml-class')})));\r
             \r
             var parent = node.parent('[wlxml-tag]').length ? {\r
             pane.html( $(sandbox.getTemplate('editPane')({tag: node.attr('wlxml-tag'), klass: node.attr('wlxml-class')})));\r
             \r
             var parent = node.parent('[wlxml-tag]').length ? {\r
-                repr: node.parent().attr('wlxml-tag') + ' / ' + (node.parent().attr('wlxml-class') || '[[no class]]'),\r
+                repr: node.parent().attr('wlxml-tag') + (parentClass ? ' / ' + parentClass : ''),\r
                 id: node.parent().attr('id')\r
             } : undefined;\r
             var children = [];\r
             node.children('[wlxml-tag]').each(function() {\r
                 var child = $(this);\r
                 id: node.parent().attr('id')\r
             } : undefined;\r
             var children = [];\r
             node.children('[wlxml-tag]').each(function() {\r
                 var child = $(this);\r
-                children.push({repr: child.attr('wlxml-tag') + ' / ' + (child.attr('wlxml-class') || '[[no class]]'), id: child.attr('id')});\r
+                var childClass = child.attr('wlxml-class');\r
+                children.push({repr: child.attr('wlxml-tag') + (childClass ? ' / ' + childClass : ''), id: child.attr('id')});\r
             });\r
             var naviTemplate = sandbox.getTemplate('editPaneNavigation')({parent: parent, children: children});\r
             pane.find('.rng-visualEditor-editPaneSurrouding > div').html($(naviTemplate));\r
             });\r
             var naviTemplate = sandbox.getTemplate('editPaneNavigation')({parent: parent, children: children});\r
             pane.find('.rng-visualEditor-editPaneSurrouding > div').html($(naviTemplate));\r
@@ -351,7 +355,7 @@ rng.modules.visualEditor = function(sandbox) {
                     mediator.toolbarButtonToggled(btn.attr('data-btn'), btn.hasClass('active'));\r
                 }\r
                 if(btn.attr('data-btn-type') === 'cmd') {\r
                     mediator.toolbarButtonToggled(btn.attr('data-btn'), btn.hasClass('active'));\r
                 }\r
                 if(btn.attr('data-btn-type') === 'cmd') {\r
-                    mediator.toolbarButtonCmd(btn.attr('data-btn'));\r
+                    mediator.toolbarButtonCmd(btn.attr('data-btn'), btn.attr('data-meta'));\r
                 }\r
             });\r
         },\r
                 }\r
             });\r
         },\r
@@ -423,12 +427,19 @@ rng.modules.visualEditor = function(sandbox) {
             if(btn === 'tags')\r
                 view.toggleTags(toggle);\r
         },\r
             if(btn === 'tags')\r
                 view.toggleTags(toggle);\r
         },\r
-        toolbarButtonCmd: function(btn) {\r
+        toolbarButtonCmd: function(btn, meta) {\r
             if(btn === 'new-node') {\r
             if(btn === 'new-node') {\r
+                var wlxmlTag = toolbarView.getOption('newTag-tag');\r
+                var wlxmlClass = toolbarView.getOption('newTag-class');\r
+                if(meta) {\r
+                    var split = meta.split('/');\r
+                    wlxmlTag = split[0];\r
+                    wlxmlClass = split[1];\r
+                }\r
                 if(window.getSelection().isCollapsed)\r
                 if(window.getSelection().isCollapsed)\r
-                    view.insertNewNode(toolbarView.getOption('newTag-tag'), toolbarView.getOption('newTag-class'));\r
+                    view.insertNewNode(wlxmlTag, wlxmlClass);\r
                 else {\r
                 else {\r
-                    this.wrapWithNodeRequest(toolbarView.getOption('newTag-tag'), toolbarView.getOption('newTag-class'));\r
+                    this.wrapWithNodeRequest(wlxmlTag, wlxmlClass);\r
                 }\r
                     \r
                     \r
                 }\r
                     \r
                     \r
@@ -484,4 +495,6 @@ rng.modules.visualEditor = function(sandbox) {
         }\r
     \r
     }\r
         }\r
     \r
     }\r
-};
\ No newline at end of file
+};\r
+\r
+});
\ No newline at end of file