summaryrefslogtreecommitdiff
path: root/app/controllers/profiles/notifications_controller.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/profiles/notifications_controller.rb')
-rw-r--r--app/controllers/profiles/notifications_controller.rb24
1 files changed, 20 insertions, 4 deletions
diff --git a/app/controllers/profiles/notifications_controller.rb b/app/controllers/profiles/notifications_controller.rb
index 18ee55c839a..1e9ceb87857 100644
--- a/app/controllers/profiles/notifications_controller.rb
+++ b/app/controllers/profiles/notifications_controller.rb
@@ -1,12 +1,13 @@
class Profiles::NotificationsController < Profiles::ApplicationController
def show
- @user = current_user
- @group_notifications = current_user.notification_settings.for_groups
- @project_notifications = current_user.notification_settings.for_projects
+ @user = current_user
+ @group_notifications = current_user.notification_settings.for_groups
+ @project_notifications = current_user.notification_settings.for_projects
+ @global_notification_setting = current_user.global_notification_setting
end
def update
- if current_user.update_attributes(user_params)
+ if current_user.update_attributes(user_params) && update_notification_settings
flash[:notice] = "Notification settings saved"
else
flash[:alert] = "Failed to save new settings"
@@ -18,4 +19,19 @@ class Profiles::NotificationsController < Profiles::ApplicationController
def user_params
params.require(:user).permit(:notification_email, :notification_level)
end
+
+ def notification_params
+ params.require(:notification_level)
+ end
+
+ private
+
+ def update_notification_settings
+ return true unless notification_params
+
+ notification_setting = current_user.global_notification_setting
+ notification_setting.level = notification_params
+
+ notification_setting.save
+ end
end