Sha256: 8b4607e7a1331ccd941cc8677776c67cd2286f4ef00fb463e7f9a5135cabc840

Contents?: true

Size: 1.49 KB

Versions: 12

Compression:

Stored size: 1.49 KB

Contents

# frozen_string_literal: true

class Occams::Admin::Cms::BaseController < Occams::Admin::BaseController
  before_action :load_admin_site,
                :set_locale,
                :load_seeds,
                except: :jump

  layout :infer_layout

  if Occams.config.admin_cache_sweeper.present?
    cache_sweeper(*Occams.config.admin_cache_sweeper)
  end

  def jump
    path = Occams.config.admin_route_redirect
    return redirect_to(path) unless path.blank?

    load_admin_site
    redirect_to occams_admin_cms_site_pages_path(@site) if @site
  end

protected

  def load_admin_site
    id_param = params[:site_id] || session[:site_id]
    if (@site = ::Occams::Cms::Site.find_by(id: id_param) || ::Occams::Cms::Site.first)
      session[:site_id] = @site.id
    else
      I18n.locale = Occams.config.admin_locale || I18n.default_locale
      flash[:danger] = I18n.t('occams.admin.cms.base.site_not_found')
      redirect_to(new_occams_admin_cms_site_path)
    end
  end

  def set_locale
    I18n.locale = Occams.config.admin_locale || @site&.locale
    true
  end

  def load_seeds
    return unless Occams.config.enable_seeds

    controllers = %w[layouts pages snippets files].collect { |c| "occams/admin/cms/#{c}" }
    return unless controllers.member?(params[:controller]) && params[:action] == 'index'

    Occams::Seeds::Importer.new(@site.identifier).import!
    flash.now[:warning] = I18n.t('occams.admin.cms.base.seeds_enabled')
  end

  def infer_layout
    false if params[:layout] == 'false'
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
occams-1.1.0 app/controllers/occams/admin/cms/base_controller.rb
occams-1.0.8 app/controllers/occams/admin/cms/base_controller.rb
occams-1.0.7.3 app/controllers/occams/admin/cms/base_controller.rb
occams-1.0.7.2 app/controllers/occams/admin/cms/base_controller.rb
occams-1.0.7.1 app/controllers/occams/admin/cms/base_controller.rb
occams-1.0.7 app/controllers/occams/admin/cms/base_controller.rb
occams-1.0.6.1 app/controllers/occams/admin/cms/base_controller.rb
occams-1.0.6 app/controllers/occams/admin/cms/base_controller.rb
occams-1.0.5 app/controllers/occams/admin/cms/base_controller.rb
occams-1.0.4 app/controllers/occams/admin/cms/base_controller.rb
occams-1.0.3 app/controllers/occams/admin/cms/base_controller.rb
occams-1.0.2 app/controllers/occams/admin/cms/base_controller.rb