Sha256: b39665fbe9a0ec4bc02b8d85b64190006c6f270b3da3ecd2519d0ba0449d92cf

Contents?: true

Size: 1.63 KB

Versions: 2

Compression:

Stored size: 1.63 KB

Contents

# frozen_string_literal: true

module Alchemy
  module Admin
    class LanguagesController < ResourcesController
      before_action :load_current_site, only: %i[index new]

      def index
        @query = Language.on_site(@current_site).ransack(search_filter_params[:q])
        @query.sorts = default_sort_order if @query.sorts.empty?
        @languages = @query.result.page(params[:page] || 1).per(items_per_page)
      end

      def new
        @language = Language.new(
          site: @current_site,
          page_layout: Config.get(:default_language)["page_layout"]
        )
      end

      def create
        @language = Alchemy::Language.new(resource_params)
        if @language.save
          flash[:notice] = Alchemy.t("Language successfully created")
          do_redirect_to alchemy.admin_pages_path(language_id: @language)
        else
          render :new
        end
      end

      def destroy
        if @language.destroy
          flash[:notice] = Alchemy.t("Language successfully removed")
        else
          flash[:warning] = @language.errors.full_messages.to_sentence
        end
        do_redirect_to alchemy.admin_languages_path
      end

      def switch
        @language = set_alchemy_language(params[:language_id])
        session[:alchemy_language_id] = @language.id
        do_redirect_to relative_referer_path || alchemy.admin_dashboard_path
      end

      private

      def load_current_site
        @current_site = Alchemy::Site.current
        if @current_site.nil?
          flash[:warning] = Alchemy.t("Please create a site first.")
          do_redirect_to admin_sites_path
        end
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
alchemy_cms-7.1.13 app/controllers/alchemy/admin/languages_controller.rb
alchemy_cms-7.0.16 app/controllers/alchemy/admin/languages_controller.rb