From d8dde5d4258414931f903adeaaf38c21db655cf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Theys?= Date: Mon, 17 Jul 2023 17:14:39 +0000 Subject: [PATCH] [REF] mail, im_livechat: init channel and sidebar in new services Part of task-3265211 Part-of: odoo/odoo#128799 --- .../static/src/embed/core/messaging_service_patch.js | 1 + addons/mail/static/src/core/common/messaging_service.js | 6 ------ .../discuss/core/common/discuss_core_common_service.js | 6 +++++- .../src/discuss/core/web/discuss_core_web_service.js | 8 ++++++-- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/addons/im_livechat/static/src/embed/core/messaging_service_patch.js b/addons/im_livechat/static/src/embed/core/messaging_service_patch.js index 9fc7e84e1f7..b1ab293fd74 100644 --- a/addons/im_livechat/static/src/embed/core/messaging_service_patch.js +++ b/addons/im_livechat/static/src/embed/core/messaging_service_patch.js @@ -16,6 +16,7 @@ patch(Messaging.prototype, "im_livechat", { this.store.isMessagingReady = true; this.isReady.resolve({ channels: [], + current_user_settings: {}, }); }, }); diff --git a/addons/mail/static/src/core/common/messaging_service.js b/addons/mail/static/src/core/common/messaging_service.js index 7386a6f83ec..c3c28da07ed 100644 --- a/addons/mail/static/src/core/common/messaging_service.js +++ b/addons/mail/static/src/core/common/messaging_service.js @@ -93,16 +93,10 @@ export class Messaging { ...data.odoobot, type: "partner", }); - for (const channelData of data.channels) { - this.threadService.createChannelThread(channelData); - } - this.threadService.sortChannels(); const settings = data.current_user_settings; this.userSettingsService.updateFromCommands(settings); this.userSettingsService.id = settings.id; this.store.companyName = data.companyName; - this.store.discuss.channels.isOpen = settings.is_discuss_sidebar_category_channel_open; - this.store.discuss.chats.isOpen = settings.is_discuss_sidebar_category_chat_open; this.store.discuss.inbox.counter = data.needaction_inbox_counter; this.store.internalUserGroupId = data.internalUserGroupId; this.store.discuss.starred.counter = data.starred_counter; diff --git a/addons/mail/static/src/discuss/core/common/discuss_core_common_service.js b/addons/mail/static/src/discuss/core/common/discuss_core_common_service.js index de65a6a6b53..b8ea50c2d29 100644 --- a/addons/mail/static/src/discuss/core/common/discuss_core_common_service.js +++ b/addons/mail/static/src/discuss/core/common/discuss_core_common_service.js @@ -31,7 +31,11 @@ export class DiscussCoreCommon { } setup() { - this.messagingService.isReady.then(() => { + this.messagingService.isReady.then((data) => { + for (const channelData of data.channels) { + this.threadService.createChannelThread(channelData); + } + this.threadService.sortChannels(); this.busService.subscribe("discuss.channel/joined", (payload) => { const { channel, invited_by_user_id: invitedByUserId } = payload; const thread = this.threadService.insert({ diff --git a/addons/mail/static/src/discuss/core/web/discuss_core_web_service.js b/addons/mail/static/src/discuss/core/web/discuss_core_web_service.js index 65771362a7c..b094b4ead7a 100644 --- a/addons/mail/static/src/discuss/core/web/discuss_core_web_service.js +++ b/addons/mail/static/src/discuss/core/web/discuss_core_web_service.js @@ -25,8 +25,8 @@ export class DiscussCoreWeb { } setup() { - this.messagingService.isReady.then(({ channels }) => { - for (const channelData of channels) { + this.messagingService.isReady.then((data) => { + for (const channelData of data.channels) { const thread = this.threadService.createChannelThread(channelData); if ( channelData.is_minimized && @@ -40,6 +40,10 @@ export class DiscussCoreWeb { }); } } + this.store.discuss.channels.isOpen = + data.current_user_settings.is_discuss_sidebar_category_channel_open; + this.store.discuss.chats.isOpen = + data.current_user_settings.is_discuss_sidebar_category_chat_open; }); this.env.bus.addEventListener( "discuss.channel/new_message",