diff options
| author | Christophe Simonis <chs@odoo.com> | 2015-08-31 16:18:49 +0200 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2015-08-31 17:23:16 +0200 |
| commit | 10a417c63db698997730f5d93ca6a6aea5eb9600 (patch) | |
| tree | 86acd6e7bb44d45eba99fa09ab1b826871e63843 /addons/web_editor/static/src/js | |
| parent | 61d9dddc98e166d193f72d37e31db046a8430cbf (diff) | |
[FIX] web_editor: don't loose selection when deleting an image
Diffstat (limited to 'addons/web_editor/static/src/js')
| -rw-r--r-- | addons/web_editor/static/src/js/rte.js | 2 | ||||
| -rw-r--r-- | addons/web_editor/static/src/js/summernote.js | 10 | ||||
| -rw-r--r-- | addons/web_editor/static/src/js/tour.rte.js | 2 |
3 files changed, 10 insertions, 4 deletions
diff --git a/addons/web_editor/static/src/js/rte.js b/addons/web_editor/static/src/js/rte.js index 5b9f52d0c89..9ed88d4ff1d 100644 --- a/addons/web_editor/static/src/js/rte.js +++ b/addons/web_editor/static/src/js/rte.js @@ -25,7 +25,7 @@ var History = function History ($editable) { this.makeSnap = function (event, rng) { rng = rng || range.create(); - var elEditable = $(rng.sc).closest('.o_editable')[0]; + var elEditable = $(rng && rng.sc).closest('.o_editable')[0]; if (!elEditable) { return false; } diff --git a/addons/web_editor/static/src/js/summernote.js b/addons/web_editor/static/src/js/summernote.js index adb00b9e01f..3ce90c14496 100644 --- a/addons/web_editor/static/src/js/summernote.js +++ b/addons/web_editor/static/src/js/summernote.js @@ -1195,9 +1195,11 @@ function remove_table_content(sc, ec) { $.summernote.pluginEvents.delete = function (event, editor, layoutInfo) { var $editable = layoutInfo.editable(); $editable.data('NoteHistory').recordUndo($editable, "delete"); - + var r = range.create(); + if (!r) return; if (!r.isContentEditable()) { + event.preventDefault(); return false; } if (!r.isCollapsed()) { @@ -1234,6 +1236,7 @@ $.summernote.pluginEvents.delete = function (event, editor, layoutInfo) { if (dom.isImg(node) || (!contentAfter && dom.isImg(dom.hasContentAfter(node)))) { var parent; var index; + var rng; if (!dom.isImg(node)) { node = dom.hasContentAfter(node); } @@ -1242,13 +1245,16 @@ $.summernote.pluginEvents.delete = function (event, editor, layoutInfo) { index = dom.position(node); if (index>0) { var next = node.previousSibling; - range.create(next,next.textContent.length).select(); + rng = range.create(next, next.textContent.length); + } else { + rng = range.create(parent, 0); } if (!dom.hasContentAfter(node) && !dom.hasContentBefore(node)) { parent.appendChild($('<br/>')[0]); } parent.removeChild(node); node = parent; + rng.select(); } } // empty tag diff --git a/addons/web_editor/static/src/js/tour.rte.js b/addons/web_editor/static/src/js/tour.rte.js index 755fee8a606..97fd179fa25 100644 --- a/addons/web_editor/static/src/js/tour.rte.js +++ b/addons/web_editor/static/src/js/tour.rte.js @@ -138,7 +138,7 @@ Tour.register({ { waitFor: '#editable_area > section .row > div:first:has( font:last:containsExact(i) )', element: '.note-air-popover button[data-event="undo"]', - title: "undo adain", + title: "undo again", }, { waitFor: '#editable_area > section .row > div:first:not(:has(p font)) h1', |
