From fdce32d186419f72898e57670924014a12ae396c Mon Sep 17 00:00:00 2001 From: tsm-odoo Date: Tue, 19 Jul 2022 14:18:01 +0000 Subject: [PATCH] [IMP] mail: legacy activity menu to wowl registry MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit To prepare for the introduction of the ActivityMenuContainer Component, let's make the ActivityMenu widget use the systray registry. closes odoo/odoo#96341 Signed-off-by: Sébastien Theys (seb) --- addons/mail/__manifest__.py | 2 ++ .../activity_menu_container.js | 26 +++++++++++++++++++ .../activity_menu_container.xml | 6 +++++ .../src/js/systray/systray_activity_menu.js | 3 --- .../static/src/services/systray_service.js | 4 ++- .../static/tests/helpers/webclient_setup.js | 11 -------- 6 files changed, 37 insertions(+), 15 deletions(-) create mode 100644 addons/mail/static/src/components/activity_menu_container/activity_menu_container.js create mode 100644 addons/mail/static/src/components/activity_menu_container/activity_menu_container.xml diff --git a/addons/mail/__manifest__.py b/addons/mail/__manifest__.py index fc357f9ac23..779db4f0546 100644 --- a/addons/mail/__manifest__.py +++ b/addons/mail/__manifest__.py @@ -142,11 +142,13 @@ For more specific needs, you may also assign custom-defined actions 'mail/static/src/components/*/*', # Unused by guests and depends on ViewDialogs, better to remove it instead of pulling the whole view dependency tree ('remove', 'mail/static/src/components/composer_suggested_recipient/*'), + ('remove', 'mail/static/src/components/activity_menu_container/*'), 'mail/static/src/js/emojis.js', 'mail/static/src/js/utils.js', ('include', 'mail.assets_messaging'), 'mail/static/src/public/*', 'mail/static/src/services/*.js', + ('remove', 'mail/static/src/services/systray_service.js'), 'mail/static/src/utils/*.js', # Framework JS 'bus/static/src/*.js', diff --git a/addons/mail/static/src/components/activity_menu_container/activity_menu_container.js b/addons/mail/static/src/components/activity_menu_container/activity_menu_container.js new file mode 100644 index 00000000000..51c4c695eec --- /dev/null +++ b/addons/mail/static/src/components/activity_menu_container/activity_menu_container.js @@ -0,0 +1,26 @@ +/** @odoo-module **/ + +import ActivityMenu from '@mail/js/systray/systray_activity_menu'; + +import { ComponentAdapter } from "web.OwlCompatibility"; + +const { Component } = owl; + +class ActivityMenuAdapter extends ComponentAdapter { + setup() { + this.env = owl.Component.env; + super.setup(); + } +} + +export class ActivityMenuContainer extends Component { + get activityMenuWidget() { + return ActivityMenu; + } +} + + +Object.assign(ActivityMenuContainer, { + components: { ActivityMenuAdapter }, + template: 'mail.ActivityMenuContainer', +}); diff --git a/addons/mail/static/src/components/activity_menu_container/activity_menu_container.xml b/addons/mail/static/src/components/activity_menu_container/activity_menu_container.xml new file mode 100644 index 00000000000..525f7efe3ca --- /dev/null +++ b/addons/mail/static/src/components/activity_menu_container/activity_menu_container.xml @@ -0,0 +1,6 @@ + + + + + + diff --git a/addons/mail/static/src/js/systray/systray_activity_menu.js b/addons/mail/static/src/js/systray/systray_activity_menu.js index 4d314a64d7b..2da1c4bb5f0 100644 --- a/addons/mail/static/src/js/systray/systray_activity_menu.js +++ b/addons/mail/static/src/js/systray/systray_activity_menu.js @@ -3,7 +3,6 @@ import { qweb as QWeb } from 'web.core'; import config from "web.config"; import session from 'web.session'; -import SystrayMenu from 'web.SystrayMenu'; import Widget from 'web.Widget'; import Time from 'web.time'; @@ -197,6 +196,4 @@ var ActivityMenu = Widget.extend({ }, }); -SystrayMenu.Items.push(ActivityMenu); - export default ActivityMenu; diff --git a/addons/mail/static/src/services/systray_service.js b/addons/mail/static/src/services/systray_service.js index a1ac3935aa5..6d840866f91 100644 --- a/addons/mail/static/src/services/systray_service.js +++ b/addons/mail/static/src/services/systray_service.js @@ -1,5 +1,6 @@ /** @odoo-module **/ +import { ActivityMenuContainer } from '@mail/components/activity_menu_container/activity_menu_container'; import { MessagingMenuContainer } from '@mail/components/messaging_menu_container/messaging_menu_container'; import { CallSystrayMenuContainer } from '@mail/components/call_systray_menu_container/call_systray_menu_container'; @@ -10,7 +11,8 @@ const systrayRegistry = registry.category('systray'); export const systrayService = { dependencies: ['messaging'], start() { - systrayRegistry.add('mail.MessagingMenuContainer', { Component: MessagingMenuContainer }); + systrayRegistry.add('mail.ActivityMenu', { Component: ActivityMenuContainer }, { sequence: 20 }); + systrayRegistry.add('mail.MessagingMenuContainer', { Component: MessagingMenuContainer }, { sequence: 25 }); systrayRegistry.add('mail.CallSystrayMenuContainer', { Component: CallSystrayMenuContainer }, { sequence: 100 }); }, }; diff --git a/addons/mail/static/tests/helpers/webclient_setup.js b/addons/mail/static/tests/helpers/webclient_setup.js index 974ccd7f57d..28e0b523419 100644 --- a/addons/mail/static/tests/helpers/webclient_setup.js +++ b/addons/mail/static/tests/helpers/webclient_setup.js @@ -10,14 +10,11 @@ import { ChatWindowManagerContainer } from '@mail/components/chat_window_manager import { DialogManagerContainer } from '@mail/components/dialog_manager_container/dialog_manager_container'; import { DiscussContainer } from '@mail/components/discuss_container/discuss_container'; import { PopoverManagerContainer } from '@mail/components/popover_manager_container/popover_manager_container'; -import ActivityMenu from '@mail/js/systray/systray_activity_menu'; import { messagingService } from '@mail/services/messaging_service'; import { systrayService } from '@mail/services/systray_service'; import { makeMessagingToLegacyEnv } from '@mail/utils/make_messaging_to_legacy_env'; import { registry } from '@web/core/registry'; -import { Items as legacySystrayItems } from 'web.SystrayMenu'; -import { registerCleanup } from '@web/../tests/helpers/cleanup'; import { patchWithCleanup } from "@web/../tests/helpers/utils"; import { createWebClient } from "@web/../tests/webclient/helpers"; @@ -139,14 +136,6 @@ function setupMessagingServiceRegistries({ async function getWebClientReady(param0) { setupMainComponentRegistry(); - legacySystrayItems.push(ActivityMenu); - registerCleanup(() => { - const activityMenuIndex = legacySystrayItems.indexOf(ActivityMenu); - if (activityMenuIndex !== -1) { - legacySystrayItems.splice(activityMenuIndex, 1); - } - }); - const servicesParameters = {}; const param0Entries = Object.entries(param0); for (const [parameterName, value] of param0Entries) {