Class: Spotlight::CatalogController
- Inherits:
-
CatalogController
- Object
- ApplicationController
- CatalogController
- Spotlight::CatalogController
- Includes:
- Catalog, Spotlight::Concerns::ApplicationController, Spotlight::Concerns::CatalogSearchContext
- Defined in:
- app/controllers/spotlight/catalog_controller.rb
Overview
Spotlight’s catalog controller. Note that this subclasses the host application’s CatalogController to get its configuration, partial overrides, etc rubocop:disable Metrics/ClassLength
Instance Method Summary collapse
- #admin ⇒ Object
-
#autocomplete ⇒ Object
“id_ng” and “full_title_ng” should be defined in the Solr core’s schema.xml.
- #edit ⇒ Object
- #make_private ⇒ Object
- #make_public ⇒ Object
- #show ⇒ Object
- #update ⇒ Object
Methods included from Catalog
#add_facet_visibility_field, #render_save_this_search?
Methods included from Base
#autocomplete_json_response, #autocomplete_json_response_for_document, #blacklight_config
Methods included from Config
#exhibit_specific_blacklight_config
Methods included from Spotlight::Concerns::ApplicationController
#enabled_in_spotlight_view_type_configuration?, #field_enabled?
Methods included from Controller
#blacklight_config, #current_exhibit, #current_masthead, #current_masthead=, #current_site, #exhibit_masthead?, #exhibit_search_action_url, #exhibit_search_facet_url, #resource_masthead?, #search_action_url, #search_facet_url
Instance Method Details
#admin ⇒ Object
64 65 66 67 68 69 70 71 72 73 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 64 def admin t(:'spotlight.curation.sidebar.header'), exhibit_dashboard_path(@exhibit) t(:'spotlight.curation.sidebar.items'), admin_exhibit_catalog_path(@exhibit) (@response, @document_list) = search_results(params) @filters = params[:f] || [] respond_to do |format| format.html end end |
#autocomplete ⇒ Object
“id_ng” and “full_title_ng” should be defined in the Solr core’s schema.xml. It’s expected that these fields will be set up to have EdgeNGram filter setup within their index analyzer. This will ensure that this method returns results when a partial match is passed in the “q” parameter.
53 54 55 56 57 58 59 60 61 62 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 53 def autocomplete search_params = params.merge(search_field: Spotlight::Engine.config.autocomplete_search_field) (_, @document_list) = search_results(search_params.merge(public: true)) respond_to do |format| format.json do render json: { docs: autocomplete_json_response(@document_list) } end end end |
#edit ⇒ Object
85 86 87 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 85 def edit @response, @document = fetch params[:id] end |
#make_private ⇒ Object
89 90 91 92 93 94 95 96 97 98 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 89 def make_private @response, @document = fetch params[:id] @document.make_private!(current_exhibit) @document.save respond_to do |format| format.html { redirect_to :back } format.json { render json: true } end end |
#make_public ⇒ Object
100 101 102 103 104 105 106 107 108 109 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 100 def make_public @response, @document = fetch params[:id] @document.make_public!(current_exhibit) @document.save respond_to do |format| format.html { redirect_to :back } format.json { render json: true } end end |
#show ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 39 def show super if @document.private? current_exhibit authenticate_user! && (:curate, current_exhibit) end (@document) end |
#update ⇒ Object
75 76 77 78 79 80 81 82 83 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 75 def update @response, @document = fetch params[:id] @document.update(current_exhibit, solr_document_params) @document.save try_solr_commit! redirect_to polymorphic_path([current_exhibit, @document]) end |