blacklight 7.13.0 → 7.15.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (96) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +109 -0
  3. data/README.md +0 -2
  4. data/VERSION +1 -1
  5. data/app/assets/javascripts/blacklight/blacklight.js +4 -2
  6. data/app/assets/stylesheets/blacklight/_header.scss +0 -5
  7. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +0 -1
  8. data/app/components/blacklight/advanced_search_form_component.html.erb +46 -0
  9. data/app/components/blacklight/advanced_search_form_component.rb +75 -0
  10. data/app/components/blacklight/constraint_component.html.erb +1 -1
  11. data/app/components/blacklight/constraints_component.rb +42 -17
  12. data/app/components/blacklight/document/thumbnail_component.html.erb +2 -2
  13. data/app/components/blacklight/document/thumbnail_component.rb +5 -2
  14. data/app/components/blacklight/document_component.rb +7 -2
  15. data/app/components/blacklight/document_metadata_component.rb +1 -1
  16. data/app/components/blacklight/facet_field_checkboxes_component.html.erb +23 -0
  17. data/app/components/blacklight/facet_field_checkboxes_component.rb +24 -0
  18. data/app/components/blacklight/facet_field_inclusive_constraint_component.html.erb +6 -0
  19. data/app/components/blacklight/facet_field_inclusive_constraint_component.rb +29 -0
  20. data/app/components/blacklight/facet_field_list_component.html.erb +1 -0
  21. data/app/components/blacklight/facet_field_pagination_component.html.erb +4 -4
  22. data/app/components/blacklight/facet_field_pagination_component.rb +0 -4
  23. data/app/components/blacklight/facet_item_component.rb +2 -0
  24. data/app/components/blacklight/hidden_search_state_component.rb +54 -0
  25. data/app/components/blacklight/search_bar_component.html.erb +14 -8
  26. data/app/components/blacklight/search_bar_component.rb +16 -1
  27. data/app/controllers/concerns/blacklight/bookmarks.rb +1 -1
  28. data/app/controllers/concerns/blacklight/catalog.rb +9 -3
  29. data/app/controllers/concerns/blacklight/search_context.rb +1 -1
  30. data/app/helpers/blacklight/component_helper_behavior.rb +1 -1
  31. data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -2
  32. data/app/helpers/blacklight/facets_helper_behavior.rb +1 -1
  33. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +2 -38
  34. data/app/helpers/blacklight/icon_helper_behavior.rb +1 -1
  35. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +2 -2
  36. data/app/helpers/blacklight/render_partials_helper_behavior.rb +2 -2
  37. data/app/javascript/blacklight/button_focus.js +1 -0
  38. data/app/javascript/blacklight/modal.js +10 -4
  39. data/app/models/concerns/blacklight/suggest/response.rb +1 -1
  40. data/app/presenters/blacklight/clause_presenter.rb +37 -0
  41. data/app/presenters/blacklight/document_presenter.rb +5 -1
  42. data/app/presenters/blacklight/facet_field_presenter.rb +4 -0
  43. data/app/presenters/blacklight/facet_grouped_item_presenter.rb +45 -0
  44. data/app/presenters/blacklight/facet_item_presenter.rb +32 -20
  45. data/app/presenters/blacklight/field_presenter.rb +1 -1
  46. data/app/presenters/blacklight/inclusive_facet_item_presenter.rb +16 -0
  47. data/app/presenters/blacklight/search_bar_presenter.rb +4 -0
  48. data/app/values/blacklight/types.rb +1 -1
  49. data/app/views/bookmarks/_tools.html.erb +1 -1
  50. data/app/views/catalog/_advanced_search_form.html.erb +7 -0
  51. data/app/views/catalog/_advanced_search_help.html.erb +24 -0
  52. data/app/views/catalog/_search_form.html.erb +1 -0
  53. data/app/views/catalog/_zero_results.html.erb +1 -1
  54. data/app/views/catalog/advanced_search.html.erb +17 -0
  55. data/blacklight.gemspec +5 -4
  56. data/config/i18n-tasks.yml +1 -0
  57. data/config/locales/blacklight.en.yml +17 -0
  58. data/lib/blacklight/configuration.rb +2 -1
  59. data/lib/blacklight/configuration/field.rb +1 -1
  60. data/lib/blacklight/configuration/fields.rb +1 -1
  61. data/lib/blacklight/configuration/sort_field.rb +1 -1
  62. data/lib/blacklight/routes/searchable.rb +1 -0
  63. data/lib/blacklight/search_builder.rb +2 -0
  64. data/lib/blacklight/search_state.rb +5 -1
  65. data/lib/blacklight/search_state/filter_field.rb +17 -7
  66. data/lib/blacklight/solr/repository.rb +14 -5
  67. data/lib/blacklight/solr/response.rb +1 -1
  68. data/lib/blacklight/solr/search_builder_behavior.rb +87 -23
  69. data/package.json +1 -1
  70. data/spec/components/blacklight/advanced_search_form_component_spec.rb +51 -0
  71. data/spec/components/blacklight/constraint_layout_component_spec.rb +1 -1
  72. data/spec/components/blacklight/document_component_spec.rb +17 -0
  73. data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +55 -0
  74. data/spec/components/blacklight/facet_field_list_component_spec.rb +39 -4
  75. data/spec/components/blacklight/hidden_search_state_component_spec.rb +24 -0
  76. data/spec/controllers/catalog_controller_spec.rb +9 -0
  77. data/spec/features/advanced_search_spec.rb +67 -0
  78. data/spec/features/bookmarks_spec.rb +1 -9
  79. data/spec/features/facets_spec.rb +2 -17
  80. data/spec/features/search_filters_spec.rb +0 -20
  81. data/spec/helpers/blacklight/hash_as_hidden_fields_behavior_spec.rb +1 -0
  82. data/spec/helpers/blacklight/url_helper_behavior_spec.rb +1 -0
  83. data/spec/lib/blacklight/search_state/filter_field_spec.rb +65 -0
  84. data/spec/models/blacklight/solr/repository_spec.rb +12 -0
  85. data/spec/models/blacklight/solr/response/facets_spec.rb +1 -1
  86. data/spec/models/blacklight/solr/search_builder_spec.rb +28 -0
  87. data/spec/presenters/blacklight/clause_presenter_spec.rb +34 -0
  88. data/spec/presenters/blacklight/document_presenter_spec.rb +13 -0
  89. data/spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb +41 -0
  90. data/spec/spec_helper.rb +8 -3
  91. data/spec/test_app_templates/Gemfile.extra +1 -1
  92. data/spec/views/catalog/_document.html.erb_spec.rb +1 -0
  93. data/spec/views/catalog/_thumbnail.html.erb_spec.rb +2 -0
  94. data/tasks/blacklight.rake +3 -3
  95. metadata +67 -28
  96. data/.travis.yml +0 -40
