X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/b43c71cd14fbc5e3623cd7c2150d1a0c589ad26c..898f8bf5c4bf5e553994ee7d7cf320fcc0d1bc12:/src/wlxml/extensions/list/list.js diff --git a/src/wlxml/extensions/list/list.js b/src/wlxml/extensions/list/list.js index 6d7b251..107743a 100644 --- a/src/wlxml/extensions/list/list.js +++ b/src/wlxml/extensions/list/list.js @@ -35,15 +35,19 @@ extension.document.transformations.createList = { /* globals Node */ var parent = params.node1.parent(), parentContents = parent.contents(), - nodeIndexes = [params.node1.getIndex(), params.node2.getIndex()].sort(), + nodeIndexes = [params.node1.getIndex(), params.node2.getIndex()].sort(function(a,b) { return a-b; }), nodesToWrap = [], listNode = params.node1.document.createDocumentNode({tagName: 'div', attrs: {'class': 'list'}}), + listPlacePtr = params.node1, node, i; - + for(i = nodeIndexes[0]; i <= nodeIndexes[1]; i++) { node = parentContents[i]; if(node.nodeType === Node.TEXT_NODE) { node = node.wrapWith({tagName: 'div', attrs: {'class': 'item'}}); + if(i === nodeIndexes[0]) { + listPlacePtr = node; + } } else { node.setClass('item'); } @@ -60,7 +64,7 @@ extension.document.transformations.createList = { toInsert = listNode; } - params.node1.before(toInsert); + listPlacePtr.before(toInsert); nodesToWrap.forEach(function(node) { listNode.append(node); @@ -78,7 +82,7 @@ extension.document.transformations.extractItems = { impl: function(params) { params = _.extend({}, {merge: true}, params); var list = params.item1.parent(), - indexes = [params.item1.getIndex(), params.item2.getIndex()].sort(), + indexes = [params.item1.getIndex(), params.item2.getIndex()].sort(function(a,b) { return a-b;}), precedingItems = [], extractedItems = [], succeedingItems = [],