summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/notifications_dropdown.js.coffee
diff options
context:
space:
mode:
authorDouwe Maan <douwe@gitlab.com>2016-06-17 23:28:22 +0000
committerDouwe Maan <douwe@gitlab.com>2016-06-17 23:28:22 +0000
commit00906b5bb6cde8cb60281109060a519a54000c61 (patch)
treef251efc0af4bebc2920c3ac4fc1398759cc490f9 /app/assets/javascripts/notifications_dropdown.js.coffee
parent33d8972bf96d490e0a67750491249abf3d2e0d54 (diff)
parent4b204f071e4b626d4034fe431cebc902ae6caa78 (diff)
downloadgitlab-ce-00906b5bb6cde8cb60281109060a519a54000c61.tar.gz
Merge branch 'issue_12758' into 'master'
Implement custom notification level options ![Screen_Shot_2016-06-17_at_15.31.43](/uploads/3fc47d2f461b3e8b67bb8acaa304cf99/Screen_Shot_2016-06-17_at_15.31.43.png) ![Screenshot_from_2016-06-15_10-52-27](/uploads/88dbdd21d97e80ee772fe08fa0c9b393/Screenshot_from_2016-06-15_10-52-27.png) part of #12758 See merge request !4389
Diffstat (limited to 'app/assets/javascripts/notifications_dropdown.js.coffee')
-rw-r--r--app/assets/javascripts/notifications_dropdown.js.coffee24
1 files changed, 24 insertions, 0 deletions
diff --git a/app/assets/javascripts/notifications_dropdown.js.coffee b/app/assets/javascripts/notifications_dropdown.js.coffee
new file mode 100644
index 00000000000..74d2298c1fa
--- /dev/null
+++ b/app/assets/javascripts/notifications_dropdown.js.coffee
@@ -0,0 +1,24 @@
+class @NotificationsDropdown
+ $ ->
+ $(document)
+ .off 'click', '.update-notification'
+ .on 'click', '.update-notification', (e) ->
+ e.preventDefault()
+
+ return if $(this).is('.is-active') and $(this).data('notification-level') is 'custom'
+
+ notificationLevel = $(@).data 'notification-level'
+ label = $(@).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)
+ form.submit()
+
+ $(document)
+ .off 'ajax:success', '.notification-form'
+ .on 'ajax:success', '.notification-form', (e, data) ->
+ if data.saved
+ new Flash('Notification settings saved', 'notice')
+ $(e.currentTarget).closest('.notification-dropdown').replaceWith(data.html)
+ else
+ new Flash('Failed to save new settings', 'alert')