diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py index 88bf93fbda4..ea0befff81a 100644 --- a/addons/website_mail/controllers/main.py +++ b/addons/website_mail/controllers/main.py @@ -35,7 +35,7 @@ class WebsiteMail(http.Controller): if email and email != u'false': # post contains stringified booleans partner_ids = partner_obj.search(request.cr, SUPERUSER_ID, [("email", "=", email)], context=request.context) if not partner_ids: - partner_ids = [partner_obj.name_create(request.cr, SUPERUSER_ID, email, request.context)] + partner_ids = [partner_obj.name_create(request.cr, SUPERUSER_ID, email, request.context)[0]] else: partner_ids = [user_obj.browse(request.cr, request.uid, request.uid, request.context).partner_id.id] return partner_ids @@ -54,5 +54,6 @@ class WebsiteMail(http.Controller): _object.check_access_rule(request.cr, request.uid, [_id], 'read', request.context) _object.message_subscribe(request.cr, SUPERUSER_ID, [_id], partner_ids, context=request.context) obj = _object.browse(request.cr, request.uid, _id) + follower_ids = [p.id for p in obj.message_follower_ids] - return obj.message_is_follower and 1 or 0 + return partner_ids[0] in follower_ids and 1 or 0 diff --git a/addons/website_mail/static/src/js/website_mail.js b/addons/website_mail/static/src/js/website_mail.js index cfd3e16d1ec..99acd3f939b 100644 --- a/addons/website_mail/static/src/js/website_mail.js +++ b/addons/website_mail/static/src/js/website_mail.js @@ -1,12 +1,12 @@ $(document).ready(function () { - $(document).on('click', '.js_follow_btn', function (ev) { + $(document).on('click', '.js_follow_btn, .js_unfollow_btn', function (ev) { ev.preventDefault(); - var self = this; + var self = this; var $data = $(this).parents("div.js_follow"); - var $email = $(".js_follow_email", $data); - var message_is_follower = $data.attr("data-follow"); + var $email = $data.find(".js_follow_email"); + var message_is_follower = $data.attr("data-follow") || "off"; $data.attr("data-follow", message_is_follower == 'off' ? 'on' : 'off'); openerp.jsonRpc('/website_mail/follow', 'call', { @@ -15,12 +15,10 @@ $(document).ready(function () { 'message_is_follower': message_is_follower, 'email': $email && $email.val() || false, }).then(function (result) { - if (result) { - $data.html('
Thanks for your subscription!
') - } else { - $data.attr("data-follow", + result ? 'on' : 'off'); - $(self).text('Subscribe') - } + if (result) { + $data.find(" > *").toggleClass("hidden"); + } + $data.attr("data-follow", result ? 'on' : 'off'); }); }); diff --git a/addons/website_mail/views/website_mail.xml b/addons/website_mail/views/website_mail.xml index 2a2253794f3..244ac4b28c2 100644 --- a/addons/website_mail/views/website_mail.xml +++ b/addons/website_mail/views/website_mail.xml @@ -12,18 +12,17 @@ t-att-value="email or ''" placeholder="your email..."/> - + + +