blacklight 8.8.2 → 8.8.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9dd86bf03c86da1ff25d4c652ce4a7121f6d4418cb4bc40d7b435a17dd214f26
4
- data.tar.gz: c1735cda91ea0095dcb73e1d3a9aae3fb17de0280dd3c77aebcf3d0b67cd78fc
3
+ metadata.gz: a1e08ce0753e7c685ea8c89ddb71a79df93264b09316f4fd42d10e9df6b0445a
4
+ data.tar.gz: f2fd78857733c1d5729806da77d823b459aa66414d753b27e03ae3b9bc2adac9
5
5
  SHA512:
6
- metadata.gz: 2f7d8b428cfe7b9a73f4f2b1985064bfe292f66ae7c878c15eaf83225492d63433687fef4539eb9a975d0bd29020e1341fa507775c5daf2825b1ca484efc6c6d
7
- data.tar.gz: b07daac34342d08bdd8a3927fca57449cfacfdd4f866bf74c18d4f4040e7d967a04797448fded5beec7e3532e1a00e8903fd6294b8162e7a5fbaf84a094f471a
6
+ metadata.gz: 7b8109311a031925baef9b67a4a89a5c0acd49d7ed7822e5d129b7c22b9920e742684035685bd780f293de3a6f78b4725dc22fbd77d77f8513d54cfe467d9c06
7
+ data.tar.gz: b245a145acf722e3e505820fafa9d1731fbbd30d43e2bca4465ffa9e430bfffe542fe81761b1c6d92cdcca84d561d2026a75d293c19ecd57ea479f3aba3ede56
data/VERSION CHANGED
@@ -1 +1 @@
1
- 8.8.2
1
+ 8.8.3
@@ -61,9 +61,7 @@ module Blacklight
61
61
  end
62
62
  end
63
63
 
64
- def key
65
- @action.key
66
- end
64
+ delegate :key, to: :@action
67
65
  end
68
66
  end
69
67
  end
@@ -8,7 +8,7 @@
8
8
  data-target="#<%= html_id %>"
9
9
  data-bs-target="#<%= html_id %>"
10
10
  aria-expanded="<%= @facet_field.collapsed? ? 'false' : 'true' %>"
11
- arial-controls="<%= html_id %>"
11
+ aria-controls="<%= html_id %>"
12
12
  >
13
13
  <%= label %>
14
14
  </button>
@@ -13,9 +13,7 @@ module Blacklight
13
13
 
14
14
  delegate :facet_field_names, :facet_configuration_for_field, to: :blacklight_config
15
15
 
16
- def documents
17
- @response.documents
18
- end
16
+ delegate :documents, to: :@response
19
17
 
20
18
  # @return [Array<Blacklight::Solr::Response::Facets::FacetField>]
21
19
  def search_facets
@@ -145,8 +145,8 @@ module Blacklight
145
145
  def permitted_params
146
146
  if config.pivot
147
147
  {
148
- filters_key => config.pivot.each_with_object({}) { |key, filter| filter.merge(key => [], "-#{key}" => []) },
149
- inclusive_filters_key => config.pivot.each_with_object({}) { |key, filter| filter.merge(key => []) }
148
+ filters_key => config.pivot.each_with_object({}) { |key, filter| filter.merge!(key => [], "-#{key}" => []) },
149
+ inclusive_filters_key => config.pivot.each_with_object({}) { |key, filter| filter.merge!(key => []) }
150
150
  }
151
151
  else
