[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:
Aaron Bohy
2020-05-05 10:05:12 +00:00
parent df4693e7ff
commit e63ffeab5a
2 changed files with 16 additions and 12 deletions
+2 -12
View File
@@ -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