blacklight 8.1.0 → 8.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.github/workflows/ruby.yml +8 -6
- data/.rubocop_todo.yml +20 -5
- data/VERSION +1 -1
- data/app/assets/javascripts/blacklight/blacklight.esm.js +41 -21
- data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
- data/app/assets/javascripts/blacklight/blacklight.js +41 -21
- data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
- data/app/assets/stylesheets/blacklight/_mixins.scss +1 -1
- data/app/components/blacklight/advanced_search_form_component.html.erb +3 -3
- data/app/components/blacklight/advanced_search_form_component.rb +1 -1
- data/app/components/blacklight/document/bookmark_component.html.erb +1 -6
- data/app/components/blacklight/facet_field_component.html.erb +2 -1
- data/app/components/blacklight/icons/legacy_icon_component.rb +1 -1
- data/app/components/blacklight/response/facet_group_component.html.erb +0 -1
- data/app/components/blacklight/search/sidebar_component.html.erb +8 -6
- data/app/components/blacklight/search_bar_component.html.erb +36 -34
- data/app/components/blacklight/system/flash_message_component.html.erb +1 -1
- data/app/controllers/concerns/blacklight/token_based_user.rb +5 -19
- data/app/helpers/blacklight/url_helper_behavior.rb +3 -2
- data/app/javascript/blacklight/checkbox_submit.js +15 -10
- data/app/javascript/blacklight/modal.js +26 -12
- data/app/javascript/blacklight/search_context.js +1 -0
- data/app/values/blacklight/types.rb +14 -0
- data/app/views/catalog/_advanced_search_form.html.erb +1 -1
- data/app/views/catalog/_citation.html.erb +1 -1
- data/app/views/catalog/email.html.erb +2 -2
- data/app/views/catalog/sms.html.erb +2 -2
- data/app/views/kaminari/blacklight/_page.html.erb +1 -1
- data/blacklight.gemspec +1 -1
- data/config/locales/blacklight.ar.yml +0 -1
- data/config/locales/blacklight.ca.yml +0 -2
- data/config/locales/blacklight.de.yml +0 -1
- data/config/locales/blacklight.en.yml +0 -1
- data/config/locales/blacklight.es.yml +0 -1
- data/config/locales/blacklight.fr.yml +0 -1
- data/config/locales/blacklight.hu.yml +0 -1
- data/config/locales/blacklight.it.yml +0 -1
- data/config/locales/blacklight.nl.yml +0 -1
- data/config/locales/blacklight.pt-BR.yml +0 -1
- data/config/locales/blacklight.sq.yml +0 -1
- data/config/locales/blacklight.zh.yml +0 -1
- data/docker-compose.yml +0 -2
- data/lib/blacklight/solr/repository.rb +3 -1
- data/lib/blacklight/solr/response/params.rb +1 -1
- data/lib/blacklight/solr/search_builder_behavior.rb +2 -0
- data/lib/generators/blacklight/assets/importmap_generator.rb +2 -2
- data/lib/generators/blacklight/assets/sprockets_generator.rb +1 -1
- data/lib/generators/blacklight/assets_generator.rb +1 -1
- data/package.json +1 -1
- data/spec/components/blacklight/document_component_spec.rb +3 -3
- data/spec/components/blacklight/facet_component_spec.rb +1 -1
- data/spec/components/blacklight/response/view_type_component_spec.rb +1 -1
- data/spec/controllers/catalog_controller_spec.rb +2 -2
- data/spec/features/advanced_search_spec.rb +6 -0
- data/spec/features/citation_spec.rb +10 -0
- data/spec/features/sms_spec.rb +12 -0
- data/spec/models/blacklight/solr/response_spec.rb +1 -1
- data/spec/models/blacklight/solr/search_builder_spec.rb +13 -0
- data/spec/models/solr_document_spec.rb +6 -2
- data/spec/spec_helper.rb +0 -28
- data/spec/test_app_templates/Gemfile.extra +0 -1
- data/spec/views/catalog/_document.html.erb_spec.rb +1 -1
- data/spec/views/catalog/index.atom.builder_spec.rb +1 -1
- data/template.demo.rb +7 -7
- metadata +9 -5
@@ -154,7 +154,7 @@ RSpec.describe Blacklight::DocumentComponent, type: :component do
|
|
154
154
|
def initialize(**); end
|
155
155
|
|
156
156
|
def call
|
157
|
-
'embed'
|
157
|
+
'embed'.html_safe
|
158
158
|
end
|
159
159
|
end)
|
160
160
|
|
@@ -167,7 +167,7 @@ RSpec.describe Blacklight::DocumentComponent, type: :component do
|
|
167
167
|
Class.new(Blacklight::DocumentMetadataComponent) do
|
168
168
|
# Override component rendering with our own value
|
169
169
|
def call
|
170
|
-
'blah'
|
170
|
+
'blah'.html_safe
|
171
171
|
end
|
172
172
|
end
|
173
173
|
end
|
@@ -187,7 +187,7 @@ RSpec.describe Blacklight::DocumentComponent, type: :component do
|
|
187
187
|
Class.new(Blacklight::DocumentTitleComponent) do
|
188
188
|
# Override component rendering with our own value
|
189
189
|
def call
|
190
|
-
'Titleriffic'
|
190
|
+
'Titleriffic'.html_safe
|
191
191
|
end
|
192
192
|
end
|
193
193
|
end
|
@@ -54,7 +54,7 @@ RSpec.describe CatalogController, api: true do
|
|
54
54
|
it "has no docs or facet values for query without results", integration: true do
|
55
55
|
get :index, params: { q: 'sadfdsafasdfsadfsadfsadf' } # query for no results
|
56
56
|
expect(assigns(:response).docs).to be_empty
|
57
|
-
assigns(:response).aggregations.
|
57
|
+
assigns(:response).aggregations.each_value do |facet|
|
58
58
|
expect(facet.items).to be_empty
|
59
59
|
end
|
60
60
|
end
|
@@ -815,7 +815,7 @@ end
|
|
815
815
|
def assert_facets_have_values(aggregations)
|
816
816
|
expect(aggregations).not_to be_empty
|
817
817
|
# should have at least one value for each facet
|
818
|
-
aggregations.
|
818
|
+
aggregations.each_value do |facet|
|
819
819
|
expect(facet.items).to have_at_least(1).item
|
820
820
|
end
|
821
821
|
end
|
@@ -118,5 +118,11 @@ RSpec.describe "Blacklight Advanced Search Form" do
|
|
118
118
|
expect(page.current_url).to match(/bread/)
|
119
119
|
expect(page.current_url).not_to match(/medicine/)
|
120
120
|
end
|
121
|
+
|
122
|
+
it "clears the prepopulated fields when the Start Over button is pressed" do
|
123
|
+
expect(page).to have_field 'Title', with: 'medicine'
|
124
|
+
click_on 'Start over'
|
125
|
+
expect(page).not_to have_field 'Title', with: 'medicine'
|
126
|
+
end
|
121
127
|
end
|
122
128
|
end
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe 'Citation functionality' do
|
4
|
+
before { visit solr_document_path('2007020969') }
|
5
|
+
|
6
|
+
it 'displays the Cite modal with expected header' do
|
7
|
+
click_link 'Cite'
|
8
|
+
expect(find('div.modal-header')).to have_text 'Cite'
|
9
|
+
end
|
10
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
RSpec.describe 'SMS functionality' do
|
4
|
+
before { visit solr_document_path('2007020969') }
|
5
|
+
|
6
|
+
it 'displays SMS modal with form' do
|
7
|
+
click_link 'SMS'
|
8
|
+
expect(find('div.modal-header')).to have_text 'SMS This'
|
9
|
+
fill_in 'Phone Number:', with: '555-555-5555'
|
10
|
+
select 'Verizon', from: 'Carrier'
|
11
|
+
end
|
12
|
+
end
|
@@ -48,7 +48,7 @@ RSpec.describe Blacklight::Solr::Response, api: true do
|
|
48
48
|
|
49
49
|
expect(received).to eq expected
|
50
50
|
|
51
|
-
r.aggregations.
|
51
|
+
r.aggregations.each_value do |facet|
|
52
52
|
expect(facet).to respond_to :name
|
53
53
|
expect(facet).to respond_to :sort
|
54
54
|
expect(facet).to respond_to :offset
|
@@ -335,6 +335,7 @@ RSpec.describe Blacklight::Solr::SearchBuilderBehavior, api: true do
|
|
335
335
|
qf: '$subject_qf',
|
336
336
|
pf: '$subject_pf'
|
337
337
|
}
|
338
|
+
blacklight_config.search_fields['subject'].clause_params = nil
|
338
339
|
end
|
339
340
|
|
340
341
|
it "looks up qt from field definition" do
|
@@ -374,6 +375,18 @@ RSpec.describe Blacklight::Solr::SearchBuilderBehavior, api: true do
|
|
374
375
|
expect(key_value_pairs).to include("pf=$subject_pf")
|
375
376
|
expect(key_value_pairs).to include("qf=$subject_qf")
|
376
377
|
end
|
378
|
+
|
379
|
+
context 'when subject field uses JSON query DSL' do
|
380
|
+
before do
|
381
|
+
blacklight_config.search_fields['subject'].clause_params = {
|
382
|
+
edismax: {}
|
383
|
+
}
|
384
|
+
end
|
385
|
+
|
386
|
+
it "includes spellcheck.q, without LocalParams" do
|
387
|
+
expect(subject["spellcheck.q"]).to eq "wome"
|
388
|
+
end
|
389
|
+
end
|
377
390
|
end
|
378
391
|
|
379
392
|
describe "solr json query parameters from the fielded search" do
|
@@ -49,6 +49,7 @@ RSpec.describe SolrDocument, api: true do
|
|
49
49
|
attribute :author, :array, 'author_tesim', of: :string
|
50
50
|
attribute :first_author, :select, 'author_tesim', by: :min
|
51
51
|
attribute :date, :date, field: 'date_dtsi'
|
52
|
+
attribute :time, :time, field: 'date_dtsi'
|
52
53
|
attribute :whatever, :string, default: ->(*) { 'default_value' }
|
53
54
|
end
|
54
55
|
end
|
@@ -56,14 +57,17 @@ RSpec.describe SolrDocument, api: true do
|
|
56
57
|
doc_class.new(id: '123',
|
57
58
|
title_tesim: ['Good Omens'],
|
58
59
|
author_tesim: ['Neil Gaiman', 'Terry Pratchett'],
|
59
|
-
date_dtsi: '1990-01-
|
60
|
+
date_dtsi: '1990-01-01T17:23:13Z')
|
60
61
|
end
|
61
62
|
|
62
63
|
it "casts the attributes" do
|
63
64
|
expect(document.title).to eq 'Good Omens'
|
64
65
|
expect(document.author).to eq ['Neil Gaiman', 'Terry Pratchett']
|
65
66
|
expect(document.first_author).to eq 'Neil Gaiman'
|
66
|
-
expect(document.date).to
|
67
|
+
expect(document.date).to be_a Date
|
68
|
+
expect(document.date.to_s).to eq '1990-01-01'
|
69
|
+
expect(document.time).to be_a Time
|
70
|
+
expect(document.time.to_s).to eq '1990-01-01 17:23:13 UTC'
|
67
71
|
expect(document.whatever).to eq 'default_value'
|
68
72
|
end
|
69
73
|
|
data/spec/spec_helper.rb
CHANGED
@@ -118,31 +118,3 @@ RSpec.configure do |config|
|
|
118
118
|
# as the one that triggered the failure.
|
119
119
|
Kernel.srand config.seed
|
120
120
|
end
|
121
|
-
|
122
|
-
# RSpec's stub_template method needs a differnet implementation for Rails 7.1, that
|
123
|
-
# isn't yet in an rspec-rails release.
|
124
|
-
#
|
125
|
-
# First rspec-rails tried this:
|
126
|
-
# https://github.com/rspec/rspec-rails/commit/4d65bea0619955acb15023b9c3f57a3a53183da8
|
127
|
-
#
|
128
|
-
# But it was subject to this problem:
|
129
|
-
# https://github.com/rspec/rspec-rails/issues/2696
|
130
|
-
#
|
131
|
-
# Below implementation appears to work for our purposes here, so we will patch it in
|
132
|
-
# if we are on Rails 7.1+, and not yet rspec-rails 6.1 which we expect to have it.
|
133
|
-
|
134
|
-
if ::Rails.version.to_f >= 7.1 && Gem.loaded_specs["rspec-rails"].version.release < Gem::Version.new('6.1')
|
135
|
-
|
136
|
-
module RSpec
|
137
|
-
module Rails
|
138
|
-
module ViewExampleGroup
|
139
|
-
module ExampleMethods
|
140
|
-
def stub_template(hash)
|
141
|
-
controller.prepend_view_path(StubResolverCache.resolver_for(hash))
|
142
|
-
end
|
143
|
-
end
|
144
|
-
end
|
145
|
-
end
|
146
|
-
end
|
147
|
-
|
148
|
-
end
|
data/template.demo.rb
CHANGED
@@ -2,12 +2,12 @@
|
|
2
2
|
|
3
3
|
gem 'blacklight', '>= 7.0'
|
4
4
|
|
5
|
-
|
5
|
+
after_bundle do
|
6
|
+
# run the blacklight install generator
|
7
|
+
options = ENV.fetch("BLACKLIGHT_INSTALL_OPTIONS", '--devise --marc')
|
6
8
|
|
7
|
-
|
8
|
-
options = ENV.fetch("BLACKLIGHT_INSTALL_OPTIONS", '--devise --marc')
|
9
|
+
generate 'blacklight:install', options
|
9
10
|
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
rake "db:migrate"
|
11
|
+
# run the database migrations
|
12
|
+
rake "db:migrate"
|
13
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: blacklight
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.1
|
4
|
+
version: 8.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Rochkind
|
@@ -17,7 +17,7 @@ authors:
|
|
17
17
|
autorequire:
|
18
18
|
bindir: exe
|
19
19
|
cert_chain: []
|
20
|
-
date:
|
20
|
+
date: 2024-06-04 00:00:00.000000000 Z
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
23
23
|
name: rails
|
@@ -155,14 +155,14 @@ dependencies:
|
|
155
155
|
requirements:
|
156
156
|
- - "~>"
|
157
157
|
- !ruby/object:Gem::Version
|
158
|
-
version: '6.
|
158
|
+
version: '6.1'
|
159
159
|
type: :development
|
160
160
|
prerelease: false
|
161
161
|
version_requirements: !ruby/object:Gem::Requirement
|
162
162
|
requirements:
|
163
163
|
- - "~>"
|
164
164
|
- !ruby/object:Gem::Version
|
165
|
-
version: '6.
|
165
|
+
version: '6.1'
|
166
166
|
- !ruby/object:Gem::Dependency
|
167
167
|
name: rspec-collection_matchers
|
168
168
|
requirement: !ruby/object:Gem::Requirement
|
@@ -788,6 +788,7 @@ files:
|
|
788
788
|
- spec/features/autocomplete_spec.rb
|
789
789
|
- spec/features/axe_spec.rb
|
790
790
|
- spec/features/bookmarks_spec.rb
|
791
|
+
- spec/features/citation_spec.rb
|
791
792
|
- spec/features/component_template_override_spec.rb
|
792
793
|
- spec/features/did_you_mean_spec.rb
|
793
794
|
- spec/features/facet_missing_spec.rb
|
@@ -804,6 +805,7 @@ files:
|
|
804
805
|
- spec/features/search_sort_spec.rb
|
805
806
|
- spec/features/search_spec.rb
|
806
807
|
- spec/features/sitelinks_search_box_spec.rb
|
808
|
+
- spec/features/sms_spec.rb
|
807
809
|
- spec/fixtures/sample_solr_documents.yml
|
808
810
|
- spec/helpers/blacklight/configuration_helper_behavior_spec.rb
|
809
811
|
- spec/helpers/blacklight/facets_helper_behavior_spec.rb
|
@@ -923,7 +925,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
923
925
|
- !ruby/object:Gem::Version
|
924
926
|
version: '0'
|
925
927
|
requirements: []
|
926
|
-
rubygems_version: 3.
|
928
|
+
rubygems_version: 3.5.10
|
927
929
|
signing_key:
|
928
930
|
specification_version: 4
|
929
931
|
summary: Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr)
|
@@ -965,6 +967,7 @@ test_files:
|
|
965
967
|
- spec/features/autocomplete_spec.rb
|
966
968
|
- spec/features/axe_spec.rb
|
967
969
|
- spec/features/bookmarks_spec.rb
|
970
|
+
- spec/features/citation_spec.rb
|
968
971
|
- spec/features/component_template_override_spec.rb
|
969
972
|
- spec/features/did_you_mean_spec.rb
|
970
973
|
- spec/features/facet_missing_spec.rb
|
@@ -981,6 +984,7 @@ test_files:
|
|
981
984
|
- spec/features/search_sort_spec.rb
|
982
985
|
- spec/features/search_spec.rb
|
983
986
|
- spec/features/sitelinks_search_box_spec.rb
|
987
|
+
- spec/features/sms_spec.rb
|
984
988
|
- spec/fixtures/sample_solr_documents.yml
|
985
989
|
- spec/helpers/blacklight/configuration_helper_behavior_spec.rb
|
986
990
|
- spec/helpers/blacklight/facets_helper_behavior_spec.rb
|