[FIX] website editor: outdent ul and ol list
This commit is contained in:
@@ -50,18 +50,18 @@ define(['summernote/editing/Editor', 'summernote/summernote'], function (Editor)
|
||||
return node;
|
||||
};
|
||||
dom.nextElementSibling = function (node) {
|
||||
while (node && node.nextSibling) {
|
||||
while (node) {
|
||||
node = node.nextSibling;
|
||||
if (node.tagName) {
|
||||
if (node && node.tagName) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
return node;
|
||||
};
|
||||
dom.previousElementSibling = function (node) {
|
||||
while (node && node.previousSibling) {
|
||||
while (node) {
|
||||
node = node.previousSibling;
|
||||
if (node.tagName) {
|
||||
if (node && node.tagName) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -1571,6 +1571,8 @@ define(['summernote/editing/Editor', 'summernote/summernote'], function (Editor)
|
||||
var parent = UL.parentNode;
|
||||
var li = UL.parentNode.tagName === "LI" ? UL.parentNode : UL;
|
||||
var ul = UL.parentNode.tagName === "LI" ? UL.parentNode.parentNode : UL.parentNode;
|
||||
start = dom.ancestor(start, dom.isLi);
|
||||
end = dom.ancestor(end, dom.isLi);
|
||||
|
||||
if (ul.tagName !== "UL" && ul.tagName !== "OL") return;
|
||||
|
||||
@@ -1578,14 +1580,22 @@ define(['summernote/editing/Editor', 'summernote/summernote'], function (Editor)
|
||||
while (node) {
|
||||
if (node === start || $.contains(node, start)) {
|
||||
flag = true;
|
||||
if (dom.firstElementChild(UL) !== start && dom.lastElementChild(UL) !== end && li.tagName === "LI") {
|
||||
li = dom.splitTree(li, {'node': node, 'offset': 0});
|
||||
if (dom.previousElementSibling(node) && li.tagName === "LI") {
|
||||
li = dom.splitTree(li, dom.prevPoint({'node': node, 'offset': 0}));
|
||||
}
|
||||
}
|
||||
next = dom.nextElementSibling(node);
|
||||
if (flag) {
|
||||
ul.insertBefore(node, li);
|
||||
ul = node.parentNode;
|
||||
li.parentNode.insertBefore(node, li);
|
||||
if (!ul.children.length) {
|
||||
if (ul.parentNode.tagName === "LI") {
|
||||
ul = ul.parentNode;
|
||||
}
|
||||
ul.parentNode.removeChild(ul);
|
||||
}
|
||||
}
|
||||
|
||||
if (node === end || $.contains(node, end)) {
|
||||
flag = false;
|
||||
break;
|
||||
@@ -1593,15 +1603,6 @@ define(['summernote/editing/Editor', 'summernote/summernote'], function (Editor)
|
||||
node = next;
|
||||
}
|
||||
|
||||
if (dom.firstElementChild(li).tagName === tagName && !dom.firstElementChild(dom.firstElementChild(li))) {
|
||||
li.parentNode.removeChild( li );
|
||||
}
|
||||
|
||||
if (!dom.firstElementChild(UL)) {
|
||||
li = UL.parentNode.tagName === "LI" ? UL.parentNode : UL;
|
||||
li.parentNode.removeChild( li );
|
||||
}
|
||||
|
||||
dom.merge(parent, start, 0, end, 1, null, true);
|
||||
}
|
||||
function indentOther (p, start, end) {
|
||||
|
||||
@@ -1754,7 +1754,12 @@
|
||||
|
||||
this.$target.find("li").removeClass('o_open').css('list-style', '');
|
||||
this.$target.find("li:has(.o_ul_toggle_self, .o_ul_toggle_next), li:has(>ul,>ol):not(:has(>li))").css('list-style', 'none');
|
||||
|
||||
},
|
||||
clean_for_save: function () {
|
||||
this._super();
|
||||
if (!this.$target.hasClass('o_ul_folded')) {
|
||||
this.$target.find(".o_close").removeClass("o_close");
|
||||
}
|
||||
},
|
||||
toggle_class: function (type, value, $li) {
|
||||
this._super(type, value, $li);
|
||||
|
||||
Reference in New Issue
Block a user