blacklight 8.8.0 → 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 +16 -19
- 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 +19 -16
- data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
- data/app/assets/javascripts/blacklight/blacklight.js +19 -16
- 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 +7 -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_field_pagination_component.html.erb +4 -4
- data/app/components/blacklight/facet_field_pagination_component.rb +2 -1
- 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 +6 -12
- 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 +4 -4
- 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/compose.yaml +1 -0
- 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/templates/solr/conf/solrconfig.xml +1 -1
- 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 +25 -14
- 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/helpers/catalog_helper_spec.rb +8 -0
- 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 -57
- 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,23 +100,34 @@ RSpec.describe "Facets" do
|
|
100
100
|
end
|
101
101
|
|
102
102
|
describe 'Facet modal' do
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
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
|
107
|
+
|
108
|
+
fill_in 'facet_suggest_subject_ssim', with: "ag"
|
109
109
|
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
expect(page).to have_css 'a.facet-select', count: 20
|
110
|
+
expect(page).to have_link 'Old age'
|
111
|
+
expect(page).to have_css 'a.facet-select', count: 2
|
112
|
+
end
|
114
113
|
|
115
|
-
|
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'
|
116
117
|
|
117
|
-
|
118
|
-
|
119
|
-
|
118
|
+
expect(page).to have_link 'Tibetan language'
|
119
|
+
expect(page).to have_css 'a.facet-select', count: 1
|
120
|
+
end
|
121
|
+
|
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')
|
120
131
|
end
|
121
132
|
end
|
122
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
|
|
@@ -261,6 +261,14 @@ RSpec.describe CatalogHelper do
|
|
261
261
|
it "renders a facet with more than two values" do
|
262
262
|
expect(helper.render_search_to_page_title_filter('foo', %w[bar baz foobar])).to eq "Foo: 3 selected"
|
263
263
|
end
|
264
|
+
|
265
|
+
it "strips tags from html_safe values" do
|
266
|
+
expect(helper.render_search_to_page_title_filter('Year', ['<span class="from" data-blrl-begin="1990">1990</span> to <span class="to" data-blrl-end="1999">1999</span>'.html_safe])).to eq "Year: 1990 to 1999"
|
267
|
+
end
|
268
|
+
|
269
|
+
it "does not strip tags from non-html_safe values" do
|
270
|
+
expect(helper.render_search_to_page_title_filter('Folder', ['Some > Nested > <span>Hierarchy</span>'])).to eq "Folder: Some > Nested > <span>Hierarchy</span>"
|
271
|
+
end
|
264
272
|
end
|
265
273
|
|
266
274
|
describe "#render_search_to_page_title" do
|
@@ -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
|
@@ -14,10 +14,9 @@ authors:
|
|
14
14
|
- Dan Funk
|
15
15
|
- Naomi Dushay
|
16
16
|
- Justin Coyne
|
17
|
-
autorequire:
|
18
17
|
bindir: exe
|
19
18
|
cert_chain: []
|
20
|
-
date: 2025-
|
19
|
+
date: 2025-02-06 00:00:00.000000000 Z
|
21
20
|
dependencies:
|
22
21
|
- !ruby/object:Gem::Dependency
|
23
22
|
name: rails
|
@@ -25,7 +24,7 @@ dependencies:
|
|
25
24
|
requirements:
|
26
25
|
- - ">="
|
27
26
|
- !ruby/object:Gem::Version
|
28
|
-
version: '
|
27
|
+
version: '7.0'
|
29
28
|
- - "<"
|
30
29
|
- !ruby/object:Gem::Version
|
31
30
|
version: '9'
|
@@ -35,7 +34,7 @@ dependencies:
|
|
35
34
|
requirements:
|
36
35
|
- - ">="
|
37
36
|
- !ruby/object:Gem::Version
|
38
|
-
version: '
|
37
|
+
version: '7.0'
|
39
38
|
- - "<"
|
40
39
|
- !ruby/object:Gem::Version
|
41
40
|
version: '9'
|
@@ -113,22 +112,16 @@ dependencies:
|
|
113
112
|
name: view_component
|
114
113
|
requirement: !ruby/object:Gem::Requirement
|
115
114
|
requirements:
|
116
|
-
- - "
|
117
|
-
- !ruby/object:Gem::Version
|
118
|
-
version: '2.74'
|
119
|
-
- - "<"
|
115
|
+
- - "~>"
|
120
116
|
- !ruby/object:Gem::Version
|
121
|
-
version: '
|
117
|
+
version: '3.9'
|
122
118
|
type: :runtime
|
123
119
|
prerelease: false
|
124
120
|
version_requirements: !ruby/object:Gem::Requirement
|
125
121
|
requirements:
|
126
|
-
- - "
|
127
|
-
- !ruby/object:Gem::Version
|
128
|
-
version: '2.74'
|
129
|
-
- - "<"
|
122
|
+
- - "~>"
|
130
123
|
- !ruby/object:Gem::Version
|
131
|
-
version: '
|
124
|
+
version: '3.9'
|
132
125
|
- !ruby/object:Gem::Dependency
|
133
126
|
name: zeitwerk
|
134
127
|
requirement: !ruby/object:Gem::Requirement
|
@@ -167,22 +160,16 @@ dependencies:
|
|
167
160
|
name: rspec-rails
|
168
161
|
requirement: !ruby/object:Gem::Requirement
|
169
162
|
requirements:
|
170
|
-
- - "
|
171
|
-
- !ruby/object:Gem::Version
|
172
|
-
version: '6.1'
|
173
|
-
- - "<"
|
163
|
+
- - "~>"
|
174
164
|
- !ruby/object:Gem::Version
|
175
|
-
version: '
|
165
|
+
version: '7.0'
|
176
166
|
type: :development
|
177
167
|
prerelease: false
|
178
168
|
version_requirements: !ruby/object:Gem::Requirement
|
179
169
|
requirements:
|
180
|
-
- - "
|
181
|
-
- !ruby/object:Gem::Version
|
182
|
-
version: '6.1'
|
183
|
-
- - "<"
|
170
|
+
- - "~>"
|
184
171
|
- !ruby/object:Gem::Version
|
185
|
-
version: '
|
172
|
+
version: '7.0'
|
186
173
|
- !ruby/object:Gem::Dependency
|
187
174
|
name: rspec-collection_matchers
|
188
175
|
requirement: !ruby/object:Gem::Requirement
|
@@ -422,6 +409,7 @@ files:
|
|
422
409
|
- ".docker/app/entrypoint.sh"
|
423
410
|
- ".dockerignore"
|
424
411
|
- ".env"
|
412
|
+
- ".github/pull_request_template.md"
|
425
413
|
- ".github/workflows/ruby.yml"
|
426
414
|
- ".gitignore"
|
427
415
|
- ".hound.yml"
|
@@ -437,6 +425,7 @@ files:
|
|
437
425
|
- README.md
|
438
426
|
- Rakefile
|
439
427
|
- VERSION
|
428
|
+
- app/assets/builds/blacklight.css
|
440
429
|
- app/assets/config/blacklight/manifest.js
|
441
430
|
- app/assets/images/blacklight/logo.png
|
442
431
|
- app/assets/images/favicon.ico
|
@@ -444,7 +433,6 @@ files:
|
|
444
433
|
- app/assets/javascripts/blacklight/blacklight.esm.js.map
|
445
434
|
- app/assets/javascripts/blacklight/blacklight.js
|
446
435
|
- app/assets/javascripts/blacklight/blacklight.js.map
|
447
|
-
- app/assets/stylesheets/blacklight/_autocomplete.scss
|
448
436
|
- app/assets/stylesheets/blacklight/_balanced_list.scss
|
449
437
|
- app/assets/stylesheets/blacklight/_blacklight_base.scss
|
450
438
|
- app/assets/stylesheets/blacklight/_bookmark.scss
|
@@ -456,7 +444,6 @@ files:
|
|
456
444
|
- app/assets/stylesheets/blacklight/_header.scss
|
457
445
|
- app/assets/stylesheets/blacklight/_icons.scss
|
458
446
|
- app/assets/stylesheets/blacklight/_layout.scss
|
459
|
-
- app/assets/stylesheets/blacklight/_mixins.scss
|
460
447
|
- app/assets/stylesheets/blacklight/_modal.scss
|
461
448
|
- app/assets/stylesheets/blacklight/_pagination.scss
|
462
449
|
- app/assets/stylesheets/blacklight/_search_form.scss
|
@@ -464,6 +451,7 @@ files:
|
|
464
451
|
- app/assets/stylesheets/blacklight/_search_results.scss
|
465
452
|
- app/assets/stylesheets/blacklight/blacklight.scss
|
466
453
|
- app/assets/stylesheets/blacklight/blacklight_defaults.scss
|
454
|
+
- app/assets/stylesheets/blacklight/build.scss
|
467
455
|
- app/builders/blacklight/action_builder.rb
|
468
456
|
- app/components/blacklight/advanced_search_form_component.html.erb
|
469
457
|
- app/components/blacklight/advanced_search_form_component.rb
|
@@ -520,7 +508,6 @@ files:
|
|
520
508
|
- app/components/blacklight/hidden_search_state_component.rb
|
521
509
|
- app/components/blacklight/icons/bookmark_icon_component.rb
|
522
510
|
- app/components/blacklight/icons/icon_component.rb
|
523
|
-
- app/components/blacklight/icons/legacy_icon_component.rb
|
524
511
|
- app/components/blacklight/icons/list_component.rb
|
525
512
|
- app/components/blacklight/icons/remove_component.rb
|
526
513
|
- app/components/blacklight/icons/search_component.rb
|
@@ -531,6 +518,8 @@ files:
|
|
531
518
|
- app/components/blacklight/metadata_field_plain_text_layout_component.rb
|
532
519
|
- app/components/blacklight/response/facet_group_component.html.erb
|
533
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
|
534
523
|
- app/components/blacklight/response/pagination_component.html.erb
|
535
524
|
- app/components/blacklight/response/pagination_component.rb
|
536
525
|
- app/components/blacklight/response/sort_component.html.erb
|
@@ -561,6 +550,7 @@ files:
|
|
561
550
|
- app/components/blacklight/search_navbar_component.rb
|
562
551
|
- app/components/blacklight/skip_link_component.html.erb
|
563
552
|
- app/components/blacklight/skip_link_component.rb
|
553
|
+
- app/components/blacklight/skip_link_item_component.rb
|
564
554
|
- app/components/blacklight/start_over_button_component.rb
|
565
555
|
- app/components/blacklight/system/dropdown_button_component.rb
|
566
556
|
- app/components/blacklight/system/dropdown_component.html.erb
|
@@ -593,16 +583,16 @@ files:
|
|
593
583
|
- app/helpers/blacklight/url_helper_behavior.rb
|
594
584
|
- app/helpers/blacklight_helper.rb
|
595
585
|
- app/helpers/catalog_helper.rb
|
596
|
-
- app/javascript/blacklight/bookmark_toggle.js
|
597
|
-
- app/javascript/blacklight/button_focus.js
|
598
|
-
- app/javascript/blacklight/checkbox_submit.js
|
599
|
-
- app/javascript/blacklight/core.js
|
600
|
-
- app/javascript/blacklight/debounce.js
|
601
|
-
- app/javascript/blacklight/facet_suggest.js
|
602
|
-
- app/javascript/blacklight/index.js
|
603
|
-
- app/javascript/blacklight/modal.js
|
604
|
-
- app/javascript/blacklight/modalForm.js
|
605
|
-
- 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
|
606
596
|
- app/models/blacklight/facet_paginator.rb
|
607
597
|
- app/models/blacklight/icon.rb
|
608
598
|
- app/models/blacklight/suggest_search.rb
|
@@ -659,7 +649,6 @@ files:
|
|
659
649
|
- app/views/catalog/_advanced_search_help.html.erb
|
660
650
|
- app/views/catalog/_bookmark_control.html.erb
|
661
651
|
- app/views/catalog/_citation.html.erb
|
662
|
-
- app/views/catalog/_constraints.html.erb
|
663
652
|
- app/views/catalog/_did_you_mean.html.erb
|
664
653
|
- app/views/catalog/_document.atom.builder
|
665
654
|
- app/views/catalog/_document.html.erb
|
@@ -670,7 +659,6 @@ files:
|
|
670
659
|
- app/views/catalog/_facet_layout.html.erb
|
671
660
|
- app/views/catalog/_facet_pagination.html.erb
|
672
661
|
- app/views/catalog/_facet_pivot.html.erb
|
673
|
-
- app/views/catalog/_facets.html.erb
|
674
662
|
- app/views/catalog/_field.json.jbuilder
|
675
663
|
- app/views/catalog/_group.html.erb
|
676
664
|
- app/views/catalog/_home.html.erb
|
@@ -679,19 +667,14 @@ files:
|
|
679
667
|
- app/views/catalog/_paginate_compact.html.erb
|
680
668
|
- app/views/catalog/_per_page_widget.html.erb
|
681
669
|
- app/views/catalog/_results_pagination.html.erb
|
682
|
-
- app/views/catalog/_search_form.html.erb
|
683
|
-
- app/views/catalog/_search_header.html.erb
|
684
670
|
- app/views/catalog/_search_results.html.erb
|
685
671
|
- app/views/catalog/_search_results_header.html.erb
|
686
672
|
- app/views/catalog/_search_sidebar.html.erb
|
687
673
|
- app/views/catalog/_show_main_content.html.erb
|
688
674
|
- app/views/catalog/_show_more_like_this.html.erb
|
689
|
-
- app/views/catalog/_show_sidebar.html.erb
|
690
|
-
- app/views/catalog/_show_tools.html.erb
|
691
675
|
- app/views/catalog/_sms_form.html.erb
|
692
676
|
- app/views/catalog/_sort_and_per_page.html.erb
|
693
677
|
- app/views/catalog/_sort_widget.html.erb
|
694
|
-
- app/views/catalog/_start_over.html.erb
|
695
678
|
- app/views/catalog/_view_type_group.html.erb
|
696
679
|
- app/views/catalog/_zero_results.html.erb
|
697
680
|
- app/views/catalog/advanced_search.html.erb
|
@@ -732,7 +715,6 @@ files:
|
|
732
715
|
- app/views/shared/_flash_messages.html.erb
|
733
716
|
- app/views/shared/_flash_msg.html.erb
|
734
717
|
- app/views/shared/_footer.html.erb
|
735
|
-
- app/views/shared/_header_navbar.html.erb
|
736
718
|
- app/views/shared/_modal.html.erb
|
737
719
|
- app/views/shared/_sitelinks_search_box.html.erb
|
738
720
|
- app/views/shared/_user_util_links.html.erb
|
@@ -805,7 +787,6 @@ files:
|
|
805
787
|
- lib/blacklight/version.rb
|
806
788
|
- lib/generators/blacklight/assets/importmap_generator.rb
|
807
789
|
- lib/generators/blacklight/assets/propshaft_generator.rb
|
808
|
-
- lib/generators/blacklight/assets/sprockets_generator.rb
|
809
790
|
- lib/generators/blacklight/assets_generator.rb
|
810
791
|
- lib/generators/blacklight/controller_generator.rb
|
811
792
|
- lib/generators/blacklight/document_generator.rb
|
@@ -983,9 +964,6 @@ files:
|
|
983
964
|
- spec/views/catalog/_facet_index_navigation.html.erb_spec.rb
|
984
965
|
- spec/views/catalog/_facet_layout.html.erb_spec.rb
|
985
966
|
- spec/views/catalog/_paginate_compact.html.erb_spec.rb
|
986
|
-
- spec/views/catalog/_search_header.erb_spec.rb
|
987
|
-
- spec/views/catalog/_show_sidebar.erb_spec.rb
|
988
|
-
- spec/views/catalog/_show_tools.html.erb_spec.rb
|
989
967
|
- spec/views/catalog/_sort_and_per_page.html.erb_spec.rb
|
990
968
|
- spec/views/catalog/_sort_widget.html.erb_spec.rb
|
991
969
|
- spec/views/catalog/_view_type_group.html.erb_spec.rb
|
@@ -1006,7 +984,6 @@ homepage: http://projectblacklight.org/
|
|
1006
984
|
licenses:
|
1007
985
|
- Apache 2.0
|
1008
986
|
metadata: {}
|
1009
|
-
post_install_message:
|
1010
987
|
rdoc_options: []
|
1011
988
|
require_paths:
|
1012
989
|
- lib
|
@@ -1014,15 +991,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
1014
991
|
requirements:
|
1015
992
|
- - ">="
|
1016
993
|
- !ruby/object:Gem::Version
|
1017
|
-
version: '
|
994
|
+
version: '3.1'
|
1018
995
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
1019
996
|
requirements:
|
1020
997
|
- - ">="
|
1021
998
|
- !ruby/object:Gem::Version
|
1022
999
|
version: '0'
|
1023
1000
|
requirements: []
|
1024
|
-
rubygems_version: 3.
|
1025
|
-
signing_key:
|
1001
|
+
rubygems_version: 3.6.2
|
1026
1002
|
specification_version: 4
|
1027
1003
|
summary: Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr)
|
1028
1004
|
index.
|
@@ -1167,9 +1143,6 @@ test_files:
|
|
1167
1143
|
- spec/views/catalog/_facet_index_navigation.html.erb_spec.rb
|
1168
1144
|
- spec/views/catalog/_facet_layout.html.erb_spec.rb
|
1169
1145
|
- spec/views/catalog/_paginate_compact.html.erb_spec.rb
|
1170
|
-
- spec/views/catalog/_search_header.erb_spec.rb
|
1171
|
-
- spec/views/catalog/_show_sidebar.erb_spec.rb
|
1172
|
-
- spec/views/catalog/_show_tools.html.erb_spec.rb
|
1173
1146
|
- spec/views/catalog/_sort_and_per_page.html.erb_spec.rb
|
1174
1147
|
- spec/views/catalog/_sort_widget.html.erb_spec.rb
|
1175
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
|
-
}
|