diff options
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/profiles/notifications_controller.rb | 24 |
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 |