canvas manager wip - splitting node
authorAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Thu, 20 Jun 2013 10:34:39 +0000 (12:34 +0200)
committerAleksander Łukasz <aleksander.lukasz@nowoczesnapolska.org.pl>
Thu, 20 Jun 2013 10:34:39 +0000 (12:34 +0200)
modules/documentCanvas/canvas.js
modules/documentCanvas/canvasManager.js

index a15bb2c..20c286a 100644 (file)
@@ -103,6 +103,7 @@ Canvas.prototype.splitNode = function(options) {
         newNode.append(node)\r
     });\r
     nodeToSplit.after(newNode);\r
+    return newNode;\r
 }\r
 \r
 Canvas.prototype.createList = function(options) {\r
index fcf2659..de085ce 100644 (file)
@@ -44,7 +44,7 @@ var Manager = function(canvas, sandbox) {
     canvas.dom.on('keydown', '#rng-module-documentCanvas-contentWrapper', function(e) {\r
         if(e.which === 13) { \r
             e.preventDefault();\r
-            //view.insertNewNode(null, null);\r
+            manager.insertNewNode(null, null);\r
         }\r
         if(e.which === 8) {\r
             var anchor = window.getSelection().anchorNode;\r
@@ -139,6 +139,24 @@ Manager.prototype.toggleGrid =  function(toggle) {
     this.gridToggled = toggle;\r
 };\r
 \r
+Manager.prototype.insertNewNode = function(wlxmlTag, wlxmlClass) {\r
+    //TODO: Insert inline\r
+    var anchor = $(window.getSelection().anchorNode);\r
+    var anchorOffset = window.getSelection().anchorOffset;\r
+    \r
+    var parent = anchor.parent();\r
+    var idx = parent.contents().index(anchor);\r
+    \r
+    if(anchorOffset < anchor.text().length) {\r
+        var newNode = this.canvas.splitNode({node: {id: parent.attr('id')}, textNodeIdx: idx, offset: anchorOffset});\r
+        this.selectNode(new wlxmlNode.Node(newNode), {movecaret: true});\r
+    }\r
+\r
+    \r
+    \r
+    this.sandbox.publish('contentChanged');\r
+};\r
+\r
 return Manager;\r
     \r
 });
\ No newline at end of file