X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/7c4c5ee807a9700c1b26e91f0d1720e3c6fd9ec3..a892115bc1f94bfd53873dd442854b5ebe3fd03c:/src/editor/modules/documentCanvas/canvas/documentElement.js?ds=inline diff --git a/src/editor/modules/documentCanvas/canvas/documentElement.js b/src/editor/modules/documentCanvas/canvas/documentElement.js index 99a12f5..50a188a 100644 --- a/src/editor/modules/documentCanvas/canvas/documentElement.js +++ b/src/editor/modules/documentCanvas/canvas/documentElement.js @@ -18,6 +18,7 @@ var DocumentElement = function(wlxmlNode, canvas) { this.dom = this.createDOM(); this.dom.data('canvas-element', this); + this.wlxmlNode.setData('canvasElement', this); }; $.extend(DocumentElement.prototype, { @@ -89,7 +90,6 @@ $.extend(DocumentElement.prototype, { // DocumentNodeElement represents an element node from WLXML document rendered inside Canvas var DocumentNodeElement = function(wlxmlNode, canvas) { DocumentElement.call(this, wlxmlNode, canvas); - wlxmlNode.setData('canvasElement', this); this.init(this.dom); }; @@ -151,13 +151,26 @@ $.extend(DocumentNodeElement.prototype, { _container: function() { return this.dom.children('[document-element-content]'); }, - detach: function() { - var parents = this.parents(); - this.dom.detach(); - if(parents[0]) { - parents[0].refreshPath(); + detach: function(isChild) { + var parents; + + if(this.gutterGroup) { + this.gutterGroup.remove(); + } + if(_.isFunction(this.children)) { + this.children().forEach(function(child) { + child.detach(true); + }); } - return this; + + if(!isChild) { + parents = this.parents(); + this.dom.detach(); + if(parents[0]) { + parents[0].refreshPath(); + } + } + return this; }, before: function(params) { return manipulate(this, params, 'before'); @@ -214,8 +227,10 @@ $.extend(DocumentTextElement.prototype, { .text(this.wlxmlNode.getText() || utils.unicode.ZWS); return dom; }, - detach: function() { - this.dom.detach(); + detach: function(isChild) { + if(!isChild) { + this.dom.detach(); + } return this; }, setText: function(text) {