[REF] mail,hr: move openDMChatWindow to MailManager
It will be used by the Many2OneAvatarUser widget defined in the next commit.
This commit is contained in:
@@ -44,18 +44,8 @@ odoo.define('hr.employee_chat', function (require) {
|
||||
open_chat: '_onOpenChat'
|
||||
}),
|
||||
|
||||
_onOpenChat: function(ev) {
|
||||
var self = this;
|
||||
var dmChat = this.call('mail_service', 'getDMChatFromPartnerID', ev.data.partner_id);
|
||||
if (dmChat) {
|
||||
dmChat.detach();
|
||||
} else {
|
||||
var def = this.call('mail_service', 'createChannel', ev.data.partner_id, 'dm_chat').then(function (dmChatId) {
|
||||
dmChat = self.call('mail_service', 'getChannel', dmChatId);
|
||||
dmChat.detach();
|
||||
});
|
||||
Promise.resolve(def);
|
||||
}
|
||||
_onOpenChat: function (ev) {
|
||||
this.call('mail_service', 'openDMChatWindow', ev.data.partner_id);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -52,6 +52,20 @@ MailManager.include({
|
||||
}
|
||||
}
|
||||
},
|
||||
/**
|
||||
* Open a DM chat in a thread window.
|
||||
*
|
||||
* @param {integer} partnerID
|
||||
* @returns {Promise}
|
||||
*/
|
||||
openDMChatWindow: async function (partnerID) {
|
||||
let dmChat = this.call('mail_service', 'getDMChatFromPartnerID', partnerID);
|
||||
if (!dmChat) {
|
||||
const dmChatId = await this.call('mail_service', 'createChannel', partnerID, 'dm_chat');
|
||||
dmChat = this.call('mail_service', 'getChannel', dmChatId);
|
||||
}
|
||||
dmChat.detach();
|
||||
},
|
||||
/**
|
||||
* Open a DM chat in a thread window. This is useful when selecting a DM
|
||||
* chatin the blank thread window, so that it replaces it with the DM chat
|
||||
|
||||
Reference in New Issue
Block a user