diff options
| author | Christophe Matthieu <chm@odoo.com> | 2015-10-16 14:52:51 +0200 |
|---|---|---|
| committer | Christophe Matthieu <chm@odoo.com> | 2015-10-26 11:43:37 +0100 |
| commit | 5451cf518f1e4de11509b1db1d5cf8a2631615e2 (patch) | |
| tree | f7b9f1644e126aa5515cf3a0d624f95de9cd8112 /addons/web_editor/static/src/js/summernote.js | |
| parent | ed9a410c11b70f529e354a5d96bc57f9151728bd (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.js | 20 |
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(); |
