2   class BasicPreferencesController < PreferencesController
 
   6       if params[:language] != I18n.locale.to_s
 
   7         matching_languages, other_languages = current_user.languages.partition do |language|
 
   8           Locale.available.preferred(Locale.list([language]), :default => nil).to_s == params[:language]
 
  11         current_user.languages = [params[:language]]
 
  13         current_user.languages += (matching_languages - [params[:language]]) + other_languages unless matching_languages.empty?
 
  16       if params.dig(:user, :preferred_editor)
 
  17         current_user.preferred_editor = if params[:user][:preferred_editor] == "default"
 
  20                                           params[:user][:preferred_editor]
 
  24       success = current_user.save
 
  26       if params[:site_color_scheme]
 
  27         site_color_scheme_preference = current_user.preferences.find_or_create_by(:k => "site.color_scheme")
 
  28         success &= site_color_scheme_preference.update(:v => params[:site_color_scheme])
 
  31       if params[:map_color_scheme]
 
  32         map_color_scheme_preference = current_user.preferences.find_or_create_by(:k => "map.color_scheme")
 
  33         success &= map_color_scheme_preference.update(:v => params[:map_color_scheme])