diff options
| author | Mehul Patel <mep@odoo.com> | 2018-02-09 18:26:54 +0530 |
|---|---|---|
| committer | Alexandre Kühn <aku@odoo.com> | 2018-03-16 09:48:13 +0100 |
| commit | 78d681d14f815d8f8ffc193568433cb2c4b6a75a (patch) | |
| tree | 336c5bedd1b0b59aef4f55505f6c5e91889a2d17 /addons/mail/static/src | |
| parent | 71de0c47f8dc887da0c3484a65f7deacad68f0a9 (diff) | |
[IMP] mail: composer / chatter new followers email address tooltips
Before this commit, many2many email tags showed the recipient's name
and email address. Most of the time, the text was cut off in order to
fit in the maximum length of a many2many tag, so the email address was
usually not visible.
With this commit, many2many email tags now show only the recipient's
name. The recipient's email address is displayed when hovering on the
tag.
Task-ID 36677
Diffstat (limited to 'addons/mail/static/src')
| -rw-r--r-- | addons/mail/static/src/js/many2many_tags_email.js | 41 | ||||
| -rw-r--r-- | addons/mail/static/src/xml/composer.xml | 5 |
2 files changed, 11 insertions, 35 deletions
diff --git a/addons/mail/static/src/js/many2many_tags_email.js b/addons/mail/static/src/js/many2many_tags_email.js index 7e1fb260a0c..a16a424fe92 100644 --- a/addons/mail/static/src/js/many2many_tags_email.js +++ b/addons/mail/static/src/js/many2many_tags_email.js @@ -21,9 +21,9 @@ BasicModel.include({ * @param {Object} record - an element from the localData * @param {string} fieldName * @return {Deferred<Object>} the deferred is resolved with the - * invalidPartnerIds and partnerNames + * invalidPartnerIds */ - _fetchSpecialMany2ManyTagsEmail: function (record, fieldName) { + _setInvalidMany2ManyTagsEmail: function (record, fieldName) { var self = this; var localID = (record._changes && fieldName in record._changes) ? record._changes[fieldName] : @@ -43,30 +43,19 @@ BasicModel.include({ def = this._applyX2ManyChange(record, fieldName, changes); } return $.when(def).then(function () { - list = self._applyX2ManyOperations(self.localData[localID]); - if (list.res_ids.length) { - def = self._rpc({ - model: list.model, - method: 'name_get', - args: [list.res_ids], - context: record.getContext({fieldName: fieldName}), - }); - } - return $.when(def).then(function (names) { - return $.when({ - invalidPartnerIds: _.pluck(invalidPartnerIds, 'res_id'), - partnerNames: _.object(names), - }); + return $.when({ + invalidPartnerIds: _.pluck(invalidPartnerIds, 'res_id'), }); }); }, }); var FieldMany2ManyTagsEmail = M2MTags.extend({ + tag_template: "FieldMany2ManyTagsEmail", fieldsToFetch: _.extend({}, M2MTags.prototype.fieldsToFetch, { email: {type: 'char'}, }), - specialData: "_fetchSpecialMany2ManyTagsEmail", + specialData: "_setInvalidMany2ManyTagsEmail", //-------------------------------------------------------------------------- // Private @@ -139,24 +128,6 @@ var FieldMany2ManyTagsEmail = M2MTags.extend({ return _super.apply(self, arguments); }); }, - - /** - * Override for res.partner - * name_get is dynamic (based on context) while display_name is static - * (stored) - * - * @override - * @private - */ - _getRenderTagsContext: function () { - var result = this._super.apply(this, arguments); - var partnerNames = this.record.specialData[this.name].partnerNames; - _.each(result.elements, function (partner) { - partner.display_name = partnerNames[partner.id]; - }); - return result; - }, - }); field_registry.add('many2many_tags_email', FieldMany2ManyTagsEmail); diff --git a/addons/mail/static/src/xml/composer.xml b/addons/mail/static/src/xml/composer.xml index 2795a0bb724..07ec2063215 100644 --- a/addons/mail/static/src/xml/composer.xml +++ b/addons/mail/static/src/xml/composer.xml @@ -76,4 +76,9 @@ </t> </t> + <t t-name="FieldMany2ManyTagsEmail" t-extend="FieldMany2ManyTag"> + <t t-jquery=".o_badge_text" t-operation="replace"> + <span class="o_badge_text" t-attf-title="#{el.email}"><t t-esc="el.display_name"/></span> + </t> + </t> </templates> |
