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
- #manifest ⇒ 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, #default_url_options, #exhibit_masthead?, #exhibit_search_action_url, #exhibit_search_facet_url, #resource_masthead?, #search_action_url, #search_facet_url, #set_exhibit_locale_scope, #set_locale
Instance Method Details
#admin ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 65 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.
54 55 56 57 58 59 60 61 62 63 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 54 def autocomplete search_params = params.merge(search_field: Spotlight::Engine.config.autocomplete_search_field) (_, @document_list) = search_results(search_params.merge(public: true, rows: 100)) respond_to do |format| format.json do render json: { docs: autocomplete_json_response(@document_list) } end end end |
#edit ⇒ Object
86 87 88 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 86 def edit @response, @document = fetch params[:id] end |
#make_private ⇒ Object
90 91 92 93 94 95 96 97 98 99 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 90 def make_private @response, @document = fetch params[:id] @document.make_private!(current_exhibit) @document.save respond_to do |format| format.html { redirect_back(fallback_location: [spotlight, current_exhibit, @document]) } format.json { render json: true } end end |
#make_public ⇒ Object
101 102 103 104 105 106 107 108 109 110 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 101 def make_public @response, @document = fetch params[:id] @document.make_public!(current_exhibit) @document.save respond_to do |format| format.html { redirect_back(fallback_location: [spotlight, current_exhibit, @document]) } format.json { render json: true } end end |
#manifest ⇒ Object
112 113 114 115 116 117 118 119 120 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 112 def manifest _, document = fetch params[:id] if document.uploaded_resource? render json: Spotlight::IiifManifestPresenter.new(document, self).iiif_manifest_json else head :not_found end end |
#show ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 40 def show super if @document.private? current_exhibit authenticate_user! && (:curate, current_exhibit) end (@document) end |
#update ⇒ Object
76 77 78 79 80 81 82 83 84 |
# File 'app/controllers/spotlight/catalog_controller.rb', line 76 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 |