From f2a4c98c8681e58fb9ee794129ce66ec0b06f0be Mon Sep 17 00:00:00 2001 From: =?utf8?q?Aleksander=20=C5=81ukasz?= Date: Fri, 29 Nov 2013 11:27:19 +0100 Subject: [PATCH] canvas: Fixing nodeMoved event handling --- .../documentCanvas/canvas/canvas.test.js | 27 +++++++++++++++++++ .../documentCanvas/canvas/wlxmlListener.js | 5 ++-- 2 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/editor/modules/documentCanvas/canvas/canvas.test.js b/src/editor/modules/documentCanvas/canvas/canvas.test.js index 98b7ffe..ceccda3 100644 --- a/src/editor/modules/documentCanvas/canvas/canvas.test.js +++ b/src/editor/modules/documentCanvas/canvas/canvas.test.js @@ -60,6 +60,33 @@ describe('Handling changes to the document', function() { }); }); +describe('Listening to document changes', function() { + it('Handling element node moved', function() { + var doc = getDocumentFromXML('
'), + a = doc.root.contents()[0], + b = doc.root.contents()[1], + c = canvas.fromXMLDocument(doc); + + a.before(b); + var sectionChildren = c.doc().children(); + expect(sectionChildren.length).to.equal(2); + expect(sectionChildren[0].getWlxmlTag()).to.equal('b'); + expect(sectionChildren[1].getWlxmlTag()).to.equal('a'); + }); + it('Handling text node moved', function() { + var doc = getDocumentFromXML('
Alice
'), + a = doc.root.contents()[0], + textNode = doc.root.contents()[1], + c = canvas.fromXMLDocument(doc); + + a.before(textNode); + var sectionChildren = c.doc().children(); + expect(sectionChildren.length).to.equal(2); + expect(sectionChildren[0].getText()).to.equal('Alice'); + expect(sectionChildren[1].getWlxmlTag()).to.equal('a'); + }); +}); + describe('Cursor', function() { var getSelection; diff --git a/src/editor/modules/documentCanvas/canvas/wlxmlListener.js b/src/editor/modules/documentCanvas/canvas/wlxmlListener.js index 2dd61ff..c5deabf 100644 --- a/src/editor/modules/documentCanvas/canvas/wlxmlListener.js +++ b/src/editor/modules/documentCanvas/canvas/wlxmlListener.js @@ -47,7 +47,7 @@ var handlers = { } var parentElement = utils.findCanvasElement(event.meta.node.parent()), nodeIndex = event.meta.node.getIndex(), - referenceElement, referenceAction; + referenceElement, referenceAction, actionArg; if(nodeIndex === 0) { referenceElement = parentElement; @@ -57,7 +57,8 @@ var handlers = { referenceAction = 'after'; } - referenceElement[referenceAction](event.meta.node); + actionArg = utils.findCanvasElement(event.meta.node) || event.meta.node; + referenceElement[referenceAction](actionArg); }, nodeMoved: function(event) { return handlers.nodeAdded(event); -- 2.20.1