From 57ec27c81bd49192cce5523c3d7151890e75f00f Mon Sep 17 00:00:00 2001 From: qsm-odoo Date: Wed, 26 Oct 2022 10:17:27 +0000 Subject: [PATCH] [FIX] website, *: allow to re-edit company team snippet images *: website_sale Since [1], it was not possible to edit a company team snippet image anymore as soon as the page was saved once. Indeed that commit added o_not_editable/contenteditable="false" on the parent column to make sure no text can be added in that column and contenteditable="true" on the images so that they are still editable (even though HTML-specs-wise adding contenteditable="true" on images probably does not mean much as images are self-closing tags, our editor understand that as the ability to edit the image anyway). That contenteditable="true" part is however removed when leaving edit mode... and was not restored upon entering edit mode again. This fixes the problems with a specific JS patch, we'll review to see if better can be done in master. Funny enough, that bug was actually gone in 15.0... by mistake. A recent bug fix actually reintroduced that isolated bug at [2] (by reintroducing the fact that images in a non-editable environment are not possible to edit). The 3 opened tickets this commit mentions were actually reported for 15.0 immediately after that, while the 14.0 being broken about this since the beginning apparently did not bother anyone. Note: as a forward-ported fix, this also takes the opportunity to clean a bit what was done at [3]. (calling `_super`, no duplicated code, adding comments, ...). [1]: https://github.com/odoo/odoo/commit/656cac1bf21c7c5a56aa569008aac58436c747fb [2]: https://github.com/odoo/odoo/commit/e113bae04a64a8bd341a80736086ab7c25079dd3 [3]: https://github.com/odoo/odoo/commit/e2f7b8fad76dc816b2f6864340d3740446117cdb opw-3031217 opw-3032482 opw-3035289 X-original-commit: e7c8fed8e373d7005c16c88d3a7bad6f425d13e5 --- addons/website/static/src/js/menu/edit.js | 21 +++++++++++++++---- .../website/views/snippets/s_company_team.xml | 7 +++++++ .../static/src/js/website_sale.editor.js | 16 ++++++++++---- 3 files changed, 36 insertions(+), 8 deletions(-) diff --git a/addons/website/static/src/js/menu/edit.js b/addons/website/static/src/js/menu/edit.js index 16ca46c37f6fd..45e0c316268af 100644 --- a/addons/website/static/src/js/menu/edit.js +++ b/addons/website/static/src/js/menu/edit.js @@ -341,10 +341,23 @@ var EditPageMenu = websiteNavbarData.WebsiteNavbarActionWidget.extend({ $('body').addClass('editor_started'); }, - _getContentEditableAreas () { - return $(this.savableSelector).not('input, [data-oe-readonly],[data-oe-type="monetary"],[data-oe-many2one-id], [data-oe-field="arch"]:empty').filter((_, el) => { - return !$(el).closest('.o_not_editable').length; - }).toArray(); + _getContentEditableAreas() { + const $savableZones = $(this.savableSelector); + const $editableSavableZones = $savableZones + .not('input, [data-oe-readonly], ' + + '[data-oe-type="monetary"], [data-oe-many2one-id], [data-oe-field="arch"]:empty') + .filter((_, el) => { + return !$(el).closest('.o_not_editable').length; + }); + + // TODO review in master. This stable fix restores the possibility to + // edit the company team snippet images on subsequent editions. Indeed + // this badly relies on the contenteditable="true" attribute being on + // those images but it is rightfully lost after the first save. + // grep: COMPANY_TEAM_CONTENTEDITABLE + const $extraEditableZones = $editableSavableZones.find('.s_company_team .o_not_editable img'); + + return $editableSavableZones.add($extraEditableZones).toArray(); }, _getReadOnlyAreas () { diff --git a/addons/website/views/snippets/s_company_team.xml b/addons/website/views/snippets/s_company_team.xml index 04cb3e56fd11a..2d4ff7c8fb0d0 100644 --- a/addons/website/views/snippets/s_company_team.xml +++ b/addons/website/views/snippets/s_company_team.xml @@ -1,6 +1,13 @@ +