summaryrefslogtreecommitdiff
path: root/addons/mail/static/src/js
diff options
context:
space:
mode:
authorLucas Lefèvre <lul@odoo.com>2019-08-09 12:21:35 +0000
committerAlexandre Kühn <aku@odoo.com>2019-08-14 12:11:18 +0000
commit14bb91e9ae942c01ce36a2fa9db601f7b09b3ce8 (patch)
tree66a64c6f6deb4ecb90533d88cfe854f4c2a9a0bc /addons/mail/static/src/js
parent59f838d5b12f56d68ccf184b16fd4ac236fa3cbd (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/js')
-rw-r--r--addons/mail/static/src/js/chatter.js29
-rw-r--r--addons/mail/static/src/js/composers/chatter_composer.js3
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 {