2017-10-23 09:05:53 -04:00
|
|
|
export default class GroupLabelSubscription {
|
2017-03-11 02:30:44 -05:00
|
|
|
constructor(container) {
|
|
|
|
const $container = $(container);
|
|
|
|
this.$dropdown = $container.find('.dropdown');
|
|
|
|
this.$subscribeButtons = $container.find('.js-subscribe-button');
|
|
|
|
this.$unsubscribeButtons = $container.find('.js-unsubscribe-button');
|
|
|
|
|
|
|
|
this.$subscribeButtons.on('click', this.subscribe.bind(this));
|
|
|
|
this.$unsubscribeButtons.on('click', this.unsubscribe.bind(this));
|
2016-11-15 16:59:12 -05:00
|
|
|
}
|
|
|
|
|
2017-03-11 02:30:44 -05:00
|
|
|
unsubscribe(event) {
|
|
|
|
event.preventDefault();
|
|
|
|
|
|
|
|
const url = this.$unsubscribeButtons.attr('data-url');
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
type: 'POST',
|
2017-10-23 09:05:53 -04:00
|
|
|
url,
|
2017-03-11 02:30:44 -05:00
|
|
|
}).done(() => {
|
|
|
|
this.toggleSubscriptionButtons();
|
|
|
|
this.$unsubscribeButtons.removeAttr('data-url');
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
subscribe(event) {
|
|
|
|
event.preventDefault();
|
|
|
|
|
|
|
|
const $btn = $(event.currentTarget);
|
|
|
|
const url = $btn.attr('data-url');
|
|
|
|
|
|
|
|
this.$unsubscribeButtons.attr('data-url', url);
|
|
|
|
|
|
|
|
$.ajax({
|
|
|
|
type: 'POST',
|
2017-10-23 09:05:53 -04:00
|
|
|
url,
|
2017-03-11 02:30:44 -05:00
|
|
|
}).done(() => {
|
|
|
|
this.toggleSubscriptionButtons();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
toggleSubscriptionButtons() {
|
|
|
|
this.$dropdown.toggleClass('hidden');
|
|
|
|
this.$subscribeButtons.toggleClass('hidden');
|
|
|
|
this.$unsubscribeButtons.toggleClass('hidden');
|
|
|
|
}
|
|
|
|
}
|