Sha256: 5cf397fdc1bbdef12b4b115c828feefd41bde53a3292225efbcd8210d2eafb6c

Contents?: true

Size: 1.05 KB

Versions: 34

Compression:

Stored size: 1.05 KB

Contents

module Workarea
  class ApplicationController < ActionController::Base
    include I18n::DefaultUrlOptions
    protect_from_forgery

    before_action :set_locale
    after_action :set_flash_header

    # Cache templates within the scope of a request for development
    if Rails.env.development?
      prepend_before_action { ActionView::Resolver.caching = true }
      after_action { ActionView::Resolver.caching = false }
    end

    helper_method :current_location
    helper :local_time

    def default_url_options(*)
      super.merge(host: Workarea.config.host)
    end

    def current_location
      @current_location ||= Geolocation.new(request.env, request.remote_ip)
    end

    def view_model_options
      params.to_unsafe_h
    end

    private

    def set_locale
      I18n.locale = params[:locale] || I18n.default_locale
    end

    def set_flash_header
      messages = flash.map { |k, v| [k, ERB::Util.h(v)] }
      response.headers['X-Flash-Messages'] = Hash[messages].to_json
      flash.discard if request.xhr? && !response.redirect?
    end
  end
end

Version data entries

34 entries across 34 versions & 1 rubygems

Version Path
workarea-core-3.4.45 app/controllers/workarea/application_controller.rb
workarea-core-3.4.44 app/controllers/workarea/application_controller.rb
workarea-core-3.4.43 app/controllers/workarea/application_controller.rb
workarea-core-3.4.42 app/controllers/workarea/application_controller.rb
workarea-core-3.4.41 app/controllers/workarea/application_controller.rb
workarea-core-3.4.40 app/controllers/workarea/application_controller.rb
workarea-core-3.4.39 app/controllers/workarea/application_controller.rb
workarea-core-3.4.38 app/controllers/workarea/application_controller.rb
workarea-core-3.4.37 app/controllers/workarea/application_controller.rb
workarea-core-3.4.36 app/controllers/workarea/application_controller.rb
workarea-core-3.4.35 app/controllers/workarea/application_controller.rb
workarea-core-3.4.34 app/controllers/workarea/application_controller.rb
workarea-core-3.4.33 app/controllers/workarea/application_controller.rb
workarea-core-3.4.32 app/controllers/workarea/application_controller.rb
workarea-core-3.4.31 app/controllers/workarea/application_controller.rb
workarea-core-3.4.30 app/controllers/workarea/application_controller.rb
workarea-core-3.4.29 app/controllers/workarea/application_controller.rb
workarea-core-3.4.28 app/controllers/workarea/application_controller.rb
workarea-core-3.4.27 app/controllers/workarea/application_controller.rb
workarea-core-3.4.26 app/controllers/workarea/application_controller.rb