wrapperElement.after({text: suffixOutside});
return wrapperElement;
},
+ getDocumentElement: function(from) {
+ if(from instanceof HTMLElement) {
+ return documentElement.wrap(from, this);
+ }
+ },
list: {}
});
reference.after(toAdd);
}
+ },
+ areItemsOfTheSameList: function(params) {
+ var e1 = params.element1,
+ e2 = params.element2;
+ return e1.parent().sameNode(e2.parent())
+ && e1.parent().is('list');
}
});
};
Manager.prototype.command = function(command, meta) {
- var pos = getCursorPosition();
-
+ var selection = window.getSelection(),
+ node1 = $(selection.anchorNode).parent()[0],
+ node2 = $(selection.focusNode).parent()[0],
+ element1 = this.canvas.getDocumentElement(node1),
+ element2 = this.canvas.getDocumentElement(node2);
if(command === 'createList') {
- var node = canvasNode.create(pos.parentNode);
- if(window.getSelection().getRangeAt(0).collapsed && this.canvas.nodeInsideList({node: node})) {
- this.canvas.listRemove({pointer: node});
- this.selectNode(node, {movecaret: 'end'});
- this.sandbox.publish('contentChanged');
- }
- else {
- //if(!this.canvas.nodeInsideList({node: node})) {
- this.canvas.listCreate({start: node, end: canvasNode.create(pos.focusNode), type: meta});
- this.selectNode(node, {movecaret: 'end'});
- this.sandbox.publish('contentChanged');
- //}
- }
+ this.canvas.list.create({element1: element1, element2: element2});
} else if(command === 'unwrap-node') {
- this.canvas.nodeUnwrap({node: canvasNode.create(pos.parentNode)});
- this.sandbox.publish('contentChanged');
+ // this.canvas.nodeUnwrap({node: canvasNode.create(pos.parentNode)});
+ // this.sandbox.publish('contentChanged');
+ if(this.canvas.list.areItemsOfTheSameList({element1: element1, element2: element2})) {
+ this.canvas.list.extractItems({element1: element1, element2: element2});
+ }
}
};