diff options
| author | Christophe Simonis <chs@odoo.com> | 2016-11-14 14:56:14 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2016-11-14 14:56:14 +0100 |
| commit | f93bada93ebc05dfb585ff61252a387fe175c4d5 (patch) | |
| tree | dbe32330e7f7bfec02394a41cefdf0a4297653f0 /addons/web_editor/static/src/js/summernote.js | |
| parent | f910dc5b3db2811582acc32f1e6a60c9fcef783a (diff) | |
| parent | fb763f3a8fc50cf66114d44e31ca01213d7da44b (diff) | |
[MERGE] forward port branch 9.0 up to fb763f3
Diffstat (limited to 'addons/web_editor/static/src/js/summernote.js')
| -rw-r--r-- | addons/web_editor/static/src/js/summernote.js | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/addons/web_editor/static/src/js/summernote.js b/addons/web_editor/static/src/js/summernote.js index 6fbfc69c234..1abcd97245c 100644 --- a/addons/web_editor/static/src/js/summernote.js +++ b/addons/web_editor/static/src/js/summernote.js @@ -936,12 +936,19 @@ $.summernote.pluginEvents.insertTable = function (event, editor, layoutInfo, sDi var dimension = sDim.split('x'); var r = range.create(); if (!r) return; - r = r.deleteContents(); + r = r.deleteContents(true); - var isBodyContainer = dom.isBodyContainer; - dom.isBodyContainer = dom.isNotBreakable; - r.insertNode(editor.table.createTable(dimension[0], dimension[1])); - dom.isBodyContainer = isBodyContainer; + var table = editor.table.createTable(dimension[0], dimension[1]); + var parent = r.sc; + while (dom.isText(parent.parentNode) || dom.isRemovableEmptyNode(parent.parentNode)) { + parent = parent.parentNode; + } + var node = dom.splitTree(parent, {'node': r.sc, 'offset': r.so}) || r.sc; + node.parentNode.insertBefore(table, node); + + if ($(node).text() === '' || node.textContent === '\u00A0') { + node.parentNode.removeChild(node); + } editor.afterCommand($editable); event.preventDefault(); |
