summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2015-08-31 16:18:49 +0200
committerChristophe Simonis <chs@odoo.com>2015-08-31 17:23:16 +0200
commit10a417c63db698997730f5d93ca6a6aea5eb9600 (patch)
tree86acd6e7bb44d45eba99fa09ab1b826871e63843 /addons/web_editor/static/src/js
parent61d9dddc98e166d193f72d37e31db046a8430cbf (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.js2
-rw-r--r--addons/web_editor/static/src/js/summernote.js10
-rw-r--r--addons/web_editor/static/src/js/tour.rte.js2
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',