diff --git a/addons/im_support/static/src/js/support_message.js b/addons/im_support/static/src/js/support_message.js index bf21bd2624f..7d7e33aef1c 100644 --- a/addons/im_support/static/src/js/support_message.js +++ b/addons/im_support/static/src/js/support_message.js @@ -14,7 +14,10 @@ var SupportMessage = Message.extend({ */ init: function () { this._super.apply(this, arguments); - if (this._serverAuthorID !== this.call('mail_service', 'getOdoobotID')) { + if ( + !this._serverAuthorID || + this._serverAuthorID[0] !== this.call('mail_service', 'getOdoobotID')[0] + ) { if (!this._serverAuthorID[0]) { // the author is the client this._serverAuthorID = [session.partner_id, session.name]; diff --git a/addons/mail/static/src/js/models/messages/message.js b/addons/mail/static/src/js/models/messages/message.js index a414a11874b..613e94c54f8 100644 --- a/addons/mail/static/src/js/models/messages/message.js +++ b/addons/mail/static/src/js/models/messages/message.js @@ -578,7 +578,8 @@ var Message = AbstractMessage.extend(Mixins.EventDispatcherMixin, ServicesMixin * @return {boolean} */ _isOdoobotAuthor: function () { - return this._serverAuthorID === this.call('mail_service', 'getOdoobotID'); + return this._serverAuthorID && + this._serverAuthorID[0] === this.call('mail_service', 'getOdoobotID')[0]; }, /** * State whether the message is transient or not diff --git a/addons/mail/static/src/js/services/mail_manager.js b/addons/mail/static/src/js/services/mail_manager.js index 5eb588d24e7..394892952c4 100644 --- a/addons/mail/static/src/js/services/mail_manager.js +++ b/addons/mail/static/src/js/services/mail_manager.js @@ -46,7 +46,7 @@ var PREVIEW_MSG_MAX_SIZE = 350; // optimal for native english speakers var MailManager = AbstractService.extend({ dependencies: ['ajax', 'bus_service', 'local_storage'], - _ODOOBOT_ID: "ODOOBOT", // default authorID for transient messages + _ODOOBOT_ID: ["ODOOBOT", "ODOOBOT"], // authorID for transient messages /** * @override @@ -258,7 +258,7 @@ var MailManager = AbstractService.extend({ /** * Get the OdooBot ID, which is the default authorID for transient messages * - * @returns {string} + * @returns {Array} */ getOdoobotID: function () { return this._ODOOBOT_ID; diff --git a/addons/mail/static/src/js/services/mail_notification_manager.js b/addons/mail/static/src/js/services/mail_notification_manager.js index fb3527b2b90..849ced2e065 100644 --- a/addons/mail/static/src/js/services/mail_notification_manager.js +++ b/addons/mail/static/src/js/services/mail_notification_manager.js @@ -468,12 +468,11 @@ MailManager.include({ * * @private * @param {Object} data - * @param {string} data.author_id */ _handlePartnerTransientMessageNotification: function (data) { var lastMessage = _.last(this._messages); data.id = (lastMessage ? lastMessage.getID() : 0) + 0.01; - data.author_id = data.author_id || this.getOdoobotID(); + data.author_id = this.getOdoobotID(); this.addMessage(data); }, /** diff --git a/addons/mail/static/src/js/services/mail_status_manager.js b/addons/mail/static/src/js/services/mail_status_manager.js index 5ca151d47bf..dffe10380e1 100644 --- a/addons/mail/static/src/js/services/mail_status_manager.js +++ b/addons/mail/static/src/js/services/mail_status_manager.js @@ -30,6 +30,9 @@ MailManager.include({ getImStatus: function (data) { var self = this; var partnerID = data.partnerID; + if (partnerID === this.getOdoobotID()[0]) { + return 'bot'; + } if (!this._imStatus[partnerID]) { // Add to list to call it in next bus update or _fetchMissingImStatus this._imStatus[partnerID] = undefined;