blacklight 7.24.0 → 7.25.0

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 (72) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ruby.yml +4 -4
  3. data/VERSION +1 -1
  4. data/app/assets/javascripts/blacklight/blacklight.js +2 -2
  5. data/app/components/blacklight/constraint_component.rb +1 -1
  6. data/app/components/blacklight/constraint_layout_component.rb +1 -1
  7. data/app/components/blacklight/constraints_component.rb +1 -1
  8. data/app/components/blacklight/document/action_component.rb +1 -1
  9. data/app/components/blacklight/document/actions_component.rb +1 -1
  10. data/app/components/blacklight/document/bookmark_component.rb +1 -1
  11. data/app/components/blacklight/document/citation_component.rb +2 -2
  12. data/app/components/blacklight/document/group_component.rb +3 -2
  13. data/app/components/blacklight/document/more_like_this_component.rb +1 -1
  14. data/app/components/blacklight/document/thumbnail_component.rb +1 -1
  15. data/app/components/blacklight/document_component.rb +1 -2
  16. data/app/components/blacklight/document_metadata_component.rb +1 -1
  17. data/app/components/blacklight/document_title_component.rb +1 -1
  18. data/app/components/blacklight/facet_field_checkboxes_component.rb +1 -1
  19. data/app/components/blacklight/facet_field_component.rb +1 -1
  20. data/app/components/blacklight/facet_field_filter_component.rb +1 -1
  21. data/app/components/blacklight/facet_field_inclusive_constraint_component.rb +1 -1
  22. data/app/components/blacklight/facet_field_list_component.rb +1 -1
  23. data/app/components/blacklight/facet_field_no_layout_component.rb +1 -1
  24. data/app/components/blacklight/facet_field_pagination_component.rb +1 -1
  25. data/app/components/blacklight/facet_item_component.rb +1 -1
  26. data/app/components/blacklight/facet_item_pivot_component.rb +1 -1
  27. data/app/components/blacklight/hidden_search_state_component.rb +2 -2
  28. data/app/components/blacklight/metadata_field_component.rb +1 -1
  29. data/app/components/blacklight/metadata_field_layout_component.rb +1 -1
  30. data/app/components/blacklight/response/facet_group_component.rb +1 -1
  31. data/app/components/blacklight/response/pagination_component.rb +1 -1
  32. data/app/components/blacklight/search_bar_component.html.erb +7 -7
  33. data/app/components/blacklight/search_bar_component.rb +18 -13
  34. data/app/components/blacklight/search_context_component.rb +1 -1
  35. data/app/components/blacklight/start_over_button_component.rb +1 -1
  36. data/app/helpers/blacklight/blacklight_helper_behavior.rb +3 -1
  37. data/app/helpers/blacklight/catalog_helper_behavior.rb +1 -1
  38. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +5 -7
  39. data/app/javascript/blacklight/modal.js +2 -2
  40. data/app/presenters/blacklight/search_bar_presenter.rb +2 -0
  41. data/app/services/blacklight/field_retriever.rb +1 -1
  42. data/app/views/catalog/_constraints.html.erb +2 -2
  43. data/app/views/catalog/_facet_group.html.erb +1 -1
  44. data/app/views/catalog/_search_form.html.erb +2 -2
  45. data/app/views/shared/_header_navbar.html.erb +5 -1
  46. data/lib/blacklight/component.rb +40 -0
  47. data/lib/blacklight/configuration/facet_field.rb +1 -1
  48. data/lib/blacklight/configuration/fields.rb +10 -11
  49. data/lib/blacklight/configuration/view_config.rb +6 -0
  50. data/lib/blacklight/configuration.rb +320 -179
  51. data/lib/blacklight/deprecations/search_state_normalization.rb +52 -0
  52. data/lib/blacklight/search_state/filter_field.rb +44 -16
  53. data/lib/blacklight/search_state.rb +55 -31
  54. data/lib/blacklight/solr/search_builder_behavior.rb +3 -1
  55. data/lib/blacklight.rb +1 -0
  56. data/package.json +1 -1
  57. data/spec/components/blacklight/constraints_component_spec.rb +14 -1
  58. data/spec/components/blacklight/facet_field_list_component_spec.rb +6 -1
  59. data/spec/components/blacklight/facet_item_pivot_component_spec.rb +7 -1
  60. data/spec/controllers/blacklight/base_spec.rb +4 -1
  61. data/spec/helpers/blacklight/facets_helper_behavior_spec.rb +23 -6
  62. data/spec/helpers/blacklight/url_helper_behavior_spec.rb +7 -0
  63. data/spec/lib/blacklight/component_spec.rb +43 -0
  64. data/spec/lib/blacklight/search_state/filter_field_spec.rb +12 -1
  65. data/spec/lib/blacklight/search_state_spec.rb +17 -3
  66. data/spec/models/blacklight/configuration_spec.rb +2 -2
  67. data/spec/models/blacklight/solr/search_builder_spec.rb +15 -0
  68. data/spec/presenters/blacklight/facet_field_presenter_spec.rb +10 -4
  69. data/spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb +6 -1
  70. data/spec/presenters/blacklight/field_presenter_spec.rb +2 -0
  71. data/spec/views/catalog/index.json.jbuilder_spec.rb +1 -0
  72. metadata +7 -3
@@ -10,6 +10,7 @@ RSpec.describe Blacklight::FacetFieldPresenter, type: :presenter do
10
10
  let(:display_facet) do
11
11
  instance_double(Blacklight::Solr::Response::Facets::FacetField, items: items, sort: :index, offset: 0, prefix: nil)
