Sha256: 0d6ed834510f608ff1a12c0ce9ca23b2a757a540d0c9232257b802ee5f817308

Contents?: true

Size: 1.56 KB

Versions: 62

Compression:

Stored size: 1.56 KB

Contents

module Spotlight
  # Mixin for adding default configuration to exhibits
  module ExhibitDefaults
    extend ActiveSupport::Concern

    included do
      before_create :build_home_page
      before_create :add_site_reference
      after_create :initialize_config
      after_create :initialize_browse
      after_create :initialize_main_navigation
      after_create :initialize_filter
    end

    protected

    def initialize_filter
      return unless Spotlight::Engine.config.filter_resources_by_exhibit

      filters.create field: default_filter_field, value: default_filter_value
    end

    def initialize_config
      self.blacklight_configuration ||= Spotlight::BlacklightConfiguration.create!
    end

    def initialize_browse
      return unless searches.blank?

      searches.create title: 'All Exhibit Items',
                      long_description: 'All items in this exhibit.'
    end

    def initialize_main_navigation
      default_main_navigations.each_with_index do |nav_type, weight|
        main_navigations.create nav_type: nav_type, weight: weight
      end
    end

    def add_site_reference
      self.site ||= Spotlight::Site.instance
    end

    def default_filter_field
      "#{Spotlight::Engine.config.solr_fields.prefix}spotlight_exhibit_slug_#{slug}#{Spotlight::Engine.config.solr_fields.boolean_suffix}"
    end

    # Return a string to work around any ActiveRecord type-casting
    def default_filter_value
      'true'
    end

    private

    def default_main_navigations
      Spotlight::Engine.config.exhibit_main_navigation.dup
    end
  end
end

Version data entries

62 entries across 62 versions & 1 rubygems

Version Path
blacklight-spotlight-2.4.1 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.4.0 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.3.3 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.3.2 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.3.1 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.3.0 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.2.1 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.2.0 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.1.0 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.0.2 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.0.1 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.0.0 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.0.0.rc6 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.0.0.rc5 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.0.0.rc4 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.0.0.rc3 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.0.0.rc2 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-2.0.0.rc1 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-1.5.1 app/models/concerns/spotlight/exhibit_defaults.rb
blacklight-spotlight-1.4.1 app/models/concerns/spotlight/exhibit_defaults.rb