summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js/summernote.js
diff options
context:
space:
mode:
authorChristophe Matthieu <chm@odoo.com>2015-10-16 14:52:51 +0200
committerChristophe Matthieu <chm@odoo.com>2015-10-26 11:43:37 +0100
commit5451cf518f1e4de11509b1db1d5cf8a2631615e2 (patch)
treef7b9f1644e126aa5515cf3a0d624f95de9cd8112 /addons/web_editor/static/src/js/summernote.js
parented9a410c11b70f529e354a5d96bc57f9151728bd (diff)
[FIX] web_editor: don't merge tr when keydown delete on the last row table cell
Diffstat (limited to 'addons/web_editor/static/src/js/summernote.js')
-rw-r--r--addons/web_editor/static/src/js/summernote.js20
1 files changed, 11 insertions, 9 deletions
diff --git a/addons/web_editor/static/src/js/summernote.js b/addons/web_editor/static/src/js/summernote.js
index 7382f5fd9eb..39a2b12db1d 100644
--- a/addons/web_editor/static/src/js/summernote.js
+++ b/addons/web_editor/static/src/js/summernote.js
@@ -1195,13 +1195,14 @@ function summernote_keydown_clean (field) {
},0);
}
-function remove_table_content(sc, ec) {
- var nodes = dom.listBetween(sc, ec);
- nodes.push(dom.node(sc), dom.node(ec));
- for (var i in nodes) {
- if (dom.isCell(nodes[i])) {
- $(nodes[i]).html("<br/>");
- }
+function remove_table_content(r) {
+ var ancestor = r.commonAncestor();
+ var end = dom.splitTree(ancestor, dom.prevPoint({'node': r.ec, 'offset': r.eo}));
+ var start = dom.splitTree(ancestor, dom.prevPoint({'node': r.sc, 'offset': r.so}));
+ var nodes = dom.listBetween(start, r.ec);
+ $(nodes).remove();
+ if (!dom.isVisibleText(end)) {
+ $(end).remove();
}
event.preventDefault();
return false;
@@ -1219,7 +1220,7 @@ $.summernote.pluginEvents.delete = function (event, editor, layoutInfo) {
}
if (!r.isCollapsed()) {
if (dom.isCell(dom.node(r.sc)) || dom.isCell(dom.node(r.ec))) {
- return remove_table_content(r.sc, r.ec);
+ return remove_table_content(r);
}
r = r.deleteContents();
r.select();
@@ -1299,6 +1300,7 @@ $.summernote.pluginEvents.delete = function (event, editor, layoutInfo) {
}
//merge with the next block
else if ((temp = dom.ancestorHaveNextSibling(target)) &&
+ !r.isOnCell() &&
dom.isMergable(temp) &&
dom.isMergable(temp2 = dom.hasContentAfter(temp)) &&
temp.tagName === temp2.tagName &&
@@ -1353,7 +1355,7 @@ $.summernote.pluginEvents.backspace = function (event, editor, layoutInfo) {
}
if (!r.isCollapsed()) {
if (dom.isCell(dom.node(r.sc)) || dom.isCell(dom.node(r.ec))) {
- return remove_table_content(r.sc, r.ec);
+ return remove_table_content(r);
}
r = r.deleteContents();
r.select();