@@ -134,6 +134,18 @@ RSpec.describe Blacklight::Solr::Repository, api: true do
134
134
  end
135
135
  end
136
136
  end
137
+
138
+ context 'with json parameters' do
139
+ it 'sends a post request with some json' do
140
+ allow(subject.connection).to receive(:send_and_receive) do |path, params|
141
+ expect(path).to eq 'select'
142
+ expect(params[:method]).to eq :post
143
+ expect(JSON.parse(params[:data]).with_indifferent_access).to include(query: { bool: {} })
144
+ expect(params[:headers]).to include({ 'Content-Type' => 'application/json' })
145
+ end.and_return('response' => { 'docs' => [] })
146
+ subject.search(json: { query: { bool: {} } })
147
+ end
148
+ end
137
149
  end
138
150
 
139
151
  describe "http_method configuration", integration: true do
@@ -109,7 +109,7 @@ RSpec.describe Blacklight::Solr::Response::Facets, api: true do
109
109
  let(:facet) { { name: "foo", value: "bar", hits: 1 } }
110
110
 
111
111
  before do
112
- response.merge_facet(facet)
112
+ response.merge_facet(**facet)
113
113
  end
114
114
 
115
115
  context "facet does not already exist" do
@@ -259,6 +259,17 @@ RSpec.describe Blacklight::Solr::SearchBuilderBehavior, api: true do
259
259
  end
