blacklight 7.13.2 → 7.15.2

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.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +23 -3
  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/_icons.scss +5 -1
  8. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +5 -1
  9. data/app/components/blacklight/advanced_search_form_component.html.erb +46 -0
  10. data/app/components/blacklight/advanced_search_form_component.rb +75 -0
  11. data/app/components/blacklight/constraint_component.html.erb +1 -1
  12. data/app/components/blacklight/constraint_layout_component.html.erb +1 -1
  13. data/app/components/blacklight/constraints_component.rb +42 -17
  14. data/app/components/blacklight/document/thumbnail_component.html.erb +2 -2
  15. data/app/components/blacklight/document/thumbnail_component.rb +5 -2
  16. data/app/components/blacklight/document_component.rb +7 -2
  17. data/app/components/blacklight/document_metadata_component.rb +1 -1
  18. data/app/components/blacklight/facet_field_checkboxes_component.html.erb +23 -0
  19. data/app/components/blacklight/facet_field_checkboxes_component.rb +24 -0
  20. data/app/components/blacklight/facet_field_inclusive_constraint_component.html.erb +6 -0
  21. data/app/components/blacklight/facet_field_inclusive_constraint_component.rb +29 -0
  22. data/app/components/blacklight/facet_field_list_component.html.erb +1 -0
  23. data/app/components/blacklight/facet_field_pagination_component.rb +1 -1
  24. data/app/components/blacklight/facet_item_component.rb +4 -2
  25. data/app/components/blacklight/hidden_search_state_component.rb +54 -0
  26. data/app/components/blacklight/search_bar_component.html.erb +4 -0
  27. data/app/components/blacklight/search_bar_component.rb +4 -2
  28. data/app/controllers/concerns/blacklight/bookmarks.rb +1 -1
  29. data/app/controllers/concerns/blacklight/catalog.rb +6 -0
  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/javascript/blacklight/button_focus.js +1 -0
  37. data/app/javascript/blacklight/modal.js +10 -4
  38. data/app/models/concerns/blacklight/suggest/response.rb +1 -1
  39. data/app/presenters/blacklight/clause_presenter.rb +37 -0
  40. data/app/presenters/blacklight/document_presenter.rb +5 -1
  41. data/app/presenters/blacklight/facet_field_presenter.rb +4 -0
  42. data/app/presenters/blacklight/facet_grouped_item_presenter.rb +45 -0
  43. data/app/presenters/blacklight/facet_item_presenter.rb +32 -20
  44. data/app/presenters/blacklight/field_presenter.rb +1 -1
  45. data/app/presenters/blacklight/inclusive_facet_item_presenter.rb +16 -0
  46. data/app/presenters/blacklight/rendering/helper_method.rb +4 -4
  47. data/app/presenters/blacklight/search_bar_presenter.rb +4 -0
  48. data/app/views/bookmarks/_tools.html.erb +1 -1
  49. data/app/views/catalog/_advanced_search_form.html.erb +7 -0
  50. data/app/views/catalog/_advanced_search_help.html.erb +24 -0
  51. data/app/views/catalog/_search_form.html.erb +1 -0
  52. data/app/views/catalog/_zero_results.html.erb +1 -1
  53. data/app/views/catalog/advanced_search.html.erb +17 -0
  54. data/blacklight.gemspec +5 -4
  55. data/config/i18n-tasks.yml +1 -0
  56. data/config/locales/blacklight.en.yml +17 -0
  57. data/lib/blacklight/configuration.rb +2 -1
  58. data/lib/blacklight/configuration/field.rb +1 -1
  59. data/lib/blacklight/configuration/sort_field.rb +1 -1
  60. data/lib/blacklight/open_struct_with_hash_access.rb +18 -1
  61. data/lib/blacklight/routes/searchable.rb +1 -0
  62. data/lib/blacklight/search_builder.rb +2 -0
  63. data/lib/blacklight/search_state.rb +5 -1
  64. data/lib/blacklight/search_state/filter_field.rb +17 -7
  65. data/lib/blacklight/solr/repository.rb +11 -2
  66. data/lib/blacklight/solr/search_builder_behavior.rb +87 -23
  67. data/package.json +1 -1
  68. data/spec/components/blacklight/advanced_search_form_component_spec.rb +51 -0
  69. data/spec/components/blacklight/constraint_layout_component_spec.rb +1 -1
  70. data/spec/components/blacklight/document_component_spec.rb +17 -0
  71. data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +55 -0
  72. data/spec/components/blacklight/facet_field_list_component_spec.rb +39 -4
  73. data/spec/components/blacklight/hidden_search_state_component_spec.rb +24 -0
  74. data/spec/controllers/catalog_controller_spec.rb +9 -0
  75. data/spec/features/advanced_search_spec.rb +67 -0
  76. data/spec/features/bookmarks_spec.rb +1 -9
  77. data/spec/features/facets_spec.rb +2 -17
  78. data/spec/features/search_filters_spec.rb +0 -20
  79. data/spec/helpers/blacklight/hash_as_hidden_fields_behavior_spec.rb +1 -0
  80. data/spec/helpers/blacklight/url_helper_behavior_spec.rb +1 -0
  81. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +8 -0
  82. data/spec/lib/blacklight/search_state/filter_field_spec.rb +65 -0
  83. data/spec/models/blacklight/solr/repository_spec.rb +12 -0
  84. data/spec/models/blacklight/solr/response/facets_spec.rb +1 -1
  85. data/spec/models/blacklight/solr/search_builder_spec.rb +28 -0
  86. data/spec/presenters/blacklight/clause_presenter_spec.rb +34 -0
  87. data/spec/presenters/blacklight/document_presenter_spec.rb +13 -0
  88. data/spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb +41 -0
  89. data/spec/spec_helper.rb +8 -3
  90. data/spec/test_app_templates/Gemfile.extra +1 -1
  91. data/spec/views/catalog/_document.html.erb_spec.rb +1 -0
  92. data/spec/views/catalog/_thumbnail.html.erb_spec.rb +2 -0
  93. metadata +66 -27
data/spec/spec_helper.rb CHANGED
@@ -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
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.2
4
+ version: 7.15.2
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-11-07 00:00:00.000000000 Z
20
+ date: 2021-03-02 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
@@ -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