diff options
| author | Lucas Lefèvre <lul@odoo.com> | 2019-08-09 12:21:35 +0000 |
|---|---|---|
| committer | Alexandre Kühn <aku@odoo.com> | 2019-08-14 12:11:18 +0000 |
| commit | 14bb91e9ae942c01ce36a2fa9db601f7b09b3ce8 (patch) | |
| tree | 66a64c6f6deb4ecb90533d88cfe854f4c2a9a0bc /addons/mail/static/src | |
| parent | 59f838d5b12f56d68ccf184b16fd4ac236fa3cbd (diff) | |
[FIX] mail: only show suggested partners once
In the chatter composer, suggested partners were shown more than
necessary.
1. Create a new partner;
2. Open the chatter composer to send a message
(the new partner is suggested as a recipient);
3. Re-open the chatter composer
=> the partner is still suggested, but it is already a follower now!
Task-Id 2050102
closes odoo/odoo#35604
Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Co-authored-by: jbm-odoo <jbm@odoo.com>
Diffstat (limited to 'addons/mail/static/src')
| -rw-r--r-- | addons/mail/static/src/js/chatter.js | 29 | ||||
| -rw-r--r-- | addons/mail/static/src/js/composers/chatter_composer.js | 3 |
2 files changed, 26 insertions, 6 deletions
diff --git a/addons/mail/static/src/js/chatter.js b/addons/mail/static/src/js/chatter.js index 164a24cd7b8..9f0299565d2 100644 --- a/addons/mail/static/src/js/chatter.js +++ b/addons/mail/static/src/js/chatter.js @@ -31,6 +31,7 @@ var Chatter = Widget.extend({ discard_record_changes: '_onDiscardRecordChanges', reload_attachment_box: '_onReloadAttachmentBox', reload_mail_fields: '_onReloadMailFields', + reset_suggested_partners: '_onResetSuggestedPartners', }, events: { 'click .o_chatter_button_new_message': '_onOpenComposerMessage', @@ -68,6 +69,7 @@ var Chatter = Widget.extend({ // suggestions as well once fetched this._mentionPartnerSuggestions = this.call('mail_service', 'getMentionPartnerSuggestions'); this._mentionSuggestions = this._mentionPartnerSuggestions; + this._suggestedPartnersProm = undefined; if (mailFields.mail_activity) { this.fields.activity = new Activity(this, mailFields.mail_activity, record, options); @@ -408,6 +410,12 @@ var Chatter = Widget.extend({ }, /** * @private + */ + _resetSuggestedPartners() { + this._suggestedPartnersProm = undefined; + }, + /** + * @private * @param {Object} record * @param {integer} [record.res_id] * @param {string} [record.model] @@ -422,9 +430,9 @@ var Chatter = Widget.extend({ default_res_id: record.res_id || false, default_model: record.model || false, }; - // reset the suggested_partners_def to ensure a reload of the + // reset the _suggestedPartnersProm to ensure a reload of the // suggested partners when opening the composer on another record - this.suggested_partners_def = undefined; + this._resetSuggestedPartners(); } this.record = record; this.recordName = record.data.display_name; @@ -475,6 +483,7 @@ var Chatter = Widget.extend({ }); }, + //-------------------------------------------------------------------------- // Handlers //-------------------------------------------------------------------------- @@ -537,8 +546,8 @@ var Chatter = Widget.extend({ }, _onOpenComposerMessage: function () { var self = this; - if (!this.suggested_partners_def) { - this.suggested_partners_def = new Promise(function (resolve, reject) { + if (!this._suggestedPartnersProm) { + this._suggestedPartnersProm = new Promise(function (resolve, reject) { self._rpc({ route: '/mail/get_suggested_recipients', params: { @@ -546,7 +555,7 @@ var Chatter = Widget.extend({ res_ids: [self.context.default_res_id], }, }).then(function (result) { - if (!self.suggested_partners_def) { + if (!self._suggestedPartnersProm) { return; // widget has been reset (e.g. we just switched to another record) } var suggested_partners = []; @@ -566,7 +575,7 @@ var Chatter = Widget.extend({ }); }); } - this.suggested_partners_def.then(function (suggested_partners) { + this._suggestedPartnersProm.then(function (suggested_partners) { self._openComposer({ isLog: false, suggested_partners: suggested_partners }); }); }, @@ -612,6 +621,14 @@ var Chatter = Widget.extend({ }, /** * @private + * @param {OdooEvent} ev + */ + _onResetSuggestedPartners(ev) { + ev.stopPropagation(); + this._resetSuggestedPartners(); + }, + /** + * @private */ _onScheduleActivity: function () { this.fields.activity.scheduleActivity(); diff --git a/addons/mail/static/src/js/composers/chatter_composer.js b/addons/mail/static/src/js/composers/chatter_composer.js index 3109528cfed..4b20e5b2d25 100644 --- a/addons/mail/static/src/js/composers/chatter_composer.js +++ b/addons/mail/static/src/js/composers/chatter_composer.js @@ -224,6 +224,9 @@ var ChatterComposer = BasicComposer.extend({ message.context = _.defaults({}, message.context, { mail_post_autofollow: true, }); + if (partnerIDs.length) { + self.trigger_up('reset_suggested_partners'); + } resolve(message); }); } else { |