260
260
  end
261
261
 
262
+ describe 'with multi-valued facets' do
263
+ let(:user_params) { { f_inclusive: { format: %w[Book Movie CD] } } }
264
+
265
+ it "has proper solr parameters" do
266
+ expect(subject[:fq]).to include('{!lucene}{!query v=$f_inclusive.format.0} OR {!query v=$f_inclusive.format.1} OR {!query v=$f_inclusive.format.2}')
267
+ expect(subject['f_inclusive.format.0']).to eq '{!term f=format}Book'
268
+ expect(subject['f_inclusive.format.1']).to eq '{!term f=format}Movie'
269
+ expect(subject['f_inclusive.format.2']).to eq '{!term f=format}CD'
270
+ end
271
+ end
272
+
262
273
  describe "solr parameters for a field search from config (subject)" do
263
274
  let(:user_params) { subject_search_params }
264
275
 
@@ -723,4 +734,21 @@ RSpec.describe Blacklight::Solr::SearchBuilderBehavior, api: true do
723
734
  expect(subject.with_ex_local_param(nil, "some-value")).to eq "some-value"
724
735
  end
725
736
  end
737
+
738
+ context 'with advanced search clause parameters' do
739
+ before do
740
+ blacklight_config.search_fields.each_value do |v|
741
+ v.clause_params = { edismax: v.solr_parameters.dup }
742
+ end
743
+ end
744
+
745
+ let(:user_params) { { op: 'must', clause: { '0': { field: 'title', query: 'the book' }, '1': { field: 'author', query: 'the person' } } } }
746
+
747
+ it "has proper solr parameters" do
748
+ expect(subject.to_hash.with_indifferent_access.dig(:json, :query, :bool, :must, 0, :edismax, :query)).to eq 'the book'
749
+ expect(subject.to_hash.with_indifferent_access.dig(:json, :query, :bool, :must, 0, :edismax, :qf)).to eq '${title_qf}'
750
+ expect(subject.to_hash.with_indifferent_access.dig(:json, :query, :bool, :must, 1, :edismax, :query)).to eq 'the person'
751
+ expect(subject.to_hash.with_indifferent_access.dig(:json, :query, :bool, :must, 1, :edismax, :qf)).to eq '${author_qf}'
752
+ end
753
+ end
726
754
  end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe Blacklight::ClausePresenter, type: :presenter do
5
+ subject(:presenter) do
6
+ described_class.new('0', params.with_indifferent_access.dig(:clause, '0'), field_config, controller.view_context, search_state)
7
+ end
8
+
9
+ let(:field_config) { Blacklight::Configuration::NullField.new key: 'some_field' }
10
+ let(:search_state) { Blacklight::SearchState.new(params.with_indifferent_access, Blacklight::Configuration.new) }
11
+ let(:params) { {} }
12
+
13
+ describe '#field_label' do
14
+ it 'returns a label for the field' do
15
+ expect(subject.field_label).to eq 'Some Field'
16
+ end
17
+ end
18
+
19
+ describe '#label' do
20
+ let(:params) { { clause: { '0' => { query: 'some search string' } } } }
21
+
22
+ it 'returns the query value for the clause' do
23
+ expect(subject.label).to eq 'some search string'
24
+ end
25
+ end
26
+
27
+ describe '#remove_href' do
28
+ let(:params) { { clause: { '0' => { query: 'some_search_string' } } } }
29
+
30
+ it 'returns the href to remove the search clause' do
31
+ expect(subject.remove_href).not_to include 'some_search_string'
32
+ end
33
+ end
34
+ end
@@ -47,4 +47,17 @@ RSpec.describe Blacklight::DocumentPresenter do
47
47
  expect(presenter.field_value(field_config, options)).to eq 'abc'
