documentToolbar module
[fnpeditor.git] / modules / documentToolbar / documentToolbar.js
diff --git a/modules/documentToolbar/documentToolbar.js b/modules/documentToolbar/documentToolbar.js
new file mode 100644 (file)
index 0000000..a2a1567
--- /dev/null
@@ -0,0 +1,62 @@
+define(['libs/jquery-1.9.1.min', 'libs/underscore-min', 'libs/text!./template.html'], function($, _, template) {\r
+\r
+'use strict';\r
+\r
+return function(sandbox) {\r
+    \r
+    var view = {\r
+        node: $(_.template(template)()),\r
+        setup: function() {\r
+            var view = this;\r
+            \r
+            this.node.find('button').click(function(e) {\r
+                e.stopPropagation();\r
+                var btn = $(e.currentTarget);\r
+                if(btn.attr('data-btn-type') === 'toggle') {\r
+                    btn.toggleClass('active')\r
+                    var event;\r
+                    var btnId = btn.attr('data-btn');\r
+                    if(btnId === 'grid')\r
+                        event = 'toggleGrid';\r
+                    if(btnId === 'tags')\r
+                        event = 'toggleTags';\r
+                    sandbox.publish(event, btn.hasClass('active'));\r
+                }\r
+                if(btn.attr('data-btn-type') === 'cmd') {\r
+                    var command = btn.attr('data-btn');\r
+                    var meta = btn.attr('data-meta');\r
+                    if(command === 'new-node') {\r
+                        var wlxmlTag = view.getOption('newTag-tag');\r
+                        var wlxmlClass = view.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
+                            //view.insertNewNode(wlxmlTag, wlxmlClass);\r
+                        }\r
+                        else {\r
+                            //this.wrapWithNodeRequest(wlxmlTag, wlxmlClass);\r
+                        }\r
+                        sandbox.publish('newNodeRequested', wlxmlTag, wlxmlClass);\r
+                    }\r
+                    //sandbox.publish('command', btn.attr('data-btn'), btn.attr('data-meta'));\r
+                }\r
+            });\r
+        },\r
+        getOption: function(option) {\r
+            return this.node.find('.rng-module-documentToolbar-toolbarOption[data-option=' + option +']').val();\r
+        }\r
+    }\r
+    \r
+    view.setup();\r
+\r
+    return {\r
+        start: function() { sandbox.publish('ready'); },\r
+        getView: function() { return view.node; },\r
+        getOption: function(option) { return view.getOption(option); }\r
+    }\r
+}\r
+\r
+});
\ No newline at end of file