blacklight 8.8.1 → 9.0.0.beta1
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/.env +3 -3
- data/.github/pull_request_template.md +7 -0
- data/.github/workflows/ruby.yml +1 -9
- data/.rubocop.yml +2 -2
- data/.rubocop_todo.yml +0 -9
- data/README.md +30 -8
- data/VERSION +1 -1
- data/app/assets/builds/blacklight.css +448 -0
- data/app/assets/javascripts/blacklight/blacklight.esm.js +18 -15
- data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
- data/app/assets/javascripts/blacklight/blacklight.js +18 -15
- data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
- data/app/assets/stylesheets/blacklight/_balanced_list.scss +1 -4
- data/app/assets/stylesheets/blacklight/_blacklight_base.scss +1 -3
- data/app/assets/stylesheets/blacklight/_bookmark.scss +44 -41
- data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +7 -26
- data/app/assets/stylesheets/blacklight/_constraints.scss +15 -24
- data/app/assets/stylesheets/blacklight/_controls.scss +2 -18
- data/app/assets/stylesheets/blacklight/_facets.scss +15 -82
- data/app/assets/stylesheets/blacklight/_group.scss +2 -5
- data/app/assets/stylesheets/blacklight/_header.scss +4 -11
- data/app/assets/stylesheets/blacklight/_icons.scss +0 -8
- data/app/assets/stylesheets/blacklight/_modal.scss +2 -2
- data/app/assets/stylesheets/blacklight/_pagination.scss +0 -4
- data/app/assets/stylesheets/blacklight/_search_form.scss +0 -1
- data/app/assets/stylesheets/blacklight/_search_history.scss +0 -4
- data/app/assets/stylesheets/blacklight/_search_results.scss +1 -15
- data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +9 -14
- data/app/assets/stylesheets/blacklight/build.scss +4 -0
- data/app/components/blacklight/advanced_search_form_component.rb +1 -1
- data/app/components/blacklight/constraint_component.rb +1 -1
- data/app/components/blacklight/constraint_layout_component.html.erb +2 -2
- data/app/components/blacklight/constraints_component.html.erb +2 -2
- data/app/components/blacklight/constraints_component.rb +1 -1
- data/app/components/blacklight/document/bookmark_component.html.erb +3 -3
- data/app/components/blacklight/document/group_component.html.erb +1 -1
- data/app/components/blacklight/document/page_header_component.rb +1 -1
- data/app/components/blacklight/document/sidebar_component.rb +5 -5
- data/app/components/blacklight/document_component.rb +9 -13
- data/app/components/blacklight/document_title_component.rb +3 -2
- data/app/components/blacklight/facet_field_component.html.erb +4 -4
- data/app/components/blacklight/facet_field_list_component.rb +4 -22
- data/app/components/blacklight/facet_item_component.rb +2 -2
- data/app/components/blacklight/facet_item_pivot_component.rb +2 -2
- data/app/components/blacklight/response/facet_group_component.html.erb +3 -18
- data/app/components/blacklight/response/facet_group_component.rb +7 -23
- data/app/components/blacklight/response/facet_toggle_button_component.html.erb +16 -0
- data/app/components/blacklight/response/facet_toggle_button_component.rb +14 -0
- data/app/components/blacklight/response/pagination_component.html.erb +1 -1
- data/app/components/blacklight/response/pagination_component.rb +2 -1
- data/app/components/blacklight/response/sort_component.rb +1 -0
- data/app/components/blacklight/response/view_type_button_component.html.erb +1 -1
- data/app/components/blacklight/response/view_type_component.html.erb +1 -1
- data/app/components/blacklight/search/facet_suggest_input.html.erb +7 -7
- data/app/components/blacklight/search/facet_suggest_input.rb +0 -4
- data/app/components/blacklight/search/per_page_component.html.erb +1 -1
- data/app/components/blacklight/search/per_page_component.rb +1 -0
- data/app/components/blacklight/search/sidebar_component.html.erb +1 -1
- data/app/components/blacklight/search/sidebar_component.rb +1 -1
- data/app/components/blacklight/search_bar_component.html.erb +3 -3
- data/app/components/blacklight/search_bar_component.rb +2 -2
- data/app/components/blacklight/search_button_component.rb +2 -2
- data/app/components/blacklight/search_context/server_applied_params_component.html.erb +2 -2
- data/app/components/blacklight/search_context/server_applied_params_component.rb +9 -0
- data/app/components/blacklight/skip_link_component.html.erb +1 -1
- data/app/components/blacklight/skip_link_component.rb +7 -3
- data/app/components/blacklight/skip_link_item_component.rb +18 -0
- data/app/components/blacklight/top_navbar_component.html.erb +1 -1
- data/app/controllers/concerns/blacklight/catalog.rb +3 -2
- data/app/controllers/concerns/blacklight/search_context.rb +0 -12
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +0 -6
- data/app/helpers/blacklight/catalog_helper_behavior.rb +1 -11
- data/app/helpers/blacklight/configuration_helper_behavior.rb +0 -12
- data/app/helpers/blacklight/document_helper_behavior.rb +0 -26
- data/app/helpers/blacklight/icon_helper_behavior.rb +1 -9
- data/app/helpers/blacklight/layout_helper_behavior.rb +2 -2
- data/app/helpers/blacklight/render_partials_helper_behavior.rb +0 -14
- data/app/helpers/blacklight/url_helper_behavior.rb +1 -1
- data/app/javascript/{blacklight → blacklight-frontend}/bookmark_toggle.js +1 -1
- data/app/javascript/{blacklight → blacklight-frontend}/core.js +2 -10
- data/app/javascript/{blacklight → blacklight-frontend}/debounce.js +1 -1
- data/app/javascript/{blacklight → blacklight-frontend}/facet_suggest.js +3 -3
- data/app/javascript/blacklight-frontend/index.js +18 -0
- data/app/javascript/{blacklight → blacklight-frontend}/modal.js +16 -2
- data/app/models/blacklight/facet_paginator.rb +1 -1
- data/app/models/concerns/blacklight/document.rb +0 -11
- data/app/models/concerns/blacklight/user.rb +1 -1
- data/app/presenters/blacklight/facet_field_presenter.rb +2 -2
- data/app/services/blacklight/search_params_yaml_coder.rb +0 -2
- data/app/views/bookmarks/_clear_bookmarks_widget.html.erb +0 -2
- data/app/views/bookmarks/index.html.erb +1 -1
- data/app/views/catalog/_results_pagination.html.erb +2 -5
- data/app/views/catalog/_search_results.html.erb +4 -4
- data/app/views/catalog/_search_results_header.html.erb +1 -1
- data/app/views/catalog/_sort_and_per_page.html.erb +1 -1
- data/app/views/catalog/_sort_widget.html.erb +1 -0
- data/app/views/catalog/facet.html.erb +1 -1
- data/app/views/catalog/show.html.erb +2 -3
- data/app/views/kaminari/blacklight/_paginator.html.erb +1 -2
- data/app/views/layouts/blacklight/base.html.erb +3 -7
- data/app/views/search_history/index.html.erb +0 -2
- data/blacklight.gemspec +4 -4
- data/config/importmap.rb +1 -1
- data/config/locales/blacklight.ar.yml +4 -4
- data/config/locales/blacklight.ca.yml +124 -124
- data/config/locales/blacklight.de.yml +2 -2
- data/config/locales/blacklight.en.yml +14 -14
- data/config/locales/blacklight.es.yml +4 -4
- data/config/locales/blacklight.fr.yml +4 -4
- data/config/locales/blacklight.hu.yml +4 -4
- data/config/locales/blacklight.it.yml +3 -3
- data/config/locales/blacklight.nl.yml +3 -3
- data/config/locales/blacklight.pt-BR.yml +3 -3
- data/config/locales/blacklight.sq.yml +4 -4
- data/config/locales/blacklight.zh.yml +4 -4
- data/lib/blacklight/configuration/display_field.rb +1 -1
- data/lib/blacklight/configuration/fields.rb +3 -3
- data/lib/blacklight/configuration/view_config.rb +0 -2
- data/lib/blacklight/configuration.rb +7 -12
- data/lib/blacklight/engine.rb +0 -6
- data/lib/blacklight/open_struct_with_hash_access.rb +4 -4
- data/lib/blacklight/search_builder.rb +4 -4
- data/lib/blacklight/solr/request.rb +1 -7
- data/lib/blacklight/solr/response/group_response.rb +2 -2
- data/lib/blacklight.rb +1 -1
- data/lib/generators/blacklight/assets/importmap_generator.rb +8 -24
- data/lib/generators/blacklight/assets/propshaft_generator.rb +1 -1
- data/lib/generators/blacklight/assets_generator.rb +3 -3
- data/lib/generators/blacklight/controller_generator.rb +3 -3
- data/lib/generators/blacklight/user_generator.rb +9 -10
- data/package.json +14 -4
- data/rollup.config.js +1 -1
- data/spec/components/blacklight/document/action_component_spec.rb +1 -5
- data/spec/components/blacklight/document/sidebar_component_spec.rb +5 -20
- data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +2 -2
- data/spec/components/blacklight/facet_field_list_component_spec.rb +2 -2
- data/spec/components/blacklight/search/facet_suggest_input_spec.rb +2 -18
- data/spec/components/blacklight/search_bar_component_spec.rb +1 -1
- data/spec/features/axe_spec.rb +6 -11
- data/spec/features/bookmarks_spec.rb +48 -11
- data/spec/features/facets_spec.rb +23 -20
- data/spec/features/search_context_spec.rb +1 -2
- data/spec/features/search_filters_spec.rb +6 -6
- data/spec/helpers/blacklight/configuration_helper_behavior_spec.rb +0 -9
- data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +1 -1
- data/spec/models/blacklight/solr/request_spec.rb +7 -0
- data/spec/test_app_templates/Gemfile.extra +0 -1
- data/spec/views/catalog/_facet_layout.html.erb_spec.rb +3 -3
- data/spec/views/catalog/index.html.erb_spec.rb +6 -3
- data/spec/views/catalog/show.html.erb_spec.rb +1 -0
- data/tasks/blacklight.rake +8 -5
- metadata +30 -54
- data/app/assets/stylesheets/blacklight/_autocomplete.scss +0 -25
- data/app/assets/stylesheets/blacklight/_mixins.scss +0 -20
- data/app/components/blacklight/icons/legacy_icon_component.rb +0 -30
- data/app/javascript/blacklight/index.js +0 -18
- data/app/views/catalog/_constraints.html.erb +0 -1
- data/app/views/catalog/_facets.html.erb +0 -5
- data/app/views/catalog/_search_form.html.erb +0 -7
- data/app/views/catalog/_search_header.html.erb +0 -1
- data/app/views/catalog/_show_sidebar.html.erb +0 -3
- data/app/views/catalog/_show_tools.html.erb +0 -2
- data/app/views/catalog/_start_over.html.erb +0 -1
- data/app/views/shared/_header_navbar.html.erb +0 -1
- data/lib/generators/blacklight/assets/sprockets_generator.rb +0 -68
- data/spec/views/catalog/_search_header.erb_spec.rb +0 -14
- data/spec/views/catalog/_show_sidebar.erb_spec.rb +0 -24
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +0 -37
- /data/app/javascript/{blacklight → blacklight-frontend}/button_focus.js +0 -0
- /data/app/javascript/{blacklight → blacklight-frontend}/checkbox_submit.js +0 -0
- /data/app/javascript/{blacklight → blacklight-frontend}/modalForm.js +0 -0
- /data/app/javascript/{blacklight → blacklight-frontend}/search_context.js +0 -0
@@ -1,6 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
RSpec.describe "Bookmarks" do
|
4
|
+
before do
|
5
|
+
# Prevent any existing bookmarks from interfering
|
6
|
+
Bookmark.delete_all
|
7
|
+
end
|
8
|
+
|
4
9
|
describe "navigating from the homepage" do
|
5
10
|
it "has a link to the history page" do
|
6
11
|
sign_in 'user1'
|
@@ -40,13 +45,25 @@ RSpec.describe "Bookmarks" do
|
|
40
45
|
expect(page).to have_content 'Successfully removed bookmark.'
|
41
46
|
end
|
42
47
|
|
43
|
-
|
44
|
-
|
45
|
-
check 'Bookmark'
|
48
|
+
context 'when bookmark_icon_component is set to nil' do
|
49
|
+
let!(:default_bookmark_icon_component) { CatalogController.blacklight_config.bookmark_icon_component }
|
46
50
|
|
47
|
-
|
48
|
-
|
49
|
-
|
51
|
+
before do
|
52
|
+
CatalogController.blacklight_config.bookmark_icon_component = nil
|
53
|
+
end
|
54
|
+
|
55
|
+
after do
|
56
|
+
CatalogController.blacklight_config.bookmark_icon_component = default_bookmark_icon_component
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'shows bookmarks as checkboxes', :js do
|
60
|
+
visit solr_document_path('2007020969')
|
61
|
+
check 'Bookmark'
|
62
|
+
|
63
|
+
visit solr_document_path('2007020969')
|
64
|
+
expect(page).to have_css('input[type="checkbox"][checked]')
|
65
|
+
uncheck 'In Bookmarks'
|
66
|
+
end
|
50
67
|
end
|
51
68
|
|
52
69
|
it "adds bookmarks after a user logs in" do
|
@@ -82,17 +99,37 @@ RSpec.describe "Bookmarks" do
|
|
82
99
|
expect(page).to have_content 'Ci an zhou bian'
|
83
100
|
end
|
84
101
|
|
85
|
-
context "
|
102
|
+
context "when the bookmark icon is configured (default)" do
|
103
|
+
it 'shows bookmark icon', :js do
|
104
|
+
visit solr_document_path('2007020969')
|
105
|
+
expect(page).to have_css('.blacklight-icons-bookmark')
|
106
|
+
find('.blacklight-icons-bookmark').click
|
107
|
+
|
108
|
+
expect(find('.toggle-bookmark-input', visible: false)).to be_checked
|
109
|
+
find('.blacklight-icons-bookmark').click
|
110
|
+
end
|
111
|
+
end
|
112
|
+
|
113
|
+
context "without bookmark navbar element" do
|
114
|
+
let!(:default_nav_partials) { CatalogController.blacklight_config.navbar.partials }
|
115
|
+
|
86
116
|
before do
|
87
|
-
CatalogController.blacklight_config.
|
117
|
+
CatalogController.blacklight_config.navbar.partials = CatalogController.blacklight_config.navbar.partials.except(:bookmark)
|
118
|
+
end
|
119
|
+
|
120
|
+
after do
|
121
|
+
CatalogController.blacklight_config.navbar.partials = default_nav_partials
|
88
122
|
end
|
89
123
|
|
90
|
-
it '
|
124
|
+
it 'adds and removes bookmarks', :js do
|
91
125
|
visit solr_document_path('2007020969')
|
92
|
-
expect(page).to
|
126
|
+
expect(page).to have_no_css('#bookmarks_nav')
|
93
127
|
find('.blacklight-icons-bookmark').click
|
94
128
|
|
95
|
-
expect(
|
129
|
+
expect(page).to have_content 'In Bookmarks'
|
130
|
+
|
131
|
+
visit solr_document_path('2007020969')
|
132
|
+
expect(find('.toggle-bookmark-input', visible: false)).to be_checked
|
96
133
|
find('.blacklight-icons-bookmark').click
|
97
134
|
end
|
98
135
|
end
|
@@ -100,31 +100,34 @@ RSpec.describe "Facets" do
|
|
100
100
|
end
|
101
101
|
|
102
102
|
describe 'Facet modal' do
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
allow(CatalogController).to receive(:blacklight_config).and_return enabled
|
108
|
-
end
|
103
|
+
it 'allows the user to filter a long list of facet values', :js do
|
104
|
+
visit '/catalog/facet/subject_ssim'
|
105
|
+
expect(page).to have_no_link 'Old age' # This is on the second page of facet values
|
106
|
+
expect(page).to have_css 'a.facet-select', count: 20
|
109
107
|
|
110
|
-
|
111
|
-
visit '/catalog/facet/subject_ssim'
|
112
|
-
expect(page).to have_no_link 'Old age' # This is on the second page of facet values
|
113
|
-
expect(page).to have_css 'a.facet-select', count: 20
|
108
|
+
fill_in 'facet_suggest_subject_ssim', with: "ag"
|
114
109
|
|
115
|
-
|
110
|
+
expect(page).to have_link 'Old age'
|
111
|
+
expect(page).to have_css 'a.facet-select', count: 2
|
112
|
+
end
|
116
113
|
|
117
|
-
|
118
|
-
|
119
|
-
|
114
|
+
it 'shows the user facet suggestions that are relevant to their q param', :js do
|
115
|
+
visit '/catalog/facet/subject_ssim?q=tibet&search_field=all_fields'
|
116
|
+
fill_in 'facet_suggest_subject_ssim', with: 'la'
|
120
117
|
|
121
|
-
|
122
|
-
|
123
|
-
|
118
|
+
expect(page).to have_link 'Tibetan language'
|
119
|
+
expect(page).to have_css 'a.facet-select', count: 1
|
120
|
+
end
|
124
121
|
|
125
|
-
|
126
|
-
|
127
|
-
|
122
|
+
it 'allows the user to filter more than once', :js do
|
123
|
+
visit '/catalog/facet/subject_ssim'
|
124
|
+
expect(page).to have_no_link 'Old age' # This is on the second page of facet values
|
125
|
+
expect(page).to have_css 'a.facet-select', count: 20
|
126
|
+
|
127
|
+
fill_in 'facet_suggest_subject_ssim', with: "ag"
|
128
|
+
|
129
|
+
expect(page).to have_link 'Old age'
|
130
|
+
expect(page).to have_link('Old age', href: '/?f%5Bsubject_ssim%5D%5B%5D=Old+age')
|
128
131
|
end
|
129
132
|
end
|
130
133
|
end
|
@@ -47,10 +47,9 @@ RSpec.describe "Search Results context" do
|
|
47
47
|
search_for ''
|
48
48
|
expect(page).to have_content "1 - 10"
|
49
49
|
find_all('.index_title a').last.click
|
50
|
-
expect(page).to have_css "h1", text: "Pluvial nectar"
|
51
50
|
click_on "Next »"
|
52
51
|
|
53
|
-
expect(page).to
|
52
|
+
expect(page).to have_content "Naqdī barā-yi tamām-i"
|
54
53
|
click_on "Back to Search"
|
55
54
|
expect(page).to have_content "11 - 20"
|
56
55
|
end
|
@@ -171,7 +171,7 @@ RSpec.describe "Facets" do
|
|
171
171
|
visit root_path
|
172
172
|
|
173
173
|
within(".blacklight-subject_ssim") do
|
174
|
-
expect(page).to have_no_css(".
|
174
|
+
expect(page).to have_no_css(".accordion-body", visible: true)
|
175
175
|
end
|
176
176
|
end
|
177
177
|
|
@@ -179,9 +179,9 @@ RSpec.describe "Facets" do
|
|
179
179
|
visit root_path
|
180
180
|
|
181
181
|
within(".blacklight-subject_ssim") do
|
182
|
-
expect(page).to have_no_css(".
|
182
|
+
expect(page).to have_no_css(".accordion-body", visible: true)
|
183
183
|
click_on 'Topic'
|
184
|
-
expect(page).to have_css(".
|
184
|
+
expect(page).to have_css(".accordion-body", visible: true)
|
185
185
|
end
|
186
186
|
end
|
187
187
|
|
@@ -189,9 +189,9 @@ RSpec.describe "Facets" do
|
|
189
189
|
visit root_path
|
190
190
|
|
191
191
|
within(".blacklight-subject_ssim") do
|
192
|
-
expect(page).to have_no_css(".
|
193
|
-
find(".
|
194
|
-
expect(page).to have_css(".
|
192
|
+
expect(page).to have_no_css(".accordion-body", visible: true)
|
193
|
+
find(".accordion-header").click
|
194
|
+
expect(page).to have_css(".accordion-body", visible: true)
|
195
195
|
end
|
196
196
|
end
|
197
197
|
|
@@ -93,15 +93,6 @@ RSpec.describe Blacklight::ConfigurationHelperBehavior do
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
-
describe "#per_page_options_for_select" do
|
97
|
-
it "is the per-page values formatted as options_for_select" do
|
98
|
-
allow(helper).to receive_messages(blacklight_config: double(per_page: [11, 22, 33]))
|
99
|
-
expect(helper.per_page_options_for_select).to include ["11<span class=\"sr-only visually-hidden\"> per page</span>", 11]
|
100
|
-
expect(helper.per_page_options_for_select).to include ["22<span class=\"sr-only visually-hidden\"> per page</span>", 22]
|
101
|
-
expect(helper.per_page_options_for_select).to include ["33<span class=\"sr-only visually-hidden\"> per page</span>", 33]
|
102
|
-
end
|
103
|
-
end
|
104
|
-
|
105
96
|
describe "#should_render_field?" do
|
106
97
|
let(:field_config) { double('field config', if: true, unless: false) }
|
107
98
|
|
@@ -64,5 +64,12 @@ RSpec.describe Blacklight::Solr::Request, :api do
|
|
64
64
|
|
65
65
|
expect(subject.dig('json', 'query', 'bool', 'must')).to contain_exactly('some query', 'also required')
|
66
66
|
end
|
67
|
+
|
68
|
+
it 'filters out empty query' do
|
69
|
+
subject['q'] = ""
|
70
|
+
subject.append_boolean_query :must, 'present query'
|
71
|
+
|
72
|
+
expect(subject.dig('json', 'query', 'bool', 'must')).to contain_exactly('present query')
|
73
|
+
end
|
67
74
|
end
|
68
75
|
end
|
@@ -28,14 +28,14 @@ RSpec.describe "catalog/facet_layout" do
|
|
28
28
|
it "is collapsable" do
|
29
29
|
render partial: 'catalog/facet_layout', locals: { facet_field: facet_field }
|
30
30
|
expect(rendered).to have_css 'button.collapsed[data-toggle="collapse"][data-bs-toggle="collapse"][aria-expanded="false"]'
|
31
|
-
expect(rendered).to have_css '.collapse .
|
31
|
+
expect(rendered).to have_css '.collapse .accordion-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
37
|
expect(rendered).to have_css 'button[data-toggle="collapse"][data-bs-toggle="collapse"][aria-expanded="true"]'
|
38
|
-
expect(rendered).to have_no_css '.
|
39
|
-
expect(rendered).to have_css '.collapse.show .
|
38
|
+
expect(rendered).to have_no_css '.accordion-header.collapsed'
|
39
|
+
expect(rendered).to have_css '.collapse.show .accordion-body'
|
40
40
|
end
|
41
41
|
end
|
@@ -19,14 +19,17 @@ RSpec.describe "catalog/index.html.erb" do
|
|
19
19
|
describe "with search parameters" do
|
20
20
|
before do
|
21
21
|
stub_template "catalog/_results_pagination.html.erb" => ""
|
22
|
-
stub_template "catalog/_search_header.html.erb" => "header_content"
|
23
22
|
allow(view).to receive_messages(has_search_parameters?: true, blacklight_config: Blacklight::Configuration.new)
|
24
|
-
|
23
|
+
allow(controller).to receive_messages(blacklight_config: Blacklight::Configuration.new)
|
24
|
+
|
25
|
+
@response = response
|
25
26
|
end
|
26
27
|
|
28
|
+
let(:response) { Blacklight::Solr::Response.new({ response: { numFound: 30 } }, start: 10, rows: 10) }
|
29
|
+
|
27
30
|
it "renders the search_header partial" do
|
28
31
|
render
|
29
|
-
expect(rendered).to match /
|
32
|
+
expect(rendered).to match /sortAndPerPage/
|
30
33
|
end
|
31
34
|
end
|
32
35
|
end
|
@@ -7,6 +7,7 @@ RSpec.describe "catalog/show.html.erb" do
|
|
7
7
|
|
8
8
|
before do
|
9
9
|
allow(presenter).to receive(:html_title).and_return('Heading')
|
10
|
+
allow(document).to receive(:more_like_this).and_return([])
|
10
11
|
allow(view).to receive_messages(has_user_authentication_provider?: false)
|
11
12
|
allow(view).to receive_messages(render_document_sidebar_partial: "Sidebar")
|
12
13
|
allow(view).to receive_messages(current_search_session: nil, search_session: {})
|
data/tasks/blacklight.rake
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require 'engine_cart/rake_task'
|
4
4
|
|
5
5
|
require 'rspec/core/rake_task'
|
6
|
-
RSpec::Core::RakeTask.new(:
|
6
|
+
RSpec::Core::RakeTask.new(spec: 'blacklight:build_host_assets') do |t|
|
7
7
|
t.pattern = 'spec/**/*_spec.rb'
|
8
8
|
end
|
9
9
|
|
@@ -46,15 +46,18 @@ desc "Run test suite"
|
|
46
46
|
task ci: ['build:npm'] do
|
47
47
|
with_solr do
|
48
48
|
Rake::Task['blacklight:internal:seed'].invoke
|
49
|
-
within_test_app do
|
50
|
-
# Precompiles the assets
|
51
|
-
system "bin/rake spec:prepare"
|
52
|
-
end
|
53
49
|
Rake::Task['blacklight:coverage'].invoke
|
54
50
|
end
|
55
51
|
end
|
56
52
|
|
57
53
|
namespace :blacklight do
|
54
|
+
task :build_host_assets do
|
55
|
+
within_test_app do
|
56
|
+
# Precompiles the assets
|
57
|
+
`bin/rails spec:prepare`
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
58
61
|
desc "Run tests with coverage"
|
59
62
|
task :coverage do
|
60
63
|
ENV['COVERAGE'] = 'true'
|
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:
|
4
|
+
version: 9.0.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Rochkind
|
@@ -16,7 +16,7 @@ authors:
|
|
16
16
|
- Justin Coyne
|
17
17
|
bindir: exe
|
18
18
|
cert_chain: []
|
19
|
-
date: 2025-02-
|
19
|
+
date: 2025-02-06 00:00:00.000000000 Z
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
22
|
name: rails
|
@@ -24,7 +24,7 @@ dependencies:
|
|
24
24
|
requirements:
|
25
25
|
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: '
|
27
|
+
version: '7.0'
|
28
28
|
- - "<"
|
29
29
|
- !ruby/object:Gem::Version
|
30
30
|
version: '9'
|
@@ -34,7 +34,7 @@ dependencies:
|
|
34
34
|
requirements:
|
35
35
|
- - ">="
|
36
36
|
- !ruby/object:Gem::Version
|
37
|
-
version: '
|
37
|
+
version: '7.0'
|
38
38
|
- - "<"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '9'
|
@@ -112,22 +112,16 @@ dependencies:
|
|
112
112
|
name: view_component
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
116
|
-
- !ruby/object:Gem::Version
|
117
|
-
version: '2.74'
|
118
|
-
- - "<"
|
115
|
+
- - "~>"
|
119
116
|
- !ruby/object:Gem::Version
|
120
|
-
version: '
|
117
|
+
version: '3.9'
|
121
118
|
type: :runtime
|
122
119
|
prerelease: false
|
123
120
|
version_requirements: !ruby/object:Gem::Requirement
|
124
121
|
requirements:
|
125
|
-
- - "
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
version: '2.74'
|
128
|
-
- - "<"
|
122
|
+
- - "~>"
|
129
123
|
- !ruby/object:Gem::Version
|
130
|
-
version: '
|
124
|
+
version: '3.9'
|
131
125
|
- !ruby/object:Gem::Dependency
|
132
126
|
name: zeitwerk
|
133
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -166,22 +160,16 @@ dependencies:
|
|
166
160
|
name: rspec-rails
|
167
161
|
requirement: !ruby/object:Gem::Requirement
|
168
162
|
requirements:
|
169
|
-
- - "
|
170
|
-
- !ruby/object:Gem::Version
|
171
|
-
version: '6.1'
|
172
|
-
- - "<"
|
163
|
+
- - "~>"
|
173
164
|
- !ruby/object:Gem::Version
|
174
|
-
version: '
|
165
|
+
version: '7.0'
|
175
166
|
type: :development
|
176
167
|
prerelease: false
|
177
168
|
version_requirements: !ruby/object:Gem::Requirement
|
178
169
|
requirements:
|
179
|
-
- - "
|
180
|
-
- !ruby/object:Gem::Version
|
181
|
-
version: '6.1'
|
182
|
-
- - "<"
|
170
|
+
- - "~>"
|
183
171
|
- !ruby/object:Gem::Version
|
184
|
-
version: '
|
172
|
+
version: '7.0'
|
185
173
|
- !ruby/object:Gem::Dependency
|
186
174
|
name: rspec-collection_matchers
|
187
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -421,6 +409,7 @@ files:
|
|
421
409
|
- ".docker/app/entrypoint.sh"
|
422
410
|
- ".dockerignore"
|
423
411
|
- ".env"
|
412
|
+
- ".github/pull_request_template.md"
|
424
413
|
- ".github/workflows/ruby.yml"
|
425
414
|
- ".gitignore"
|
426
415
|
- ".hound.yml"
|
@@ -436,6 +425,7 @@ files:
|
|
436
425
|
- README.md
|
437
426
|
- Rakefile
|
438
427
|
- VERSION
|
428
|
+
- app/assets/builds/blacklight.css
|
439
429
|
- app/assets/config/blacklight/manifest.js
|
440
430
|
- app/assets/images/blacklight/logo.png
|
441
431
|
- app/assets/images/favicon.ico
|
@@ -443,7 +433,6 @@ files:
|
|
443
433
|
- app/assets/javascripts/blacklight/blacklight.esm.js.map
|
444
434
|
- app/assets/javascripts/blacklight/blacklight.js
|
445
435
|
- app/assets/javascripts/blacklight/blacklight.js.map
|
446
|
-
- app/assets/stylesheets/blacklight/_autocomplete.scss
|
447
436
|
- app/assets/stylesheets/blacklight/_balanced_list.scss
|
448
437
|
- app/assets/stylesheets/blacklight/_blacklight_base.scss
|
449
438
|
- app/assets/stylesheets/blacklight/_bookmark.scss
|
@@ -455,7 +444,6 @@ files:
|
|
455
444
|
- app/assets/stylesheets/blacklight/_header.scss
|
456
445
|
- app/assets/stylesheets/blacklight/_icons.scss
|
457
446
|
- app/assets/stylesheets/blacklight/_layout.scss
|
458
|
-
- app/assets/stylesheets/blacklight/_mixins.scss
|
459
447
|
- app/assets/stylesheets/blacklight/_modal.scss
|
460
448
|
- app/assets/stylesheets/blacklight/_pagination.scss
|
461
449
|
- app/assets/stylesheets/blacklight/_search_form.scss
|
@@ -463,6 +451,7 @@ files:
|
|
463
451
|
- app/assets/stylesheets/blacklight/_search_results.scss
|
464
452
|
- app/assets/stylesheets/blacklight/blacklight.scss
|
465
453
|
- app/assets/stylesheets/blacklight/blacklight_defaults.scss
|
454
|
+
- app/assets/stylesheets/blacklight/build.scss
|
466
455
|
- app/builders/blacklight/action_builder.rb
|
467
456
|
- app/components/blacklight/advanced_search_form_component.html.erb
|
468
457
|
- app/components/blacklight/advanced_search_form_component.rb
|
@@ -519,7 +508,6 @@ files:
|
|
519
508
|
- app/components/blacklight/hidden_search_state_component.rb
|
520
509
|
- app/components/blacklight/icons/bookmark_icon_component.rb
|
521
510
|
- app/components/blacklight/icons/icon_component.rb
|
522
|
-
- app/components/blacklight/icons/legacy_icon_component.rb
|
523
511
|
- app/components/blacklight/icons/list_component.rb
|
524
512
|
- app/components/blacklight/icons/remove_component.rb
|
525
513
|
- app/components/blacklight/icons/search_component.rb
|
@@ -530,6 +518,8 @@ files:
|
|
530
518
|
- app/components/blacklight/metadata_field_plain_text_layout_component.rb
|
531
519
|
- app/components/blacklight/response/facet_group_component.html.erb
|
532
520
|
- app/components/blacklight/response/facet_group_component.rb
|
521
|
+
- app/components/blacklight/response/facet_toggle_button_component.html.erb
|
522
|
+
- app/components/blacklight/response/facet_toggle_button_component.rb
|
533
523
|
- app/components/blacklight/response/pagination_component.html.erb
|
534
524
|
- app/components/blacklight/response/pagination_component.rb
|
535
525
|
- app/components/blacklight/response/sort_component.html.erb
|
@@ -560,6 +550,7 @@ files:
|
|
560
550
|
- app/components/blacklight/search_navbar_component.rb
|
561
551
|
- app/components/blacklight/skip_link_component.html.erb
|
562
552
|
- app/components/blacklight/skip_link_component.rb
|
553
|
+
- app/components/blacklight/skip_link_item_component.rb
|
563
554
|
- app/components/blacklight/start_over_button_component.rb
|
564
555
|
- app/components/blacklight/system/dropdown_button_component.rb
|
565
556
|
- app/components/blacklight/system/dropdown_component.html.erb
|
@@ -592,16 +583,16 @@ files:
|
|
592
583
|
- app/helpers/blacklight/url_helper_behavior.rb
|
593
584
|
- app/helpers/blacklight_helper.rb
|
594
585
|
- app/helpers/catalog_helper.rb
|
595
|
-
- app/javascript/blacklight/bookmark_toggle.js
|
596
|
-
- app/javascript/blacklight/button_focus.js
|
597
|
-
- app/javascript/blacklight/checkbox_submit.js
|
598
|
-
- app/javascript/blacklight/core.js
|
599
|
-
- app/javascript/blacklight/debounce.js
|
600
|
-
- app/javascript/blacklight/facet_suggest.js
|
601
|
-
- app/javascript/blacklight/index.js
|
602
|
-
- app/javascript/blacklight/modal.js
|
603
|
-
- app/javascript/blacklight/modalForm.js
|
604
|
-
- app/javascript/blacklight/search_context.js
|
586
|
+
- app/javascript/blacklight-frontend/bookmark_toggle.js
|
587
|
+
- app/javascript/blacklight-frontend/button_focus.js
|
588
|
+
- app/javascript/blacklight-frontend/checkbox_submit.js
|
589
|
+
- app/javascript/blacklight-frontend/core.js
|
590
|
+
- app/javascript/blacklight-frontend/debounce.js
|
591
|
+
- app/javascript/blacklight-frontend/facet_suggest.js
|
592
|
+
- app/javascript/blacklight-frontend/index.js
|
593
|
+
- app/javascript/blacklight-frontend/modal.js
|
594
|
+
- app/javascript/blacklight-frontend/modalForm.js
|
595
|
+
- app/javascript/blacklight-frontend/search_context.js
|
605
596
|
- app/models/blacklight/facet_paginator.rb
|
606
597
|
- app/models/blacklight/icon.rb
|
607
598
|
- app/models/blacklight/suggest_search.rb
|
@@ -658,7 +649,6 @@ files:
|
|
658
649
|
- app/views/catalog/_advanced_search_help.html.erb
|
659
650
|
- app/views/catalog/_bookmark_control.html.erb
|
660
651
|
- app/views/catalog/_citation.html.erb
|
661
|
-
- app/views/catalog/_constraints.html.erb
|
662
652
|
- app/views/catalog/_did_you_mean.html.erb
|
663
653
|
- app/views/catalog/_document.atom.builder
|
664
654
|
- app/views/catalog/_document.html.erb
|
@@ -669,7 +659,6 @@ files:
|
|
669
659
|
- app/views/catalog/_facet_layout.html.erb
|
670
660
|
- app/views/catalog/_facet_pagination.html.erb
|
671
661
|
- app/views/catalog/_facet_pivot.html.erb
|
672
|
-
- app/views/catalog/_facets.html.erb
|
673
662
|
- app/views/catalog/_field.json.jbuilder
|
674
663
|
- app/views/catalog/_group.html.erb
|
675
664
|
- app/views/catalog/_home.html.erb
|
@@ -678,19 +667,14 @@ files:
|
|
678
667
|
- app/views/catalog/_paginate_compact.html.erb
|
679
668
|
- app/views/catalog/_per_page_widget.html.erb
|
680
669
|
- app/views/catalog/_results_pagination.html.erb
|
681
|
-
- app/views/catalog/_search_form.html.erb
|
682
|
-
- app/views/catalog/_search_header.html.erb
|
683
670
|
- app/views/catalog/_search_results.html.erb
|
684
671
|
- app/views/catalog/_search_results_header.html.erb
|
685
672
|
- app/views/catalog/_search_sidebar.html.erb
|
686
673
|
- app/views/catalog/_show_main_content.html.erb
|
687
674
|
- app/views/catalog/_show_more_like_this.html.erb
|
688
|
-
- app/views/catalog/_show_sidebar.html.erb
|
689
|
-
- app/views/catalog/_show_tools.html.erb
|
690
675
|
- app/views/catalog/_sms_form.html.erb
|
691
676
|
- app/views/catalog/_sort_and_per_page.html.erb
|
692
677
|
- app/views/catalog/_sort_widget.html.erb
|
693
|
-
- app/views/catalog/_start_over.html.erb
|
694
678
|
- app/views/catalog/_view_type_group.html.erb
|
695
679
|
- app/views/catalog/_zero_results.html.erb
|
696
680
|
- app/views/catalog/advanced_search.html.erb
|
@@ -731,7 +715,6 @@ files:
|
|
731
715
|
- app/views/shared/_flash_messages.html.erb
|
732
716
|
- app/views/shared/_flash_msg.html.erb
|
733
717
|
- app/views/shared/_footer.html.erb
|
734
|
-
- app/views/shared/_header_navbar.html.erb
|
735
718
|
- app/views/shared/_modal.html.erb
|
736
719
|
- app/views/shared/_sitelinks_search_box.html.erb
|
737
720
|
- app/views/shared/_user_util_links.html.erb
|
@@ -804,7 +787,6 @@ files:
|
|
804
787
|
- lib/blacklight/version.rb
|
805
788
|
- lib/generators/blacklight/assets/importmap_generator.rb
|
806
789
|
- lib/generators/blacklight/assets/propshaft_generator.rb
|
807
|
-
- lib/generators/blacklight/assets/sprockets_generator.rb
|
808
790
|
- lib/generators/blacklight/assets_generator.rb
|
809
791
|
- lib/generators/blacklight/controller_generator.rb
|
810
792
|
- lib/generators/blacklight/document_generator.rb
|
@@ -982,9 +964,6 @@ files:
|
|
982
964
|
- spec/views/catalog/_facet_index_navigation.html.erb_spec.rb
|
983
965
|
- spec/views/catalog/_facet_layout.html.erb_spec.rb
|
984
966
|
- spec/views/catalog/_paginate_compact.html.erb_spec.rb
|
985
|
-
- spec/views/catalog/_search_header.erb_spec.rb
|
986
|
-
- spec/views/catalog/_show_sidebar.erb_spec.rb
|
987
|
-
- spec/views/catalog/_show_tools.html.erb_spec.rb
|
988
967
|
- spec/views/catalog/_sort_and_per_page.html.erb_spec.rb
|
989
968
|
- spec/views/catalog/_sort_widget.html.erb_spec.rb
|
990
969
|
- spec/views/catalog/_view_type_group.html.erb_spec.rb
|
@@ -1012,14 +991,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1012
991
|
requirements:
|
1013
992
|
- - ">="
|
1014
993
|
- !ruby/object:Gem::Version
|
1015
|
-
version: '
|
994
|
+
version: '3.1'
|
1016
995
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1017
996
|
requirements:
|
1018
997
|
- - ">="
|
1019
998
|
- !ruby/object:Gem::Version
|
1020
999
|
version: '0'
|
1021
1000
|
requirements: []
|
1022
|
-
rubygems_version: 3.6.
|
1001
|
+
rubygems_version: 3.6.2
|
1023
1002
|
specification_version: 4
|
1024
1003
|
summary: Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr)
|
1025
1004
|
index.
|
@@ -1164,9 +1143,6 @@ test_files:
|
|
1164
1143
|
- spec/views/catalog/_facet_index_navigation.html.erb_spec.rb
|
1165
1144
|
- spec/views/catalog/_facet_layout.html.erb_spec.rb
|
1166
1145
|
- spec/views/catalog/_paginate_compact.html.erb_spec.rb
|
1167
|
-
- spec/views/catalog/_search_header.erb_spec.rb
|
1168
|
-
- spec/views/catalog/_show_sidebar.erb_spec.rb
|
1169
|
-
- spec/views/catalog/_show_tools.html.erb_spec.rb
|
1170
1146
|
- spec/views/catalog/_sort_and_per_page.html.erb_spec.rb
|
1171
1147
|
- spec/views/catalog/_sort_widget.html.erb_spec.rb
|
1172
1148
|
- spec/views/catalog/_view_type_group.html.erb_spec.rb
|
@@ -1,25 +0,0 @@
|
|
1
|
-
auto-complete [aria-selected="true"],
|
2
|
-
auto-complete [role="option"]:hover {
|
3
|
-
background-color: $dropdown-link-hover-bg;
|
4
|
-
}
|
5
|
-
auto-complete {
|
6
|
-
position: relative;
|
7
|
-
flex-grow: 3;
|
8
|
-
|
9
|
-
ul {
|
10
|
-
list-style-type: none;
|
11
|
-
position: absolute;
|
12
|
-
background-color: $dropdown-bg;
|
13
|
-
padding-left: 0;
|
14
|
-
border: 1px solid $dropdown-border-color;
|
15
|
-
border-radius: $dropdown-border-radius;
|
16
|
-
}
|
17
|
-
|
18
|
-
[role="option"]{
|
19
|
-
padding: 0.25rem 1.5rem;
|
20
|
-
}
|
21
|
-
}
|
22
|
-
|
23
|
-
.no-js #autocomplete-popup {
|
24
|
-
display: none;
|
25
|
-
}
|
@@ -1,20 +0,0 @@
|
|
1
|
-
// define a visually-hidden class that applies to a given breakpoint and below
|
2
|
-
// https://getbootstrap.com/docs/5.3/helpers/visually-hidden/
|
3
|
-
@if mixin-exists(visually-hidden) {
|
4
|
-
@each $breakpoint in map-keys($grid-breakpoints) {
|
5
|
-
.visually-hidden-#{$breakpoint} {
|
6
|
-
@include media-breakpoint-down($breakpoint) {
|
7
|
-
@include visually-hidden;
|
8
|
-
}
|
9
|
-
}
|
10
|
-
}
|
11
|
-
} @else if mixin-exists(sr-only) {
|
12
|
-
// Bootstrap 4 version
|
13
|
-
@each $breakpoint in map-keys($grid-breakpoints) {
|
14
|
-
.visually-hidden-#{$breakpoint} {
|
15
|
-
@include media-breakpoint-down($breakpoint) {
|
16
|
-
@include sr-only;
|
17
|
-
}
|
18
|
-
}
|
19
|
-
}
|
20
|
-
}
|
@@ -1,30 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Blacklight
|
4
|
-
module Icons
|
5
|
-
class LegacyIconComponent < ::ViewComponent::Base
|
6
|
-
def initialize(name:, classes: '', aria_hidden: false, label: true, role: 'img', additional_options: {})
|
7
|
-
@name = name
|
8
|
-
@classes = classes
|
9
|
-
@aria_hidden = aria_hidden
|
10
|
-
@icon = Blacklight::Icon.new(name, classes: classes, label: label, role: role, additional_options: additional_options)
|
11
|
-
end
|
12
|
-
|
13
|
-
def call
|
14
|
-
tag.span(svg&.html_safe || default_icon, # rubocop:disable Rails/OutputSafety
|
15
|
-
class: "blacklight-icons blacklight-icon-#{@name} #{@classes}".strip,
|
16
|
-
'aria-hidden': (true if @aria_hidden))
|
17
|
-
end
|
18
|
-
|
19
|
-
def svg
|
20
|
-
Rails.cache.fetch([:blacklight_icon_svg, @name]) do
|
21
|
-
@icon.svg if @icon.present?
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def default_icon
|
26
|
-
@icon.icon_label
|
27
|
-
end
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|