48
48
  end
49
49
  end
50
+
51
+ describe '#thumbnail' do
52
+ it 'returns a thumbnail presenter' do
53
+ expect(presenter.thumbnail).to be_a_kind_of(Blacklight::ThumbnailPresenter)
54
+ end
55
+
56
+ it 'use the configured thumbnail presenter' do
57
+ custom_presenter_class = Class.new(Blacklight::ThumbnailPresenter)
58
+ blacklight_config.index.thumbnail_presenter = custom_presenter_class
59
+
60
+ expect(presenter.thumbnail).to be_a_kind_of custom_presenter_class
61
+ end
62
+ end
50
63
  end
@@ -0,0 +1,41 @@
1
+ # frozen_string_literal: true
2
+ require 'spec_helper'
3
+
4
+ RSpec.describe Blacklight::FacetGroupedItemPresenter, type: :presenter do
5
+ subject(:presenter) do
6
+ described_class.new(group, facet_item, facet_config, view_context, facet_field, search_state)
7
+ end
8
+
9
+ let(:facet_config) { Blacklight::Configuration::FacetField.new(key: 'key') }
10
+ let(:facet_field) { instance_double(Blacklight::Solr::Response::Facets::FacetField) }
11
+ let(:view_context) { controller.view_context }
12
+
13
+ let(:facet_item) { 'a' }
14
+ let(:group) { %w[a b c] }
15
+ let(:search_state) { Blacklight::SearchState.new(params, Blacklight::Configuration.new) }
16
+ let(:params) { { f_inclusive: { key: group } } }
17
+
18
+ describe '#selected' do
19
+ it { is_expected.to be_selected }
20
+
21
+ context 'when the item is not in the group' do
22
+ let(:facet_item) { 'd' }
23
+
24
+ it { is_expected.not_to be_selected }
25
+ end
26
+
27
+ describe '#href' do
28
+ it 'removes the item from the "group" of filters' do
29
+ expect(Rack::Utils.parse_query(URI(presenter.href).query)).to include 'f_inclusive[key][]' => %w[b c]
30
+ end
31
+
32
+ context 'when the item is not in the group' do
33
+ let(:facet_item) { 'd' }
34
+
35
+ it 'adds the item to the "group" of filters' do
36
+ expect(Rack::Utils.parse_query(URI(presenter.href).query)).to include 'f_inclusive[key][]' => %w[a b c d]
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
@@ -20,12 +20,17 @@ require 'rspec/rails'
20
20
  require 'rspec/its'
21
21
  require 'rspec/collection_matchers'
22
22
  require 'capybara/rspec'
23
- require 'selenium-webdriver'
23
+ require 'capybara/apparition'
24
24
  require 'equivalent-xml'
25
- require 'webdrivers'
26
25
 
27
- Capybara.javascript_driver = :selenium_chrome_headless
26
+ Capybara.javascript_driver = :apparition
28
27
  Capybara.disable_animation = true
28
+ # Capybara.enable_aria_label = true
29
+
30
+ # Uncomment for a headed browser
31
+ # Capybara.register_driver :apparition do |app|
32
+ # Capybara::Apparition::Driver.new(app, headless: false)
33
+ # end
29
34
 
30
35
  # Requires supporting ruby files with custom matchers and macros, etc,
31
36
  # in spec/support/ and its subdirectories.
@@ -1,2 +1,2 @@
1
1
  gem 'rails-controller-testing'
2
- gem 'thor', '~> 0.20'
2
+ gem 'thor', '~> 0.20' if /^5.[12]/.match?(ENV['RAILS_VERSION'])
@@ -5,6 +5,7 @@ RSpec.describe "catalog/_document" do
5
5
  let(:blacklight_config) { Blacklight::Configuration.new }
