From 5c1e7a6f5db2abba29147a5f1ea69bdd0368fa59 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alexandre=20K=C3=BChn?= Date: Tue, 26 Apr 2022 14:45:02 +0000 Subject: [PATCH] [IMP] mail: introduce view models (step 5) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This commit introduces models that define records being 1:1 map with components, as a step to move further to having essentially all business code in models. Having code in models is desirable to have very maintainable code, thanks to robust and declarative code with an ORM-like architecture. Task-2831082 closes odoo/odoo#90427 Related: odoo/enterprise#26928 Signed-off-by: Alexandre Kühn (aku) --- .../components/messaging_menu_tests.js | 10 ++-- .../src/components/activity/activity.js | 2 + .../src/components/activity/activity.xml | 14 ++--- .../activity_mark_done_popover.xml | 25 -------- .../activity_mark_done_popover_content.js} | 22 +++---- .../activity_mark_done_popover_content.scss} | 2 +- .../activity_mark_done_popover_content.xml | 28 +++++++++ .../messaging_menu/messaging_menu.scss | 15 ----- .../messaging_menu/messaging_menu.xml | 10 +--- .../messaging_menu_tab/messaging_menu_tab.js | 30 ++++++++++ .../messaging_menu_tab.scss | 13 +++++ .../messaging_menu_tab/messaging_menu_tab.xml | 12 ++++ .../rtc_call_participant_card.xml | 4 +- .../rtc_configuration_menu.xml | 4 +- .../rtc_configuration_menu_device.js | 14 +++++ .../rtc_configuration_menu_device.xml | 10 ++++ .../src/components/rtc_video/rtc_video.js | 17 +++--- .../src/components/rtc_video/rtc_video.xml | 4 +- ...ctivity_mark_done_popover_content_view.js} | 39 +++++++++++-- .../mail/static/src/models/activity_view.js | 13 +++-- addons/mail/static/src/models/popover_view.js | 34 ++++++++++- .../src/models/rtc_call_participant_card.js | 16 +++++ .../mail/static/src/models/rtc_video_view.js | 33 +++++++++++ .../activity_mark_done_popover_tests.js | 36 ++++++------ .../components/activity_tests.js | 20 +++---- .../components/messaging_menu_tests.js | 58 +++++++++---------- 26 files changed, 328 insertions(+), 157 deletions(-) delete mode 100644 addons/mail/static/src/components/activity_mark_done_popover/activity_mark_done_popover.xml rename addons/mail/static/src/components/{activity_mark_done_popover/activity_mark_done_popover.js => activity_mark_done_popover_content/activity_mark_done_popover_content.js} (62%) rename addons/mail/static/src/components/{activity_mark_done_popover/activity_mark_done_popover.scss => activity_mark_done_popover_content/activity_mark_done_popover_content.scss} (79%) create mode 100644 addons/mail/static/src/components/activity_mark_done_popover_content/activity_mark_done_popover_content.xml create mode 100644 addons/mail/static/src/components/messaging_menu_tab/messaging_menu_tab.js create mode 100644 addons/mail/static/src/components/messaging_menu_tab/messaging_menu_tab.scss create mode 100644 addons/mail/static/src/components/messaging_menu_tab/messaging_menu_tab.xml create mode 100644 addons/mail/static/src/components/rtc_configuration_menu_device/rtc_configuration_menu_device.js create mode 100644 addons/mail/static/src/components/rtc_configuration_menu_device/rtc_configuration_menu_device.xml rename addons/mail/static/src/models/{activity_mark_done_popover_view.js => activity_mark_done_popover_content_view.js} (66%) create mode 100644 addons/mail/static/src/models/rtc_video_view.js diff --git a/addons/im_livechat/static/tests/qunit_suite_tests/components/messaging_menu_tests.js b/addons/im_livechat/static/tests/qunit_suite_tests/components/messaging_menu_tests.js index cdd15e205e7..4b42a055f2b 100644 --- a/addons/im_livechat/static/tests/qunit_suite_tests/components/messaging_menu_tests.js +++ b/addons/im_livechat/static/tests/qunit_suite_tests/components/messaging_menu_tests.js @@ -34,16 +34,16 @@ QUnit.test('livechats should be in "chat" filter', async function (assert) { await afterNextRender(() => document.querySelector('.o_MessagingMenu_toggler').click()); assert.containsOnce( document.body, - '.o_MessagingMenu_tabButton[data-tab-id="all"]', + '.o_MessagingMenuTab[data-tab-id="all"]', "should have a tab/filter 'all' in messaging menu" ); assert.containsOnce( document.body, - '.o_MessagingMenu_tabButton[data-tab-id="chat"]', + '.o_MessagingMenuTab[data-tab-id="chat"]', "should have a tab/filter 'chat' in messaging menu" ); assert.hasClass( - document.querySelector('.o_MessagingMenu_tabButton[data-tab-id="all"]'), + document.querySelector('.o_MessagingMenuTab[data-tab-id="all"]'), 'o-active', "tab/filter 'all' of messaging menu should be active initially" ); @@ -59,10 +59,10 @@ QUnit.test('livechats should be in "chat" filter', async function (assert) { ); await afterNextRender(() => - document.querySelector('.o_MessagingMenu_tabButton[data-tab-id="chat"]').click() + document.querySelector('.o_MessagingMenuTab[data-tab-id="chat"]').click() ); assert.hasClass( - document.querySelector('.o_MessagingMenu_tabButton[data-tab-id="chat"]'), + document.querySelector('.o_MessagingMenuTab[data-tab-id="chat"]'), 'o-active', "tab/filter 'chat' of messaging menu should become active after click" ); diff --git a/addons/mail/static/src/components/activity/activity.js b/addons/mail/static/src/components/activity/activity.js index 835363cf78d..f947f2af1fd 100644 --- a/addons/mail/static/src/components/activity/activity.js +++ b/addons/mail/static/src/components/activity/activity.js @@ -1,6 +1,7 @@ /** @odoo-module **/ import { useComponentToModel } from '@mail/component_hooks/use_component_to_model'; +import { useRefToModel } from '@mail/component_hooks/use_ref_to_model'; import { registerMessagingComponent } from '@mail/utils/messaging_component'; import Popover from "web.Popover"; @@ -14,6 +15,7 @@ export class Activity extends LegacyComponent { setup() { super.setup(); useComponentToModel({ fieldName: 'component', modelName: 'ActivityView' }); + useRefToModel({ fieldName: 'markDoneButtonRef', modelName: 'ActivityView', refName: 'markDoneButton', }); } /** diff --git a/addons/mail/static/src/components/activity/activity.xml b/addons/mail/static/src/components/activity/activity.xml index 8b79205f02f..1b0a2b9d914 100644 --- a/addons/mail/static/src/components/activity/activity.xml +++ b/addons/mail/static/src/components/activity/activity.xml @@ -119,16 +119,10 @@
- - - - - - - - + +