X-Git-Url: https://git.mdrn.pl/fnpeditor.git/blobdiff_plain/c986f6ebfd3d20bdc75ce00ee09bd2c716e0cb16..e816ae7584e8b11a1e24efb2f743ac744d80485b:/modules/documentCanvas/canvas.js?ds=sidebyside
diff --git a/modules/documentCanvas/canvas.js b/modules/documentCanvas/canvas.js
index c2f6c85..be5323a 100644
--- a/modules/documentCanvas/canvas.js
+++ b/modules/documentCanvas/canvas.js
@@ -11,6 +11,10 @@ define([
var Canvas = function(html) {
this.dom = $(template);
this.content = this.dom.find('#rng-module-documentCanvas-content');
+ this.setHTML(html);
+};
+
+Canvas.prototype.setHTML = function(html) {
if(html) {
this.content.html(html);
}
@@ -38,6 +42,10 @@ Canvas.prototype.findNodes = function(desc) {
return toret;
};
+Canvas.prototype.getNodeById = function(id) {
+ return canvasNode.create($(this.content.find('#' +id)));
+}
+
Canvas.prototype.nodeAppend = function(options) {
var element; // = $(this.content.find('#' + options.context.id).get(0));
if(options.to === 'root') {
@@ -152,8 +160,20 @@ Canvas.prototype.listCreate = function(options) {
return false;
});
- var list = canvasNode.create({tag: 'div', klass: 'list-items'}).dom; //this._createNode('div', 'list-items');
- element1.before(list);
+ var list = canvasNode.create({tag: 'div', klass: 'list-items' + (options.type === 'enum' ? '-enum' : '')}).dom; //this._createNode('div', 'list-items');
+
+ var parentNode = options.start.parent();
+
+ var toret;
+ if(parentNode && parentNode.isOfClass('list-items')) {
+ list.wrap('
');
+ toret = list.parent();
+ } else {
+ toret = list;
+ }
+
+
+ element1.before(toret);
nodesToWrap.forEach(function(node) {
node.remove();
@@ -164,11 +184,21 @@ Canvas.prototype.listCreate = function(options) {
Canvas.prototype.listRemove = function(options) {
var pointerElement = $(this.content.find('#' + options.pointer.getId()));
var listElement = options.pointer.getClass() === 'list-items' ? pointerElement :
- pointerElement.parent('[wlxml-class="list-items"][wlxml-tag]');
+ pointerElement.parents('[wlxml-class|="list-items"][wlxml-tag]');
- listElement.find('[wlxml-class=item]').each(function() {
- $(this).removeAttr('wlxml-class');
- });
+ var nested = false;
+ if(listElement.length > 1) {
+ listElement = $(listElement[0]);
+ nested = true;
+ }
+
+ if(nested) {
+ listElement.unwrap();
+ } else {
+ listElement.find('[wlxml-class=item]').each(function() {
+ $(this).removeAttr('wlxml-class');
+ });
+ }
listElement.children().unwrap();
};
@@ -181,11 +211,11 @@ Canvas.prototype.getPrecedingNode = function(options) {
};
Canvas.prototype.nodeInsideList = function(options) {
- if(options.pointer) {
- if(options.pointer.getClass() === 'list-items' || options.pointer.getClass() === 'item')
+ if(options.node) {
+ if(options.node.isOfClass('list-items') || options.node.isOfClass('item'))
return true;
- var pointerElement = $(this.content.find('#' + options.pointer.getId()));
- return pointerElement.parents('list-items, item').length > 0;
+ var pointerElement = $(this.content.find('#' + options.node.getId()));
+ return pointerElement.parents('[wlxml-class=list-items], [wlxml-class=item]').length > 0;
}
return false;
};