6
6
 
7
7
  before do
8
+ allow(controller).to receive(:controller_name).and_return('test')
8
9
  allow(view).to receive(:render_grouped_response?).and_return(false)
9
10
  allow(view).to receive(:blacklight_config).and_return(blacklight_config)
10
11
  assign(:response, instance_double(Blacklight::Solr::Response, start: 20))
@@ -16,6 +16,8 @@ RSpec.describe "catalog/_thumbnail" do
16
16
  end
17
17
 
18
18
  before do
19
+ # Every call to view_context returns a different object. This ensures it stays stable.
20
+ allow(controller).to receive(:view_context).and_return(view)
19
21
  allow(controller).to receive(:action_name).and_return('index')
20
22
  assign :response, instance_double(Blacklight::Solr::Response, start: 0)
21
23
  allow(view).to receive(:render_grouped_response?).and_return false
@@ -14,14 +14,14 @@ require 'solr_wrapper'
14
14
  require 'open3'
15
15
 
16
16
  def system_with_error_handling(*args)
17
- Open3.popen3(*args) do |stdout, stderr, status, _thread|
17
+ Open3.popen3(*args) do |_stdin, stdout, stderr, thread|
18
18
  puts stdout.read
19
- raise "Unable to run #{args.inspect}: #{stderr.read}" unless status.success?
19
+ raise "Unable to run #{args.inspect}: #{stderr.read}" unless thread.value.success?
20
20
  end
21
21
  end
22
22
 
23
23
  def with_solr
24
- if system('docker-compose')
24
+ if system('docker-compose -v')
25
25
  begin
26
26
  puts "Starting Solr"
27
27
  system_with_error_handling "docker-compose up -d solr"
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: 7.13.0
4
+ version: 7.15.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind
@@ -14,10 +14,10 @@ authors:
14
14
  - Dan Funk
15
15
  - Naomi Dushay
16
16
  - Justin Coyne
17
- autorequire:
17
+ autorequire:
18
18
  bindir: exe
19
19
  cert_chain: []
20
- date: 2020-10-24 00:00:00.000000000 Z
20
+ date: 2021-01-25 00:00:00.000000000 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: rails
@@ -95,20 +95,48 @@ dependencies:
95
95
  - - ">="
96
96
  - !ruby/object:Gem::Version
97
97
  version: '0'
98
+ - !ruby/object:Gem::Dependency
99
+ name: i18n
100
+ requirement: !ruby/object:Gem::Requirement
101
+ requirements:
102
+ - - ">="
103
+ - !ruby/object:Gem::Version
104
+ version: 1.7.0
105
+ type: :runtime
106
+ prerelease: false
107
+ version_requirements: !ruby/object:Gem::Requirement
108
+ requirements:
109
+ - - ">="
110
+ - !ruby/object:Gem::Version
111
+ version: 1.7.0
112
+ - !ruby/object:Gem::Dependency
113
+ name: ostruct
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: 0.3.2
119
+ type: :runtime
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: 0.3.2
98
126
  - !ruby/object:Gem::Dependency
99
127
  name: view_component
100
128
  requirement: !ruby/object:Gem::Requirement
101
129
  requirements:
102
130
  - - ">="
103
131
  - !ruby/object:Gem::Version
104
- version: '0'
132
+ version: 2.23.0
105
133
  type: :runtime
106
134
  prerelease: false
107
135
  version_requirements: !ruby/object:Gem::Requirement
108
136
  requirements:
109
137
  - - ">="
110
138
  - !ruby/object:Gem::Version
111
- version: '0'
139
+ version: 2.23.0
112
140
  - !ruby/object:Gem::Dependency
113
141
  name: rsolr
114
142
  requirement: !ruby/object:Gem::Requirement
@@ -186,33 +214,19 @@ dependencies:
186
214
  - !ruby/object:Gem::Version
187
215
  version: '3'
