blacklight 7.19.0 → 7.19.1
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/VERSION +1 -1
- data/app/assets/javascripts/blacklight/blacklight.js +1 -2
- data/app/assets/stylesheets/blacklight/_balanced_list.scss +2 -2
- data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +1 -1
- data/app/assets/stylesheets/blacklight/_constraints.scss +2 -2
- data/app/assets/stylesheets/blacklight/_controls.scss +2 -1
- data/app/assets/stylesheets/blacklight/_facets.scss +3 -1
- data/app/assets/stylesheets/blacklight/_header.scss +6 -1
- data/app/components/blacklight/constraint_layout_component.html.erb +1 -1
- data/app/components/blacklight/constraints_component.html.erb +2 -2
- data/app/components/blacklight/facet_field_component.html.erb +3 -1
- data/app/components/blacklight/facet_item_component.rb +1 -1
- data/app/components/blacklight/facet_item_pivot_component.rb +2 -2
- data/app/components/blacklight/response/facet_group_component.html.erb +2 -0
- data/app/components/blacklight/response/view_type_component.html.erb +1 -1
- data/app/components/blacklight/search_bar_component.html.erb +3 -3
- data/app/components/blacklight/system/dropdown_component.rb +1 -1
- data/app/components/blacklight/system/flash_message_component.html.erb +1 -1
- data/app/components/blacklight/system/modal_component.html.erb +1 -1
- data/app/helpers/blacklight/component_helper_behavior.rb +1 -1
- data/app/javascript/blacklight/modal.js +1 -1
- data/app/views/blacklight/nav/_bookmark.html.erb +1 -1
- data/app/views/bookmarks/index.html.erb +1 -1
- data/app/views/catalog/_constraints.html.erb +2 -2
- data/app/views/catalog/_home_text.html.erb +1 -1
- data/app/views/catalog/_per_page_widget.html.erb +1 -1
- data/app/views/catalog/_search_results.html.erb +2 -2
- data/app/views/search_history/index.html.erb +1 -1
- data/app/views/shared/_header_navbar.html.erb +1 -1
- data/config/locales/blacklight.ar.yml +2 -2
- data/config/locales/blacklight.ca.yml +2 -2
- data/config/locales/blacklight.de.yml +2 -2
- data/config/locales/blacklight.en.yml +2 -2
- data/config/locales/blacklight.es.yml +2 -2
- data/config/locales/blacklight.fr.yml +2 -2
- data/config/locales/blacklight.hu.yml +2 -2
- data/config/locales/blacklight.it.yml +2 -2
- data/config/locales/blacklight.nl.yml +2 -2
- data/config/locales/blacklight.pt-BR.yml +1 -1
- data/config/locales/blacklight.sq.yml +2 -2
- data/config/locales/blacklight.zh.yml +2 -2
- data/lib/blacklight/solr/request.rb +10 -7
- data/lib/blacklight/solr/search_builder_behavior.rb +23 -17
- data/spec/components/blacklight/constraint_layout_component_spec.rb +1 -1
- data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +1 -1
- data/spec/components/blacklight/facet_field_list_component_spec.rb +1 -1
- data/spec/features/facets_spec.rb +2 -2
- data/spec/helpers/blacklight/configuration_helper_behavior_spec.rb +3 -3
- data/spec/models/blacklight/solr/request_spec.rb +0 -1
- data/spec/models/blacklight/solr/search_builder_spec.rb +14 -1
- data/spec/views/catalog/_facet_layout.html.erb_spec.rb +2 -2
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 924afe1d564ba4e2a2fdf2f2959fb85a6245dd48b4be4eabbe9c1298b6d96e9b
|
|
4
|
+
data.tar.gz: e1574d78f4ac42092f73d68f0f5cb76a3e5eeb116ca98a8a017a82e883110486
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 268ddf30836b4c0f4b9a4b00b6bc7b1779ca2eb88568190ca344bbce72e5a5eb1c7bccc13a0339f224f1f468c6a972d4d9ce0198af284fe4c361cc0f671e2913
|
|
7
|
+
data.tar.gz: 20d21c6e2f5b86c0383124af0d7862f0ef7b2d8fadd475257b4e150e36e488e5025e4c2f2fd96ad399d7472a613edfa069d04d50693a2ded20f1d29d02c039b3
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
7.19.
|
|
1
|
+
7.19.1
|
|
@@ -352,7 +352,7 @@ Blacklight.modal.modalCloseSelector = '[data-blacklight-modal~=close]'; // Calle
|
|
|
352
352
|
|
|
353
353
|
Blacklight.modal.onFailure = function (jqXHR, textStatus, errorThrown) {
|
|
354
354
|
console.error('Server error:', this.url, jqXHR.status, errorThrown);
|
|
355
|
-
var contents = '<div class="modal-header">' + '<div class="modal-title">There was a problem with your request.</div>' + '<button type="button" class="blacklight-modal-close close" data-dismiss="modal" aria-label="Close">' + ' <span aria-hidden="true">×</span>' + '</button></div>' + ' <div class="modal-body"><p>Expected a successful response from the server, but got an error</p>' + '<pre>' + this.type + ' ' + this.url + "\n" + jqXHR.status + ': ' + errorThrown + '</pre></div>';
|
|
355
|
+
var contents = '<div class="modal-header">' + '<div class="modal-title">There was a problem with your request.</div>' + '<button type="button" class="blacklight-modal-close btn-close close" data-dismiss="modal" aria-label="Close">' + ' <span aria-hidden="true">×</span>' + '</button></div>' + ' <div class="modal-body"><p>Expected a successful response from the server, but got an error</p>' + '<pre>' + this.type + ' ' + this.url + "\n" + jqXHR.status + ': ' + errorThrown + '</pre></div>';
|
|
356
356
|
$(Blacklight.modal.modalSelector).find('.modal-content').html(contents);
|
|
357
357
|
$(Blacklight.modal.modalSelector).modal('show');
|
|
358
358
|
};
|
|
@@ -495,4 +495,3 @@ Blacklight.handleSearchContextMethod = function (event) {
|
|
|
495
495
|
Blacklight.onLoad(function () {
|
|
496
496
|
Blacklight.doSearchContextBehavior();
|
|
497
497
|
});
|
|
498
|
-
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
dt {
|
|
3
3
|
font-weight: normal;
|
|
4
4
|
color: $field_name_color;
|
|
5
|
-
@media (max-width: breakpoint-
|
|
5
|
+
@media (max-width: breakpoint-min(md)) {
|
|
6
6
|
text-align: left;
|
|
7
7
|
}
|
|
8
8
|
|
|
9
|
-
@media (min-width: breakpoint-
|
|
9
|
+
@media (min-width: breakpoint-min(md)) {
|
|
10
10
|
text-align: right;
|
|
11
11
|
}
|
|
12
12
|
}
|
|
@@ -8,8 +8,8 @@
|
|
|
8
8
|
text-overflow: ellipsis;
|
|
9
9
|
overflow: hidden;
|
|
10
10
|
|
|
11
|
-
@media (max-width: breakpoint-
|
|
12
|
-
max-width: breakpoint-
|
|
11
|
+
@media (max-width: breakpoint-min(sm)) {
|
|
12
|
+
max-width: breakpoint-min(sm) / 2;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
@media (min-width: breakpoint-min(sm)) and (max-width: breakpoint-max(sm)) {
|
|
@@ -3,7 +3,8 @@
|
|
|
3
3
|
border-color: $navbar-light-toggler-border-color;
|
|
4
4
|
color: $navbar-light-active-color;
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
&:hover,
|
|
7
|
+
&:focus {
|
|
7
8
|
color: $navbar-light-active-color;
|
|
8
9
|
}
|
|
9
10
|
}
|
|
@@ -83,6 +84,7 @@
|
|
|
83
84
|
color: $text-muted;
|
|
84
85
|
font-weight: bold;
|
|
85
86
|
padding-left: $spacer / 2;
|
|
87
|
+
text-decoration: none;
|
|
86
88
|
|
|
87
89
|
&:hover {
|
|
88
90
|
color: theme-color("danger");
|
|
@@ -44,7 +44,12 @@
|
|
|
44
44
|
.submit-search-text {
|
|
45
45
|
// hide 'search' label at very small screens
|
|
46
46
|
@media screen and (max-width: breakpoint-max(xs)) {
|
|
47
|
-
@
|
|
47
|
+
@if mixin-exists(sr-only) {
|
|
48
|
+
@include sr-only();
|
|
49
|
+
}
|
|
50
|
+
@if mixin-exists(visually-hidden) {
|
|
51
|
+
@include visually-hidden();
|
|
52
|
+
}
|
|
48
53
|
}
|
|
49
54
|
}
|
|
50
55
|
}
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<% if @remove_path.present? %>
|
|
11
11
|
<%= link_to(@remove_path, class: 'btn btn-outline-secondary remove') do %>
|
|
12
12
|
<span class="remove-icon" aria-hidden="true">✖</span>
|
|
13
|
-
<span class="sr-only">
|
|
13
|
+
<span class="sr-only visually-hidden">
|
|
14
14
|
<%= if @label.blank?
|
|
15
15
|
t('blacklight.search.filters.remove.value', value: @value)
|
|
16
16
|
else
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<%= content_tag :div, id: @id, class: @classes do %>
|
|
2
|
-
<h2 class="sr-only"><%= t('blacklight.search.search_constraints_header') %></h2>
|
|
2
|
+
<h2 class="sr-only visually-hidden"><%= t('blacklight.search.search_constraints_header') %></h2>
|
|
3
3
|
|
|
4
4
|
<%= link_to t('blacklight.search.start_over'), start_over_path, class: "catalog_startOverLink btn btn-primary" %>
|
|
5
5
|
|
|
6
|
-
<span class="constraints-label sr-only"><%= t('blacklight.search.filters.title') %></span>
|
|
6
|
+
<span class="constraints-label sr-only visually-hidden"><%= t('blacklight.search.filters.title') %></span>
|
|
7
7
|
<% if query_constraints_area.present? %>
|
|
8
8
|
<% query_constraints_area.each do |constraint| %>
|
|
9
9
|
<%= constraint %>
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
<h3 class="card-header p-0 facet-field-heading" id="<%= @facet_field.html_id %>-header">
|
|
3
3
|
<button
|
|
4
4
|
type="button"
|
|
5
|
-
class="btn btn-block p-2 text-left collapse-toggle <%= "collapsed" if @facet_field.collapsed? %>"
|
|
5
|
+
class="btn w-100 d-block btn-block p-2 text-start text-left collapse-toggle <%= "collapsed" if @facet_field.collapsed? %>"
|
|
6
6
|
data-toggle="collapse"
|
|
7
|
+
data-bs-toggle="collapse"
|
|
7
8
|
data-target="#<%= @facet_field.html_id %>"
|
|
9
|
+
data-bs-target="#<%= @facet_field.html_id %>"
|
|
8
10
|
aria-expanded="<%= @facet_field.collapsed? ? 'false' : 'true' %>"
|
|
9
11
|
>
|
|
10
12
|
<%= label %>
|
|
@@ -87,7 +87,7 @@ module Blacklight
|
|
|
87
87
|
# remove link
|
|
88
88
|
link_to(@href, class: "remove") do
|
|
89
89
|
tag.span('✖', class: "remove-icon", aria: { hidden: true }) +
|
|
90
|
-
tag.span(@view_context.t(:'blacklight.search.facets.selected.remove'), class: 'sr-only')
|
|
90
|
+
tag.span(@view_context.t(:'blacklight.search.facets.selected.remove'), class: 'sr-only visually-hidden')
|
|
91
91
|
end
|
|
92
92
|
end + render_facet_count(classes: ["selected"])
|
|
93
93
|
end
|
|
@@ -56,7 +56,7 @@ module Blacklight
|
|
|
56
56
|
|
|
57
57
|
def facet_toggle_button(id)
|
|
58
58
|
content_tag 'button', class: 'btn facet-toggle-handle collapsed',
|
|
59
|
-
data: { toggle: 'collapse', target: "##{id}" },
|
|
59
|
+
data: { toggle: 'collapse', 'bs-toggle': 'collapse', target: "##{id}", 'bs-target': "##{id}" },
|
|
60
60
|
aria: { expanded: false, controls: id, describedby: "#{id}_label" } do
|
|
61
61
|
concat toggle_icon(:show)
|
|
62
62
|
concat toggle_icon(:hide)
|
|
@@ -66,7 +66,7 @@ module Blacklight
|
|
|
66
66
|
def toggle_icon(type)
|
|
67
67
|
content_tag 'span', class: type do
|
|
68
68
|
concat @icons[type]
|
|
69
|
-
concat content_tag('span', t(type, scope: 'blacklight.search.facets.pivot'), class: 'sr-only')
|
|
69
|
+
concat content_tag('span', t(type, scope: 'blacklight.search.facets.pivot'), class: 'sr-only visually-hidden')
|
|
70
70
|
end
|
|
71
71
|
end
|
|
72
72
|
|
|
@@ -1,7 +1,7 @@
|
|
|
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
3
|
<% if @search_fields.length > 1 %>
|
|
4
|
-
<label for="search_field" class="sr-only"><%= scoped_t('search_field.label') %></label>
|
|
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 %>
|
|
@@ -11,12 +11,12 @@
|
|
|
11
11
|
options_for_select(@search_fields, h(@search_field)),
|
|
12
12
|
title: scoped_t('search_field.title'),
|
|
13
13
|
id: "#{@prefix}search_field",
|
|
14
|
-
class: "custom-select search-field") %>
|
|
14
|
+
class: "custom-select form-select search-field") %>
|
|
15
15
|
<% elsif @search_fields.length == 1 %>
|
|
16
16
|
<%= hidden_field_tag :search_field, @search_fields.first.last %>
|
|
17
17
|
<% end %>
|
|
18
18
|
|
|
19
|
-
<label for="<%= @prefix %><%= @query_param %>" class="sr-only"><%= scoped_t('search.label') %></label>
|
|
19
|
+
<label for="<%= @prefix %><%= @query_param %>" class="sr-only visually-hidden"><%= scoped_t('search.label') %></label>
|
|
20
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">
|
|
@@ -4,7 +4,7 @@ module Blacklight
|
|
|
4
4
|
module System
|
|
5
5
|
class DropdownComponent < ViewComponent::Base
|
|
6
6
|
renders_one :button, (lambda do |classes:, label:|
|
|
7
|
-
button_tag class: classes, aria: { expanded: false }, data: { toggle: 'dropdown' } do
|
|
7
|
+
button_tag class: classes, aria: { expanded: false }, data: { toggle: 'dropdown', 'bs-toggle': 'dropdown' } do
|
|
8
8
|
safe_join([label, content_tag(:span, '', class: 'caret')])
|
|
9
9
|
end
|
|
10
10
|
end)
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
<h1 class="modal-title"><%= title %></h1>
|
|
7
7
|
<% end) %>
|
|
8
8
|
|
|
9
|
-
<button type="button" class="blacklight-modal-close close" data-dismiss="modal" aria-label="<%= t('blacklight.modal.close') %>">
|
|
9
|
+
<button type="button" class="blacklight-modal-close btn-close close" data-dismiss="modal" aria-label="<%= t('blacklight.modal.close') %>">
|
|
10
10
|
<span aria-hidden="true">×</span>
|
|
11
11
|
</button>
|
|
12
12
|
</div>
|
|
@@ -14,7 +14,7 @@ module Blacklight
|
|
|
14
14
|
if action_opts.path
|
|
15
15
|
send(action_opts.path, url_opts)
|
|
16
16
|
elsif url_opts[:id].class.respond_to?(:model_name)
|
|
17
|
-
url_for([action_opts.key, url_opts[:id]])
|
|
17
|
+
url_for([action_opts.key.to_sym, url_opts[:id]])
|
|
18
18
|
else
|
|
19
19
|
send("#{action_opts.key}_#{controller_name}_path", url_opts)
|
|
20
20
|
end
|
|
@@ -106,7 +106,7 @@ Blacklight.modal.onFailure = function(jqXHR, textStatus, errorThrown) {
|
|
|
106
106
|
|
|
107
107
|
var contents = '<div class="modal-header">' +
|
|
108
108
|
'<div class="modal-title">There was a problem with your request.</div>' +
|
|
109
|
-
'<button type="button" class="blacklight-modal-close close" data-dismiss="modal" aria-label="Close">' +
|
|
109
|
+
'<button type="button" class="blacklight-modal-close btn-close close" data-dismiss="modal" aria-label="Close">' +
|
|
110
110
|
' <span aria-hidden="true">×</span>' +
|
|
111
111
|
'</button></div>' +
|
|
112
112
|
' <div class="modal-body"><p>Expected a successful response from the server, but got an error</p>' +
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<%= link_to bookmarks_path, id:'bookmarks_nav', class: 'nav-link' do %>
|
|
2
2
|
<%= t('blacklight.header_links.bookmarks') %>
|
|
3
|
-
<span class="badge badge-secondary" data-role='bookmark-counter'><%= current_or_guest_user.bookmarks.count %></span>
|
|
3
|
+
<span class="badge badge-secondary bg-secondary" data-role='bookmark-counter'><%= current_or_guest_user.bookmarks.count %></span>
|
|
4
4
|
<% end %>
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
<% else %>
|
|
14
14
|
<%= render 'sort_and_per_page' %>
|
|
15
15
|
<%= render partial: 'tools', locals: { document_list: @response.documents } %>
|
|
16
|
-
<h2 class='section-heading sr-only'><%= t('blacklight.bookmarks.list_title') %></h2>
|
|
16
|
+
<h2 class='section-heading sr-only visually-hidden'><%= t('blacklight.bookmarks.list_title') %></h2>
|
|
17
17
|
<%= render_document_index %>
|
|
18
18
|
<%= render 'results_pagination' %>
|
|
19
19
|
<% end %>
|
|
@@ -4,10 +4,10 @@
|
|
|
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? } %>
|
|
6
6
|
<div id="appliedParams" class="clearfix constraints-container">
|
|
7
|
-
<h2 class="sr-only"><%= t('blacklight.search.search_constraints_header') %></h2>
|
|
7
|
+
<h2 class="sr-only visually-hidden"><%= t('blacklight.search.search_constraints_header') %></h2>
|
|
8
8
|
|
|
9
9
|
<%= render 'start_over' %>
|
|
10
|
-
<span class="constraints-label sr-only"><%= t('blacklight.search.filters.title') %></span>
|
|
10
|
+
<span class="constraints-label sr-only visually-hidden"><%= t('blacklight.search.filters.title') %></span>
|
|
11
11
|
<%= render_constraints(controller.params != params ? params : search_state) %>
|
|
12
12
|
</div>
|
|
13
13
|
<% end %>
|
|
@@ -31,7 +31,7 @@
|
|
|
31
31
|
|
|
32
32
|
<%# This is the same panel shown in the Rails welcome template %>
|
|
33
33
|
<div id="about" class="card">
|
|
34
|
-
<h2 class='card-header collapsed collapse-toggle' data-toggle="collapse" data-target="#about-content"><a href="/rails/info/properties">About your application’s environment</a></h2>
|
|
34
|
+
<h2 class='card-header collapsed collapse-toggle' data-toggle="collapse" data-bs-toggle="collapse" data-bs-target="#about-content" data-target="#about-content"><a href="/rails/info/properties">About your application’s environment</a></h2>
|
|
35
35
|
<div id="about-content" class="card-body collapse"></div>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<% if show_sort_and_per_page? %>
|
|
2
|
-
<span class="sr-only"><%= t('blacklight.search.per_page.title') %></span>
|
|
2
|
+
<span class="sr-only visually-hidden"><%= t('blacklight.search.per_page.title') %></span>
|
|
3
3
|
<%= render(Blacklight::System::DropdownComponent.new(
|
|
4
4
|
param: :per_page,
|
|
5
5
|
choices: per_page_options_for_select,
|
|
@@ -12,14 +12,14 @@
|
|
|
12
12
|
<% end %>
|
|
13
13
|
|
|
14
14
|
<% content_for(:container_header) do -%>
|
|
15
|
-
<h1 class="sr-only top-content-title"><%= t('blacklight.search.header') %></h1>
|
|
15
|
+
<h1 class="sr-only visually-hidden top-content-title"><%= t('blacklight.search.header') %></h1>
|
|
16
16
|
|
|
17
17
|
<%= render 'constraints' %>
|
|
18
18
|
<% end %>
|
|
19
19
|
|
|
20
20
|
<%= render 'search_header' %>
|
|
21
21
|
|
|
22
|
-
<h2 class="sr-only"><%= t('blacklight.search.search_results') %></h2>
|
|
22
|
+
<h2 class="sr-only visually-hidden"><%= t('blacklight.search.search_results') %></h2>
|
|
23
23
|
|
|
24
24
|
<%- if @response.empty? %>
|
|
25
25
|
<%= render "zero_results" %>
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
blacklight.clear_search_history_path,
|
|
10
10
|
method: :delete,
|
|
11
11
|
data: { confirm: t('blacklight.search_history.clear.action_confirm') },
|
|
12
|
-
class: 'btn btn-danger float-md-right' %>
|
|
12
|
+
class: 'btn btn-danger float-md-right float-md-end' %>
|
|
13
13
|
<h2 class='section-heading'><%= t('blacklight.search_history.recent') %></h2>
|
|
14
14
|
<table class="table table-striped search-history">
|
|
15
15
|
<% @searches.each_with_index do |search,index| %>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<nav class="navbar navbar-expand-md navbar-dark bg-dark topbar" role="navigation">
|
|
2
2
|
<div class="<%= container_classes %>">
|
|
3
3
|
<%= link_to application_name, root_path, class: 'mb-0 navbar-brand navbar-logo' %>
|
|
4
|
-
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#user-util-collapse" aria-controls="user-util-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
|
4
|
+
<button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-bs-toggle="collapse" data-target="#user-util-collapse" data-bs-target="#user-util-collapse" aria-controls="user-util-collapse" aria-expanded="false" aria-label="Toggle navigation">
|
|
5
5
|
<span class="navbar-toggler-icon"></span>
|
|
6
6
|
</button>
|
|
7
7
|
|
|
@@ -157,7 +157,7 @@ ar:
|
|
|
157
157
|
request_error: "معذرة، لم أفهم ما تبحث عنه."
|
|
158
158
|
invalid_solr_id: "معذرة! لقد طلبت سجلًا غير موجود."
|
|
159
159
|
per_page:
|
|
160
|
-
label: '%{count}<span class="sr-only"> لكل صفحة</span>'
|
|
160
|
+
label: '%{count}<span class="sr-only visually-hidden"> لكل صفحة</span>'
|
|
161
161
|
button_label: '%{count} لكل صفحة' # TODO: Remove during major release
|
|
162
162
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> لكل صفحة</span>'
|
|
163
163
|
title: 'عدد النتائج المعروضة في الصفحة'
|
|
@@ -209,7 +209,7 @@ ar:
|
|
|
209
209
|
count: 'ترتيب رقمي'
|
|
210
210
|
index: 'ترتيب أبجدي'
|
|
211
211
|
count: '%{number}'
|
|
212
|
-
more_html: 'المزيد <span class="sr-only">%{field_name}</span> »'
|
|
212
|
+
more_html: 'المزيد <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
213
213
|
selected:
|
|
214
214
|
remove: '[إزالة]'
|
|
215
215
|
missing: "[غير موجود]"
|
|
@@ -147,7 +147,7 @@ ca:
|
|
|
147
147
|
request_error: "No ha estat possible entendre la cerca"
|
|
148
148
|
invalid_solr_id: "El registre que heu sol·licitat no existeix."
|
|
149
149
|
per_page:
|
|
150
|
-
label: '%{count}<span class="sr-only"> per pàgina</span>'
|
|
150
|
+
label: '%{count}<span class="sr-only visually-hidden"> per pàgina</span>'
|
|
151
151
|
button_label: '%{count} per pàgina' # TODO: Remove during major release
|
|
152
152
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> per pàgina</span>'
|
|
153
153
|
title: 'Nombre de resultats a mostrar per pàgina'
|
|
@@ -189,7 +189,7 @@ ca:
|
|
|
189
189
|
count: 'Numèricament'
|
|
190
190
|
index: 'Alfabèticament'
|
|
191
191
|
count: '%{number}'
|
|
192
|
-
more_html: 'més <span class="sr-only">%{field_name}</span> »'
|
|
192
|
+
more_html: 'més <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
193
193
|
selected:
|
|
194
194
|
remove: '[eliminar]'
|
|
195
195
|
missing: "[Desaparegut]"
|
|
@@ -147,7 +147,7 @@ de:
|
|
|
147
147
|
request_error: "Entschuldigung, ich habe Ihre Suche nicht verstanden."
|
|
148
148
|
invalid_solr_id: "Entschuldigung, Sie haben einen nicht vorhandenen Datensatz angefordert."
|
|
149
149
|
per_page:
|
|
150
|
-
label: '%{count}<span class="sr-only"> pro Seite</span>'
|
|
150
|
+
label: '%{count}<span class="sr-only visually-hidden"> pro Seite</span>'
|
|
151
151
|
button_label: '%{count} pro Seite' # TODO: Remove during major release
|
|
152
152
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> pro Seite</span>'
|
|
153
153
|
title: 'Anzahl der Ergebnisse, die pro Seite angezeigt werden'
|
|
@@ -190,7 +190,7 @@ de:
|
|
|
190
190
|
count: 'Numerisch ordnen'
|
|
191
191
|
index: 'A-Z Ordnen'
|
|
192
192
|
count: '%{number}'
|
|
193
|
-
more_html: 'mehr <span class="sr-only">%{field_name}</span> »'
|
|
193
|
+
more_html: 'mehr <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
194
194
|
selected:
|
|
195
195
|
remove: '[entfernen]'
|
|
196
196
|
missing: [fehlt]
|
|
@@ -147,7 +147,7 @@ en:
|
|
|
147
147
|
request_error: "Sorry, I don't understand your search."
|
|
148
148
|
invalid_solr_id: "Sorry, you have requested a record that doesn't exist."
|
|
149
149
|
per_page:
|
|
150
|
-
label: '%{count}<span class="sr-only"> per page</span>'
|
|
150
|
+
label: '%{count}<span class="sr-only visually-hidden"> per page</span>'
|
|
151
151
|
button_label: '%{count} per page' # TODO: Remove during major release
|
|
152
152
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> per page</span>'
|
|
153
153
|
title: 'Number of results to display per page'
|
|
@@ -189,7 +189,7 @@ en:
|
|
|
189
189
|
count: 'Numerical Sort'
|
|
190
190
|
index: 'A-Z Sort'
|
|
191
191
|
count: '%{number}'
|
|
192
|
-
more_html: 'more <span class="sr-only">%{field_name}</span> »'
|
|
192
|
+
more_html: 'more <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
193
193
|
selected:
|
|
194
194
|
remove: '[remove]'
|
|
195
195
|
missing: "[Missing]"
|
|
@@ -147,7 +147,7 @@ es:
|
|
|
147
147
|
request_error: "Lo siento, no entiendo esta búsqueda"
|
|
148
148
|
invalid_solr_id: "Lo sentimos, usted ha solicitado un registro que no existe."
|
|
149
149
|
per_page:
|
|
150
|
-
label: '%{count}<span class="sr-only"> por página</span>'
|
|
150
|
+
label: '%{count}<span class="sr-only visually-hidden"> por página</span>'
|
|
151
151
|
button_label: '%{count} por página' # TODO: Remove during major release
|
|
152
152
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> por página</span>'
|
|
153
153
|
title: 'El número de resultados a mostrar por página'
|
|
@@ -190,7 +190,7 @@ es:
|
|
|
190
190
|
count: 'Ordenación numérica'
|
|
191
191
|
index: 'Ordenación A-Z'
|
|
192
192
|
count: '%{number}'
|
|
193
|
-
more_html: 'más <span class="sr-only">%{field_name}</span> »'
|
|
193
|
+
more_html: 'más <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
194
194
|
selected:
|
|
195
195
|
remove: '[borrar]'
|
|
196
196
|
missing: '[Falta]'
|
|
@@ -150,7 +150,7 @@ fr:
|
|
|
150
150
|
request_error: "Pardon, nous n'avons pas compris votre recherche."
|
|
151
151
|
invalid_solr_id: "Vous avez demandé une notice qui n'existe pas."
|
|
152
152
|
per_page:
|
|
153
|
-
label: '%{count}<span class="sr-only"> par page</span>'
|
|
153
|
+
label: '%{count}<span class="sr-only visually-hidden"> par page</span>'
|
|
154
154
|
button_label: '%{count} par page' # TODO: Remove during major release
|
|
155
155
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> par page</span>'
|
|
156
156
|
title: 'Nombre de résultats à afficher par page'
|
|
@@ -193,7 +193,7 @@ fr:
|
|
|
193
193
|
count: 'Du + au - fréquent'
|
|
194
194
|
index: 'Tri de A à Z'
|
|
195
195
|
count: '%{number}'
|
|
196
|
-
more_html: 'plus <span class="sr-only">%{field_name}</span> »'
|
|
196
|
+
more_html: 'plus <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
197
197
|
selected:
|
|
198
198
|
remove: '[ X ]'
|
|
199
199
|
missing: '[manquante]'
|
|
@@ -147,7 +147,7 @@ hu:
|
|
|
147
147
|
request_error: "Elnézést, nem tudom értelmezni a keresést."
|
|
148
148
|
invalid_solr_id: "Elnézést, de az Ön által kért rekord nem létezik."
|
|
149
149
|
per_page:
|
|
150
|
-
label: '%{count}<span class="sr-only"> oldalanként</span>'
|
|
150
|
+
label: '%{count}<span class="sr-only visually-hidden"> oldalanként</span>'
|
|
151
151
|
button_label: '%{count} oldalanként' # TODO: Remove during major release
|
|
152
152
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> oldalanként</span>'
|
|
153
153
|
title: 'Az eredmények száma oldalanként'
|
|
@@ -190,7 +190,7 @@ hu:
|
|
|
190
190
|
count: 'Numerikus rendezés'
|
|
191
191
|
index: 'A-Z rendezés'
|
|
192
192
|
count: '%{number}'
|
|
193
|
-
more_html: 'több <span class="sr-only">%{field_name}</span> »'
|
|
193
|
+
more_html: 'több <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
194
194
|
selected:
|
|
195
195
|
remove: '[eltávolítás]'
|
|
196
196
|
missing: "[Hiányzó]"
|
|
@@ -147,7 +147,7 @@ it:
|
|
|
147
147
|
request_error: "La richiesta non è comprensibile."
|
|
148
148
|
invalid_solr_id: "Il numero di scheda richiesto non esiste."
|
|
149
149
|
per_page:
|
|
150
|
-
label: '%{count}<span class="sr-only"> per pagina</span>'
|
|
150
|
+
label: '%{count}<span class="sr-only visually-hidden"> per pagina</span>'
|
|
151
151
|
button_label: '%{count} per pagina' # TODO: Remove during major release
|
|
152
152
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> per pagina</span>'
|
|
153
153
|
title: 'Risultati per pagina'
|
|
@@ -190,7 +190,7 @@ it:
|
|
|
190
190
|
count: 'Ordina per numero'
|
|
191
191
|
index: 'Ordina A-Z'
|
|
192
192
|
count: '%{number}'
|
|
193
|
-
more_html: 'altri <span class="sr-only">%{field_name}</span> »'
|
|
193
|
+
more_html: 'altri <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
194
194
|
selected:
|
|
195
195
|
remove: '[cancella]'
|
|
196
196
|
missing: [Mancante]
|
|
@@ -147,7 +147,7 @@ nl:
|
|
|
147
147
|
request_error: "Sorry, ik kon uw zoekopdracht niet begrijpen."
|
|
148
148
|
invalid_solr_id: "Sorry, u vroeg een onbestaande record op."
|
|
149
149
|
per_page:
|
|
150
|
-
label: '%{count}<span class="sr-only"> per pagina</span>'
|
|
150
|
+
label: '%{count}<span class="sr-only visually-hidden"> per pagina</span>'
|
|
151
151
|
button_label: '%{count} per pagina' # TODO: Remove during major release
|
|
152
152
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> per pagina</span>'
|
|
153
153
|
title: 'Toon aantal zoekresultaten per pagina'
|
|
@@ -190,7 +190,7 @@ nl:
|
|
|
190
190
|
count: 'Numeriek sorteren'
|
|
191
191
|
index: 'A-Z Sorteren'
|
|
192
192
|
count: '%{number}'
|
|
193
|
-
more_html: 'Meer <span class="sr-only">%{field_name}</span> »'
|
|
193
|
+
more_html: 'Meer <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
194
194
|
selected:
|
|
195
195
|
remove: '[verwijder]'
|
|
196
196
|
missing: "[Ontbrekend]"
|
|
@@ -191,7 +191,7 @@ pt-BR:
|
|
|
191
191
|
count: 'Ordenar por Número'
|
|
192
192
|
index: 'Ordem Alfabética A-Z'
|
|
193
193
|
count: '%{number}'
|
|
194
|
-
more_html: 'mais <span class="sr-only">%{field_name}</span> »'
|
|
194
|
+
more_html: 'mais <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
195
195
|
selected:
|
|
196
196
|
remove: '[remover]'
|
|
197
197
|
missing: [Ausência]
|
|
@@ -147,7 +147,7 @@ sq:
|
|
|
147
147
|
request_error: "Na vjen keq, unë nuk e kuptoj kërkimin tuaj."
|
|
148
148
|
invalid_solr_id: "Na vjen keq, ju keni kërkuar një të dhënë që nuk ekziston."
|
|
149
149
|
per_page:
|
|
150
|
-
label: '%{count}<span class="sr-only"> për faqe</span>'
|
|
150
|
+
label: '%{count}<span class="sr-only visually-hidden"> për faqe</span>'
|
|
151
151
|
button_label: '%{count} për faqe' # TODO: Remove during major release
|
|
152
152
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> për faqe</span>'
|
|
153
153
|
title: 'Numri i rezultateve që do të shfaqen për faqe'
|
|
@@ -190,7 +190,7 @@ sq:
|
|
|
190
190
|
count: 'Renditja numerike'
|
|
191
191
|
index: 'A-Z Renditja'
|
|
192
192
|
count: '%{number}'
|
|
193
|
-
more_html: 'Më shumë <span class="sr-only">%{field_name}</span> »'
|
|
193
|
+
more_html: 'Më shumë <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
194
194
|
selected:
|
|
195
195
|
remove: '[fshije]'
|
|
196
196
|
missing: "[Mungon]"
|
|
@@ -147,7 +147,7 @@ zh:
|
|
|
147
147
|
request_error: "抱歉,我不明白你要找什么。"
|
|
148
148
|
invalid_solr_id: "抱歉,你要找的结果不存在。"
|
|
149
149
|
per_page:
|
|
150
|
-
label: '%{count}<span class="sr-only"> 每页</span>'
|
|
150
|
+
label: '%{count}<span class="sr-only visually-hidden"> 每页</span>'
|
|
151
151
|
button_label: '%{count} 每页' # TODO: Remove during major release
|
|
152
152
|
button_label_html: '%{count}<span class="d-none d-sm-inline"> 每页</span>'
|
|
153
153
|
title: '每页显示结果数'
|
|
@@ -190,7 +190,7 @@ zh:
|
|
|
190
190
|
count: '按数量排序'
|
|
191
191
|
index: '按字母排序'
|
|
192
192
|
count: '%{number}'
|
|
193
|
-
more_html: '更多 <span class="sr-only">%{field_name}</span> »'
|
|
193
|
+
more_html: '更多 <span class="sr-only visually-hidden">%{field_name}</span> »'
|
|
194
194
|
selected:
|
|
195
195
|
remove: '[删除]'
|
|
196
196
|
missing: "[未找到]"
|
|
@@ -2,7 +2,10 @@
|
|
|
2
2
|
class Blacklight::Solr::InvalidParameter < ArgumentError; end
|
|
3
3
|
|
|
4
4
|
class Blacklight::Solr::Request < ActiveSupport::HashWithIndifferentAccess
|
|
5
|
+
# @deprecated
|
|
5
6
|
SINGULAR_KEYS = %w(facet fl q qt rows start spellcheck spellcheck.q sort per_page wt hl group defType)
|
|
7
|
+
|
|
8
|
+
# @deprecated
|
|
6
9
|
ARRAY_KEYS = %w(facet.field facet.query facet.pivot fq hl.fl)
|
|
7
10
|
|
|
8
11
|
def initialize(constructor = {})
|
|
@@ -12,9 +15,6 @@ class Blacklight::Solr::Request < ActiveSupport::HashWithIndifferentAccess
|
|
|
12
15
|
else
|
|
13
16
|
super(constructor)
|
|
14
17
|
end
|
|
15
|
-
ARRAY_KEYS.each do |key|
|
|
16
|
-
self[key] ||= []
|
|
17
|
-
end
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def append_query(query)
|
|
@@ -49,26 +49,29 @@ class Blacklight::Solr::Request < ActiveSupport::HashWithIndifferentAccess
|
|
|
49
49
|
end
|
|
50
50
|
|
|
51
51
|
def append_filter_query(query)
|
|
52
|
+
self['fq'] ||= []
|
|
53
|
+
self['fq'] = Array(self['fq']) if self['fq'].is_a? String
|
|
54
|
+
|
|
52
55
|
self['fq'] << query
|
|
53
56
|
end
|
|
54
57
|
|
|
55
58
|
def append_facet_fields(values)
|
|
59
|
+
self['facet.field'] ||= []
|
|
56
60
|
self['facet.field'] += Array(values)
|
|
57
61
|
end
|
|
58
62
|
|
|
59
63
|
def append_facet_query(values)
|
|
64
|
+
self['facet.query'] ||= []
|
|
60
65
|
self['facet.query'] += Array(values)
|
|
61
66
|
end
|
|
62
67
|
|
|
63
68
|
def append_facet_pivot(query)
|
|
69
|
+
self['facet.pivot'] ||= []
|
|
64
70
|
self['facet.pivot'] << query
|
|
65
71
|
end
|
|
66
72
|
|
|
67
73
|
def append_highlight_field(query)
|
|
74
|
+
self['hl.fl'] ||= []
|
|
68
75
|
self['hl.fl'] << query
|
|
69
76
|
end
|
|
70
|
-
|
|
71
|
-
def to_hash
|
|
72
|
-
reject { |key, value| ARRAY_KEYS.include?(key) && value.blank? }
|
|
73
|
-
end
|
|
74
77
|
end
|
|
@@ -5,7 +5,8 @@ module Blacklight::Solr
|
|
|
5
5
|
|
|
6
6
|
included do
|
|
7
7
|
self.default_processor_chain = [
|
|
8
|
-
:default_solr_parameters, :
|
|
8
|
+
:default_solr_parameters, :add_search_field_default_parameters,
|
|
9
|
+
:add_query_to_solr, :add_facet_fq_to_solr,
|
|
9
10
|
:add_facetting_to_solr, :add_solr_fields_to_query, :add_paging_to_solr,
|
|
10
11
|
:add_sorting_to_solr, :add_group_config_to_solr,
|
|
11
12
|
:add_facet_paging_to_solr, :add_adv_search_clauses,
|
|
@@ -18,22 +19,17 @@ module Blacklight::Solr
|
|
|
18
19
|
# merge to dup values, to avoid later mutating the original by mistake.
|
|
19
20
|
def default_solr_parameters(solr_parameters)
|
|
20
21
|
blacklight_config.default_solr_params.each do |key, value|
|
|
21
|
-
solr_parameters[key]
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
solr_parameters[key] ||= if value.respond_to? :deep_dup
|
|
23
|
+
value.deep_dup
|
|
24
|
+
elsif value.respond_to?(:dup) && value.duplicable?
|
|
25
|
+
value.dup
|
|
26
|
+
else
|
|
27
|
+
value
|
|
28
|
+
end
|
|
28
29
|
end
|
|
29
30
|
end
|
|
30
31
|
|
|
31
|
-
|
|
32
|
-
# Take the user-entered query, and put it in the solr params,
|
|
33
|
-
# including config's "search field" params for current search field.
|
|
34
|
-
# also include setting spellcheck.q.
|
|
35
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
|
36
|
-
def add_query_to_solr(solr_parameters)
|
|
32
|
+
def add_search_field_default_parameters(solr_parameters)
|
|
37
33
|
###
|
|
38
34
|
# legacy behavior of user param :qt is passed through, but over-ridden
|
|
39
35
|
# by actual search field config if present. We might want to remove
|
|
@@ -47,10 +43,21 @@ module Blacklight::Solr
|
|
|
47
43
|
###
|
|
48
44
|
# Merge in search field configured values, if present, over-writing general
|
|
49
45
|
# defaults
|
|
50
|
-
|
|
51
46
|
if search_field
|
|
52
47
|
solr_parameters[:qt] = search_field.qt if search_field.qt
|
|
53
|
-
|
|
48
|
+
|
|
49
|
+
solr_parameters.deep_merge!(search_field.solr_parameters) if search_field.solr_parameters
|
|
50
|
+
end
|
|
51
|
+
end
|
|
52
|
+
|
|
53
|
+
##
|
|
54
|
+
# Take the user-entered query, and put it in the solr params,
|
|
55
|
+
# including config's "search field" params for current search field.
|
|
56
|
+
# also include setting spellcheck.q.
|
|
57
|
+
def add_query_to_solr(solr_parameters)
|
|
58
|
+
unless processor_chain.include?(:add_search_field_default_parameters)
|
|
59
|
+
Deprecation.warn(Blacklight::Solr::SearchBuilderBehavior, 'Please include :add_search_field_default_parameters in your process chain')
|
|
60
|
+
add_search_field_default_parameters(solr_parameters)
|
|
54
61
|
end
|
|
55
62
|
|
|
56
63
|
##
|
|
@@ -73,7 +80,6 @@ module Blacklight::Solr
|
|
|
73
80
|
solr_parameters.append_query search_state.query_param
|
|
74
81
|
end
|
|
75
82
|
end
|
|
76
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
|
77
83
|
|
|
78
84
|
def add_additional_filters(solr_parameters, additional_filters = nil)
|
|
79
85
|
q = additional_filters || @additional_filters
|
|
@@ -39,7 +39,7 @@ RSpec.describe Blacklight::ConstraintLayoutComponent, type: :component do
|
|
|
39
39
|
|
|
40
40
|
it "has an accessible remove label" do
|
|
41
41
|
expect(rendered).to have_selector(".remove") do |s|
|
|
42
|
-
expect(s).to have_selector('.
|
|
42
|
+
expect(s).to have_selector('.visually-hidden', text: 'Remove constraint my label: my value')
|
|
43
43
|
end
|
|
44
44
|
end
|
|
45
45
|
end
|
|
@@ -40,7 +40,7 @@ RSpec.describe Blacklight::FacetFieldCheckboxesComponent, type: :component do
|
|
|
40
40
|
it 'renders a collapsible card' do
|
|
41
41
|
expect(rendered).to have_selector '.card'
|
|
42
42
|
expect(rendered).to have_button 'Field'
|
|
43
|
-
expect(rendered).to have_selector 'button[data-target="#facet-field"]'
|
|
43
|
+
expect(rendered).to have_selector 'button[data-bs-target="#facet-field"]'
|
|
44
44
|
expect(rendered).to have_selector '#facet-field.collapse.show'
|
|
45
45
|
end
|
|
46
46
|
|
|
@@ -35,7 +35,7 @@ RSpec.describe Blacklight::FacetFieldListComponent, type: :component do
|
|
|
35
35
|
it 'renders a collapsible card' do
|
|
36
36
|
expect(rendered).to have_selector '.card'
|
|
37
37
|
expect(rendered).to have_button 'Field'
|
|
38
|
-
expect(rendered).to have_selector 'button[data-target="#facet-field"]'
|
|
38
|
+
expect(rendered).to have_selector 'button[data-bs-target="#facet-field"]'
|
|
39
39
|
expect(rendered).to have_selector '#facet-field.collapse.show'
|
|
40
40
|
end
|
|
41
41
|
|
|
@@ -84,13 +84,13 @@ RSpec.describe "Facets" do
|
|
|
84
84
|
pending 'Capybara::NotSupportedByDriverError: Capybara::Driver::Base#evaluate_script'
|
|
85
85
|
visit root_path
|
|
86
86
|
page.find('h3.facet-field-heading button', text: 'Format').click
|
|
87
|
-
focused_element_data_target = page.evaluate_script("document.activeElement")['data-target']
|
|
87
|
+
focused_element_data_target = page.evaluate_script("document.activeElement")['data-bs-target']
|
|
88
88
|
expect(focused_element_data_target).to eq '#facet-format'
|
|
89
89
|
end
|
|
90
90
|
end
|
|
91
91
|
|
|
92
92
|
describe '"More" links' do
|
|
93
|
-
it 'has default more link with
|
|
93
|
+
it 'has default more link with visually-hidden text' do
|
|
94
94
|
visit root_path
|
|
95
95
|
within '#facet-language_ssim' do
|
|
96
96
|
expect(page).to have_css 'div.more_facets', text: 'more Language'
|
|
@@ -194,9 +194,9 @@ RSpec.describe Blacklight::ConfigurationHelperBehavior do
|
|
|
194
194
|
describe "#per_page_options_for_select" do
|
|
195
195
|
it "is the per-page values formatted as options_for_select" do
|
|
196
196
|
allow(helper).to receive_messages(blacklight_config: double(per_page: [11, 22, 33]))
|
|
197
|
-
expect(helper.per_page_options_for_select).to include ["11<span class=\"sr-only\"> per page</span>", 11]
|
|
198
|
-
expect(helper.per_page_options_for_select).to include ["22<span class=\"sr-only\"> per page</span>", 22]
|
|
199
|
-
expect(helper.per_page_options_for_select).to include ["33<span class=\"sr-only\"> per page</span>", 33]
|
|
197
|
+
expect(helper.per_page_options_for_select).to include ["11<span class=\"sr-only visually-hidden\"> per page</span>", 11]
|
|
198
|
+
expect(helper.per_page_options_for_select).to include ["22<span class=\"sr-only visually-hidden\"> per page</span>", 22]
|
|
199
|
+
expect(helper.per_page_options_for_select).to include ["33<span class=\"sr-only visually-hidden\"> per page</span>", 33]
|
|
200
200
|
end
|
|
201
201
|
end
|
|
202
202
|
|
|
@@ -29,6 +29,20 @@ RSpec.describe Blacklight::Solr::SearchBuilderBehavior, api: true do
|
|
|
29
29
|
end
|
|
30
30
|
end
|
|
31
31
|
|
|
32
|
+
context 'with merged parameters from the defaults + the search field' do
|
|
33
|
+
before do
|
|
34
|
+
blacklight_config.default_solr_params = { json: { whatever: [1, 2, 3] } }
|
|
35
|
+
blacklight_config.search_fields['all_fields'].solr_parameters = { json: { and_also: [4, 5, 6] } }
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
let(:user_params) { { search_field: 'all_fields' } }
|
|
39
|
+
|
|
40
|
+
it 'deep merges hash values' do
|
|
41
|
+
expect(subject.to_hash.dig(:json, :whatever)).to eq [1, 2, 3]
|
|
42
|
+
expect(subject.to_hash.dig(:json, :and_also)).to eq [4, 5, 6]
|
|
43
|
+
end
|
|
44
|
+
end
|
|
45
|
+
|
|
32
46
|
context "with a complex parameter environment" do
|
|
33
47
|
subject { search_builder.with(user_params).processed_parameters }
|
|
34
48
|
|
|
@@ -304,7 +318,6 @@ RSpec.describe Blacklight::Solr::SearchBuilderBehavior, api: true do
|
|
|
304
318
|
|
|
305
319
|
it "does not include weird keys not in field definition" do
|
|
306
320
|
expect(subject[:phrase_filters]).to be_nil
|
|
307
|
-
expect(subject[:fq]).to eq []
|
|
308
321
|
expect(subject[:commit]).to be_nil
|
|
309
322
|
expect(subject[:action]).to be_nil
|
|
310
323
|
expect(subject[:controller]).to be_nil
|
|
@@ -27,14 +27,14 @@ RSpec.describe "catalog/facet_layout" do
|
|
|
27
27
|
|
|
28
28
|
it "is collapsable" do
|
|
29
29
|
render partial: 'catalog/facet_layout', locals: { facet_field: facet_field }
|
|
30
|
-
expect(rendered).to have_selector 'button.collapsed[data-toggle="collapse"][aria-expanded="false"]'
|
|
30
|
+
expect(rendered).to have_selector 'button.collapsed[data-toggle="collapse"][data-bs-toggle="collapse"][aria-expanded="false"]'
|
|
31
31
|
expect(rendered).to have_selector '.collapse .card-body'
|
|
32
32
|
end
|
|
33
33
|
|
|
34
34
|
it "is configured to be open by default" do
|
|
35
35
|
allow(facet_field).to receive_messages(collapse: false)
|
|
36
36
|
render partial: 'catalog/facet_layout', locals: { facet_field: facet_field }
|
|
37
|
-
expect(rendered).to have_selector 'button[data-toggle="collapse"][aria-expanded="true"]'
|
|
37
|
+
expect(rendered).to have_selector 'button[data-toggle="collapse"][data-bs-toggle="collapse"][aria-expanded="true"]'
|
|
38
38
|
expect(rendered).not_to have_selector '.card-header.collapsed'
|
|
39
39
|
expect(rendered).to have_selector '.collapse.show .card-body'
|
|
40
40
|
end
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: blacklight
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 7.19.
|
|
4
|
+
version: 7.19.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Jonathan Rochkind
|
|
@@ -17,7 +17,7 @@ authors:
|
|
|
17
17
|
autorequire:
|
|
18
18
|
bindir: exe
|
|
19
19
|
cert_chain: []
|
|
20
|
-
date: 2021-05-
|
|
20
|
+
date: 2021-05-11 00:00:00.000000000 Z
|
|
21
21
|
dependencies:
|
|
22
22
|
- !ruby/object:Gem::Dependency
|
|
23
23
|
name: rails
|