152
152
  {
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "blacklight-frontend",
3
- "version": "8.8.2",
3
+ "version": "8.8.3",
4
4
  "description": "The frontend code and styles for Blacklight",
5
5
  "main": "app/assets/javascripts/blacklight",
6
6
  "type": "module",
@@ -803,7 +803,7 @@ RSpec.describe CatalogController, :api do
803
803
  end
804
804
 
805
805
  it "is empty for empty result sets", :integration do
806
- get :page_links, params: { f: { "format" => 'empty-result-set' }, counter: 1 }
806
+ get :page_links, params: { f: { "format" => ['empty-result-set'] }, counter: 1 }
807
807
  expect(assigns(:page_link_data)).to be_empty
808
808
  end
809
809
  end
@@ -138,4 +138,11 @@ RSpec.describe "Facets" do
138
138
  end
139
139
  end
140
140
  end
141
+
142
+ describe 'facebook-style facet parameters' do
143
+ it 'can perform a search' do
144
+ visit '/?f[subject_ssim][0]=Iran.+Viza%CC%84rat-i+Kishvar'
145
+ expect(page).to have_text 'Naqdī barā-yi tamām-i fuṣūl'
146
+ end
147
+ end
141
148
  end
@@ -52,7 +52,7 @@ RSpec.describe Blacklight::Parameters do
52
52
  let(:search_state) { Blacklight::SearchState.new(query_params, blacklight_config) }
53
53
  let(:blacklight_config) { Blacklight::Configuration.new }
54
54
 
55
- context 'with facebooks badly mangled query parameters' do
55
+ context 'with facebook\'s badly mangled query parameters' do
56
56
  let(:query_params) do
57
57
  ActionController::Parameters.new(
58
58
  f: { field: { '0': 'first', '1': 'second' } },
@@ -67,6 +67,17 @@ RSpec.describe Blacklight::Parameters do
67
67
  it 'normalizes the facets to the expected format' do
68
68
  expect(params.permit_search_params.to_h.with_indifferent_access).to include f: { field: %w[first second] }, f_inclusive: { field: %w[first second] }
69
69
  end
70
+
71
+ context 'when several fields are configured' do
72
+ before do
73
+ blacklight_config.add_facet_field 'other_field'
74
+ blacklight_config.add_facet_field 'some_other_pivot_field', pivot: %w[abc def]
75
+ end
76
+
77
+ it 'normalizes the facets to the expected format' do
78
+ expect(params.permit_search_params.to_h.with_indifferent_access).to include f: { field: %w[first second] }, f_inclusive: { field: %w[first second] }
79
+ end
80
+ end
70
81
  end
71
82
 
72
83
  context 'with filter_search_state_fields set to false' do
@@ -198,4 +198,22 @@ RSpec.describe Blacklight::SearchState::FilterField do
198
198
  expect(search_state.filter('some_field').include?(OpenStruct.new(value: '1'))).to be true
199
199
  end
200
200
  end
201
+
202
+ describe '#permitted_params' do
203
+ context 'with a pivot facet' do
204
+ let(:blacklight_config) do
205
+ Blacklight::Configuration.new.configure do |config|
206
+ config.add_facet_field 'my_pivot', pivot: %w[format language_ssim]
207
+ end
208
+ end
209
+
210
+ it 'marks all the pivot fields as permitted' do
211
+ field = described_class.new blacklight_config.facet_fields['my_pivot'], search_state
212
+ expect(field.permitted_params).to eq({
213
+ f: { "-format" => [], "-language_ssim" => [], "format" => [], "language_ssim" => [] },
214
+ f_inclusive: { "format" => [], "language_ssim" => [] }
215
+ })
216
+ end
217
+ end
218
+ end
201
219
  end
@@ -59,7 +59,7 @@ RSpec.describe Blacklight::SearchService, :api do
59
59
  allow(blacklight_config).to receive(:default_solr_params).and_return(qt: 'custom_request_handler')
60
60
  allow(blacklight_solr).to receive(:send_and_receive) do |path, params|
61
61
  expect(path).to eq 'select'
62
- expect(params[:params]['facet.field']).to eq ["format", "{!ex=pub_date_ssim_single}pub_date_ssim", "subject_ssim", "language_ssim", "lc_1letter_ssim", "subject_geo_ssim", "subject_era_ssim"]
62
+ expect(params[:params]['facet.field']).to contain_exactly "format", "{!ex=pub_date_ssim_single}pub_date_ssim", "subject_ssim", "language_ssim", "lc_1letter_ssim", "subject_geo_ssim", "subject_era_ssim"
63
63
  expect(params[:params]["facet.query"]).to eq ["pub_date_ssim:[#{5.years.ago.year} TO *]", "pub_date_ssim:[#{10.years.ago.year} TO *]", "pub_date_ssim:[#{25.years.ago.year} TO *]"]
64
64
  expect(params[:params]).to include('rows' => 10, 'qt' => "custom_request_handler", 'q' => "", "f.subject_ssim.facet.limit" => 21, 'sort' => "score desc, pub_date_si desc, title_si asc")
65
65
  end.and_return('response' => { 'docs' => [] })
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.8.2
4
+ version: 8.8.3
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-06 00:00:00.000000000 Z
19
+ date: 2025-02-26 00:00:00.000000000 Z
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
22
22
  name: rails