[FIX] mail, website: hide backend chat windows from website preview

Part of task-2978890

closes odoo/odoo#102473

X-original-commit: cd7b6a799d84f59ac3b64b262cd13d00965c9c71
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Signed-off-by: Sébastien Theys (seb) <seb@odoo.com>
This commit is contained in:
Sébastien Theys
2022-10-06 19:58:47 +02:00
parent cd353e2b52
commit 49020574f3
6 changed files with 41 additions and 4 deletions
@@ -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.
+3
View File
@@ -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',
@@ -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;
@@ -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 {
@@ -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();
},
},
},
});
@@ -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,
}),
},
});