summaryrefslogtreecommitdiff
path: root/addons/web_editor/static/src/js/editor
diff options
context:
space:
mode:
authorNicolas Lempereur <nle@odoo.com>2018-11-12 13:42:05 +0000
committerNicolas Lempereur <nle@odoo.com>2018-11-12 14:48:20 +0000
commitbba78c7fe14b58ae75f3da809659ff1546b3a55b (patch)
tree94796f2e29d1ac28cf3a35d288a408fc38f7f2ef /addons/web_editor/static/src/js/editor
parente0b906d74db69fce1fec09aa5807fc3863816655 (diff)
[FIX] web_editor: can't unquote on firefox
Firefox when asked to block format (formatting over a block with blockquote, h1, ...) has a special case for blockquote (it is documented in https://developer.mozilla.org/docs/Web/API/Document/execCommand at formatBlock command) and will wrap any element instead of replacing existing block formatting. Thus the code not expecting it was not able to remove a blockquote in firefox once introduced. opw-1903735 closes #28587
Diffstat (limited to 'addons/web_editor/static/src/js/editor')
-rw-r--r--addons/web_editor/static/src/js/editor/summernote.js4
1 files changed, 4 insertions, 0 deletions
diff --git a/addons/web_editor/static/src/js/editor/summernote.js b/addons/web_editor/static/src/js/editor/summernote.js
index b3a5d36009b..59124d63403 100644
--- a/addons/web_editor/static/src/js/editor/summernote.js
+++ b/addons/web_editor/static/src/js/editor/summernote.js
@@ -1913,6 +1913,10 @@ $.summernote.pluginEvents.formatBlock = function (event, editor, layoutInfo, sTa
for (var i=0; i<nodes.length; i++) {
if (dom.isBR(nodes[i]) || (dom.isText(nodes[i]) && dom.isVisibleText(nodes[i])) || dom.isB(nodes[i]) || dom.isU(nodes[i]) || dom.isS(nodes[i]) || dom.isI(nodes[i]) || dom.isFont(nodes[i])) {
var ancestor = dom.ancestor(nodes[i], isFormatNode);
+ if ($(ancestor).parent().is('blockquote')) {
+ // firefox may wrap formatting block in blockquote
+ $(ancestor).unwrap();
+ }
if (!ancestor) {
dom.wrap(nodes[i], sTagName);
} else if (ancestor.tagName.toLowerCase() !== sTagName) {