Add user locale setting
This commit is contained in:
parent
01e43c3e57
commit
2c766bd4b4
10 changed files with 49 additions and 13 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue