]> git.openstreetmap.org Git - rails.git/blob - app/controllers/preferences/basic_preferences_controller.rb
Add frozen_string_literal comments to ruby files
[rails.git] / app / controllers / preferences / basic_preferences_controller.rb
1 # frozen_string_literal: true
2
3 module Preferences
4   class BasicPreferencesController < PreferencesController
5     private
6
7     def update_preferences
8       if params[:language] != I18n.locale.to_s
9         matching_languages, other_languages = current_user.languages.partition do |language|
10           Locale.available.preferred(Locale.list([language]), :default => nil).to_s == params[:language]
11         end
12
13         current_user.languages = [params[:language]]
14
15         current_user.languages += (matching_languages - [params[:language]]) + other_languages unless matching_languages.empty?
16       end
17
18       if params.dig(:user, :preferred_editor)
19         current_user.preferred_editor = if params[:user][:preferred_editor] == "default"
20                                           nil
21                                         else
22                                           params[:user][:preferred_editor]
23                                         end
24       end
25
26       success = current_user.save
27
28       if params[:site_color_scheme]
29         site_color_scheme_preference = current_user.preferences.find_or_create_by(:k => "site.color_scheme")
30         success &= site_color_scheme_preference.update(:v => params[:site_color_scheme])
31       end
32
33       if params[:map_color_scheme]
34         map_color_scheme_preference = current_user.preferences.find_or_create_by(:k => "map.color_scheme")
35         success &= map_color_scheme_preference.update(:v => params[:map_color_scheme])
36       end
37
38       success
39     end
40   end
41 end