summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2016-11-14 14:56:14 +0100
committerChristophe Simonis <chs@odoo.com>2016-11-14 14:56:14 +0100
commitf93bada93ebc05dfb585ff61252a387fe175c4d5 (patch)
treedbe32330e7f7bfec02394a41cefdf0a4297653f0 /addons/web_editor/static/src/js
parentf910dc5b3db2811582acc32f1e6a60c9fcef783a (diff)
parentfb763f3a8fc50cf66114d44e31ca01213d7da44b (diff)
[MERGE] forward port branch 9.0 up to fb763f3
Diffstat (limited to 'addons/web_editor/static/src/js')
-rw-r--r--addons/web_editor/static/src/js/summernote.js17
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();