summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/notifications_dropdown.js
blob: a41e9d3fabecd223247fb7b6b57d04d30642d797 (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
(function() {
  this.NotificationsDropdown = (function() {
    function NotificationsDropdown() {
      $(document).off('click', '.update-notification').on('click', '.update-notification', function(e) {
        var form, label, notificationLevel;
        e.preventDefault();
        if ($(this).is('.is-active') && $(this).data('notification-level') === 'custom') {
          return;
        }
        notificationLevel = $(this).data('notification-level');
        label = $(this).data('notification-title');
        form = $(this).parents('.notification-form:first');
        form.find('.js-notification-loading').toggleClass('fa-bell fa-spin fa-spinner');
        form.find('#notification_setting_level').val(notificationLevel);
        return form.submit();
      });
      $(document).off('ajax:success', '.notification-form').on('ajax:success', '.notification-form', function(e, data) {
        if (data.saved) {
          return $(e.currentTarget).closest('.notification-dropdown').replaceWith(data.html);
        } else {
          return new Flash('Failed to save new settings', 'alert');
        }
      });
    }

    return NotificationsDropdown;

  })();

}).call(this);