Sha256: 65c4f1cdafbccf4203a777fdd66d28648c466b2c7094361bd960b971b804b70d

Contents?: true

Size: 1.04 KB

Versions: 3

Compression:

Stored size: 1.04 KB

Contents

# frozen_string_literal: true

module Alchemy
  module Admin
    module CurrentLanguage
      extend ActiveSupport::Concern

      included do
        # This needs to happen before BaseController#current_alchemy_site sets the session value.
        prepend_before_action :clear_current_language_from_session, if: :switching_site?, only: :index
        before_action :load_current_language
      end

      private

      def switching_site?
        params[:site_id].present? && (params[:site_id] != session[:alchemy_site_id]&.to_s)
      end

      def clear_current_language_from_session
        session.delete(:alchemy_language_id)
      end

      def load_current_language
        @current_language = if session[:alchemy_language_id].present?
          set_alchemy_language(session[:alchemy_language_id])
        else
          Alchemy::Language.current
        end
        if @current_language.nil?
          flash[:warning] = Alchemy.t("Please create a language first.")
          redirect_to admin_languages_path
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
alchemy_cms-7.1.13 app/controllers/concerns/alchemy/admin/current_language.rb
alchemy_cms-7.1.12 app/controllers/concerns/alchemy/admin/current_language.rb
alchemy_cms-7.1.11 app/controllers/concerns/alchemy/admin/current_language.rb