From 4ea21df30dacc6032ace37e77dde6de7cf0544b5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Theys?= Date: Wed, 18 Aug 2021 21:10:26 +0000 Subject: [PATCH] [IMP] mail: remove usage of isMessagingInitialized and clean main.js MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Part of task-2582313 closes odoo/odoo#75286 Related: odoo/enterprise#20343 Signed-off-by: Alexandre Kühn (aku) --- .../static/src/components/discuss/discuss.js | 2 +- .../notification_alert/notification_alert.xml | 2 +- addons/mail/static/src/env/test_env.js | 6 ---- addons/mail/static/src/main.js | 35 ++++++++++++------- .../chat_window_service.js | 8 ++--- .../services/dialog_service/dialog_service.js | 8 ++--- addons/mail/static/src/utils/test_utils.js | 8 ++--- .../static/src/widgets/discuss/discuss.js | 7 +--- .../widgets/messaging_menu/messaging_menu.js | 17 +-------- 9 files changed, 34 insertions(+), 59 deletions(-) diff --git a/addons/mail/static/src/components/discuss/discuss.js b/addons/mail/static/src/components/discuss/discuss.js index 639cdf90299..e85bea436cb 100644 --- a/addons/mail/static/src/components/discuss/discuss.js +++ b/addons/mail/static/src/components/discuss/discuss.js @@ -33,7 +33,7 @@ export class Discuss extends Component { this.discuss.update({ isOpen: true }); if (this.discuss.thread) { this.trigger('o-push-state-action-manager'); - } else if (this.env.isMessagingInitialized()) { + } else if (this.discuss.messaging.isInitialized) { this.discuss.openInitThread(); } this._updateLocalStoreProps(); diff --git a/addons/mail/static/src/components/notification_alert/notification_alert.xml b/addons/mail/static/src/components/notification_alert/notification_alert.xml index 3d80da136f0..2c94e97a604 100644 --- a/addons/mail/static/src/components/notification_alert/notification_alert.xml +++ b/addons/mail/static/src/components/notification_alert/notification_alert.xml @@ -3,7 +3,7 @@
- +
Odoo Push notifications have been blocked. Go to your browser settings to allow them.
diff --git a/addons/mail/static/src/env/test_env.js b/addons/mail/static/src/env/test_env.js index b095fc8b3b8..8a50bbfd60f 100644 --- a/addons/mail/static/src/env/test_env.js +++ b/addons/mail/static/src/env/test_env.js @@ -22,12 +22,6 @@ export function addMessagingToEnv(providedEnv = {}) { }, }, (env.browser && env.browser.Notification) || {}), }, env.browser), - isMessagingInitialized() { - return ( - this.services.messaging.modelManager.messaging && - this.services.messaging.modelManager.messaging.isInitialized - ); - }, }); return env; } diff --git a/addons/mail/static/src/main.js b/addons/mail/static/src/main.js index 74be18b1904..b37869d11dc 100644 --- a/addons/mail/static/src/main.js +++ b/addons/mail/static/src/main.js @@ -1,20 +1,29 @@ /** @odoo-module **/ +import { ChatWindowService } from '@mail/services/chat_window_service/chat_window_service'; +import { DialogService } from '@mail/services/dialog_service/dialog_service'; import { MessagingService } from '@mail/services/messaging/messaging'; +import { DiscussWidget } from '@mail/widgets/discuss/discuss'; +import { MessagingMenuWidget } from '@mail/widgets/messaging_menu/messaging_menu'; -import env from 'web.commonEnv'; +import { action_registry } from 'web.core'; import { serviceRegistry } from 'web.core'; +import SystrayMenu from 'web.SystrayMenu'; -/** - * Environment keys used in messaging. - */ -Object.assign(env, { - isMessagingInitialized() { - return ( - this.services.messaging.modelManager.messaging && - this.services.messaging.modelManager.messaging.isInitialized - ); - }, -}); - +serviceRegistry.add('chat_window', ChatWindowService); +serviceRegistry.add('dialog', DialogService); serviceRegistry.add('messaging', MessagingService); + +action_registry.add('mail.widgets.discuss', DiscussWidget); + +// Systray menu items display order matches order in the list +// lower index comes first, and display is from right to left. +// For messagin menu, it should come before activity menu, if any +// otherwise, it is the next systray item. +const activityMenuIndex = SystrayMenu.Items.findIndex(SystrayMenuItem => + SystrayMenuItem.prototype.name === 'activity_menu'); +if (activityMenuIndex > 0) { + SystrayMenu.Items.splice(activityMenuIndex, 0, MessagingMenuWidget); +} else { + SystrayMenu.Items.push(MessagingMenuWidget); +} diff --git a/addons/mail/static/src/services/chat_window_service/chat_window_service.js b/addons/mail/static/src/services/chat_window_service/chat_window_service.js index bccbca42d88..4501af03d08 100644 --- a/addons/mail/static/src/services/chat_window_service/chat_window_service.js +++ b/addons/mail/static/src/services/chat_window_service/chat_window_service.js @@ -3,9 +3,9 @@ import { getMessagingComponent } from "@mail/utils/messaging_component"; import AbstractService from 'web.AbstractService'; -import { bus, serviceRegistry } from 'web.core'; +import { bus } from 'web.core'; -const ChatWindowService = AbstractService.extend({ +export const ChatWindowService = AbstractService.extend({ dependencies: ['messaging'], /** * @override {web.AbstractService} @@ -66,7 +66,3 @@ const ChatWindowService = AbstractService.extend({ await this._mount(); }, }); - -serviceRegistry.add('chat_window', ChatWindowService); - -export default ChatWindowService; diff --git a/addons/mail/static/src/services/dialog_service/dialog_service.js b/addons/mail/static/src/services/dialog_service/dialog_service.js index d6372d81217..ed53b0aa77c 100644 --- a/addons/mail/static/src/services/dialog_service/dialog_service.js +++ b/addons/mail/static/src/services/dialog_service/dialog_service.js @@ -3,9 +3,9 @@ import { getMessagingComponent } from "@mail/utils/messaging_component"; import AbstractService from 'web.AbstractService'; -import { bus, serviceRegistry } from 'web.core'; +import { bus } from 'web.core'; -const DialogService = AbstractService.extend({ +export const DialogService = AbstractService.extend({ dependencies: ['messaging'], /** * @override {web.AbstractService} @@ -66,7 +66,3 @@ const DialogService = AbstractService.extend({ await this._mount(); } }); - -serviceRegistry.add('dialog', DialogService); - -export default DialogService; diff --git a/addons/mail/static/src/utils/test_utils.js b/addons/mail/static/src/utils/test_utils.js index 54977ac8e35..64b245680a8 100644 --- a/addons/mail/static/src/utils/test_utils.js +++ b/addons/mail/static/src/utils/test_utils.js @@ -6,14 +6,14 @@ import { addMessagingToEnv, addTimeControlToEnv, } from '@mail/env/test_env'; -import ChatWindowService from '@mail/services/chat_window_service/chat_window_service'; +import { ChatWindowService } from '@mail/services/chat_window_service/chat_window_service'; import { MessagingService } from '@mail/services/messaging/messaging'; import { makeDeferred } from '@mail/utils/deferred/deferred'; -import DialogService from '@mail/services/dialog_service/dialog_service'; +import { DialogService } from '@mail/services/dialog_service/dialog_service'; import { getMessagingComponent } from '@mail/utils/messaging_component'; import { nextTick } from '@mail/utils/utils'; -import DiscussWidget from '@mail/widgets/discuss/discuss'; -import MessagingMenuWidget from '@mail/widgets/messaging_menu/messaging_menu'; +import { DiscussWidget } from '@mail/widgets/discuss/discuss'; +import { MessagingMenuWidget } from '@mail/widgets/messaging_menu/messaging_menu'; import { MockModels } from '@mail/../tests/helpers/mock_models'; import AbstractStorageService from 'web.AbstractStorageService'; diff --git a/addons/mail/static/src/widgets/discuss/discuss.js b/addons/mail/static/src/widgets/discuss/discuss.js index 246929dcf94..51eeaadddfa 100644 --- a/addons/mail/static/src/widgets/discuss/discuss.js +++ b/addons/mail/static/src/widgets/discuss/discuss.js @@ -3,11 +3,10 @@ import { getMessagingComponent } from "@mail/utils/messaging_component"; import AbstractAction from 'web.AbstractAction'; -import { action_registry } from 'web.core'; const { Component } = owl; -const DiscussWidget = AbstractAction.extend({ +export const DiscussWidget = AbstractAction.extend({ template: 'mail.widgets.Discuss', /** * @override {web.AbstractAction} @@ -130,7 +129,3 @@ const DiscussWidget = AbstractAction.extend({ }); }, }); - -action_registry.add('mail.widgets.discuss', DiscussWidget); - -export default DiscussWidget; diff --git a/addons/mail/static/src/widgets/messaging_menu/messaging_menu.js b/addons/mail/static/src/widgets/messaging_menu/messaging_menu.js index 3e6db3de567..f43bc025661 100644 --- a/addons/mail/static/src/widgets/messaging_menu/messaging_menu.js +++ b/addons/mail/static/src/widgets/messaging_menu/messaging_menu.js @@ -2,13 +2,12 @@ import { getMessagingComponent } from "@mail/utils/messaging_component"; -import SystrayMenu from 'web.SystrayMenu'; import Widget from 'web.Widget'; /** * Odoo Widget, necessary to instantiate component. */ -const MessagingMenuWidget = Widget.extend({ +export const MessagingMenuWidget = Widget.extend({ template: 'mail.widgets.MessagingMenu', /** * @override @@ -35,17 +34,3 @@ const MessagingMenuWidget = Widget.extend({ this.el.parentNode.removeChild(this.el); }, }); - -// Systray menu items display order matches order in the list -// lower index comes first, and display is from right to left. -// For messagin menu, it should come before activity menu, if any -// otherwise, it is the next systray item. -const activityMenuIndex = SystrayMenu.Items.findIndex(SystrayMenuItem => - SystrayMenuItem.prototype.name === 'activity_menu'); -if (activityMenuIndex > 0) { - SystrayMenu.Items.splice(activityMenuIndex, 0, MessagingMenuWidget); -} else { - SystrayMenu.Items.push(MessagingMenuWidget); -} - -export default MessagingMenuWidget;