12
12
  end
13
+
13
14
  let(:items) { [] }
14
15
  let(:view_context) { controller.view_context }
15
16
  let(:search_state) { view_context.search_state }
@@ -29,15 +30,20 @@ RSpec.describe Blacklight::FacetFieldPresenter, type: :presenter do
29
30
  expect(presenter).not_to be_collapsed
30
31
  end
31
32
 
32
- it "does not be collapsed if it is in the params" do
33
- controller.params[:f] = ActiveSupport::HashWithIndifferentAccess.new(key: [1])
34
- expect(presenter.collapsed?).to be false
33
+ context "it is in the params" do
34
+ before do
35
+ search_state.params[:f] = { key: [1] }
36
+ end
37
+
38
+ it "does not be collapsed if it is in the params" do
39
+ expect(presenter.collapsed?).to be false
40
+ end
35
41
  end
36
42
  end
37
43
 
38
44
  describe '#active?' do
39
45
  it "checks if any value is selected for a given facet" do
40
- controller.params[:f] = ActiveSupport::HashWithIndifferentAccess.new(key: [1])
46
+ search_state.params[:f] = ActiveSupport::HashWithIndifferentAccess.new(key: [1])
41
47
  expect(presenter.active?).to eq true
42
48
  end
43
49
 
@@ -12,7 +12,12 @@ RSpec.describe Blacklight::FacetGroupedItemPresenter, type: :presenter do
12
12
 
13
13
  let(:facet_item) { 'a' }
14
14
  let(:group) { %w[a b c] }
15
- let(:search_state) { Blacklight::SearchState.new(params, Blacklight::Configuration.new) }
15
+ let(:blacklight_config) do
16
+ Blacklight::Configuration.new.configure do |config|
17
+ config.add_facet_field :key
18
+ end
19
+ end
20
+ let(:search_state) { Blacklight::SearchState.new(params, blacklight_config) }
16
21
  let(:params) { { f_inclusive: { key: group } } }
17
22
 
18
23
  describe '#selected' do
@@ -41,6 +41,8 @@ RSpec.describe Blacklight::FieldPresenter, api: true do
41
41
  config.add_index_field 'alias', field: 'qwer'
42
42
  config.add_index_field 'with_default', default: 'value'
43
43
  config.add_index_field 'with_steps', steps: [custom_step]
44
+ config.add_facet_field :link_to_facet_true
45
+ config.add_facet_field :some_field
44
46
  end
45
47
  end
46
48
 
@@ -11,6 +11,7 @@ RSpec.describe "catalog/index.json", api: true do
11
11
  let(:config) do
12
12
  Blacklight::Configuration.new do |config|
13
13
  config.add_index_field 'title', label: 'Title', field: 'title_tsim'
14
+ config.add_facet_field :format
14
15
  end
15
16
  end
16
17
  let(:presenter) { Blacklight::JsonPresenter.new(response, config) }
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.24.0
4
+ version: 7.25.0
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: 2022-03-14 00:00:00.000000000 Z
20
+ date: 2022-05-05 00:00:00.000000000 Z
21
21
  dependencies:
22
22
  - !ruby/object:Gem::Dependency
23
23
  name: rails
@@ -678,6 +678,7 @@ files:
678
678
  - docker-compose.yml
679
679
  - lib/blacklight.rb
680
680
  - lib/blacklight/abstract_repository.rb
681
+ - lib/blacklight/component.rb
681
682
  - lib/blacklight/configuration.rb
682
683
  - lib/blacklight/configuration/context.rb
683
684
  - lib/blacklight/configuration/display_field.rb
@@ -692,6 +693,7 @@ files:
692
693
  - lib/blacklight/configuration/tool_config.rb
693
694
  - lib/blacklight/configuration/view_config.rb
694
695
  - lib/blacklight/deprecations/engine_configuration.rb
696
+ - lib/blacklight/deprecations/search_state_normalization.rb
695
697
  - lib/blacklight/engine.rb
696
698
  - lib/blacklight/exceptions.rb
697
699
  - lib/blacklight/nested_open_struct_with_hash_access.rb
@@ -815,6 +817,7 @@ files:
815
817
  - spec/helpers/catalog_helper_spec.rb
816
818
  - spec/i18n_spec.rb
817
819
  - spec/integration/generators/blacklight/solr_generator_spec.rb
820
+ - spec/lib/blacklight/component_spec.rb
818
821
  - spec/lib/blacklight/configuration/facet_field_spec.rb
819
822
  - spec/lib/blacklight/configuration/field_spec.rb
820
823
  - spec/lib/blacklight/configuration/view_config_spec.rb
@@ -929,7 +932,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
929
932
  - !ruby/object:Gem::Version
930
933
  version: '0'
931
934
  requirements: []
932
- rubygems_version: 3.2.32
935
+ rubygems_version: 3.1.6
933
936
  signing_key:
934
937
  specification_version: 4
935
938
  summary: Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr)
@@ -994,6 +997,7 @@ test_files:
994
997
  - spec/helpers/catalog_helper_spec.rb
995
998
  - spec/i18n_spec.rb
996
999
  - spec/integration/generators/blacklight/solr_generator_spec.rb
1000
+ - spec/lib/blacklight/component_spec.rb
997
1001
  - spec/lib/blacklight/configuration/facet_field_spec.rb
998
1002
  - spec/lib/blacklight/configuration/field_spec.rb
999
1003
  - spec/lib/blacklight/configuration/view_config_spec.rb