From: Aleksander Ɓukasz Date: Thu, 11 Jul 2013 11:05:58 +0000 (+0200) Subject: Extracting list items out of all outer lists X-Git-Url: https://git.mdrn.pl/fnpeditor.git/commitdiff_plain/cf8479951262da902ce027205a48ee420c63d6b8?ds=inline;hp=63818a7af3134079d186bfbdeadc6b4e903e6c87 Extracting list items out of all outer lists --- diff --git a/modules/documentCanvas/canvas/canvas.js b/modules/documentCanvas/canvas/canvas.js index 1bd2f15..ad294b8 100644 --- a/modules/documentCanvas/canvas/canvas.js +++ b/modules/documentCanvas/canvas/canvas.js @@ -175,6 +175,7 @@ $.extend(Canvas.prototype.list, { }); }, extractItems: function(params) { + params = _.extend({merge: true}, params); var list = params.element1.parent(); if(!list.is('list') || !(list.sameNode(params.element2.parent()))) return false; @@ -239,6 +240,10 @@ $.extend(Canvas.prototype.list, { reference.after(toAdd); } + if(!params.merge && listIsNested) { + return this.extractItems({element1: extractedItems[0], element2: extractedItems[extractedItems.length-1]}); + } + return true; }, areItemsOfTheSameList: function(params) { var e1 = params.element1, diff --git a/modules/documentCanvas/canvas/canvas.test3.js b/modules/documentCanvas/canvas/canvas.test3.js index 2aa50d9..34c372d 100644 --- a/modules/documentCanvas/canvas/canvas.test3.js +++ b/modules/documentCanvas/canvas/canvas.test3.js @@ -793,6 +793,41 @@ describe('Canvas', function() { expect(item3.children()[0].getText()).to.equal('1.2', 'third item ok'); expect(item4.children()[0].getText()).to.equal('2', 'fourth item ok'); }); + + it('extracts items out of outer most list when merge flag is set to false', function() { + var c = canvas.fromXML('\ +
\ +
\ +
0
\ +
\ +
\ +
1.1
\ +
1.2
\ +
\ +
\ +
2
\ +
\ +
'), + section = c.doc(), + list = section.children()[0], + nestedList = list.children()[1].children()[0], + nestedListItem = nestedList.children()[0]; + + var test = c.list.extractItems({element1: nestedListItem, element2: nestedListItem, merge: false}); + + expect(test).to.equal(true, 'extraction status ok'); + + var sectionChildren = section.children(), + extractedItem = sectionChildren[1]; + + expect(sectionChildren.length).to.equal(3, 'section has three children'); + expect(sectionChildren[0].is('list')).to.equal(true, 'first child is a list'); + + expect(extractedItem.getWlxmlTag()).to.equal('div', 'extracted item is a wlxml div'); + expect(extractedItem.getWlxmlClass()).to.equal(undefined, 'extracted item has no wlxml class'); + expect(extractedItem.children()[0].getText()).to.equal('1.1', 'extracted item ok'); + expect(sectionChildren[2].is('list')).to.equal(true, 'second child is a list'); + }); }); });