blacklight 8.8.1 → 9.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|