Welcome to mirror list, hosted at ThFree Co, Russian Federation.

subscription.js « javascripts « assets « app - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 5e3c5983d754e9b16a93edcf0596914a257ec412 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
(function() {
  var bind = function(fn, me){ return function(){ return fn.apply(me, arguments); }; };

  this.Subscription = (function() {
    function Subscription(container) {
      this.toggleSubscription = bind(this.toggleSubscription, this);
      var $container;
      $container = $(container);
      this.url = $container.attr('data-url');
      this.subscribe_button = $container.find('.js-subscribe-button');
      this.subscription_status = $container.find('.subscription-status');
      this.subscribe_button.unbind('click').click(this.toggleSubscription);
    }

    Subscription.prototype.toggleSubscription = function(event) {
      var action, btn, current_status;
      btn = $(event.currentTarget);
      action = btn.find('span').text();
      current_status = this.subscription_status.attr('data-status');
      btn.addClass('disabled');
      return $.post(this.url, (function(_this) {
        return function() {
          var status;
          btn.removeClass('disabled');
          status = current_status === 'subscribed' ? 'unsubscribed' : 'subscribed';
          _this.subscription_status.attr('data-status', status);
          action = status === 'subscribed' ? 'Unsubscribe' : 'Subscribe';
          btn.find('span').text(action);
          _this.subscription_status.find('>div').toggleClass('hidden');
          if (btn.attr('data-original-title')) {
            return btn.tooltip('hide').attr('data-original-title', action).tooltip('fixTitle');
          }
        };
      })(this));
    };

    return Subscription;

  })();

}).call(this);