summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/web_editor/static/src/js')
-rw-r--r--addons/web_editor/static/src/js/editor/summernote.js11
-rw-r--r--addons/web_editor/static/src/js/widgets/widgets.js11
2 files changed, 15 insertions, 7 deletions
diff --git a/addons/web_editor/static/src/js/editor/summernote.js b/addons/web_editor/static/src/js/editor/summernote.js
index 3e11cdc6886..b3e06fa1716 100644
--- a/addons/web_editor/static/src/js/editor/summernote.js
+++ b/addons/web_editor/static/src/js/editor/summernote.js
@@ -1802,12 +1802,17 @@ $.summernote.pluginEvents.indent = function (event, editor, layoutInfo, outdent)
var $dom = $(ancestor);
if (!dom.isList(ancestor)) {
+ // to indent a selection, we indent the child nodes of the common
+ // ancestor that contains this selection
$dom = $(dom.node(ancestor)).children();
}
- if (!$dom.length) {
- $dom = $(dom.ancestor(r.sc, dom.isList) || dom.ancestor(r.sc, dom.isCell));
+ if (!$dom.not('br').length) {
+ // if selection is inside a list, we indent its list items
+ $dom = $(dom.ancestor(r.sc, dom.isList));
if (!$dom.length) {
- $dom = $(r.sc).closest(options.styleTags.join(','));
+ // if the selection is contained in a single HTML node, we indent
+ // the first ancestor 'content block' (P, H1, PRE, ...) or TD
+ $dom = $(r.sc).closest(options.styleTags.join(',')+',td');
}
}
diff --git a/addons/web_editor/static/src/js/widgets/widgets.js b/addons/web_editor/static/src/js/widgets/widgets.js
index 8a08c4e18f4..53df66e9ba7 100644
--- a/addons/web_editor/static/src/js/widgets/widgets.js
+++ b/addons/web_editor/static/src/js/widgets/widgets.js
@@ -455,11 +455,13 @@ var ImageWidget = MediaWidget.extend({
/**
* @private
*/
- _toggleImage: function (attachment, clearSearch) {
+ _toggleImage: function (attachment, clearSearch, force_select) {
if (this.multiImages) {
var img = _.select(this.images, function (v) { return v.id === attachment.id; });
if (img.length) {
- this.images.splice(this.images.indexOf(img[0]),1);
+ if (!force_select) {
+ this.images.splice(this.images.indexOf(img[0]),1);
+ }
} else {
this.images.push(attachment);
}
@@ -527,17 +529,18 @@ var ImageWidget = MediaWidget.extend({
/**
* @private
*/
- _onImageClick: function (ev) {
+ _onImageClick: function (ev, force_select) {
var $img = $(ev.currentTarget);
var attachment = _.find(this.records, function (record) {
return record.id === $img.data('id');
});
- this._toggleImage(attachment);
+ this._toggleImage(attachment, false, force_select);
},
/**
* @private
*/
_onImageDblClick: function (ev) {
+ this._onImageClick(ev, true);
this.trigger_up('save_request');
},
/**