From adf3d039acbac60b7ea7e6ab0ea8fdd9f940c3b2 Mon Sep 17 00:00:00 2001 From: xO-Tx Date: Wed, 10 Feb 2021 12:45:29 +0000 Subject: [FIX] web_editor: fix anchor click on submit button Context: 1) Edit mode 2) Click on anchor edition button of website form submit button 3) Traceback occurs The "focus" triggered on $editable element in editor's 'getLinkInfo()' discards user's text selection on submit button, as a result, 'range.create()' method returns null since no selection is found. Note: the bug only occurred in Chrome. Note 2: [1] apparently tried to solve the same issue but the fix was not solving it correctly, at least not in all cases. [1]: https://github.com/odoo/odoo/commit/da14e4449e5e318eb72e1b9f268fb797adb0c6a6 opw-2443441 closes odoo/odoo#66552 X-original-commit: d2f3c9e7975188753fa17c06db3fc5c73c773944 Signed-off-by: Quentin Smetz (qsm) --- .../static/lib/summernote/src/js/module/Editor.js | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'addons/web_editor/static') diff --git a/addons/web_editor/static/lib/summernote/src/js/module/Editor.js b/addons/web_editor/static/lib/summernote/src/js/module/Editor.js index 0b63f315cf9..40b7c95e98d 100644 --- a/addons/web_editor/static/lib/summernote/src/js/module/Editor.js +++ b/addons/web_editor/static/lib/summernote/src/js/module/Editor.js @@ -680,8 +680,27 @@ define([ * @return {String} [return.url=""] */ this.getLinkInfo = function ($editable) { + // ODOO MODIFICATION START + var selection; + var currentSelection = null; + if (document.getSelection) { + selection = document.getSelection(); + if (selection.getRangeAt && selection.rangeCount) { + currentSelection = selection.getRangeAt(0); + } + } + // ODOO MODIFICATION END + this.focus($editable); + // ODOO MODIFICATION START + if (currentSelection && document.getSelection) { + selection = document.getSelection(); + selection.removeAllRanges(); + selection.addRange(currentSelection); + } + // ODOO MODIFICATION END + var rng = range.create().expand(dom.isAnchor); // Get the first anchor on range(for edit). -- cgit v1.2.3