188
216
  - !ruby/object:Gem::Dependency
189
- name: webdrivers
190
- requirement: !ruby/object:Gem::Requirement
191
- requirements:
192
- - - "~>"
193
- - !ruby/object:Gem::Version
194
- version: '3.0'
195
- type: :development
196
- prerelease: false
197
- version_requirements: !ruby/object:Gem::Requirement
198
- requirements:
199
- - - "~>"
200
- - !ruby/object:Gem::Version
201
- version: '3.0'
202
- - !ruby/object:Gem::Dependency
203
- name: selenium-webdriver
217
+ name: apparition
204
218
  requirement: !ruby/object:Gem::Requirement
205
219
  requirements:
206
220
  - - ">="
207
221
  - !ruby/object:Gem::Version
208
- version: 3.13.1
222
+ version: '0'
209
223
  type: :development
210
224
  prerelease: false
211
225
  version_requirements: !ruby/object:Gem::Requirement
212
226
  requirements:
213
227
  - - ">="
214
228
  - !ruby/object:Gem::Version
215
- version: 3.13.1
229
+ version: '0'
216
230
  - !ruby/object:Gem::Dependency
217
231
  name: engine_cart
218
232
  requirement: !ruby/object:Gem::Requirement
@@ -339,6 +353,7 @@ files:
339
353
  - ".docker/app/Dockerfile"
340
354
  - ".docker/app/entrypoint.sh"
341
355
  - ".env"
356
+ - ".github/workflows/ruby.yml"
342
357
  - ".gitignore"
343
358
  - ".hound.yml"
344
359
  - ".jshintrc"
@@ -346,7 +361,6 @@ files:
346
361
  - ".rubocop.yml"
347
362
  - ".rubocop_todo.yml"
348
363
  - ".solr_wrapper.yml"
349
- - ".travis.yml"
350
364
  - ".yardopts"
351
365
  - CONTRIBUTING.md
352
366
  - Gemfile
@@ -380,6 +394,8 @@ files:
380
394
  - app/assets/stylesheets/blacklight/blacklight.scss
381
395
  - app/assets/stylesheets/blacklight/blacklight_defaults.scss
382
396
  - app/builders/blacklight/action_builder.rb
397
+ - app/components/blacklight/advanced_search_form_component.html.erb
398
+ - app/components/blacklight/advanced_search_form_component.rb
383
399
  - app/components/blacklight/constraint_component.html.erb
384
400
  - app/components/blacklight/constraint_component.rb
385
401
  - app/components/blacklight/constraint_layout_component.html.erb
@@ -404,10 +420,14 @@ files:
404
420
  - app/components/blacklight/document_component.rb
405
421
  - app/components/blacklight/document_metadata_component.html.erb
406
422
  - app/components/blacklight/document_metadata_component.rb
423
+ - app/components/blacklight/facet_field_checkboxes_component.html.erb
424
+ - app/components/blacklight/facet_field_checkboxes_component.rb
407
425
  - app/components/blacklight/facet_field_component.html.erb
408
426
  - app/components/blacklight/facet_field_component.rb
409
427
  - app/components/blacklight/facet_field_filter_component.html.erb
410
428
  - app/components/blacklight/facet_field_filter_component.rb
429
+ - app/components/blacklight/facet_field_inclusive_constraint_component.html.erb
430
+ - app/components/blacklight/facet_field_inclusive_constraint_component.rb
411
431
  - app/components/blacklight/facet_field_list_component.html.erb
412
432
  - app/components/blacklight/facet_field_list_component.rb
413
433
  - app/components/blacklight/facet_field_no_layout_component.rb
@@ -415,6 +435,7 @@ files:
415
435
  - app/components/blacklight/facet_field_pagination_component.rb
416
436
  - app/components/blacklight/facet_item_component.rb
417
437
  - app/components/blacklight/facet_item_pivot_component.rb
438
+ - app/components/blacklight/hidden_search_state_component.rb
418
439
  - app/components/blacklight/metadata_field_component.html.erb
