[FIX] web_editor: fix steps snippet line removed when change icon bg-col

Previously, when changing the background-color of an icon in the
s_process_steps snippet, the line that goes through the snippet would
disappear from that block. This was caused by our font-application code
attempting to remove extraneous DOM nodes when changing a font color or
backrgound-color, but not considering elements with a ::before or
::after pseudoelement has having content, and subsequently removing
them.

opw-2423785

closes odoo/odoo#64412

X-original-commit: 6b363d202d9c35e8249f7bb2b0730b995fdf4a7d
Signed-off-by: Samuel Degueldre <sdegueldre@users.noreply.github.com>
This commit is contained in:
Samuel Degueldre
2021-01-12 13:50:20 +00:00
parent f239cd546e
commit e68a37f379
@@ -2260,7 +2260,8 @@ $.summernote.pluginEvents.applyFont = function (event, editor, layoutInfo, color
}
// remove node without attributes (move content), and merge the same nodes
var className2, style, style2;
var className2, style, style2, hasBefore, hasAfter;
var noContent = ['none', null, undefined];
for (i=0; i<nodes.length; i++) {
node = nodes[i];
@@ -2279,8 +2280,10 @@ $.summernote.pluginEvents.applyFont = function (event, editor, layoutInfo, color
$font = $(node);
className = dom.orderClass(node);
style = dom.orderStyle(node);
hasBefore = noContent.indexOf(window.getComputedStyle(node, '::before').content) === -1;
hasAfter = noContent.indexOf(window.getComputedStyle(node, '::after').content) === -1;
if (!className && !style) {
if (!className && !style && !hasBefore && !hasAfter) {
remove(node, node.parentNode);
continue;
}