blacklight 7.24.0 → 7.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +4 -4
- data/VERSION +1 -1
- data/app/assets/javascripts/blacklight/blacklight.js +2 -2
- data/app/components/blacklight/constraint_component.rb +1 -1
- data/app/components/blacklight/constraint_layout_component.rb +1 -1
- data/app/components/blacklight/constraints_component.rb +1 -1
- data/app/components/blacklight/document/action_component.rb +1 -1
- data/app/components/blacklight/document/actions_component.rb +1 -1
- data/app/components/blacklight/document/bookmark_component.rb +1 -1
- data/app/components/blacklight/document/citation_component.rb +2 -2
- data/app/components/blacklight/document/group_component.rb +3 -2
- data/app/components/blacklight/document/more_like_this_component.rb +1 -1
- data/app/components/blacklight/document/thumbnail_component.rb +1 -1
- data/app/components/blacklight/document_component.rb +1 -2
- data/app/components/blacklight/document_metadata_component.rb +1 -1
- data/app/components/blacklight/document_title_component.rb +1 -1
- data/app/components/blacklight/facet_field_checkboxes_component.rb +1 -1
- data/app/components/blacklight/facet_field_component.rb +1 -1
- data/app/components/blacklight/facet_field_filter_component.rb +1 -1
- data/app/components/blacklight/facet_field_inclusive_constraint_component.rb +1 -1
- data/app/components/blacklight/facet_field_list_component.rb +1 -1
- data/app/components/blacklight/facet_field_no_layout_component.rb +1 -1
- data/app/components/blacklight/facet_field_pagination_component.rb +1 -1
- data/app/components/blacklight/facet_item_component.rb +1 -1
- data/app/components/blacklight/facet_item_pivot_component.rb +1 -1
- data/app/components/blacklight/hidden_search_state_component.rb +2 -2
- data/app/components/blacklight/metadata_field_component.rb +1 -1
- data/app/components/blacklight/metadata_field_layout_component.rb +1 -1
- data/app/components/blacklight/response/facet_group_component.rb +1 -1
- data/app/components/blacklight/response/pagination_component.rb +1 -1
- data/app/components/blacklight/search_bar_component.html.erb +7 -7
- data/app/components/blacklight/search_bar_component.rb +18 -13
- data/app/components/blacklight/search_context_component.rb +1 -1
- data/app/components/blacklight/start_over_button_component.rb +1 -1
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +3 -1
- data/app/helpers/blacklight/catalog_helper_behavior.rb +1 -1
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +5 -7
- data/app/javascript/blacklight/modal.js +2 -2
- data/app/presenters/blacklight/search_bar_presenter.rb +2 -0
- data/app/services/blacklight/field_retriever.rb +1 -1
- data/app/views/catalog/_constraints.html.erb +2 -2
- data/app/views/catalog/_facet_group.html.erb +1 -1
- data/app/views/catalog/_search_form.html.erb +2 -2
- data/app/views/shared/_header_navbar.html.erb +5 -1
- data/lib/blacklight/component.rb +40 -0
- data/lib/blacklight/configuration/facet_field.rb +1 -1
- data/lib/blacklight/configuration/fields.rb +10 -11
- data/lib/blacklight/configuration/view_config.rb +6 -0
- data/lib/blacklight/configuration.rb +320 -179
- data/lib/blacklight/deprecations/search_state_normalization.rb +52 -0
- data/lib/blacklight/search_state/filter_field.rb +44 -16
- data/lib/blacklight/search_state.rb +55 -31
- data/lib/blacklight/solr/search_builder_behavior.rb +3 -1
- data/lib/blacklight.rb +1 -0
- data/package.json +1 -1
- data/spec/components/blacklight/constraints_component_spec.rb +14 -1
- data/spec/components/blacklight/facet_field_list_component_spec.rb +6 -1
- data/spec/components/blacklight/facet_item_pivot_component_spec.rb +7 -1
- data/spec/controllers/blacklight/base_spec.rb +4 -1
- data/spec/helpers/blacklight/facets_helper_behavior_spec.rb +23 -6
- data/spec/helpers/blacklight/url_helper_behavior_spec.rb +7 -0
- data/spec/lib/blacklight/component_spec.rb +43 -0
- data/spec/lib/blacklight/search_state/filter_field_spec.rb +12 -1
- data/spec/lib/blacklight/search_state_spec.rb +17 -3
- data/spec/models/blacklight/configuration_spec.rb +2 -2
- data/spec/models/blacklight/solr/search_builder_spec.rb +15 -0
- data/spec/presenters/blacklight/facet_field_presenter_spec.rb +10 -4
- data/spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb +6 -1
- data/spec/presenters/blacklight/field_presenter_spec.rb +2 -0
- data/spec/views/catalog/index.json.jbuilder_spec.rb +1 -0
- metadata +7 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e758c87d1a1961258d284421d258d39a53600da0df9980f294c2174da1a2fe6f
|
4
|
+
data.tar.gz: cc0da20194f1a185f3847f724e89677a28ef233d5cc89b7ec73dc55dee4ee6f3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7b94f8337cb6c1c5cb9747d2a5efe67144dca742418e18e15baa4cb10fcc333608f43d94d25157b2e7be8267a9aa4cef9c8b2544e574745e5c2d1ea6fdf93383
|
7
|
+
data.tar.gz: 85db04a2e0ab1e7736e10afa94e8fe007c2c7163dd8ab551827928a0baa5da426d8106d3b075c1e2621c5a6409d6a5c2e403891b497cf30edf497ca3b47e1d2c
|
data/.github/workflows/ruby.yml
CHANGED
@@ -31,7 +31,7 @@ jobs:
|
|
31
31
|
runs-on: ubuntu-latest
|
32
32
|
strategy:
|
33
33
|
matrix:
|
34
|
-
ruby: [2.7, '3.0']
|
34
|
+
ruby: [2.7, '3.0', 3.1]
|
35
35
|
steps:
|
36
36
|
- uses: actions/checkout@v2
|
37
37
|
- name: Set up Ruby
|
@@ -103,7 +103,7 @@ jobs:
|
|
103
103
|
RAILS_VERSION: 5.2.4.6
|
104
104
|
ENGINE_CART_RAILS_OPTIONS: '--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test'
|
105
105
|
|
106
|
-
|
106
|
+
test_rails6_1:
|
107
107
|
runs-on: ubuntu-latest
|
108
108
|
strategy:
|
109
109
|
matrix:
|
@@ -117,11 +117,11 @@ jobs:
|
|
117
117
|
- name: Install dependencies
|
118
118
|
run: bundle install
|
119
119
|
env:
|
120
|
-
RAILS_VERSION:
|
120
|
+
RAILS_VERSION: 6.1.5
|
121
121
|
- name: Run tests
|
122
122
|
run: bundle exec rake ci
|
123
123
|
env:
|
124
|
-
RAILS_VERSION:
|
124
|
+
RAILS_VERSION: 6.1.5
|
125
125
|
ENGINE_CART_RAILS_OPTIONS: '--skip-git --skip-keeps --skip-action-cable --skip-test'
|
126
126
|
api_test:
|
127
127
|
runs-on: ubuntu-latest
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
7.
|
1
|
+
7.25.0
|
@@ -441,7 +441,7 @@ Blacklight.modal.checkCloseModal = function (event) {
|
|
441
441
|
};
|
442
442
|
|
443
443
|
Blacklight.modal.hide = function (el) {
|
444
|
-
if (bootstrap.Modal.VERSION >= "5") {
|
444
|
+
if (typeof bootstrap !== 'undefined' && typeof bootstrap.Modal !== 'undefined' && bootstrap.Modal.VERSION >= "5") {
|
445
445
|
bootstrap.Modal.getOrCreateInstance(el || document.querySelector(Blacklight.modal.modalSelector)).hide();
|
446
446
|
} else {
|
447
447
|
$(el || Blacklight.modal.modalSelector).modal('hide');
|
@@ -449,7 +449,7 @@ Blacklight.modal.hide = function (el) {
|
|
449
449
|
};
|
450
450
|
|
451
451
|
Blacklight.modal.show = function (el) {
|
452
|
-
if (bootstrap.Modal.VERSION >= "5") {
|
452
|
+
if (typeof bootstrap !== 'undefined' && typeof bootstrap.Modal !== 'undefined' && bootstrap.Modal.VERSION >= "5") {
|
453
453
|
bootstrap.Modal.getOrCreateInstance(el || document.querySelector(Blacklight.modal.modalSelector)).show();
|
454
454
|
} else {
|
455
455
|
$(el || Blacklight.modal.modalSelector).modal('show');
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Blacklight
|
4
|
-
class ConstraintComponent < ::
|
4
|
+
class ConstraintComponent < Blacklight::Component
|
5
5
|
with_collection_parameter :facet_item_presenter
|
6
6
|
|
7
7
|
def initialize(facet_item_presenter:, classes: 'filter', layout: Blacklight::ConstraintLayoutComponent)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Blacklight
|
4
|
-
class ConstraintLayoutComponent < ::
|
4
|
+
class ConstraintLayoutComponent < Blacklight::Component
|
5
5
|
def initialize(value:, label: nil, remove_path: nil, classes: nil, search_state: nil)
|
6
6
|
@value = value
|
7
7
|
@label = label
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Blacklight
|
4
4
|
module Document
|
5
5
|
# Render a bookmark widget to bookmark / unbookmark a document
|
6
|
-
class ActionComponent < ::
|
6
|
+
class ActionComponent < Blacklight::Component
|
7
7
|
with_collection_parameter :action
|
8
8
|
|
9
9
|
# @param [Blacklight::Document] document
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Blacklight
|
4
4
|
module Document
|
5
5
|
# Render a bookmark widget to bookmark / unbookmark a document
|
6
|
-
class ActionsComponent < ::
|
6
|
+
class ActionsComponent < Blacklight::Component
|
7
7
|
renders_many :actions, (lambda do |action:, component: nil, **kwargs|
|
8
8
|
component ||= action.component || Blacklight::Document::ActionComponent
|
9
9
|
component.new(action: action, document: @document, options: @options, url_opts: @url_opts, link_classes: @link_classes, **kwargs)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Blacklight
|
4
4
|
module Document
|
5
5
|
# Render a bookmark widget to bookmark / unbookmark a document
|
6
|
-
class BookmarkComponent < ::
|
6
|
+
class BookmarkComponent < Blacklight::Component
|
7
7
|
# @param [Blacklight::Document] document
|
8
8
|
# @param [Boolean] checked
|
9
9
|
# @param [Object] bookmark_path the rails route to use for bookmarks
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Blacklight
|
4
4
|
module Document
|
5
5
|
# Render citations for the document
|
6
|
-
class CitationComponent < ::
|
6
|
+
class CitationComponent < Blacklight::Component
|
7
7
|
DEFAULT_FORMATS = {
|
8
8
|
'blacklight.citation.mla': :export_as_mla_citation_txt,
|
9
9
|
'blacklight.citation.apa': :export_as_apa_citation_txt,
|
@@ -13,7 +13,7 @@ module Blacklight
|
|
13
13
|
with_collection_parameter :document
|
14
14
|
|
15
15
|
# @param [Blacklight::Document] document
|
16
|
-
# @param [Hash<String => Symbol>] map of citation format names (suspiciously, i18n keys
|
16
|
+
# @param [Hash<String => Symbol>] formats map of citation format names (suspiciously, i18n keys
|
17
17
|
# for them) to document methods that return the formatted citation.
|
18
18
|
def initialize(document:, formats: DEFAULT_FORMATS)
|
19
19
|
@document = document
|
@@ -3,10 +3,11 @@
|
|
3
3
|
module Blacklight
|
4
4
|
module Document
|
5
5
|
# Render the 'more like this' results from the response
|
6
|
-
class GroupComponent < ::
|
6
|
+
class GroupComponent < Blacklight::Component
|
7
7
|
with_collection_parameter :group
|
8
8
|
|
9
|
-
# @param [Blacklight::
|
9
|
+
# @param [Blacklight::Solr::Response::Group] group
|
10
|
+
# @param [Integer] group_limit
|
10
11
|
def initialize(group:, group_limit: -1)
|
11
12
|
@group = group
|
12
13
|
@group_limit = group_limit
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Blacklight
|
4
4
|
module Document
|
5
5
|
# Render the 'more like this' results from the response
|
6
|
-
class MoreLikeThisComponent < ::
|
6
|
+
class MoreLikeThisComponent < Blacklight::Component
|
7
7
|
with_collection_parameter :document
|
8
8
|
|
9
9
|
# @param [Blacklight::Document] document
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Blacklight
|
4
4
|
module Document
|
5
5
|
# Render the thumbnail for the document
|
6
|
-
class ThumbnailComponent < ::
|
6
|
+
class ThumbnailComponent < Blacklight::Component
|
7
7
|
with_collection_parameter :presenter
|
8
8
|
|
9
9
|
# @param [Blacklight::DocumentPresenter] presenter
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Blacklight
|
4
|
-
class DocumentComponent < ::
|
4
|
+
class DocumentComponent < Blacklight::Component
|
5
5
|
include Blacklight::ContentAreasShim
|
6
6
|
|
7
7
|
# Content appearing before the document
|
@@ -69,7 +69,6 @@ module Blacklight
|
|
69
69
|
# @param classes [Array, String] additional HTML classes for the root element
|
70
70
|
# @param component [Symbol, String] HTML tag type to use for the root element
|
71
71
|
# @param title_component [Symbol, String] HTML tag type to use for the title element
|
72
|
-
# @param metadata_component [Blacklight::DocumentMetadataComponent]
|
73
72
|
# @param counter [Number, nil] a pre-computed counter for the position of this document in a search result set
|
74
73
|
# @param document_counter [Number, nil] alternatively, the document's position in a collection and,
|
75
74
|
# @param counter_offset [Number] with `document_counter`, the offset of the start of that collection counter to the overall result set
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Blacklight
|
4
|
-
class DocumentMetadataComponent < ::
|
4
|
+
class DocumentMetadataComponent < Blacklight::Component
|
5
5
|
renders_many :fields, (lambda do |component: nil, **kwargs|
|
6
6
|
(component || Blacklight::MetadataFieldComponent).new(**kwargs)
|
7
7
|
end)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Blacklight
|
4
|
-
class FacetFieldCheckboxesComponent < ::
|
4
|
+
class FacetFieldCheckboxesComponent < Blacklight::Component
|
5
5
|
def initialize(facet_field:, layout: nil)
|
6
6
|
@facet_field = facet_field
|
7
7
|
@layout = layout == false ? FacetFieldNoLayoutComponent : Blacklight::FacetFieldComponent
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Blacklight
|
4
|
-
class FacetFieldInclusiveConstraintComponent < ::
|
4
|
+
class FacetFieldInclusiveConstraintComponent < Blacklight::Component
|
5
5
|
with_collection_parameter :facet_field
|
6
6
|
|
7
7
|
def initialize(facet_field:, values: nil)
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Blacklight
|
4
|
-
class FacetFieldListComponent < ::
|
4
|
+
class FacetFieldListComponent < Blacklight::Component
|
5
5
|
def initialize(facet_field:, layout: nil)
|
6
6
|
@facet_field = facet_field
|
7
7
|
@layout = layout == false ? FacetFieldNoLayoutComponent : Blacklight::FacetFieldComponent
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Blacklight
|
4
4
|
# Render facet items and any subtree
|
5
|
-
class FacetItemPivotComponent < ::
|
5
|
+
class FacetItemPivotComponent < Blacklight::Component
|
6
6
|
# Somewhat arbitrary number; the only important thing is that
|
7
7
|
# it is bigger than the number of leaf nodes in any collapsing
|
8
8
|
# pivot facet on the page.
|
@@ -4,8 +4,8 @@ module Blacklight
|
|
4
4
|
# Writes out zero or more <input type="hidden"> elements, completely
|
5
5
|
# representing a hash passed in using Rails-style request parameters
|
6
6
|
# for hashes nested with arrays and other hashes.
|
7
|
-
class HiddenSearchStateComponent < ::
|
8
|
-
# @param [Hash]
|
7
|
+
class HiddenSearchStateComponent < Blacklight::Component
|
8
|
+
# @param [Hash] params
|
9
9
|
def initialize(params:)
|
10
10
|
Deprecation.warn(self, "Passing page as a parameter to HiddenSearchStateComponent is deprecated and will not be supported in Blacklight 8") if params.key?(:page)
|
11
11
|
@params = params.except(:utf8)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Blacklight
|
4
4
|
module Response
|
5
5
|
# Render a group of facet fields
|
6
|
-
class FacetGroupComponent < ::
|
6
|
+
class FacetGroupComponent < Blacklight::Component
|
7
7
|
# @param [Blacklight::Response] response
|
8
8
|
# @param [Array<String>] fields facet fields to render
|
9
9
|
# @param [String] title the title of the facet group section
|
@@ -3,7 +3,7 @@
|
|
3
3
|
module Blacklight
|
4
4
|
module Response
|
5
5
|
# Render a pagination widget for search results
|
6
|
-
class PaginationComponent < ::
|
6
|
+
class PaginationComponent < Blacklight::Component
|
7
7
|
# @param [Blacklight::Response] response
|
8
8
|
# @param [Hash] html html options for the pagination container
|
9
9
|
def initialize(response:, html: {}, **pagination_args)
|
@@ -1,23 +1,23 @@
|
|
1
1
|
<%= form_tag @url, method: @method, class: @classes.join(' '), role: 'search', 'aria-label' => scoped_t('submit') do %>
|
2
2
|
<%= render_hash_as_hidden_fields(@params) %>
|
3
|
-
<% if
|
3
|
+
<% if search_fields.length > 1 %>
|
4
4
|
<label for="search_field" class="sr-only visually-hidden"><%= scoped_t('search_field.label') %></label>
|
5
5
|
<% end %>
|
6
6
|
<div class="input-group">
|
7
7
|
<%= prepend %>
|
8
8
|
|
9
|
-
<% if
|
9
|
+
<% if search_fields.length > 1 %>
|
10
10
|
<%= select_tag(:search_field,
|
11
|
-
options_for_select(
|
11
|
+
options_for_select(search_fields, h(@search_field)),
|
12
12
|
title: scoped_t('search_field.title'),
|
13
13
|
id: "#{@prefix}search_field",
|
14
14
|
class: "custom-select form-select search-field") %>
|
15
|
-
<% elsif
|
16
|
-
<%= hidden_field_tag :search_field,
|
15
|
+
<% elsif search_fields.length == 1 %>
|
16
|
+
<%= hidden_field_tag :search_field, search_fields.first.last %>
|
17
17
|
<% end %>
|
18
18
|
|
19
19
|
<label for="<%= @prefix %><%= @query_param %>" class="sr-only visually-hidden"><%= scoped_t('search.label') %></label>
|
20
|
-
<%= text_field_tag @query_param, @q, placeholder: scoped_t('search.placeholder'), class: "search-q q form-control rounded-#{
|
20
|
+
<%= text_field_tag @query_param, @q, placeholder: scoped_t('search.placeholder'), class: "search-q q form-control rounded-#{search_fields.length > 1 ? '0' : 'left'}", id: "#{@prefix}q", autocomplete: autocomplete_path.present? ? "off" : "", autofocus: @autofocus, data: { autocomplete_enabled: autocomplete_path.present?, autocomplete_path: autocomplete_path } %>
|
21
21
|
|
22
22
|
<span class="input-group-append">
|
23
23
|
<%= append %>
|
@@ -30,6 +30,6 @@
|
|
30
30
|
</div>
|
31
31
|
<% end %>
|
32
32
|
|
33
|
-
<% if
|
33
|
+
<% if advanced_search_enabled? %>
|
34
34
|
<%= link_to t('blacklight.advanced_search.more_options'), @advanced_search_url, class: 'advanced_search btn btn-secondary'%>
|
35
35
|
<% end %>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Blacklight
|
4
|
-
class SearchBarComponent < ::
|
4
|
+
class SearchBarComponent < Blacklight::Component
|
5
5
|
include Blacklight::ContentAreasShim
|
6
6
|
|
7
7
|
renders_one :append
|
@@ -9,10 +9,11 @@ module Blacklight
|
|
9
9
|
|
10
10
|
# rubocop:disable Metrics/ParameterLists
|
11
11
|
def initialize(
|
12
|
-
url:,
|
13
|
-
|
12
|
+
url:, params:,
|
13
|
+
advanced_search_url: nil,
|
14
|
+
classes: ['search-query-form'], prefix: nil,
|
14
15
|
method: 'GET', q: nil, query_param: :q,
|
15
|
-
search_field: nil, search_fields:
|
16
|
+
search_field: nil, search_fields: nil, autocomplete_path: nil,
|
16
17
|
autofocus: nil, i18n: { scope: 'blacklight.search.form' }
|
17
18
|
)
|
18
19
|
@url = url
|
@@ -23,7 +24,6 @@ module Blacklight
|
|
23
24
|
@params = params.except(:q, :search_field, :utf8, :page)
|
24
25
|
@prefix = prefix
|
25
26
|
@classes = classes
|
26
|
-
@presenter = presenter
|
27
27
|
@method = method
|
28
28
|
@autocomplete_path = autocomplete_path
|
29
29
|
@autofocus = autofocus
|
@@ -33,29 +33,34 @@ module Blacklight
|
|
33
33
|
# rubocop:enable Metrics/ParameterLists
|
34
34
|
|
35
35
|
def autocomplete_path
|
36
|
-
return nil unless
|
36
|
+
return nil unless blacklight_config.autocomplete_enabled
|
37
37
|
|
38
38
|
@autocomplete_path
|
39
39
|
end
|
40
40
|
|
41
41
|
def autofocus
|
42
42
|
if @autofocus.nil?
|
43
|
-
|
43
|
+
blacklight_config.enable_search_bar_autofocus &&
|
44
|
+
controller.is_a?(Blacklight::Catalog) &&
|
45
|
+
controller.action_name == "index" &&
|
46
|
+
!controller.has_search_parameters?
|
44
47
|
else
|
45
48
|
@autofocus
|
46
49
|
end
|
47
50
|
end
|
48
51
|
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
52
|
+
def search_fields
|
53
|
+
@search_fields ||= blacklight_config.search_fields.values
|
54
|
+
.select { |field_def| helpers.should_render_field?(field_def) }
|
55
|
+
.collect { |field_def| [helpers.label_for_search_field(field_def.key), field_def.key] }
|
53
56
|
end
|
54
57
|
|
55
|
-
def
|
56
|
-
blacklight_config.
|
58
|
+
def advanced_search_enabled?
|
59
|
+
blacklight_config.advanced_search.enabled
|
57
60
|
end
|
58
61
|
|
62
|
+
private
|
63
|
+
|
59
64
|
def blacklight_config
|
60
65
|
helpers.blacklight_config
|
61
66
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
module Blacklight
|
4
|
-
class StartOverButtonComponent < ::
|
4
|
+
class StartOverButtonComponent < Blacklight::Component
|
5
5
|
def call
|
6
6
|
link_to t('blacklight.search.start_over'), start_over_path, class: 'catalog_startOverLink btn btn-primary'
|
7
7
|
end
|
@@ -81,6 +81,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
81
81
|
def render_search_bar
|
82
82
|
search_bar_presenter.render
|
83
83
|
end
|
84
|
+
deprecation_deprecate render_search_bar: "Call `render Blacklight::SearchBarComponent.new' instead"
|
84
85
|
|
85
86
|
# @!group Presenter extension helpers
|
86
87
|
##
|
@@ -88,6 +89,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
88
89
|
def search_bar_presenter
|
89
90
|
@search_bar ||= search_bar_presenter_class.new(controller, blacklight_config)
|
90
91
|
end
|
92
|
+
deprecation_deprecate :search_bar_presenter
|
91
93
|
|
92
94
|
# @!group Document helpers
|
93
95
|
##
|
@@ -361,7 +363,7 @@ module Blacklight::BlacklightHelperBehavior
|
|
361
363
|
|
362
364
|
##
|
363
365
|
# Override this method if you want to use a differnet presenter for your documents
|
364
|
-
# @param [Blacklight::Document] optional, here for extension + backwards compatibility only
|
366
|
+
# @param [Blacklight::Document] document optional, here for extension + backwards compatibility only
|
365
367
|
def document_presenter_class(document = nil)
|
366
368
|
Deprecation.silence(Blacklight::BlacklightHelperBehavior) do
|
367
369
|
case action_name
|
@@ -319,7 +319,7 @@ module Blacklight::CatalogHelperBehavior
|
|
319
319
|
end
|
320
320
|
|
321
321
|
# Render an html <title> appropriate string for a set of search parameters
|
322
|
-
# @param [ActionController::Parameters]
|
322
|
+
# @param [ActionController::Parameters] params
|
323
323
|
# @return [String]
|
324
324
|
def render_search_to_page_title(search_state_or_params)
|
325
325
|
search_state = if search_state_or_params.is_a? Blacklight::SearchState
|
@@ -84,14 +84,12 @@ module Blacklight::RenderConstraintsHelperBehavior
|
|
84
84
|
Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_constraints_filters is deprecated')
|
85
85
|
search_state = convert_to_search_state(params_or_search_state)
|
86
86
|
|
87
|
-
|
88
|
-
return "".html_safe if search_state.filter_params.blank?
|
87
|
+
return "".html_safe unless search_state.filters.any?
|
89
88
|
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
end
|
89
|
+
Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
|
90
|
+
safe_join(search_state.filters.map do |field|
|
91
|
+
render_filter_element(field.key, field.values, search_state)
|
92
|
+
end, "\n")
|
95
93
|
end
|
96
94
|
end
|
97
95
|
|
@@ -206,7 +206,7 @@ Blacklight.modal.checkCloseModal = function(event) {
|
|
206
206
|
}
|
207
207
|
|
208
208
|
Blacklight.modal.hide = function(el) {
|
209
|
-
if (bootstrap && bootstrap.Modal && bootstrap.Modal.VERSION >= "5") {
|
209
|
+
if (typeof bootstrap !== 'undefined' && typeof bootstrap.Modal !== 'undefined' && bootstrap.Modal.VERSION >= "5") {
|
210
210
|
bootstrap.Modal.getOrCreateInstance(el || document.querySelector(Blacklight.modal.modalSelector)).hide();
|
211
211
|
} else {
|
212
212
|
$(el || Blacklight.modal.modalSelector).modal('hide');
|
@@ -214,7 +214,7 @@ Blacklight.modal.hide = function(el) {
|
|
214
214
|
}
|
215
215
|
|
216
216
|
Blacklight.modal.show = function(el) {
|
217
|
-
if (bootstrap && bootstrap.Modal && bootstrap.Modal.VERSION >= "5") {
|
217
|
+
if (typeof bootstrap !== 'undefined' && typeof bootstrap.Modal !== 'undefined' && bootstrap.Modal.VERSION >= "5") {
|
218
218
|
bootstrap.Modal.getOrCreateInstance(el || document.querySelector(Blacklight.modal.modalSelector)).show();
|
219
219
|
} else {
|
220
220
|
$(el || Blacklight.modal.modalSelector).modal('show');
|
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
module Blacklight
|
4
4
|
class SearchBarPresenter
|
5
|
+
extend Deprecation
|
5
6
|
attr_reader :configuration, :view_context, :controller
|
6
7
|
|
7
8
|
# Set the partial this presenter draws
|
@@ -17,6 +18,7 @@ module Blacklight
|
|
17
18
|
def render
|
18
19
|
view_context.render partial, presenter: self
|
19
20
|
end
|
21
|
+
deprecation_deprecate render: "The SearchBarPresenter has been deprecated. Call `render Blacklight::SearchBarComponent.new' instead"
|
20
22
|
|
21
23
|
##
|
22
24
|
# @return [Boolean] should autocomplete be enabled in the UI
|
@@ -4,7 +4,7 @@ module Blacklight
|
|
4
4
|
class FieldRetriever
|
5
5
|
# @param [Blacklight::Document] document
|
6
6
|
# @param [Blacklight::Configuration::Field] field_config solr field configuration
|
7
|
-
# @param [ActionView::Base] Rails rendering context
|
7
|
+
# @param [ActionView::Base] view_context Rails rendering context
|
8
8
|
def initialize(document, field_config, view_context = nil)
|
9
9
|
@document = document
|
10
10
|
@field_config = field_config
|
@@ -1,5 +1,5 @@
|
|
1
|
-
<% if constraints_helpers_and_partials_from_blacklight? %>
|
2
|
-
<%= render(Blacklight::ConstraintsComponent.new(search_state: convert_to_search_state(controller.params != params ? params : search_state))) %>
|
1
|
+
<% if constraints_helpers_and_partials_from_blacklight? || blacklight_config&.view_config(document_index_view_type)&.constraints_component %>
|
2
|
+
<%= render((blacklight_config&.view_config(document_index_view_type)&.constraints_component || Blacklight::ConstraintsComponent).new(search_state: convert_to_search_state(controller.params != params ? params : search_state))) %>
|
3
3
|
<% else %>
|
4
4
|
<% Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'Constraints helpers or partials were overridden; not using components') %>
|
5
5
|
<% if Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) { query_has_constraints? } %>
|
@@ -1,4 +1,4 @@
|
|
1
|
-
<%= render Blacklight::Response::FacetGroupComponent.new(
|
1
|
+
<%= render (blacklight_config&.view_config(document_index_view_type)&.facet_group_component || Blacklight::Response::FacetGroupComponent).new(
|
2
2
|
response: @response,
|
3
3
|
id: groupname,
|
4
4
|
fields: facet_field_names(groupname),
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<%=
|
1
|
+
<%= warn "#{__file__} is a deprecated partial." %>
|
2
|
+
<%= render((blacklight_config&.view_config(document_index_view_type)&.search_bar_component || Blacklight::SearchBarComponent).new(
|
2
3
|
url: search_action_url,
|
3
4
|
advanced_search_url: search_action_url(action: 'advanced_search'),
|
4
5
|
params: search_state.params_for_search.except(:qt),
|
5
6
|
search_fields: Deprecation.silence(Blacklight::ConfigurationHelperBehavior) { search_fields },
|
6
|
-
presenter: presenter,
|
7
7
|
autocomplete_path: search_action_path(action: :suggest))) %>
|