419
440
  - app/components/blacklight/metadata_field_component.rb
420
441
  - app/components/blacklight/metadata_field_layout_component.html.erb
@@ -496,10 +517,13 @@ files:
496
517
  - app/models/record_mailer.rb
497
518
  - app/models/search.rb
498
519
  - app/models/solr_document.rb
520
+ - app/presenters/blacklight/clause_presenter.rb
499
521
  - app/presenters/blacklight/document_presenter.rb
500
522
  - app/presenters/blacklight/facet_field_presenter.rb
523
+ - app/presenters/blacklight/facet_grouped_item_presenter.rb
501
524
  - app/presenters/blacklight/facet_item_presenter.rb
502
525
  - app/presenters/blacklight/field_presenter.rb
526
+ - app/presenters/blacklight/inclusive_facet_item_presenter.rb
503
527
  - app/presenters/blacklight/index_presenter.rb
504
528
  - app/presenters/blacklight/json_presenter.rb
505
529
  - app/presenters/blacklight/link_alternate_presenter.rb
@@ -522,6 +546,8 @@ files:
522
546
  - app/views/bookmarks/_clear_bookmarks_widget.html.erb
523
547
  - app/views/bookmarks/_tools.html.erb
524
548
  - app/views/bookmarks/index.html.erb
549
+ - app/views/catalog/_advanced_search_form.html.erb
550
+ - app/views/catalog/_advanced_search_help.html.erb
525
551
  - app/views/catalog/_bookmark_control.html.erb
526
552
  - app/views/catalog/_citation.html.erb
527
553
  - app/views/catalog/_constraints.html.erb
@@ -568,6 +594,7 @@ files:
568
594
  - app/views/catalog/_thumbnail.html.erb
569
595
  - app/views/catalog/_view_type_group.html.erb
570
596
  - app/views/catalog/_zero_results.html.erb
597
+ - app/views/catalog/advanced_search.html.erb
571
598
  - app/views/catalog/citation.html.erb
572
599
  - app/views/catalog/citation.js.erb
573
600
  - app/views/catalog/email.html.erb
@@ -704,14 +731,17 @@ files:
704
731
  - lib/generators/blacklight/user_generator.rb
705
732
  - lib/railties/blacklight.rake
706
733
  - package.json
734
+ - spec/components/blacklight/advanced_search_form_component_spec.rb
707
735
  - spec/components/blacklight/constraint_layout_component_spec.rb
708
736
  - spec/components/blacklight/document/action_component_spec.rb
709
737
  - spec/components/blacklight/document/group_component_spec.rb
710
738
  - spec/components/blacklight/document_component_spec.rb
711
739
  - spec/components/blacklight/document_metadata_component_spec.rb
740
+ - spec/components/blacklight/facet_field_checkboxes_component_spec.rb
712
741
  - spec/components/blacklight/facet_field_list_component_spec.rb
713
742
  - spec/components/blacklight/facet_item_component_spec.rb
714
743
  - spec/components/blacklight/facet_item_pivot_component_spec.rb
744
+ - spec/components/blacklight/hidden_search_state_component_spec.rb
715
745
  - spec/components/blacklight/metadata_field_component_spec.rb
716
746
  - spec/components/blacklight/system/flash_message_component_spec.rb
717
747
  - spec/controllers/alternate_controller_spec.rb
@@ -723,6 +753,7 @@ files:
723
753
  - spec/controllers/bookmarks_controller_spec.rb
724
754
  - spec/controllers/catalog_controller_spec.rb
725
755
  - spec/controllers/search_history_controller_spec.rb
756
+ - spec/features/advanced_search_spec.rb
726
757
  - spec/features/alternate_controller_spec.rb
727
758
  - spec/features/autocomplete_spec.rb
728
759
  - spec/features/bookmarks_spec.rb
@@ -792,8 +823,10 @@ files:
792
823
  - spec/models/record_mailer_spec.rb
