summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/subscription.js.es6
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/subscription.js.es6')
-rw-r--r--app/assets/javascripts/subscription.js.es650
1 files changed, 0 insertions, 50 deletions
diff --git a/app/assets/javascripts/subscription.js.es6 b/app/assets/javascripts/subscription.js.es6
deleted file mode 100644
index 62d1604fe9e..00000000000
--- a/app/assets/javascripts/subscription.js.es6
+++ /dev/null
@@ -1,50 +0,0 @@
-/* global Vue */
-
-(() => {
- class Subscription {
- constructor(containerElm) {
- this.containerElm = containerElm;
-
- const subscribeButton = containerElm.querySelector('.js-subscribe-button');
- if (subscribeButton) {
- // remove class so we don't bind twice
- subscribeButton.classList.remove('js-subscribe-button');
- subscribeButton.addEventListener('click', this.toggleSubscription.bind(this));
- }
- }
-
- toggleSubscription(event) {
- const button = event.currentTarget;
- const buttonSpan = button.querySelector('span');
- if (!buttonSpan || button.classList.contains('disabled')) {
- return;
- }
- button.classList.add('disabled');
-
- const isSubscribed = buttonSpan.innerHTML.trim().toLowerCase() !== 'subscribe';
- const toggleActionUrl = this.containerElm.dataset.url;
-
- $.post(toggleActionUrl, () => {
- button.classList.remove('disabled');
-
- // hack to allow this to work with the issue boards Vue object
- if (document.querySelector('html').classList.contains('issue-boards-page')) {
- Vue.set(
- gl.issueBoards.BoardsStore.detail.issue,
- 'subscribed',
- !gl.issueBoards.BoardsStore.detail.issue.subscribed,
- );
- } else {
- buttonSpan.innerHTML = isSubscribed ? 'Subscribe' : 'Unsubscribe';
- }
- });
- }
-
- static bindAll(selector) {
- [].forEach.call(document.querySelectorAll(selector), elm => new Subscription(elm));
- }
- }
-
- window.gl = window.gl || {};
- window.gl.Subscription = Subscription;
-})();