diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-11-16 17:51:02 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-11-16 17:56:31 +0100 |
commit | 2c766bd4b4c6dcf8e7c9a6dd9421edca0de57aba (patch) | |
tree | d84f472de5ff84502928fec8582be492c45a6faf /app/controllers | |
parent | 01e43c3e5799b575a70798056945365ddf51f3ad (diff) |
Add user locale setting
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/application_controller.rb | 7 | ||||
-rw-r--r-- | app/controllers/settings/preferences_controller.rb | 4 |
2 files changed, 9 insertions, 2 deletions
diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index c7a99b22f..f9aeb127a 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -13,6 +13,7 @@ class ApplicationController < ActionController::Base rescue_from ActiveRecord::RecordNotFound, with: :not_found before_action :store_current_location, except: :raise_not_found, unless: :devise_controller? + before_action :set_locale, if: 'user_signed_in?' def raise_not_found raise ActionController::RoutingError, "No route matches #{params[:unmatched_route]}" @@ -24,6 +25,12 @@ class ApplicationController < ActionController::Base store_location_for(:user, request.url) end + def set_locale + I18n.locale = current_user.locale || I18n.default_locale + rescue I18n::InvalidLocale + I18n.locale = I18n.default_locale + end + protected def not_found diff --git a/app/controllers/settings/preferences_controller.rb b/app/controllers/settings/preferences_controller.rb index 4dc2cd61f..5be8719ae 100644 --- a/app/controllers/settings/preferences_controller.rb +++ b/app/controllers/settings/preferences_controller.rb @@ -14,7 +14,7 @@ class Settings::PreferencesController < ApplicationController current_user.settings(:notification_emails).favourite = user_params[:notification_emails][:favourite] == '1' current_user.settings(:notification_emails).mention = user_params[:notification_emails][:mention] == '1' - if current_user.save + if current_user.update(user_params.except(:notification_emails)) redirect_to settings_preferences_path, notice: I18n.t('generic.changes_saved_msg') else render action: :show @@ -24,6 +24,6 @@ class Settings::PreferencesController < ApplicationController private def user_params - params.require(:user).permit(notification_emails: [:follow, :reblog, :favourite, :mention]) + params.require(:user).permit(:locale, notification_emails: [:follow, :reblog, :favourite, :mention]) end end |