summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/js/models
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-07-26 15:12:29 +0200
committerChristophe Simonis <chs@odoo.com>2019-07-26 15:12:29 +0200
commitbfd34e14b1be97465e135d85c76b9e626a219e7a (patch)
tree8de54ec8f504158e965ab92e21658cab539024ee /addons/mail/static/src/js/models
parent26b5b446b3dab3d66b7db054ca77e7b1a811c28a (diff)
parent40e8b67179f212551a176d72b3851671febc1fba (diff)
[MERGE] forward port branch saas-12.3 up to 40e8b67179f
Diffstat (limited to 'addons/mail/static/src/js/models')
-rw-r--r--addons/mail/static/src/js/models/threads/dm_chat.js13
-rw-r--r--addons/mail/static/src/js/models/threads/document_thread.js4
-rw-r--r--addons/mail/static/src/js/models/threads/mixins/thread_typing_mixin.js13
3 files changed, 26 insertions, 4 deletions
diff --git a/addons/mail/static/src/js/models/threads/dm_chat.js b/addons/mail/static/src/js/models/threads/dm_chat.js
index c0ba9c527b0..78cc01a7044 100644
--- a/addons/mail/static/src/js/models/threads/dm_chat.js
+++ b/addons/mail/static/src/js/models/threads/dm_chat.js
@@ -101,6 +101,19 @@ var DMChat = TwoUserChannel.extend(ChannelSeenMixin, {
getStatus: function () {
return this.call('mail_service', 'getImStatus', { partnerID: this._directPartnerID });
},
+
+ /**
+ * @param {Object} data
+ * @param {string} data.outOfOfficeMessage
+ * @param {string} data.outOfOfficeDateEnd
+ */
+ updateOutOfOfficeInfo: function (data) {
+ this._outOfOfficeMessage = data.outOfOfficeMessage;
+ this._outOfOfficeDateEnd = data.outOfOfficeDateEnd;
+ this.call('mail_service', 'getMailBus').trigger('updated_out_of_office', {
+ threadID: this.getID(),
+ });
+ }
});
return DMChat;
diff --git a/addons/mail/static/src/js/models/threads/document_thread.js b/addons/mail/static/src/js/models/threads/document_thread.js
index 08e441610ee..b4f1df097cf 100644
--- a/addons/mail/static/src/js/models/threads/document_thread.js
+++ b/addons/mail/static/src/js/models/threads/document_thread.js
@@ -329,7 +329,9 @@ var DocumentThread = Thread.extend({
.then(function (messages) {
messages[0].model = resModel;
messages[0].res_id = resID;
- self.call('mail_service', 'addMessage', messages[0]);
+ self.call('mail_service', 'addMessage', messages[0], {
+ postedFromDocumentThread: true,
+ });
return messages[0];
});
});
diff --git a/addons/mail/static/src/js/models/threads/mixins/thread_typing_mixin.js b/addons/mail/static/src/js/models/threads/mixins/thread_typing_mixin.js
index 7d97538dbb9..3c98836dc70 100644
--- a/addons/mail/static/src/js/models/threads/mixins/thread_typing_mixin.js
+++ b/addons/mail/static/src/js/models/threads/mixins/thread_typing_mixin.js
@@ -171,11 +171,15 @@ var ThreadTypingMixin = {
if (this._isTypingMyselfInfo(params)) {
return;
}
+ var partnerID = params.partnerID;
this._othersTypingTimers.registerTimer({
- timeoutCallbackArguments: [params.partnerID],
- timerID: params.partnerID,
+ timeoutCallbackArguments: [partnerID],
+ timerID: partnerID,
});
- this._typingPartnerIDs.push(params.partnerID);
+ if (_.contains(this._typingPartnerIDs, partnerID)) {
+ return;
+ }
+ this._typingPartnerIDs.push(partnerID);
this._warnUpdatedTypingPartners();
},
/**
@@ -209,6 +213,9 @@ var ThreadTypingMixin = {
unregisterTyping: function (params) {
var partnerID = params.partnerID;
this._othersTypingTimers.unregisterTimer({ timerID: partnerID });
+ if (!_.contains(this._typingPartnerIDs, partnerID)) {
+ return;
+ }
this._typingPartnerIDs = _.reject(this._typingPartnerIDs, function (id) {
return id === partnerID;
});