X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/180cd85dd5dcdcb29eb1a4626e3c6412558caddb..b5b63aaa73c53f6ba8091c8e8662ff478a1ecca7:/src/smartxml/smartxml.js diff --git a/src/smartxml/smartxml.js b/src/smartxml/smartxml.js index 6b02779..b4036d3 100644 --- a/src/smartxml/smartxml.js +++ b/src/smartxml/smartxml.js @@ -42,18 +42,14 @@ $.extend(DocumentNode.prototype, { after: function(node) { var insertion = this.getNodeInsertion(node); this._$.after(insertion.ofNode.nativeNode); - if(insertion.insertsNew) { - this.triggerChangeEvent('nodeAdded', {node: insertion.ofNode}); - } + this.triggerChangeEvent(insertion.insertsNew ? 'nodeAdded' : 'nodeMoved', {node: insertion.ofNode}); return insertion.ofNode; }, before: function(node) { var insertion = this.getNodeInsertion(node); this._$.before(insertion.ofNode.nativeNode); - if(insertion.insertsNew) { - this.triggerChangeEvent('nodeAdded', {node: insertion.ofNode}); - } + this.triggerChangeEvent(insertion.insertsNew ? 'nodeAdded' : 'nodeMoved', {node: insertion.ofNode}); return insertion.ofNode; }, @@ -82,6 +78,10 @@ $.extend(DocumentNode.prototype, { insertion.insertsNew = true; } return insertion; + }, + + getIndex: function() { + return this.parent().indexOf(this); } }); @@ -173,18 +173,14 @@ $.extend(ElementNode.prototype, { append: function(node) { var insertion = this.getNodeInsertion(node); this._$.append(insertion.ofNode.nativeNode); - if(insertion.insertsNew) { - this.triggerChangeEvent('nodeAdded', {node: insertion.ofNode}); - } + this.triggerChangeEvent(insertion.insertsNew ? 'nodeAdded' : 'nodeMoved', {node: insertion.ofNode}); return insertion.ofNode; }, prepend: function(node) { var insertion = this.getNodeInsertion(node); this._$.prepend(insertion.ofNode.nativeNode); - if(insertion.insertsNew) { - this.triggerChangeEvent('nodeAdded', {node: insertion.ofNode}); - } + this.triggerChangeEvent(insertion.insertsNew ? 'nodeAdded' : 'nodeMoved', {node: insertion.ofNode}); return insertion.ofNode; }, @@ -283,7 +279,7 @@ $.extend(TextNode.prototype, { textNodeIdx: this.parent().indexOf(this), offsetStart: Math.min(desc.start, desc.end), offsetEnd: Math.max(desc.start, desc.end), - _with: {tag: desc.tagName, attrs: desc.attrs} + _with: {tagName: desc.tagName, attrs: desc.attrs} }); } else { return DocumentNode.prototype.wrapWith.call(this, desc); @@ -404,7 +400,7 @@ $.extend(Document.prototype, Backbone.Events, { throw new Error('Wrapping text in non-sibling text nodes not supported.'); } - var wrapperElement = this.createElementNode({tagName: params._with.tag, attrs: params._with.attrs}); + var wrapperElement = this.createElementNode({tagName: params._with.tagName, attrs: params._with.attrs}); textNode1.after(wrapperElement); textNode1.detach();