diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py index 8cdb73030a8e294dffc6ac5902c1376937f06545..081ba93b8b44c986ffc4de733d19cd6f43890d2a 100644 --- a/addons/website_mail/controllers/main.py +++ b/addons/website_mail/controllers/main.py @@ -100,20 +100,3 @@ class WebsiteMail(http.Controller): ], context=context)) == 1 return values - - @http.route(['/website_mail/get_alias_info'], type='json', auth='public', website=True) - def get_alias_info(self, model, id, **post): - id = int(id) - cr, uid, context = request.cr, request.uid, request.context - obj = request.registry.get(model) - - values = {'alias_name': False} - - if not obj: - return values - obj_ids = obj.exists(cr, SUPERUSER_ID, [id], context=context) - if obj_ids and 'alias_id' in obj._all_columns: - alias_id = obj.browse(cr, SUPERUSER_ID, obj_ids[0], context=context).alias_id - values['alias_name'] = alias_id and alias_id.alias_domain and '%s@%s' % (alias_id.alias_name, alias_id.alias_domain) or False - - return values diff --git a/addons/website_mail/views/snippets.xml b/addons/website_mail/views/snippets.xml index 8a737b98927d2b20526a44d2c27049c6f5169f17..ebbcf6d4a70850facd34d0f85e29010bd6136c02 100644 --- a/addons/website_mail/views/snippets.xml +++ b/addons/website_mail/views/snippets.xml @@ -493,53 +493,5 @@ </template> - -<template id="subscribe" inherit_id="website.snippets" name="Snippet Subscribe"> - - <xpath expr="//div[@id='snippet_content']" position="inside"> - <div> - <div class="oe_snippet_thumbnail"> - <img class="oe_snippet_thumbnail_img" src="/website_mail/static/src/img/blocks/button_group_subscribe.png"/> - <span class="oe_snippet_thumbnail_title">Discussion Group</span> - </div> - - <div class="oe_snippet_body js_follow" - data-id="0" - data-object="mail.group" - data-follow="off"> - <div class="input-group js_mg_follow_form"> - <input - type="email" - name="email" - class="js_follow_email form-control" - placeholder="your email..."/> - <span class="input-group-btn"> - <button href="#" class="btn btn-primary js_follow_btn">Subscribe</button> - </span> - </div> - <p class="js_mg_details hidden well well-sm"> - <i class="fa fa-envelope-o"/><a href="#" class="js_mg_email"> send mail</a> - - <i class="fa fa-file-o"/><a href="#" class="js_mg_link"> archives</a> - - <i class="fa fa-times"/><a href="#" class="js_unfollow_btn"> unsubscribe</a> - </p> - </div> - - </div> - </xpath> - - - <xpath expr="//div[@id='snippet_options']" position="inside"> - <div data-snippet-option-id='subscribe' - data-selector=".js_follow" - data-selector-siblings="p, h1, h2, h3, blockquote, .well, .panel" - > - <li> - <a href="#" class="button js_mailing_list">Change Discussion List</a> - </li> - </div> - </xpath> - -</template> - </data> </openerp> diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml index 2882125de677352417259a3b4b9af2447e88128d..6202e00342bf68a746da15b6d0e05a13b1c2ec8b 100644 --- a/addons/website_mail/views/website_mail.xml +++ b/addons/website_mail/views/website_mail.xml @@ -21,8 +21,6 @@ <template id="head" inherit_id="website.layout" name="Mail customization"> <xpath expr="//head" position="inside"> - <script type="text/javascript" src="/website_mail/static/src/js/website_mail.editor.js" groups="base.group_website_publisher"></script> - <script type="text/javascript" src="/website_mail/static/src/js/website_mail.js"></script> <link rel='stylesheet' href='/website_mail/static/src/css/website_mail.css'/> </xpath> </template> diff --git a/addons/website_mail_group/__openerp__.py b/addons/website_mail_group/__openerp__.py index f83fc38ce7c8eb04cfaed8ea8e3cb6cec0707310..768e7f271560b3d145614cb290c909cd3aa7596f 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 7320ebc6548a2b4e2c64ae68f68054c38453f95f..a28b808d9f2f9e28138568217fe812511d6cc6cf 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/<model('mail.group'):group>/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 84% 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 2a79bccccc5fcfb87c1ca24bc7b1139234009d3f..fc0e2bb864ff1986b91775f851d5e2368260e72c 100644 --- a/addons/website_mail/static/src/js/website_mail.js +++ b/addons/website_mail_group/static/src/js/website_mail_group.snippet.js @@ -33,6 +33,7 @@ return; }, on_click: function () { + event.preventDefault(); var self = this; var $email = this.$target.find(".js_follow_email"); @@ -69,11 +70,17 @@ }, get_alias_info: function() { var self = this; - return openerp.jsonRpc('/website_mail/get_alias_info', 'call', { - model: this.$target.data('object'), - id: this.$target.data('id'), - }).then(function (data) { - self.$target.find('.js_mg_email').attr('href', 'mailto:' + data.alias_name); + 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'); + } }); } }); diff --git a/addons/website_mail_group/views/snippets.xml b/addons/website_mail_group/views/snippets.xml new file mode 100644 index 0000000000000000000000000000000000000000..56ba81d81b3ad9ca1107c383272c7475978357d4 --- /dev/null +++ b/addons/website_mail_group/views/snippets.xml @@ -0,0 +1,53 @@ +<?xml version="1.0" encoding="utf-8"?> +<openerp> +<data> + +<template id="subscribe" inherit_id="website.snippets" name="Snippet Subscribe"> + + <xpath expr="//div[@id='snippet_content']" position="inside"> + <div> + <div class="oe_snippet_thumbnail"> + <img class="oe_snippet_thumbnail_img" src="/website_mail/static/src/img/blocks/button_group_subscribe.png"/> + <span class="oe_snippet_thumbnail_title">Discussion Group</span> + </div> + + <div class="oe_snippet_body js_follow" + data-id="0" + data-object="mail.group" + data-follow="off"> + <div class="input-group js_mg_follow_form"> + <input + type="email" + name="email" + class="js_follow_email form-control" + placeholder="your email..."/> + <span class="input-group-btn"> + <button href="#" class="btn btn-primary js_follow_btn">Subscribe</button> + </span> + </div> + <p class="js_mg_details hidden well well-sm"> + <span class="js_mg_email hidden"><i class="fa fa-envelope-o"/><a href="#" class="js_mg_email"> send mail</a> - </span> + <i class="fa fa-file-o"/><a href="#" class="js_mg_link"> archives</a> - + <i class="fa fa-times"/><a href="#" class="js_unfollow_btn"> unsubscribe</a> + </p> + </div> + + </div> + </xpath> + + + <xpath expr="//div[@id='snippet_options']" position="inside"> + <div data-snippet-option-id='subscribe' + data-selector=".js_follow" + data-selector-siblings="p, h1, h2, h3, blockquote, .well, .panel" + > + <li> + <a href="#" class="button js_mailing_list">Change Discussion List</a> + </li> + </div> + </xpath> + +</template> + +</data> +</openerp> \ 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 76edd5247536de81f18499a9932689dd495ec20d..1c0ee08edd4c20fa6b45338c9987f8113df295de 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 @@ </xpath> </template> +<template id="head" inherit_id="website.layout" name="Mail Group Customization"> + <xpath expr="//head" position="inside"> + <script type="text/javascript" src="/website_mail_group/static/src/js/website_mail_group.editor.js" groups="base.group_website_publisher"></script> + <script type="text/javascript" src="/website_mail_group/static/src/js/website_mail_group.snippet.js"></script> + </xpath> +</template> + <template id="mail_groups" name="Mailing Lists"> <t t-call="website.layout"> <div id="wrap" class="oe_structure oe_empty"> @@ -23,8 +30,10 @@ <div class="col-md-3"> <img t-att-src="'/website/image?model=mail.group&field=image_small&id='+str(group['id'])" class="pull-left"/> <strong><a t-attf-href="/groups/#{ slug(group) }" t-esc="group.name"/></strong><br /> - <i class='fa fa-envelope-o'/> - <a t-attf-href="mailto:#{group.alias_id.alias_name}@#{group.alias_id.alias_domain}"><span t-field="group.alias_id"/></a> + <t t-if="group.alias_id and group.alias_id.alias_name and group.alias_id.alias_domain"> + <i class='fa fa-envelope-o'/> + <a t-attf-href="mailto:#{group.alias_id.alias_name}@#{group.alias_id.alias_domain}"><span t-field="group.alias_id"/></a> + </t> </div> <div class="col-md-4"> <div t-esc="group.description" class="text-muted"/> @@ -59,7 +68,7 @@ <div class="row"> <h1 class="text-center"> <t t-esc="group.name"/> mailing list archives - </h1><h4 class="text-center text-muted"> + </h1><h4 class="text-center text-muted" t-if="group.alias_id and group.alias_id.alias_name and group.alias_id.alias_domain"> <i class='fa fa-envelope-o'/> <a t-attf-href="mailto:#{group.alias_id.alias_name}@#{group.alias_id.alias_domain}"><span t-field="group.alias_id"/></a> </h4> @@ -123,7 +132,7 @@ <div class="row"> <h1 class="text-center"> <t t-esc="group.name"/> mailing list archives - </h1><h4 class="text-center text-muted"> + </h1><h4 class="text-center text-muted" t-if="group.alias_id and group.alias_id.alias_name and group.alias_id.alias_domain"> <i class='fa fa-envelope-o'/> <a t-attf-href="mailto:#{group.alias_id.alias_name}@#{group.alias_id.alias_domain}"><span t-field="group.alias_id"/></a> </h4>