diff --git a/app/controllers/alchemy/admin/layoutpages_controller.rb b/app/controllers/alchemy/admin/layoutpages_controller.rb index 0ab6f29782..5a02acd905 100644 --- a/app/controllers/alchemy/admin/layoutpages_controller.rb +++ b/app/controllers/alchemy/admin/layoutpages_controller.rb @@ -5,10 +5,7 @@ module Admin class LayoutpagesController < Alchemy::Admin::BaseController authorize_resource class: :alchemy_admin_layoutpages - before_action unless: -> { Alchemy::Language.current }, only: :index do - flash[:warning] = Alchemy.t('Please create a language first.') - redirect_to admin_languages_path - end + include Alchemy::Admin::LanguageNeededRedirect helper Alchemy::Admin::PagesHelper diff --git a/app/controllers/alchemy/admin/nodes_controller.rb b/app/controllers/alchemy/admin/nodes_controller.rb index 3b022e6228..9b5f9a5b49 100644 --- a/app/controllers/alchemy/admin/nodes_controller.rb +++ b/app/controllers/alchemy/admin/nodes_controller.rb @@ -3,10 +3,7 @@ module Alchemy module Admin class NodesController < Admin::ResourcesController - before_action unless: -> { Alchemy::Language.current }, only: :index do - flash[:warning] = Alchemy.t('Please create a language first.') - redirect_to admin_languages_path - end + include Alchemy::Admin::LanguageNeededRedirect def index @root_nodes = Node.language_root_nodes diff --git a/app/controllers/alchemy/admin/pages_controller.rb b/app/controllers/alchemy/admin/pages_controller.rb index 9e714df2f4..75e34029f7 100644 --- a/app/controllers/alchemy/admin/pages_controller.rb +++ b/app/controllers/alchemy/admin/pages_controller.rb @@ -15,10 +15,7 @@ class PagesController < Alchemy::Admin::BaseController authorize! :index, :alchemy_admin_pages end - before_action unless: -> { Alchemy::Language.current }, only: :index do - flash[:warning] = Alchemy.t('Please create a language first.') - redirect_to admin_languages_path - end + include Alchemy::Admin::LanguageNeededRedirect before_action :set_translation, except: [:show] diff --git a/app/controllers/concerns/alchemy/admin/language_needed_redirect.rb b/app/controllers/concerns/alchemy/admin/language_needed_redirect.rb new file mode 100644 index 0000000000..0df0d21e7b --- /dev/null +++ b/app/controllers/concerns/alchemy/admin/language_needed_redirect.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +module Alchemy + module Admin + module LanguageNeededRedirect + extend ActiveSupport::Concern + + included do + before_action unless: -> { Alchemy::Language.current }, only: :index do + flash[:warning] = Alchemy.t('Please create a language first.') + redirect_to admin_languages_path + end + end + end + end +end