summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/js/models
diff options
context:
space:
mode:
Diffstat (limited to 'addons/mail/static/src/js/models')
-rw-r--r--addons/mail/static/src/js/models/threads/channel.js35
-rw-r--r--addons/mail/static/src/js/models/threads/mixins/channel_seen_mixin.js36
2 files changed, 11 insertions, 60 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..a2316edb7be 100644
--- a/addons/mail/static/src/js/models/threads/channel.js
+++ b/addons/mail/static/src/js/models/threads/channel.js
@@ -387,24 +387,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,25 +406,6 @@ 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) {
- self._lastSeenMessageID = lastSeenMessageID;
- return lastSeenMessageID;
- });
- },
- /**
* Prepare and send a message to the server on this channel.
*
* @override
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..022994673d2 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);
},
@@ -226,26 +218,18 @@ var ChannelSeenMixin = {
/**
* @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();
+ var self = this;
+ return this._rpc({
+ model: 'mail.channel',
+ method: 'channel_seen',
+ args: [[this._id]],
+ }, { shadow: true }).then(function (lastSeenMessageID) {
+ self._lastSeenMessageID = lastSeenMessageID;
+ return lastSeenMessageID;
+ });
},
//--------------------------------------------------------------------------
@@ -256,7 +240,7 @@ var ChannelSeenMixin = {
* @private
*/
_onSeenMessageAdded: function () {
- this._throttleNotifyFetched();
+ this.call('mail_service', 'notifyChannelFetched', { channelID: this._id });
},
};