]> cat aescling's git repositories - mastodon.git/blob - app/controllers/settings/preferences_controller.rb
Set @body_classes to admin layout (#9081)
[mastodon.git] / app / controllers / settings / preferences_controller.rb
1 # frozen_string_literal: true
2
3 class Settings::PreferencesController < ApplicationController
4 layout 'admin'
5
6 before_action :authenticate_user!
7 before_action :set_body_classes
8
9 def show; end
10
11 def update
12 user_settings.update(user_settings_params.to_h)
13
14 if current_user.update(user_params)
15 I18n.locale = current_user.locale
16 redirect_to settings_preferences_path, notice: I18n.t('generic.changes_saved_msg')
17 else
18 render :show
19 end
20 end
21
22 private
23
24 def user_settings
25 UserSettingsDecorator.new(current_user)
26 end
27
28 def user_params
29 params.require(:user).permit(
30 :locale,
31 chosen_languages: []
32 )
33 end
34
35 def user_settings_params
36 params.require(:user).permit(
37 :setting_default_privacy,
38 :setting_default_sensitive,
39 :setting_default_language,
40 :setting_unfollow_modal,
41 :setting_boost_modal,
42 :setting_delete_modal,
43 :setting_auto_play_gif,
44 :setting_display_media,
45 :setting_expand_spoilers,
46 :setting_reduce_motion,
47 :setting_system_font_ui,
48 :setting_noindex,
49 :setting_theme,
50 :setting_hide_network,
51 notification_emails: %i(follow follow_request reblog favourite mention digest report),
52 interactions: %i(must_be_follower must_be_following)
53 )
54 end
55
56 def set_body_classes
57 @body_classes = 'admin'
58 end
59 end
This page took 0.083551 seconds and 4 git commands to generate.