summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/js/models/threads
diff options
context:
space:
mode:
Diffstat (limited to 'addons/mail/static/src/js/models/threads')
-rw-r--r--addons/mail/static/src/js/models/threads/channel.js17
-rw-r--r--addons/mail/static/src/js/models/threads/searchable_thread.js22
2 files changed, 31 insertions, 8 deletions
diff --git a/addons/mail/static/src/js/models/threads/channel.js b/addons/mail/static/src/js/models/threads/channel.js
index 2e186bd11e5..3a257eb2272 100644
--- a/addons/mail/static/src/js/models/threads/channel.js
+++ b/addons/mail/static/src/js/models/threads/channel.js
@@ -358,6 +358,23 @@ var Channel = SearchableThread.extend(ThreadTypingMixin, {
});
},
/**
+ * Override so that it tells whether the channel is moderated or not. This
+ * is useful in order to display pending moderation messages when the
+ * current user is either moderator of the channel or has posted some
+ * messages that are pending moderation.
+ *
+ * @override
+ * @private
+ * @returns {Object}
+ */
+ _getFetchMessagesKwargs: function () {
+ var kwargs = this._super.apply(this, arguments);
+ if (this.isModerated()) {
+ kwargs.moderated_channel_ids = [this.getID()];
+ }
+ return kwargs;
+ },
+ /**
* Get the domain to fetch all the messages in the current channel
*
* Note that with moderation, even though some messages are not really
diff --git a/addons/mail/static/src/js/models/threads/searchable_thread.js b/addons/mail/static/src/js/models/threads/searchable_thread.js
index 17fa119890a..8ddff5457af 100644
--- a/addons/mail/static/src/js/models/threads/searchable_thread.js
+++ b/addons/mail/static/src/js/models/threads/searchable_thread.js
@@ -163,10 +163,7 @@ var SearchableThread = Thread.extend({
*/
_fetchMessages: function (pDomain, loadMore) {
var self = this;
-
var domain = this._getThreadDomain();
- var moderatedChannelIds = typeof(this._id) === 'number' ? [this._id] : false;
-
var cache = this._getCache(pDomain);
if (pDomain) {
domain = domain.concat(pDomain || []);
@@ -179,11 +176,7 @@ var SearchableThread = Thread.extend({
model: 'mail.message',
method: 'message_fetch',
args: [domain],
- kwargs: {
- moderated_channel_ids: moderatedChannelIds,
- limit: this._FETCH_LIMIT,
- context: session.user_context
- },
+ kwargs: this._getFetchMessagesKwargs(),
}).then(function (messages) {
if (!cache.allHistoryLoaded) {
cache.allHistoryLoaded = messages.length < self._FETCH_LIMIT;
@@ -219,6 +212,19 @@ var SearchableThread = Thread.extend({
return this._cache[stringifiedDomain];
},
/**
+ * Get the kwargs that are passed to the server with the 'message_fetch'
+ * RPC.
+ *
+ * @private
+ * @returns {Object}
+ */
+ _getFetchMessagesKwargs: function () {
+ return {
+ limit: this._FETCH_LIMIT,
+ context: session.user_context
+ };
+ },
+ /**
* Get the domain to fetch all the messages in the current thread
*
* @abstract