From d23f06ae78f3bcbc6ac4d950d4bef362b72cca1b Mon Sep 17 00:00:00 2001 From: Antoine Guenet Date: Tue, 8 Nov 2022 15:40:15 +0000 Subject: [PATCH] [FIX] web_editor: properly copy editor content When copying some list items in the editor and pasting it back into it, we lost their parent list, leading to paragraphs being pasted rather than a list. This restores the list. task-3050150 closes odoo/odoo#105386 X-original-commit: 2333d8470df2fac80247e6f39d740a29f1eeb561 Signed-off-by: David Monjoie (dmo) --- .../static/src/js/editor/odoo-editor/src/OdooEditor.js | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/addons/web_editor/static/src/js/editor/odoo-editor/src/OdooEditor.js b/addons/web_editor/static/src/js/editor/odoo-editor/src/OdooEditor.js index 3f2cf675e3c..59a812fd8d7 100644 --- a/addons/web_editor/static/src/js/editor/odoo-editor/src/OdooEditor.js +++ b/addons/web_editor/static/src/js/editor/odoo-editor/src/OdooEditor.js @@ -3192,7 +3192,14 @@ export class OdooEditor extends EventTarget { clipboardEvent.preventDefault(); const selection = this.document.getSelection(); const range = selection.getRangeAt(0); - const rangeContent = range.cloneContents(); + let rangeContent = range.cloneContents(); + + // Repair the copied range. + if (rangeContent.firstChild.nodeName === 'LI') { + const list = range.commonAncestorContainer.cloneNode(); + list.replaceChildren(...rangeContent.childNodes); + rangeContent = list; + } const dataHtmlElement = document.createElement('data'); dataHtmlElement.append(rangeContent);