summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/js/thread_field.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/mail/static/src/js/thread_field.js')
-rw-r--r--addons/mail/static/src/js/thread_field.js27
1 files changed, 14 insertions, 13 deletions
diff --git a/addons/mail/static/src/js/thread_field.js b/addons/mail/static/src/js/thread_field.js
index 43d97473d3c..00ea4e2037a 100644
--- a/addons/mail/static/src/js/thread_field.js
+++ b/addons/mail/static/src/js/thread_field.js
@@ -1,7 +1,6 @@
odoo.define('mail.ThreadField', function (require) {
"use strict";
-var chat_mixin = require('mail.chat_mixin');
var ChatThread = require('mail.ChatThread');
var AbstractField = require('web.AbstractField');
@@ -15,14 +14,15 @@ var _t = core._t;
// -----------------------------------------------------------------------------
// 'mail_thread' widget: displays the thread of messages
// -----------------------------------------------------------------------------
-var ThreadField = AbstractField.extend(chat_mixin, {
+var ThreadField = AbstractField.extend({
// inherited
init: function () {
this._super.apply(this, arguments);
this.msgIDs = this.value.res_ids;
},
willStart: function () {
- return this.alive(this._chatReady());
+ var chatReady = this.call('chat_manager', 'isReady');
+ return this.alive(chatReady);
},
start: function () {
var self = this;
@@ -39,7 +39,9 @@ var ThreadField = AbstractField.extend(chat_mixin, {
this.thread.on('load_more_messages', this, this._onLoadMoreMessages);
this.thread.on('redirect', this, this._onRedirect);
this.thread.on('redirect_to_channel', this, this._onRedirectToChannel);
- this.thread.on('toggle_star_status', this, this._toggleStarStatus);
+ this.thread.on('toggle_star_status', this, function (messageID) {
+ self.call('chat_manager', 'toggleStarStatus', messageID);
+ });
var def1 = this.thread.appendTo(this.$el);
var def2 = this._super.apply(this, arguments);
@@ -47,10 +49,9 @@ var ThreadField = AbstractField.extend(chat_mixin, {
return this.alive($.when(def1, def2)).then(function () {
// unwrap the thread to remove an unnecessary level on div
self.setElement(self.thread.$el);
-
- var bus = self._getBus();
- bus.on('new_message', self, self._onNewMessage);
- bus.on('update_message', self, self._onUpdateMessage);
+ var chatBus = self.call('chat_manager', 'getChatBus');
+ chatBus.on('new_message', self, self._onNewMessage);
+ chatBus.on('update_message', self, self._onUpdateMessage);
});
},
_render: function () {
@@ -60,7 +61,7 @@ var ThreadField = AbstractField.extend(chat_mixin, {
return true;
},
destroy: function () {
- this._removeChatterMessages(this.model);
+ this.call('chat_manager', 'removeChatterMessages', this.model);
this._super.apply(this, arguments);
},
_reset: function (record) {
@@ -82,7 +83,7 @@ var ThreadField = AbstractField.extend(chat_mixin, {
postMessage: function (message) {
var self = this;
var options = {model: this.model, res_id: this.res_id};
- return this._postMessage(message, options)
+ return this.call('chat_manager', 'postMessage', message, options)
.then(function () {
if (message.partner_ids.length) {
self.trigger_up('reload_mail_fields', {followers: true});
@@ -123,7 +124,7 @@ var ThreadField = AbstractField.extend(chat_mixin, {
var self = this;
options = options || {};
options.ids = ids;
- var fetch_def = this.dp.add(this._getMessages(options));
+ var fetch_def = this.dp.add(this.call('chat_manager', 'getMessages', options));
return fetch_def.then(function (raw_messages) {
var isCreateMode = false;
if (!self.res_id) {
@@ -147,7 +148,7 @@ var ThreadField = AbstractField.extend(chat_mixin, {
* @returns {Deferred}
*/
_onLoadMoreMessages: function () {
- this._fetchAndRenderThread(this.msgIDs, {force_fetch: true});
+ this._fetchAndRenderThread(this.msgIDs, {forceFetch: true});
},
_onNewMessage: function (message) {
if (message.model === this.model && message.res_id === this.res_id) {
@@ -161,7 +162,7 @@ var ThreadField = AbstractField.extend(chat_mixin, {
},
_onRedirectToChannel: function (channelID) {
var self = this;
- this._joinChannel(channelID).then(function () {
+ this.call('chat_manager', 'joinChannel', channelID).then(function () {
// Execute Discuss client action with 'channel' as default channel
self.do_action('mail.mail_channel_action_client_chat', {active_id: channelID});
});