From cf8479951262da902ce027205a48ee420c63d6b8 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Aleksander=20=C5=81ukasz?= Date: Thu, 11 Jul 2013 13:05:58 +0200 Subject: [PATCH] Extracting list items out of all outer lists --- modules/documentCanvas/canvas/canvas.js | 5 +++ modules/documentCanvas/canvas/canvas.test3.js | 35 +++++++++++++++++++ 2 files changed, 40 insertions(+) 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'); + }); }); }); -- 2.20.1