793
824
  - spec/models/search_spec.rb
794
825
  - spec/models/solr_document_spec.rb
826
+ - spec/presenters/blacklight/clause_presenter_spec.rb
795
827
  - spec/presenters/blacklight/document_presenter_spec.rb
796
828
  - spec/presenters/blacklight/facet_field_presenter_spec.rb
829
+ - spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb
797
830
  - spec/presenters/blacklight/facet_item_presenter_spec.rb
798
831
  - spec/presenters/blacklight/field_presenter_spec.rb
799
832
  - spec/presenters/blacklight/index_presenter_spec.rb
@@ -848,35 +881,38 @@ homepage: http://projectblacklight.org/
848
881
  licenses:
849
882
  - Apache 2.0
850
883
  metadata: {}
851
- post_install_message:
884
+ post_install_message:
852
885
  rdoc_options: []
853
886
  require_paths:
854
887
  - lib
855
888
  required_ruby_version: !ruby/object:Gem::Requirement
856
889
  requirements:
857
- - - "~>"
890
+ - - ">="
858
891
  - !ruby/object:Gem::Version
859
- version: '2.1'
892
+ version: '2.5'
860
893
  required_rubygems_version: !ruby/object:Gem::Requirement
861
894
  requirements:
862
895
  - - ">="
863
896
  - !ruby/object:Gem::Version
864
897
  version: '0'
865
898
  requirements: []
866
- rubygems_version: 3.1.2
867
- signing_key:
899
+ rubygems_version: 3.2.3
900
+ signing_key:
868
901
  specification_version: 4
869
902
  summary: Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr)
870
903
  index.
871
904
  test_files:
905
+ - spec/components/blacklight/advanced_search_form_component_spec.rb
872
906
  - spec/components/blacklight/constraint_layout_component_spec.rb
873
907
  - spec/components/blacklight/document/action_component_spec.rb
874
908
  - spec/components/blacklight/document/group_component_spec.rb
875
909
  - spec/components/blacklight/document_component_spec.rb
876
910
  - spec/components/blacklight/document_metadata_component_spec.rb
911
+ - spec/components/blacklight/facet_field_checkboxes_component_spec.rb
877
912
  - spec/components/blacklight/facet_field_list_component_spec.rb
878
913
  - spec/components/blacklight/facet_item_component_spec.rb
879
914
  - spec/components/blacklight/facet_item_pivot_component_spec.rb
915
+ - spec/components/blacklight/hidden_search_state_component_spec.rb
880
916
  - spec/components/blacklight/metadata_field_component_spec.rb
881
917
  - spec/components/blacklight/system/flash_message_component_spec.rb
882
918
  - spec/controllers/alternate_controller_spec.rb
@@ -888,6 +924,7 @@ test_files:
888
924
  - spec/controllers/bookmarks_controller_spec.rb
889
925
  - spec/controllers/catalog_controller_spec.rb
890
926
  - spec/controllers/search_history_controller_spec.rb
927
+ - spec/features/advanced_search_spec.rb
891
928
  - spec/features/alternate_controller_spec.rb
892
929
  - spec/features/autocomplete_spec.rb
893
930
  - spec/features/bookmarks_spec.rb
@@ -957,8 +994,10 @@ test_files:
957
994
  - spec/models/record_mailer_spec.rb
958
995
  - spec/models/search_spec.rb
959
996
  - spec/models/solr_document_spec.rb
997
+ - spec/presenters/blacklight/clause_presenter_spec.rb
960
998
  - spec/presenters/blacklight/document_presenter_spec.rb
961
999
  - spec/presenters/blacklight/facet_field_presenter_spec.rb
1000
+ - spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb
962
1001
  - spec/presenters/blacklight/facet_item_presenter_spec.rb
963
1002
  - spec/presenters/blacklight/field_presenter_spec.rb
964
1003
  - spec/presenters/blacklight/index_presenter_spec.rb