diff --git a/addons/im_livechat/static/src/js/models/website_livechat.js b/addons/im_livechat/static/src/js/models/website_livechat.js index 7d300f3035e..cdb83c10c81 100644 --- a/addons/im_livechat/static/src/js/models/website_livechat.js +++ b/addons/im_livechat/static/src/js/models/website_livechat.js @@ -8,24 +8,27 @@ var AbstractThread = require('mail.model.AbstractThread'); * is not linked to the mail service. */ var WebsiteLivechat = AbstractThread.extend({ + /** - * @param {Object} livechatData - * @param {boolean} [livechatData.folded] states whether the livechat is + * @override + * @private + * @param {Object} params + * @param {Object} params.data + * @param {boolean} [params.data.folded] states whether the livechat is * folded or not. It is considered only if this is defined and it is a - * boolean value. - * @param {integer} livechatData.id the ID of this livechat. - * @param {integer} [livechatData.message_unread_counter=undefined] the + * boolean. + * @param {integer} params.data.id the ID of this livechat. + * @param {integer} [params.data.message_unread_counter=undefined] the * unread counter of this livechat. - * @param {Array} livechatData.operator_pid - * @param {string} livechatData.name the name of this livechat. - * @param {string} [livechatData.state] if 'folded', the livechat is folded. + * @param {Array} params.data.operator_pid + * @param {string} params.data.name the name of this livechat. + * @param {string} [params.data.state] if 'folded', the livechat is folded. * This is ignored if `folded` is provided and is a boolean value. - * @param {string} livechatData.uuid the UUID of this livechat. + * @param {string} params.data.uuid the UUID of this livechat. */ init: function (livechatData) { var params = { data: livechatData }; - - this._super(params); + this._super.call(this, params); this._operatorPID = livechatData.operator_pid; this._uuid = livechatData.uuid; @@ -45,12 +48,6 @@ var WebsiteLivechat = AbstractThread.extend({ // Public //-------------------------------------------------------------------------- - /** - * @param {boolean} folded - */ - fold: function (folded) { - this._folded = folded; - }, /** * @override * @returns {im_livechat.model.WebsiteLivechatMessage[]} diff --git a/addons/im_support/static/src/js/support_channel.js b/addons/im_support/static/src/js/support_channel.js index dee74a6650d..4fd66bdfc81 100644 --- a/addons/im_support/static/src/js/support_channel.js +++ b/addons/im_support/static/src/js/support_channel.js @@ -20,7 +20,9 @@ var _t = core._t; * mail.model.ThreadWithCache */ var SupportChannel = ThreadWithCache.extend({ + /** + * @override * @param {Object} params * @param {Object} params.data * @param {boolean} params.data.available diff --git a/addons/mail/static/src/js/models/threads/abstract_thread.js b/addons/mail/static/src/js/models/threads/abstract_thread.js index 317859ab4f4..74be953734d 100644 --- a/addons/mail/static/src/js/models/threads/abstract_thread.js +++ b/addons/mail/static/src/js/models/threads/abstract_thread.js @@ -29,6 +29,14 @@ var AbstractThread = Class.extend({ // Public //-------------------------------------------------------------------------- + /** + * Updates the folded state of the thread + * + * @param {boolean} folded + */ + fold: function (folded) { + this._folded = folded; + }, /** * Get the ID of this thread * diff --git a/addons/mail/static/src/js/models/threads/dm.js b/addons/mail/static/src/js/models/threads/dm.js index bf778dad63c..fba63830a55 100644 --- a/addons/mail/static/src/js/models/threads/dm.js +++ b/addons/mail/static/src/js/models/threads/dm.js @@ -79,11 +79,6 @@ var DM = Channel.extend({ args: [this.getUUID(), false], }); }, - - //-------------------------------------------------------------------------- - // Private - //-------------------------------------------------------------------------- - }); return DM; 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 cf3e27c8c81..88203b3e8d8 100644 --- a/addons/mail/static/src/js/models/threads/document_thread.js +++ b/addons/mail/static/src/js/models/threads/document_thread.js @@ -319,7 +319,6 @@ var DocumentThread = Thread.extend({ }); }, - }); return DocumentThread; diff --git a/addons/mail/static/src/js/models/threads/mailbox.js b/addons/mail/static/src/js/models/threads/mailbox.js index 6d2e75c59b1..4ba7c4e8d1f 100644 --- a/addons/mail/static/src/js/models/threads/mailbox.js +++ b/addons/mail/static/src/js/models/threads/mailbox.js @@ -207,7 +207,6 @@ var Mailbox = ThreadWithCache.extend({ throw _t(_.str("Missing domain for mailbox with ID '%s'", this._id)); } }, - }); return Mailbox; diff --git a/addons/mail/static/src/js/models/threads/thread.js b/addons/mail/static/src/js/models/threads/thread.js index adf66d2ffcc..76d840a6100 100644 --- a/addons/mail/static/src/js/models/threads/thread.js +++ b/addons/mail/static/src/js/models/threads/thread.js @@ -16,20 +16,20 @@ var ServicesMixin = require('web.ServicesMixin'); * In particular, channels and mailboxes are two different kinds of threads. */ var Thread = AbstractThread.extend(Mixins.EventDispatcherMixin, ServicesMixin, { + /** * @override - * @param {Object} params * @param {mail.Manager} param.parent + * @param {Object} params * @param {Object} params.data * @param {string} [params.data.channel_type] * @param {string} params.data.name * @param {string} [params.data.type] */ init: function (params) { - this._super.apply(this, arguments); Mixins.EventDispatcherMixin.init.call(this, arguments); this.setParent(params.parent); - + this._super.apply(this, arguments); // threads are not detached by default this._detached = false; // if this._massMailing is set, display subject on messages, use @@ -100,14 +100,15 @@ var Thread = AbstractThread.extend(Mixins.EventDispatcherMixin, ServicesMixin, { return $.when([]); }, /** - * Updates the _folded state of the thread. Must be overriden to reflect + * Updates the folded state of the thread. Must be overriden to reflect * the new state in the interface. * + * @override * @param {boolean} boolean */ fold: function (folded) { - this._detached = true; - this._folded = folded; + this._super.apply(this, arguments); + this._detached = true; // auto-detach the thread this._warnUpdatedWindowState(); }, /** @@ -300,8 +301,7 @@ var Thread = AbstractThread.extend(Mixins.EventDispatcherMixin, ServicesMixin, { */ markAsRead: function () { if (this._unreadCounter > 0) { - this._unreadCounter = 0; - this._warnUpdatedUnreadCounter(); + this.resetUnreadCounter(); } return $.when(); }, diff --git a/addons/mail/static/src/js/models/threads/thread_with_cache.js b/addons/mail/static/src/js/models/threads/thread_with_cache.js index ef064072bbf..c82432c64d7 100644 --- a/addons/mail/static/src/js/models/threads/thread_with_cache.js +++ b/addons/mail/static/src/js/models/threads/thread_with_cache.js @@ -14,6 +14,7 @@ var session = require('web.session'); * in order to make searches on messages in a thread. */ var ThreadWithCache = Thread.extend({ + /** * @override * @param {Object} params