Files
mozo-backend/app/controllers/application_controller.rb
T
2015-03-06 10:01:50 +01:00

127 lines
3.3 KiB
Ruby

class ApplicationController < ActionController::Base
include ControllerAfterAuthenticationHooks
before_action :set_locale
if Rails.env.development?
before_action :force_reloads
end
layout :layout_by_resource
#before_action do
#flash.now[:notice] = "Test notice"
#flash.now[:alert] = "Test alert"
#end
#protect_from_forgery
rescue_from SimplyStored::RecordNotFound, with: :show_404
private
def allow_all_origins
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Request-Method'] = '*'
headers['Access-Control-Allow-Headers'] = '*'
headers['Access-Control-Allow-Methods'] = '*'
end
#START CMTOOL
def authorize_cmtool
redirect_to new_administrator_session_path, alert: t('general.unauthorized') unless current_administrator.present?
end
def cmtool_user
current_administrator
end
def cmtool_locale
:en
end
def page_path(record, locale: I18n.locale)
str = case record
when Page then record.name
else record
end
go_to_path(str, locale: locale)
end
helper_method :page_path
#END CMTOOL
def broadcast_user(uid, event, data = {})
Qwaiter.broadcast_user uid, event, data
end
def broadcast_supplier(sid, event, data = {})
Qwaiter.broadcast_supplier sid, event, data
end
def set_locale
#session[:locale] = (params[:locale].presence || session[:locale] || Rails.configuration.i18n.default_locale).to_sym
I18n.locale = params[:locale].presence.try(:to_sym) || Rails.configuration.i18n.default_locale
end
def _render_with_renderer_json(resource, options)
serializer = build_json_serializer(resource, options)
if serializer
super(serializer, options)
else
super
end
end
def layout_by_resource(*args)
#if devise_controller?
#return 'obtain_token' if session[:user_return_to].present? # resource_name == :user ????
#return 'theme1' if session[:supplier_return_to].present?
#end
"theme1"
end
def after_sign_in_path_for(resource)
case resource
when Employee then supplier_root_path
when Administrator then cmtool.root_path
else root_path
end
end
def check_active_list_state
if current_user.try(:active_list_id)
unless active_list.active?
current_user.list_is_closed!
redirect_to user_root_path, alert: t('messages.the_list_has_been_closed', list: List.model_name.human)
end
end
end
def active_list
return nil unless current_user.try(:active_list_id).present?
@active_list ||= List.find(current_user.active_list_id)
end
alias :active_list_object :active_list
helper_method :active_list_object
def js_alert(*args)
options = args.extract_options!
message = args.first || ''
{ok: false, message: message}.merge(options).to_json
end
alias json_alert js_alert
def js_notice(*args)
options = args.extract_options!
message = args.first || ''
{ok: true, message: message}.merge(options).to_json
end
alias json_notice js_notice
def show_404
respond_to do |format|
format.html { render 'dashboard/404', layout: true, status: 404}
format.json { render json: {ok: false}, status: 404 }
end
end
def force_reloads
load Rails.root.join('config/initializers/custom_form_builder.rb')
end
end