summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/js/models
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2019-02-22 16:25:02 +0100
committerChristophe Simonis <chs@odoo.com>2019-02-22 16:25:02 +0100
commit0e7675847f05a63cf013210dabac82c94845217f (patch)
treeae87ad0d0b4d792cb7a17ea1b5428b5d96ce8c56 /addons/mail/static/src/js/models
parent1af67ffdfa370ade4ea12f227d7c4fae5bc02170 (diff)
parent0f4abc5c228747c7eee79f820fa2ea9c23d73e5f (diff)
[MERGE] forward port branch saas-12.1 up to 0f4abc5c228
Diffstat (limited to 'addons/mail/static/src/js/models')
-rw-r--r--addons/mail/static/src/js/models/threads/channel.js26
-rw-r--r--addons/mail/static/src/js/models/threads/dm_chat.js4
-rw-r--r--addons/mail/static/src/js/models/threads/mixins/channel_seen_mixin.js38
3 files changed, 7 insertions, 61 deletions
diff --git a/addons/mail/static/src/js/models/threads/channel.js b/addons/mail/static/src/js/models/threads/channel.js
index 7db3474ebb2..9f0f37264db 100644
--- a/addons/mail/static/src/js/models/threads/channel.js
+++ b/addons/mail/static/src/js/models/threads/channel.js
@@ -1,7 +1,6 @@
odoo.define('mail.model.Channel', function (require) {
"use strict";
-var ChannelSeenMixin = require('mail.model.ChannelSeenMixin');
var SearchableThread = require('mail.model.SearchableThread');
var ThreadTypingMixin = require('mail.model.ThreadTypingMixin');
var mailUtils = require('mail.utils');
@@ -17,7 +16,7 @@ var time = require('web.time');
* Any piece of code in JS that make use of channels must ideally interact with
* such objects, instead of direct data from the server.
*/
-var Channel = SearchableThread.extend(ChannelSeenMixin, ThreadTypingMixin, {
+var Channel = SearchableThread.extend(ThreadTypingMixin, {
/**
* @override
* @param {Object} params
@@ -50,7 +49,6 @@ var Channel = SearchableThread.extend(ChannelSeenMixin, ThreadTypingMixin, {
init: function (params) {
var self = this;
this._super.apply(this, arguments);
- ChannelSeenMixin.init.apply(this, arguments);
ThreadTypingMixin.init.apply(this, arguments);
var data = params.data;
@@ -387,24 +385,10 @@ var Channel = SearchableThread.extend(ChannelSeenMixin, ThreadTypingMixin, {
*/
_markAsRead: function () {
var superDef = this._super.apply(this, arguments);
- var seenDef = this._throttleNotifySeen();
+ var seenDef = this._notifySeen();
return $.when(superDef, seenDef);
},
/**
- * @override {mail.model.ThreadSeenMixin}
- * @private
- * @returns {$.Promise}
- */
- _notifyFetched: function () {
- return this._rpc({
- model: 'mail.channel',
- method: 'channel_fetched',
- args: [[this._id]],
- }, {
- shadow: true
- });
- },
- /**
* @override {mail.model.ThreadTypingMixin}
* @private
* @param {Object} params
@@ -420,20 +404,16 @@ var Channel = SearchableThread.extend(ChannelSeenMixin, ThreadTypingMixin, {
}, { shadow: true });
},
/**
- * @override {mail.model.ThreadSeenMixin}
* @private
* @returns {$.Promise<integer>} resolved with ID of last seen message
*/
_notifySeen: function () {
var self = this;
- this._cancelThrottledNotifyFetched();
return this._rpc({
model: 'mail.channel',
method: 'channel_seen',
args: [[this._id]],
- }, {
- shadow: true
- }).then(function (lastSeenMessageID) {
+ }, { shadow: true }).then(function (lastSeenMessageID) {
self._lastSeenMessageID = lastSeenMessageID;
return lastSeenMessageID;
});
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 fb524515193..c0ba9c527b0 100644
--- a/addons/mail/static/src/js/models/threads/dm_chat.js
+++ b/addons/mail/static/src/js/models/threads/dm_chat.js
@@ -1,6 +1,7 @@
odoo.define('mail.model.DMChat', function (require) {
"use strict";
+var ChannelSeenMixin = require('mail.model.ChannelSeenMixin');
var TwoUserChannel = require('mail.model.TwoUserChannel');
var core = require('web.core');
@@ -11,7 +12,7 @@ var _t = core._t;
* Any piece of code in JS that make use of DMs must ideally interact with
* such objects, instead of direct data from the server.
*/
-var DMChat = TwoUserChannel.extend({
+var DMChat = TwoUserChannel.extend(ChannelSeenMixin, {
/**
* @override
* @param {Object} params
@@ -27,6 +28,7 @@ var DMChat = TwoUserChannel.extend({
*/
init: function (params) {
this._super.apply(this, arguments);
+ ChannelSeenMixin.init.apply(this, arguments);
var data = params.data;
diff --git a/addons/mail/static/src/js/models/threads/mixins/channel_seen_mixin.js b/addons/mail/static/src/js/models/threads/mixins/channel_seen_mixin.js
index 8a59db70aa2..20a5bba5407 100644
--- a/addons/mail/static/src/js/models/threads/mixins/channel_seen_mixin.js
+++ b/addons/mail/static/src/js/models/threads/mixins/channel_seen_mixin.js
@@ -1,8 +1,6 @@
odoo.define('mail.model.ChannelSeenMixin', function (require) {
"use strict";
-var CCThrottleFunction = require('mail.model.CCThrottleFunction');
-
var session = require('web.session');
/**
@@ -25,12 +23,6 @@ var ChannelSeenMixin = {
init: function (params) {
this._seenPartnersInfo = params.data.seen_partners_info || [];
- this._throttleNotifySeen = _.throttle(this._notifySeen.bind(this), 3000);
- this._throttleNotifyFetched = CCThrottleFunction({
- duration: 3000,
- func: this._notifyFetched.bind(this),
- });
-
this.on('message_added', this, this._onSeenMessageAdded);
},
@@ -221,34 +213,6 @@ var ChannelSeenMixin = {
},
//--------------------------------------------------------------------------
- // Private
- //--------------------------------------------------------------------------
-
- /**
- * @private
- */
- _cancelThrottledNotifyFetched: function () {
- this._throttleNotifyFetched.cancel();
- this._throttleNotifyFetched.clear();
- },
- /**
- * @abstract
- * @private
- * @returns {$.Promise}
- */
- _notifyFetched: function () {
- return $.when();
- },
- /**
- * @abstract
- * @private
- * @returns {$.Promise<integer>} resolved with ID of last seen message
- */
- _notifySeen: function () {
- return $.when();
- },
-
- //--------------------------------------------------------------------------
// Handlers
//--------------------------------------------------------------------------
@@ -256,7 +220,7 @@ var ChannelSeenMixin = {
* @private
*/
_onSeenMessageAdded: function () {
- this._throttleNotifyFetched();
+ this.call('mail_service', 'notifyChannelFetched', { channelID: this._id });
},
};