diff --git a/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view.js b/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view.js deleted file mode 100644 index 4166683f999..00000000000 --- a/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view.js +++ /dev/null @@ -1,25 +0,0 @@ -/** @odoo-module **/ - -import { useRefToModel } from '@mail/component_hooks/use_ref_to_model'; -import { registerMessagingComponent } from '@mail/utils/messaging_component'; - -import { Component } from '@odoo/owl'; - -export class ActivityCellView extends Component { - - setup() { - useRefToModel({ fieldName: 'contentRef', refName: 'content' }); - } - - get activityCellView() { - return this.props.record; - } - -} - -Object.assign(ActivityCellView, { - props: { record: Object }, - template: 'mail.ActivityCellView', -}); - -registerMessagingComponent(ActivityCellView); diff --git a/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view.xml b/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view.xml index c8b464b3feb..54d74361ca7 100644 --- a/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view.xml +++ b/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view.xml @@ -2,10 +2,10 @@ -
+
-
- +
+
diff --git a/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view_container.js b/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view_container.js index 48dba4b3167..e3d10c7cf86 100644 --- a/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view_container.js +++ b/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view_container.js @@ -1,9 +1,7 @@ /** @odoo-module **/ -// ensure components are registered beforehand. -import '@mail/backend_components/activity_cell_view/activity_cell_view'; +import { useMessagingContainer } from '@mail/component_hooks/use_messaging_container'; import { insert } from '@mail/model/model_field_command'; -import { getMessagingComponent } from '@mail/utils/messaging_component'; import { Component, onWillDestroy, onWillUpdateProps } from '@odoo/owl'; @@ -25,6 +23,7 @@ export class ActivityCellViewContainer extends Component { * @override */ setup() { + useMessagingContainer(); super.setup(); this.activityCellView = undefined; this.activityCellViewId = getNextId(); @@ -85,7 +84,6 @@ export class ActivityCellViewContainer extends Component { } Object.assign(ActivityCellViewContainer, { - components: { ActivityCellView: getMessagingComponent('ActivityCellView') }, props: { activityIds: { type: Array, diff --git a/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view_container.xml b/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view_container.xml index 783f3b7525d..dd1b290df3f 100644 --- a/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view_container.xml +++ b/addons/mail/static/src/backend_components/activity_cell_view/activity_cell_view_container.xml @@ -2,7 +2,9 @@ - + + + diff --git a/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view.js b/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view.js deleted file mode 100644 index 301cfec9a17..00000000000 --- a/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view.js +++ /dev/null @@ -1,20 +0,0 @@ -/** @odoo-module **/ - -import { registerMessagingComponent } from '@mail/utils/messaging_component'; - -import { Component } from '@odoo/owl'; - -export class KanbanFieldActivityView extends Component { - - get kanbanFieldActivityView() { - return this.props.record; - } - -} - -Object.assign(KanbanFieldActivityView, { - props: { record: Object }, - template: 'mail.KanbanFieldActivityView', -}); - -registerMessagingComponent(KanbanFieldActivityView); diff --git a/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view.xml b/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view.xml index 7321e47f503..19268de9fcc 100644 --- a/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view.xml +++ b/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view.xml @@ -2,7 +2,7 @@ - + diff --git a/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view_container.js b/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view_container.js index 84923b00ae1..c88894382c0 100644 --- a/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view_container.js +++ b/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view_container.js @@ -1,8 +1,7 @@ /** @odoo-module **/ // ensure components are registered beforehand. -import '@mail/backend_components/kanban_field_activity_view/kanban_field_activity_view'; -import { getMessagingComponent } from '@mail/utils/messaging_component'; +import { useMessagingContainer } from '@mail/component_hooks/use_messaging_container'; import { registry } from "@web/core/registry"; import { standardFieldProps } from "@web/views/fields/standard_field_props"; @@ -28,6 +27,7 @@ export class KanbanFieldActivityViewContainer extends Component { */ setup() { super.setup(); + useMessagingContainer(); this.kanbanFieldActivityView = undefined; this.kanbanFieldActivityViewId = getNextId(); this._insertFromProps(this.props); @@ -80,7 +80,6 @@ export class KanbanFieldActivityViewContainer extends Component { } Object.assign(KanbanFieldActivityViewContainer, { - components: { KanbanFieldActivityView: getMessagingComponent('KanbanFieldActivityView') }, fieldDependencies: { activity_exception_decoration: { type: 'selection' }, activity_exception_icon: { type: 'char' }, diff --git a/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view_container.xml b/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view_container.xml index f29585e6434..ca824c78937 100644 --- a/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view_container.xml +++ b/addons/mail/static/src/backend_components/kanban_field_activity_view/kanban_field_activity_view_container.xml @@ -2,7 +2,9 @@ - + + + diff --git a/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view.js b/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view.js deleted file mode 100644 index abf477dd1b4..00000000000 --- a/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view.js +++ /dev/null @@ -1,20 +0,0 @@ -/** @odoo-module **/ - -import { registerMessagingComponent } from '@mail/utils/messaging_component'; - -import { Component } from '@odoo/owl'; - -export class ListFieldActivityView extends Component { - - get listFieldActivityView() { - return this.props.record; - } - -} - -Object.assign(ListFieldActivityView, { - props: { record: Object }, - template: 'mail.ListFieldActivityView', -}); - -registerMessagingComponent(ListFieldActivityView); diff --git a/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view.xml b/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view.xml index 4e6cf99f748..9e319d4cd65 100644 --- a/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view.xml +++ b/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view.xml @@ -2,8 +2,8 @@ - - + + diff --git a/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view_container.js b/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view_container.js index 7854d1a41e2..bb6c3200085 100644 --- a/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view_container.js +++ b/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view_container.js @@ -1,8 +1,7 @@ /** @odoo-module **/ // ensure components are registered beforehand. -import '@mail/backend_components/list_field_activity_view/list_field_activity_view'; -import { getMessagingComponent } from '@mail/utils/messaging_component'; +import { useMessagingContainer } from '@mail/component_hooks/use_messaging_container'; import { registry } from "@web/core/registry"; import { standardFieldProps } from "@web/views/fields/standard_field_props"; @@ -28,6 +27,7 @@ export class ListFieldActivityViewContainer extends Component { */ setup() { super.setup(); + useMessagingContainer(); this.listFieldActivityView = undefined; this.listFieldActivityViewId = getNextId(); this._insertFromProps(this.props); @@ -80,7 +80,6 @@ export class ListFieldActivityViewContainer extends Component { } Object.assign(ListFieldActivityViewContainer, { - components: { ListFieldActivityView: getMessagingComponent('ListFieldActivityView') }, fieldDependencies: { activity_exception_decoration: { type: 'selection' }, activity_exception_icon: { type: 'char' }, diff --git a/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view_container.xml b/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view_container.xml index 8de371fb8b4..cf1cd4b465c 100644 --- a/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view_container.xml +++ b/addons/mail/static/src/backend_components/list_field_activity_view/list_field_activity_view_container.xml @@ -2,7 +2,9 @@ - + + + diff --git a/addons/mail/static/src/component_hooks/use_messaging_container.js b/addons/mail/static/src/component_hooks/use_messaging_container.js new file mode 100644 index 00000000000..e89e0a6223b --- /dev/null +++ b/addons/mail/static/src/component_hooks/use_messaging_container.js @@ -0,0 +1,21 @@ +/** @odoo-module **/ + +import { useModels } from '@mail/component_hooks/use_models'; +import { componentRegistry, getMessagingComponent } from "@mail/utils/messaging_component"; + +import { useComponent } from '@odoo/owl'; + +export function useMessagingContainer() { + const component = useComponent(); + component.isLoaded = false; + useModels(); + component.env.services.messaging.modelManager.messagingCreatedPromise.then(() => { + let components = { ...component.constructor.components }; + for (const name in componentRegistry) { + Object.assign(components, { [name]: getMessagingComponent(name) }); + } + component.constructor.components = components; + component.isLoaded = true; + component.render(); + }); +} diff --git a/addons/mail/static/src/components/call_systray_menu/call_systray_menu.js b/addons/mail/static/src/components/call_systray_menu/call_systray_menu.js deleted file mode 100644 index 75b0b1e5b05..00000000000 --- a/addons/mail/static/src/components/call_systray_menu/call_systray_menu.js +++ /dev/null @@ -1,23 +0,0 @@ -/** @odoo-module **/ - -import { registerMessagingComponent } from '@mail/utils/messaging_component'; - -import { Component } from '@odoo/owl'; - -export class CallSystrayMenu extends Component { - - /** - * @returns {CallSystrayMenu} - */ - get callSystrayMenu() { - return this.props.record; - } - -} - -Object.assign(CallSystrayMenu, { - props: { record: Object }, - template: 'mail.CallSystrayMenu', -}); - -registerMessagingComponent(CallSystrayMenu); diff --git a/addons/mail/static/src/components/call_systray_menu/call_systray_menu.xml b/addons/mail/static/src/components/call_systray_menu/call_systray_menu.xml index 3e3b362b6f7..70acc889b02 100644 --- a/addons/mail/static/src/components/call_systray_menu/call_systray_menu.xml +++ b/addons/mail/static/src/components/call_systray_menu/call_systray_menu.xml @@ -5,7 +5,7 @@