summaryrefslogtreecommitdiff
path: root/addons/website_mail/static/src/js/website_mail.js
diff options
context:
space:
mode:
Diffstat (limited to 'addons/website_mail/static/src/js/website_mail.js')
-rw-r--r--addons/website_mail/static/src/js/website_mail.js42
1 files changed, 30 insertions, 12 deletions
diff --git a/addons/website_mail/static/src/js/website_mail.js b/addons/website_mail/static/src/js/website_mail.js
index bd34b526ddd..d069f88ea45 100644
--- a/addons/website_mail/static/src/js/website_mail.js
+++ b/addons/website_mail/static/src/js/website_mail.js
@@ -7,17 +7,20 @@
selector: ".js_follow",
start: function (editable_mode) {
var self = this;
+ this.is_user = false;
- // set value and display button
- self.$target.find("input").removeClass("hidden");
openerp.jsonRpc('/website_mail/is_follower', 'call', {
model: this.$target.data('object'),
- id: +this.$target.data('id'),
+ id: this.$target.data('id'),
+ fields: ['name', 'alias_id'],
}).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 ? "disabled" : false);
- self.$target.attr("data-follow", data.is_follower ? 'on' : 'off');
+ .attr("disabled", data.is_follower || (data.email.length && self.is_user) ? "disabled" : false);
self.$target.removeClass("hidden");
});
@@ -30,10 +33,11 @@
self.on_click();
});
}
+ return;
},
on_click: function () {
var self = this;
- var $email = this.$target.find(".js_follow_email:visible");
+ var $email = this.$target.find(".js_follow_email");
if ($email.length && !$email.val().match(/.+@.+/)) {
this.$target.addClass('has-error');
@@ -47,13 +51,27 @@
'message_is_follower': this.$target.attr("data-follow") || "off",
'email': $email.length ? $email.val() : false,
}).then(function (follow) {
- if (follow) {
- self.$target.find(".js_follow_email, .input-group-btn").addClass("hidden");
- self.$target.find(".alert").removeClass("hidden");
- }
- self.$target.find('input.js_follow_email').attr("disabled", follow ? "disabled" : false);
- self.$target.attr("data-follow", follow ? 'on' : 'off');
+ self.toggle_subscription(follow);
});
},
+ toggle_subscription: function(follow) {
+ if (follow) {
+ this.$target.find(".js_mg_follow_form").addClass("hidden");
+ this.$target.find(".js_mg_details").removeClass("hidden");
+ }
+ else {
+ 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.attr("data-follow", follow ? 'on' : 'off');
+ },
+ });
+
+ $(document).ready(function () {
+ $('.js_follow_btn').on('click', function (ev) {
+ var email = $(ev.currentTarget).parents('.js_mg_follow_form').first().find('.js_follow_email').val();
+ $(document).find('.js_follow_email').val(email);
+ });
});
})();