class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
# Override build_footer method in ActiveAdmin::Views::Pages
require 'active_admin_views_pages_base.rb'
rescue_from CanCan::AccessDenied do |exception|
redirect_to root_url, :alert => exception.message
end
before_filter :set_locale
after_filter :store_location
def set_locale
logger.debug(I18n.default_locale)
# parameter from url takes precedence
# check if locale is defined
if params[:locale] # and I18n.available_locales.include? params[:locale] # throw an error if not available
# if locales data is present in the parameter from url use it
I18n.locale = params[:locale]
elsif user_signed_in? and !current_user[:language_id].nil?
I18n.locale = Language.find_by_id(current_user[:language_id]).abbreviation
# if user has set preferred language use it
elsif false # TODO
# use user's organization language, keep in mine the "OTHER ORG" edge case which should use english
else
# just use the default language, line can be commented out, included just for clarity
I18n.locale = I18n.default_locale
end
end
# Added setting for passing local params across pages
def default_url_options(options = {})
{ locale: I18n.locale }.merge options
end
def store_location
# store last url - this is needed for post-login redirect to whatever the user last visited.
if (request.fullpath != "/users/sign_in" && \
request.fullpath != "/users/sign_up" && \
request.fullpath != "/users/password" && \
request.fullpath != "/users/sign_up?nosplash=true" && \
!request.xhr?) # don't store ajax calls
session[:previous_url] = request.fullpath
end
end
def after_sign_in_path_for(resource)
session[:previous_url] || root_path
end
def after_sign_up_path_for(resource)
session[:previous_url] || root_path
end
def after_sign_in_error_path_for(resource)
session[:previous_url] || root_path
end
def after_sign_up_error_path_for(resource)
session[:previous_url] || root_path
end
def authenticate_admin!
redirect_to root_path unless user_signed_in? && current_user.is_admin?
end
def get_plan_list_columns
if user_signed_in?
@selected_columns = current_user.settings(:plan_list).columns
@all_columns = Settings::PlanList::ALL_COLUMNS
end
end
end