From 49020574f3824f3be94e059d1e0ebea65f8b7daa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Theys?= Date: Thu, 6 Oct 2022 11:56:50 +0000 Subject: [PATCH] [FIX] mail, website: hide backend chat windows from website preview MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of task-2978890 closes odoo/odoo#102473 X-original-commit: cd7b6a799d84f59ac3b64b262cd13d00965c9c71 Signed-off-by: Alexandre Kühn (aku) Signed-off-by: Sébastien Theys (seb) --- .../static/src/models/chat_window_manager.js | 2 +- addons/website/__manifest__.py | 3 +++ .../website_preview/website_preview.js | 6 ++++++ .../static/src/components/editor/editor.scss | 3 --- .../static/src/models/chat_window_manager.js | 18 ++++++++++++++++++ addons/website/static/src/models/messaging.js | 13 +++++++++++++ 6 files changed, 41 insertions(+), 4 deletions(-) create mode 100644 addons/website/static/src/models/chat_window_manager.js create mode 100644 addons/website/static/src/models/messaging.js diff --git a/addons/mail/static/src/models/chat_window_manager.js b/addons/mail/static/src/models/chat_window_manager.js index 95df7f0c4da..01e20877da6 100644 --- a/addons/mail/static/src/models/chat_window_manager.js +++ b/addons/mail/static/src/models/chat_window_manager.js @@ -4,7 +4,7 @@ import { registerModel } from '@mail/model/model_core'; import { attr, many, one } from '@mail/model/model_field'; import { clear } from '@mail/model/model_field_command'; -const BASE_VISUAL = { +export const BASE_VISUAL = { /** * @deprecated, should use ChatWindowManager/availableVisibleSlots instead * Amount of visible slots available for chat windows. diff --git a/addons/website/__manifest__.py b/addons/website/__manifest__.py index e6ccc3e4ed4..94ef19f740e 100644 --- a/addons/website/__manifest__.py +++ b/addons/website/__manifest__.py @@ -114,6 +114,9 @@ 'post_init_hook': 'post_init_hook', 'uninstall_hook': 'uninstall_hook', 'assets': { + 'mail.assets_messaging': [ + 'website/static/src/models/*.js', + ], 'web.assets_frontend': [ ('replace', 'web/static/src/legacy/js/public/public_root_instance.js', 'website/static/src/js/content/website_root_instance.js'), 'website/static/src/scss/website.scss', diff --git a/addons/website/static/src/client_actions/website_preview/website_preview.js b/addons/website/static/src/client_actions/website_preview/website_preview.js index 2329517533f..392bc1224b1 100644 --- a/addons/website/static/src/client_actions/website_preview/website_preview.js +++ b/addons/website/static/src/client_actions/website_preview/website_preview.js @@ -86,9 +86,15 @@ export class WebsitePreview extends Component { // OdooFrameContentLoaded event to unblock the iframe, as it is // triggered faster than the load event. this.iframe.el.addEventListener('OdooFrameContentLoaded', () => this.websiteService.unblockPreview('load-iframe'), { once: true }); + this.env.services.messaging.modelManager.messagingCreatedPromise.then(() => { + this.env.services.messaging.modelManager.messaging.update({ isWebsitePreviewOpen: true }); + }); }); onWillUnmount(() => { + this.env.services.messaging.modelManager.messagingCreatedPromise.then(() => { + this.env.services.messaging.modelManager.messaging.update({ isWebsitePreviewOpen: false }); + }); this.websiteService.currentWebsiteId = null; this.websiteService.websiteRootInstance = undefined; this.websiteService.pageDocument = null; diff --git a/addons/website/static/src/components/editor/editor.scss b/addons/website/static/src/components/editor/editor.scss index ac17e1f54c6..c1e83f6108b 100644 --- a/addons/website/static/src/components/editor/editor.scss +++ b/addons/website/static/src/components/editor/editor.scss @@ -2,9 +2,6 @@ .o_notification_manager { @include o-position-absolute($top: map-get($spacers, 2), $right: calc(#{$o-we-sidebar-width} + 0.5rem)); } - .o_ChatWindowManager { - display: none !important; - } } .ui-autocomplete.o_website_ui_autocomplete { diff --git a/addons/website/static/src/models/chat_window_manager.js b/addons/website/static/src/models/chat_window_manager.js new file mode 100644 index 00000000000..60055570894 --- /dev/null +++ b/addons/website/static/src/models/chat_window_manager.js @@ -0,0 +1,18 @@ +/** @odoo-module **/ + +import { registerPatch } from '@mail/model/model_core'; +import { BASE_VISUAL } from '@mail/models/chat_window_manager'; + +registerPatch({ + name: 'ChatWindowManager', + fields: { + visual: { + compute() { + if (this.messaging.isWebsitePreviewOpen) { + return JSON.parse(JSON.stringify(BASE_VISUAL)); + } + return this._super(); + }, + }, + }, +}); diff --git a/addons/website/static/src/models/messaging.js b/addons/website/static/src/models/messaging.js new file mode 100644 index 00000000000..4e7328bbc15 --- /dev/null +++ b/addons/website/static/src/models/messaging.js @@ -0,0 +1,13 @@ +/** @odoo-module **/ + +import { registerPatch } from '@mail/model/model_core'; +import { attr } from '@mail/model/model_field'; + +registerPatch({ + name: 'Messaging', + fields: { + isWebsitePreviewOpen: attr({ + default: false, + }), + }, +});