Class: Spotlight::HomePagesController

Inherits:
PagesController show all
Includes:
Catalog
Defined in:
app/controllers/spotlight/home_pages_controller.rb

Overview

CRUD actions for the exhibit home page

Constant Summary collapse

DEFAULT_FACET_LIMIT =

Copied from blacklight to avoid bringing in all of Blacklight::Catalog

10

Instance Method Summary collapse

Methods included from Catalog

#add_facet_visibility_field, #render_curator_actions?

Methods included from SearchHelper

#search_service, #search_service_context

Methods included from Base

#autocomplete_json_response, #autocomplete_json_response_for_document, #blacklight_config, #controller_tracking_method

Methods included from Config

#exhibit_specific_blacklight_config

Methods inherited from PagesController

#create, #destroy, #new, #preview, #update, #update_all

Methods included from Concerns::ApplicationController

#enabled_in_spotlight_view_type_configuration?, #field_enabled?

Methods included from Controller

#blacklight_config, #current_exhibit, #current_masthead, #current_masthead=, #current_site, #default_url_options, #exhibit_masthead?, #exhibit_search_action_url, #exhibit_search_facet_path, #resource_masthead?, #set_exhibit_locale_scope, #set_locale

Instance Method Details

#cloneObject

We’re oddly getting an unknown action error w/o explicitly defining this here



37
38
39
# File 'app/controllers/spotlight/home_pages_controller.rb', line 37

def clone
  super
end

#editObject



15
16
17
18
19
# File 'app/controllers/spotlight/home_pages_controller.rb', line 15

def edit
  add_breadcrumb t(:'spotlight.curation.sidebar.feature_pages'), exhibit_feature_pages_path(@exhibit)
  add_breadcrumb @page.title, [:edit, @exhibit, @page]
  super
end

#facet_limit_for(facet_field) ⇒ Object

Look up facet limit for given facet_field. Will look at config, and if config is ‘true’ will look up from Solr @response if available. If no limit is available, returns nil. Used from #add_facetting_to_solr to supply f.fieldname.facet.limit values in solr request (no @response available), and used in display (with @response available) to create a facet paginator with the right limit.



50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
# File 'app/controllers/spotlight/home_pages_controller.rb', line 50

def facet_limit_for(facet_field)
  facet = blacklight_config.facet_fields[facet_field]
  return if facet.blank?

  if facet.limit && @response && @response.aggregations[facet.field]
    limit = @response.aggregations[facet.field].limit

    if limit.nil? # we didn't get or a set a limit, so infer one.
      facet.limit if facet.limit != true
    elsif limit == -1 # limit -1 is solr-speak for unlimited
      nil
    else
      limit.to_i - 1 # we added 1 to find out if we needed to paginate
    end
  elsif facet.limit
    facet.limit == true ? DEFAULT_FACET_LIMIT : facet.limit
  end
end

#indexObject



21
22
23
# File 'app/controllers/spotlight/home_pages_controller.rb', line 21

def index
  redirect_to exhibit_feature_pages_path(@exhibit)
end

#showObject



25
26
27
28
29
30
31
32
33
# File 'app/controllers/spotlight/home_pages_controller.rb', line 25

def show
  @response, @document_list = search_service.search_results if @page.display_sidebar?

  if @page.nil? || !@page.published?
    render '/catalog/index'
  else
    render 'show'
  end
end