diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py index 49caf20f7ff..081ba93b8b4 100644 --- a/addons/website_mail/controllers/main.py +++ b/addons/website_mail/controllers/main.py @@ -83,6 +83,7 @@ class WebsiteMail(http.Controller): 'is_user': uid != public_id, 'email': email, 'is_follower': False, + 'alias_name': False, } if not obj: @@ -97,8 +98,5 @@ class WebsiteMail(http.Controller): ('res_id', '=', obj_ids[0]), ('partner_id', '=', partner_id.id) ], context=context)) == 1 - if post.get('fields'): - record = obj.read(cr, SUPERUSER_ID, obj_ids[0], fields=post.get('fields'), context=context) - values.update(record) return values diff --git a/addons/website_mail/views/snippets.xml b/addons/website_mail/views/snippets.xml index 8a737b98927..ebbcf6d4a70 100644 --- a/addons/website_mail/views/snippets.xml +++ b/addons/website_mail/views/snippets.xml @@ -493,53 +493,5 @@ - - - diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml index 2882125de67..6202e00342b 100644 --- a/addons/website_mail/views/website_mail.xml +++ b/addons/website_mail/views/website_mail.xml @@ -21,8 +21,6 @@ diff --git a/addons/website_mail_group/__openerp__.py b/addons/website_mail_group/__openerp__.py index f83fc38ce7c..768e7f27156 100644 --- a/addons/website_mail_group/__openerp__.py +++ b/addons/website_mail_group/__openerp__.py @@ -11,7 +11,8 @@ OpenERP Mail Group : Mailing List Archives 'author': 'OpenERP SA', 'depends': ['website_mail'], 'data': [ - 'views/website_mail_group.xml' + 'views/website_mail_group.xml', + 'views/snippets.xml', ], 'qweb': [], 'installable': True, diff --git a/addons/website_mail_group/controllers/main.py b/addons/website_mail_group/controllers/main.py index 7320ebc6548..a28b808d9f2 100644 --- a/addons/website_mail_group/controllers/main.py +++ b/addons/website_mail_group/controllers/main.py @@ -129,3 +129,9 @@ class MailGroup(http.Controller): 'replies_per_page': self._replies_per_page, } return request.registry['ir.ui.view'].render(request.cr, request.uid, 'website_mail_group.messages_short', values, engine='ir.qweb', context=request.context) + + @http.route("/groups//get_alias_info", type='json', auth='public', website=True) + def get_alias_info(self, group, **post): + return { + 'alias_name': group.alias_id and group.alias_id.alias_name and group.alias_id.alias_domain and '%s@%s' % (group.alias_id.alias_name, group.alias_id.alias_domain) or False + } diff --git a/addons/website_mail/static/src/js/website_mail.editor.js b/addons/website_mail_group/static/src/js/website_mail_group.editor.js similarity index 100% rename from addons/website_mail/static/src/js/website_mail.editor.js rename to addons/website_mail_group/static/src/js/website_mail_group.editor.js diff --git a/addons/website_mail/static/src/js/website_mail.js b/addons/website_mail_group/static/src/js/website_mail_group.snippet.js similarity index 67% rename from addons/website_mail/static/src/js/website_mail.js rename to addons/website_mail_group/static/src/js/website_mail_group.snippet.js index d069f88ea45..fc0e2bb864f 100644 --- a/addons/website_mail/static/src/js/website_mail.js +++ b/addons/website_mail_group/static/src/js/website_mail_group.snippet.js @@ -12,15 +12,12 @@ openerp.jsonRpc('/website_mail/is_follower', 'call', { model: this.$target.data('object'), id: this.$target.data('id'), - fields: ['name', 'alias_id'], + get_alias_info: true, }).always(function (data) { self.is_user = data.is_user; - self.$target.find('.js_mg_email').attr('href', 'mailto:' + data.alias_id[1]); - self.$target.find('.js_mg_link').attr('href', '/groups/' + data.id); - self.toggle_subscription(data.is_follower); - self.$target.find('input.js_follow_email') - .val(data.email ? data.email : "") - .attr("disabled", data.is_follower || (data.email.length && self.is_user) ? "disabled" : false); + self.email = data.email; + self.$target.find('.js_mg_link').attr('href', '/groups/' + self.$target.data('id')); + self.toggle_subscription(data.is_follower, data.email); self.$target.removeClass("hidden"); }); @@ -36,6 +33,7 @@ return; }, on_click: function () { + event.preventDefault(); var self = this; var $email = this.$target.find(".js_follow_email"); @@ -51,10 +49,11 @@ 'message_is_follower': this.$target.attr("data-follow") || "off", 'email': $email.length ? $email.val() : false, }).then(function (follow) { - self.toggle_subscription(follow); + self.toggle_subscription(follow, self.email); }); }, - toggle_subscription: function(follow) { + toggle_subscription: function(follow, email) { + var alias_done = this.get_alias_info(); if (follow) { this.$target.find(".js_mg_follow_form").addClass("hidden"); this.$target.find(".js_mg_details").removeClass("hidden"); @@ -63,9 +62,27 @@ this.$target.find(".js_mg_follow_form").removeClass("hidden"); this.$target.find(".js_mg_details").addClass("hidden"); } - this.$target.find('input.js_follow_email').attr("disabled", follow || this.is_user ? "disabled" : false); + this.$target.find('input.js_follow_email') + .val(email ? email : "") + .attr("disabled", follow || (email.length && this.is_user) ? "disabled" : false); this.$target.attr("data-follow", follow ? 'on' : 'off'); + return $.when(alias_done); }, + get_alias_info: function() { + var self = this; + if (! this.$target.data('id')) { + return $.Deferred().resolve(); + } + return openerp.jsonRpc('/groups/' + this.$target.data('id') + '/get_alias_info', 'call', {}).then(function (data) { + if (data.alias_name) { + self.$target.find('.js_mg_email').attr('href', 'mailto:' + data.alias_name); + self.$target.find('.js_mg_email').removeClass('hidden'); + } + else { + self.$target.find('.js_mg_email').addClass('hidden'); + } + }); + } }); $(document).ready(function () { diff --git a/addons/website_mail_group/views/snippets.xml b/addons/website_mail_group/views/snippets.xml new file mode 100644 index 00000000000..56ba81d81b3 --- /dev/null +++ b/addons/website_mail_group/views/snippets.xml @@ -0,0 +1,53 @@ + + + + + + + + \ No newline at end of file diff --git a/addons/website_mail_group/views/website_mail_group.xml b/addons/website_mail_group/views/website_mail_group.xml index 76edd524753..1c0ee08edd4 100644 --- a/addons/website_mail_group/views/website_mail_group.xml +++ b/addons/website_mail_group/views/website_mail_group.xml @@ -8,6 +8,13 @@ + +