X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/49d0411a1353ff5289f5b2021f7f439e4b8f1487..4a10da821d96b8e462cc9db5e74e2507445eee76:/modules/documentCanvas/canvas.js?ds=sidebyside diff --git a/modules/documentCanvas/canvas.js b/modules/documentCanvas/canvas.js index 760bf60..94329a4 100644 --- a/modules/documentCanvas/canvas.js +++ b/modules/documentCanvas/canvas.js @@ -44,7 +44,7 @@ Canvas.prototype.findNodes = function(desc) { Canvas.prototype.getNodeById = function(id) { return canvasNode.create($(this.content.find('#' +id))); -} +}; Canvas.prototype.nodeAppend = function(options) { var element; // = $(this.content.find('#' + options.context.id).get(0)); @@ -65,31 +65,29 @@ Canvas.prototype.nodeWrap = function(options) { options = _.extend({textNodeIdx: 0}, options); if(typeof options.textNodeIdx === 'number') options.textNodeIdx = [options.textNodeIdx]; - var container = $(this.content.find('#' + options.inside.getId()).get(0)); - - var containerContent = container.contents(); - var idx1 = Math.min.apply(Math, options.textNodeIdx); - var idx2 = Math.max.apply(Math, options.textNodeIdx); - var textNode1 = $(containerContent.get(idx1)); - var textNode2 = $(containerContent.get(idx2)); - var sameNode = textNode1.get(0) === textNode2.get(0); + + var container = $(this.content.find('#' + options.inside.getId()).get(0)), + containerContent = container.contents(), + idx1 = Math.min.apply(Math, options.textNodeIdx), + idx2 = Math.max.apply(Math, options.textNodeIdx), + textNode1 = $(containerContent.get(idx1)), + textNode2 = $(containerContent.get(idx2)), + sameNode = textNode1.get(0) === textNode2.get(0), + prefixOutside = textNode1.text().substr(0, options.offsetStart), + prefixInside = textNode1.text().substr(options.offsetStart), + suffixInside = textNode2.text().substr(0, options.offsetEnd), + suffixOutside = textNode2.text().substr(options.offsetEnd) + ; + textNode1.after(options._with.dom); textNode1.detach(); - if(!sameNode) - textNode2.detach(); - - var prefixOutside = textNode1.text().substr(0, options.offsetStart); - var prefixInside = textNode1.text().substr(options.offsetStart) - var suffixInside = textNode2.text().substr(0, options.offsetEnd) - var suffixOutside = textNode2.text().substr(options.offsetEnd); - var core; - if(sameNode) - core = textNode1.text().substr(options.offsetStart, options.offsetEnd - options.offsetStart); options._with.dom.before(prefixOutside); if(sameNode) { + var core = textNode1.text().substr(options.offsetStart, options.offsetEnd - options.offsetStart); options._with.setContent(core); } else { + textNode2.detach(); options._with.dom.append(prefixInside); for(var i = idx1 + 1; i < idx2; i++) { options._with.dom.append(containerContent[i]); @@ -131,7 +129,7 @@ Canvas.prototype.nodeSplit = function(options) { var newNode = canvasNode.create({tag: nodeToSplit.attr('wlxml-tag'), klass: nodeToSplit.attr('wlxml-class')}); newNode.dom.append(suffix); succeedingNodes.forEach(function(node) { - newNode.dom.append(node) + newNode.dom.append(node); }); nodeToSplit.after(newNode.dom); return newNode; @@ -224,7 +222,7 @@ Canvas.prototype.listRemove = function(options) { Canvas.prototype.getPrecedingNode = function(options) { var element = $(this.content.find('#' + options.node.getId()).get(0)); - var prev = element.prev() + var prev = element.prev(); if(prev.length === 0) prev = element.parent(); return canvasNode.create(prev);