blacklight 9.0.0.beta1 → 9.0.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 (263) hide show
  1. checksums.yaml +4 -4
  2. data/.docker/app/Dockerfile +2 -1
  3. data/.github/matrix.json +55 -0
  4. data/.github/workflows/build.yml +16 -0
  5. data/.github/workflows/lint.yml +25 -0
  6. data/.github/workflows/main.yml +22 -0
  7. data/.github/workflows/release_7_x_scheduled.yml +39 -0
  8. data/.github/workflows/release_8_x_scheduled.yml +39 -0
  9. data/.github/workflows/test.yml +53 -0
  10. data/.rubocop.yml +81 -3
  11. data/.rubocop_todo.yml +46 -71
  12. data/.solr_wrapper.yml +3 -1
  13. data/README.md +2 -2
  14. data/VERSION +1 -1
  15. data/app/assets/builds/blacklight.css +51 -38
  16. data/app/assets/javascripts/blacklight/blacklight.esm.js +62 -77
  17. data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
  18. data/app/assets/javascripts/blacklight/blacklight.js +62 -77
  19. data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
  20. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +0 -1
  21. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +4 -0
  22. data/app/assets/stylesheets/blacklight/_facets.scss +37 -29
  23. data/app/assets/stylesheets/blacklight/_header.scss +4 -0
  24. data/app/assets/stylesheets/blacklight/_modal.scss +9 -8
  25. data/app/assets/stylesheets/blacklight/_pagination.scss +1 -3
  26. data/app/assets/stylesheets/blacklight/_search_history.scss +0 -4
  27. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +3 -0
  28. data/app/components/blacklight/advanced_search_form_component.html.erb +4 -4
  29. data/app/components/blacklight/advanced_search_form_component.rb +6 -5
  30. data/app/components/blacklight/constraint_component.html.erb +1 -5
  31. data/app/components/blacklight/constraint_component.rb +11 -0
  32. data/app/components/blacklight/constraint_layout_component.html.erb +1 -6
  33. data/app/components/blacklight/constraint_layout_component.rb +9 -0
  34. data/app/components/blacklight/constraints_component.html.erb +3 -8
  35. data/app/components/blacklight/constraints_component.rb +59 -14
  36. data/app/components/blacklight/document/action_component.rb +1 -3
  37. data/app/components/blacklight/document/bookmark_component.html.erb +3 -3
  38. data/app/components/blacklight/document/bookmark_component.rb +10 -4
  39. data/app/components/blacklight/document/group_component.html.erb +1 -1
  40. data/app/components/blacklight/document/more_like_this_component.rb +2 -2
  41. data/app/components/blacklight/document/page_header_component.rb +3 -3
  42. data/app/components/blacklight/document/thumbnail_component.html.erb +3 -7
  43. data/app/components/blacklight/document/thumbnail_component.rb +7 -6
  44. data/app/components/blacklight/document_component.html.erb +3 -3
  45. data/app/components/blacklight/document_component.rb +22 -26
  46. data/app/components/blacklight/document_title_component.rb +6 -10
  47. data/app/components/blacklight/facet_field_checkboxes_component.rb +4 -18
  48. data/app/components/blacklight/facet_field_component.rb +4 -15
  49. data/app/components/blacklight/facet_field_filter_component.rb +4 -19
  50. data/app/components/blacklight/facet_field_inclusive_constraint_component.rb +4 -23
  51. data/app/components/blacklight/facet_field_list_component.rb +4 -30
  52. data/app/components/blacklight/facet_field_no_layout_component.rb +4 -8
  53. data/app/components/blacklight/facet_field_pagination_component.html.erb +2 -2
  54. data/app/components/blacklight/facet_item_component.rb +4 -72
  55. data/app/components/blacklight/facet_item_pivot_component.rb +8 -4
  56. data/app/components/blacklight/{facet_field_checkboxes_component.html.erb → facets/checkboxes_component.html.erb} +4 -4
  57. data/app/components/blacklight/facets/checkboxes_component.rb +26 -0
  58. data/app/components/blacklight/facets/count_component.rb +23 -0
  59. data/app/components/blacklight/{facet_field_component.html.erb → facets/field_component.html.erb} +1 -3
  60. data/app/components/blacklight/facets/field_component.rb +23 -0
  61. data/app/components/blacklight/facets/filters_component.html.erb +4 -0
  62. data/app/components/blacklight/facets/filters_component.rb +39 -0
  63. data/app/components/blacklight/{facet_field_inclusive_constraint_component.html.erb → facets/inclusive_constraint_component.html.erb} +1 -1
  64. data/app/components/blacklight/facets/inclusive_constraint_component.rb +31 -0
  65. data/app/components/blacklight/{facet_field_filter_component.html.erb → facets/index_navigation_component.html.erb} +1 -1
  66. data/app/components/blacklight/facets/index_navigation_component.rb +32 -0
  67. data/app/components/blacklight/facets/item_component.rb +76 -0
  68. data/app/components/blacklight/facets/list_component.html.erb +11 -0
  69. data/app/components/blacklight/facets/list_component.rb +46 -0
  70. data/app/components/blacklight/facets/no_layout_component.rb +16 -0
  71. data/app/components/blacklight/facets/pivot_list_component.rb +14 -0
  72. data/app/components/blacklight/facets/selected_value_component.rb +29 -0
  73. data/app/components/blacklight/facets/suggest_component.html.erb +17 -0
  74. data/app/components/blacklight/facets/suggest_component.rb +21 -0
  75. data/app/components/blacklight/header_component.rb +2 -2
  76. data/app/components/blacklight/icons/remove_component.rb +2 -2
  77. data/app/components/blacklight/metadata_field_component.html.erb +2 -2
  78. data/app/components/blacklight/metadata_field_component.rb +2 -1
  79. data/app/components/blacklight/metadata_field_layout_component.rb +9 -4
  80. data/app/components/blacklight/metadata_field_plain_text_layout_component.rb +2 -2
  81. data/app/components/blacklight/response/facet_group_component.html.erb +3 -3
  82. data/app/components/blacklight/response/facet_group_component.rb +9 -1
  83. data/app/components/blacklight/search_bar_component.html.erb +2 -2
  84. data/app/components/blacklight/system/dropdown_component.html.erb +1 -1
  85. data/app/components/blacklight/system/dropdown_component.rb +1 -1
  86. data/app/components/blacklight/system/flash_message_component.html.erb +1 -1
  87. data/app/components/blacklight/system/flash_message_component.rb +0 -9
  88. data/app/components/blacklight/system/modal_component.html.erb +1 -2
  89. data/app/components/blacklight/top_navbar_component.html.erb +2 -2
  90. data/app/controllers/concerns/blacklight/bookmarks.rb +13 -3
  91. data/app/controllers/concerns/blacklight/catalog.rb +27 -30
  92. data/app/controllers/concerns/blacklight/controller.rb +1 -1
  93. data/app/controllers/concerns/blacklight/search_context.rb +1 -1
  94. data/app/controllers/concerns/blacklight/searchable.rb +1 -1
  95. data/app/helpers/blacklight/catalog_helper_behavior.rb +5 -3
  96. data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -2
  97. data/app/helpers/blacklight/document_helper_behavior.rb +3 -1
  98. data/app/helpers/blacklight/facets_helper_behavior.rb +7 -12
  99. data/app/helpers/blacklight/icon_helper_behavior.rb +2 -2
  100. data/app/javascript/blacklight-frontend/bookmark_toggle.js +7 -2
  101. data/app/javascript/blacklight-frontend/button_focus.js +1 -1
  102. data/app/javascript/blacklight-frontend/checkbox_submit.js +9 -2
  103. data/app/javascript/blacklight-frontend/debounce.js +1 -1
  104. data/app/javascript/blacklight-frontend/facet_suggest.js +27 -3
  105. data/app/javascript/blacklight-frontend/index.js +0 -2
  106. data/app/javascript/blacklight-frontend/modal.js +15 -8
  107. data/app/javascript/blacklight-frontend/search_context.js +3 -2
  108. data/app/presenters/blacklight/constraint_presenter.rb +22 -0
  109. data/app/presenters/blacklight/document_presenter.rb +6 -5
  110. data/app/presenters/blacklight/facet_field_presenter.rb +18 -2
  111. data/app/presenters/blacklight/facet_grouped_item_presenter.rb +6 -0
  112. data/app/presenters/blacklight/facet_item_pivot_presenter.rb +1 -5
  113. data/app/presenters/blacklight/facet_item_presenter.rb +5 -18
  114. data/app/presenters/blacklight/field_presenter.rb +4 -2
  115. data/app/presenters/blacklight/json_presenter.rb +8 -4
  116. data/app/presenters/blacklight/rendering/abstract_step.rb +7 -1
  117. data/app/presenters/blacklight/rendering/helper_method.rb +4 -4
  118. data/app/presenters/blacklight/rendering/join.rb +11 -7
  119. data/app/presenters/blacklight/rendering/terminator.rb +1 -1
  120. data/app/services/blacklight/field_retriever.rb +1 -1
  121. data/app/services/blacklight/search_service.rb +10 -8
  122. data/app/values/blacklight/types.rb +2 -2
  123. data/app/views/blacklight/nav/_bookmark.html.erb +1 -1
  124. data/app/views/catalog/_document.atom.builder +1 -1
  125. data/app/views/catalog/_document.html.erb +1 -1
  126. data/app/views/catalog/_email_form.html.erb +4 -4
  127. data/app/views/catalog/_home_text.html.erb +2 -2
  128. data/app/views/catalog/_show_main_content.html.erb +9 -5
  129. data/app/views/catalog/_sms_form.html.erb +4 -4
  130. data/app/views/catalog/_sort_and_per_page.html.erb +1 -1
  131. data/app/views/catalog/advanced_search.html.erb +1 -1
  132. data/app/views/catalog/facet.html.erb +8 -10
  133. data/app/views/catalog/index.html.erb +0 -1
  134. data/app/views/catalog/index.json.jbuilder +5 -3
  135. data/app/views/catalog/show.html.erb +2 -2
  136. data/app/views/layouts/blacklight/base.html.erb +1 -1
  137. data/blacklight.gemspec +1 -1
  138. data/config/locales/blacklight.ar.yml +14 -14
  139. data/config/locales/blacklight.ca.yml +2 -2
  140. data/config/locales/blacklight.de.yml +13 -13
  141. data/config/locales/blacklight.en.yml +3 -3
  142. data/config/locales/blacklight.es.yml +13 -13
  143. data/config/locales/blacklight.fr.yml +14 -14
  144. data/config/locales/blacklight.hu.yml +15 -15
  145. data/config/locales/blacklight.it.yml +16 -16
  146. data/config/locales/blacklight.nl.yml +13 -13
  147. data/config/locales/blacklight.pt-BR.yml +15 -15
  148. data/config/locales/blacklight.sq.yml +14 -14
  149. data/config/locales/blacklight.zh.yml +12 -12
  150. data/lib/blacklight/abstract_repository.rb +2 -2
  151. data/lib/blacklight/component.rb +7 -1
  152. data/lib/blacklight/configuration/context.rb +3 -3
  153. data/lib/blacklight/configuration/facet_field.rb +11 -6
  154. data/lib/blacklight/configuration/field.rb +4 -4
  155. data/lib/blacklight/configuration/fields.rb +0 -1
  156. data/lib/blacklight/configuration/search_field.rb +1 -1
  157. data/lib/blacklight/configuration/view_config.rb +32 -18
  158. data/lib/blacklight/configuration.rb +64 -10
  159. data/lib/blacklight/nested_open_struct_with_hash_access.rb +1 -1
  160. data/lib/blacklight/open_struct_with_hash_access.rb +2 -2
  161. data/lib/blacklight/routes/searchable.rb +1 -1
  162. data/lib/blacklight/search_builder.rb +2 -1
  163. data/lib/blacklight/search_state/filter_field.rb +4 -4
  164. data/lib/blacklight/search_state/pivot_filter_field.rb +5 -5
  165. data/lib/blacklight/search_state.rb +2 -0
  166. data/lib/blacklight/solr/abstract_filter_query_builder.rb +77 -0
  167. data/lib/blacklight/solr/default_filter_query_builder.rb +20 -0
  168. data/lib/blacklight/solr/field_reflection_search_builder.rb +11 -0
  169. data/lib/blacklight/solr/repository.rb +17 -15
  170. data/lib/blacklight/solr/response/facets.rb +2 -2
  171. data/lib/blacklight/solr/response/params.rb +0 -4
  172. data/lib/blacklight/solr/response.rb +5 -1
  173. data/lib/blacklight/solr/search_builder_behavior.rb +48 -97
  174. data/lib/blacklight/solr/single_doc_search_builder.rb +25 -0
  175. data/lib/blacklight.rb +6 -4
  176. data/lib/generators/blacklight/assets/importmap_generator.rb +3 -5
  177. data/lib/generators/blacklight/assets_generator.rb +1 -1
  178. data/lib/generators/blacklight/search_builder_generator.rb +1 -1
  179. data/lib/generators/blacklight/templates/.solr_wrapper.yml +3 -1
  180. data/lib/generators/blacklight/templates/catalog_controller.rb +34 -8
  181. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +0 -71
  182. data/package.json +3 -3
  183. data/spec/components/blacklight/advanced_search_form_component_spec.rb +18 -22
  184. data/spec/components/blacklight/constraint_layout_component_spec.rb +8 -8
  185. data/spec/components/blacklight/constraints_component_spec.rb +11 -11
  186. data/spec/components/blacklight/document/action_component_spec.rb +23 -15
  187. data/spec/components/blacklight/document/group_component_spec.rb +10 -15
  188. data/spec/components/blacklight/document/page_header_component_spec.rb +35 -28
  189. data/spec/components/blacklight/document/sidebar_component_spec.rb +5 -11
  190. data/spec/components/blacklight/document_component_spec.rb +105 -79
  191. data/spec/components/blacklight/facet_component_spec.rb +12 -8
  192. data/spec/components/blacklight/facet_item_pivot_component_spec.rb +12 -12
  193. data/spec/components/blacklight/{facet_field_checkboxes_component_spec.rb → facets/checkboxes_component_spec.rb} +13 -13
  194. data/spec/components/blacklight/facets/filters_component_spec.rb +36 -0
  195. data/spec/components/blacklight/facets/index_navigation_component_spec.rb +41 -0
  196. data/spec/components/blacklight/{facet_item_component_spec.rb → facets/item_component_spec.rb} +10 -10
  197. data/spec/components/blacklight/{facet_field_list_component_spec.rb → facets/list_component_spec.rb} +34 -23
  198. data/spec/components/blacklight/facets/pivot_list_component_spec.rb +53 -0
  199. data/spec/components/blacklight/facets/suggest_component_spec.rb +82 -0
  200. data/spec/components/blacklight/header_component_spec.rb +2 -4
  201. data/spec/components/blacklight/hidden_search_state_component_spec.rb +7 -7
  202. data/spec/components/blacklight/metadata_field_component_spec.rb +17 -15
  203. data/spec/components/blacklight/response/facet_group_component_spec.rb +37 -0
  204. data/spec/components/blacklight/response/pagination_component_spec.rb +1 -1
  205. data/spec/components/blacklight/response/spellcheck_component_spec.rb +1 -1
  206. data/spec/components/blacklight/search_bar_component_spec.rb +28 -5
  207. data/spec/components/blacklight/search_context/server_applied_params_component_spec.rb +2 -2
  208. data/spec/components/blacklight/search_context/server_item_pagination_component_spec.rb +3 -5
  209. data/spec/components/blacklight/skip_link_component_spec.rb +8 -11
  210. data/spec/components/blacklight/start_over_button_component_spec.rb +4 -4
  211. data/spec/components/blacklight/system/dropdown_component_spec.rb +26 -0
  212. data/spec/components/blacklight/system/flash_message_component_spec.rb +7 -11
  213. data/spec/controllers/blacklight/catalog_spec.rb +1 -1
  214. data/spec/controllers/catalog_controller_spec.rb +12 -20
  215. data/spec/features/advanced_search_spec.rb +42 -21
  216. data/spec/features/facets_spec.rb +84 -12
  217. data/spec/features/modal_spec.rb +1 -1
  218. data/spec/features/search_filters_spec.rb +6 -4
  219. data/spec/features/search_spec.rb +3 -3
  220. data/spec/helpers/blacklight/facets_helper_behavior_spec.rb +10 -0
  221. data/spec/lib/blacklight/configuration/facet_field_spec.rb +2 -2
  222. data/spec/lib/blacklight/parameters_spec.rb +12 -1
  223. data/spec/lib/blacklight/search_state/filter_field_spec.rb +18 -0
  224. data/spec/models/blacklight/configuration_spec.rb +178 -28
  225. data/spec/models/blacklight/solr/default_filter_query_builder_spec.rb +72 -0
  226. data/spec/models/blacklight/solr/document_spec.rb +0 -4
  227. data/spec/models/blacklight/solr/repository_spec.rb +37 -29
  228. data/spec/models/blacklight/solr/response/facets_spec.rb +86 -40
  229. data/spec/models/blacklight/solr/response/group_response_spec.rb +8 -5
  230. data/spec/models/blacklight/solr/response/group_spec.rb +9 -5
  231. data/spec/models/blacklight/solr/response_spec.rb +96 -64
  232. data/spec/models/blacklight/solr/search_builder_behavior_spec.rb +38 -57
  233. data/spec/models/solr_document_spec.rb +5 -1
  234. data/spec/presenters/blacklight/constraint_presenter_spec.rb +32 -0
  235. data/spec/presenters/blacklight/document_presenter_spec.rb +3 -3
  236. data/spec/presenters/blacklight/facet_item_presenter_spec.rb +0 -7
  237. data/spec/presenters/blacklight/field_presenter_spec.rb +103 -22
  238. data/spec/presenters/blacklight/json_presenter_spec.rb +17 -0
  239. data/spec/presenters/blacklight/rendering/pipeline_spec.rb +130 -14
  240. data/spec/services/blacklight/search_service_spec.rb +6 -27
  241. data/spec/spec_helper.rb +0 -1
  242. data/spec/support/presenter_test_helpers.rb +1 -1
  243. data/spec/support/view_component_test_helpers.rb +0 -18
  244. data/spec/views/catalog/facet.html.erb_spec.rb +10 -3
  245. data/spec/views/catalog/index.atom.builder_spec.rb +8 -3
  246. data/spec/views/catalog/index.html.erb_spec.rb +3 -1
  247. metadata +69 -38
  248. data/.github/workflows/ruby.yml +0 -98
  249. data/app/assets/stylesheets/blacklight/_icons.scss +0 -4
  250. data/app/components/blacklight/facet_field_list_component.html.erb +0 -19
  251. data/app/components/blacklight/search/facet_suggest_input.html.erb +0 -9
  252. data/app/components/blacklight/search/facet_suggest_input.rb +0 -16
  253. data/app/javascript/blacklight-frontend/modalForm.js +0 -60
  254. data/app/views/catalog/_facet_index_navigation.html.erb +0 -1
  255. data/app/views/catalog/_facet_layout.html.erb +0 -8
  256. data/app/views/catalog/_facet_pagination.html.erb +0 -1
  257. data/app/views/catalog/_facet_pivot.html.erb +0 -3
  258. data/app/views/shared/_sitelinks_search_box.html.erb +0 -12
  259. data/spec/components/blacklight/document_metadata_component_spec.rb +0 -0
  260. data/spec/components/blacklight/search/facet_suggest_input_spec.rb +0 -33
  261. data/spec/features/sitelinks_search_box_spec.rb +0 -13
  262. data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +0 -43
  263. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +0 -41
@@ -4,15 +4,21 @@ RSpec.describe 'catalog/facet.html.erb' do
4
4
  let(:display_facet) { double }
5
5
  let(:blacklight_config) { Blacklight::Configuration.new }
6
6
  let(:component) { instance_double(Blacklight::FacetComponent) }
7
+ let(:pagination) { instance_double(Blacklight::FacetFieldPaginationComponent) }
8
+ let(:facet_filters) { instance_double(Blacklight::Facets::FiltersComponent) }
7
9
 
8
10
  before do
9
11
  allow(Blacklight::FacetComponent).to receive(:new).and_return(component)
12
+ allow(Blacklight::Facets::FiltersComponent).to receive(:new).and_return(facet_filters)
13
+ allow(Blacklight::FacetFieldPaginationComponent).to receive(:new).and_return(pagination)
14
+
10
15
  allow(view).to receive(:render).and_call_original
11
16
  allow(view).to receive(:render).with(component)
17
+ allow(view).to receive(:render).with(facet_filters)
18
+ allow(view).to receive(:render).with(pagination)
12
19
 
13
20
  blacklight_config.add_facet_field 'xyz', label: "Facet title"
14
21
  allow(view).to receive(:blacklight_config).and_return(blacklight_config)
15
- stub_template 'catalog/_facet_pagination.html.erb' => 'pagination'
16
22
  assign :facet, blacklight_config.facet_fields['xyz']
17
23
  assign :display_facet, display_facet
18
24
  end
@@ -22,9 +28,10 @@ RSpec.describe 'catalog/facet.html.erb' do
22
28
  expect(rendered).to have_css 'h1', text: "Facet title"
23
29
  end
24
30
 
25
- it "renders facet pagination" do
31
+ it "renders the subcomponents" do
26
32
  render
27
- expect(rendered).to have_content 'pagination'
33
+ expect(view).to have_received(:render).with(facet_filters)
34
+ expect(view).to have_received(:render).with(pagination).twice
28
35
  end
29
36
 
30
37
  it "renders the facet limit" do
@@ -14,13 +14,16 @@ RSpec.describe "catalog/index" do
14
14
  end
15
15
 
16
16
  let(:blacklight_config) { CatalogController.blacklight_config.deep_copy }
17
+ let(:search_builder) { Blacklight::SearchBuilder.new(view) }
18
+ let(:response) { Blacklight::Solr::Response.new({ response: { numFound: 30 } }, search_builder) }
17
19
 
18
20
  before do
19
- @response = Blacklight::Solr::Response.new({ response: { numFound: 30 } }, start: 10, rows: 10)
21
+ allow(view).to receive_messages(action_name: 'index', blacklight_config: blacklight_config)
22
+ @response = response
20
23
  allow(controller).to receive(:search_state_class).and_return(Blacklight::SearchState)
21
- allow(@response).to receive(:documents).and_return(document_list)
24
+ allow(search_builder).to receive_messages(start: 10, rows: 10)
25
+ allow(response).to receive(:documents).and_return(document_list)
22
26
  params['content_format'] = 'some_format'
23
- allow(view).to receive_messages(action_name: 'index', blacklight_config: blacklight_config)
24
27
  end
25
28
 
26
29
  # We need to use rexml to test certain things that have_tag wont' test
@@ -93,6 +96,8 @@ RSpec.describe "catalog/index" do
93
96
  context 'with a custom template' do
94
97
  before do
95
98
  my_template = Class.new(ViewComponent::Base) do
99
+ def initialize(**); end
100
+
96
101
  def call
97
102
  'whatever content'.html_safe
98
103
  end
@@ -20,12 +20,14 @@ RSpec.describe "catalog/index.html.erb" do
20
20
  before do
21
21
  stub_template "catalog/_results_pagination.html.erb" => ""
22
22
  allow(view).to receive_messages(has_search_parameters?: true, blacklight_config: Blacklight::Configuration.new)
23
+ allow(search_builder).to receive_messages(start: 10, rows: 10)
23
24
  allow(controller).to receive_messages(blacklight_config: Blacklight::Configuration.new)
24
25
 
25
26
  @response = response
26
27
  end
27
28
 
28
- let(:response) { Blacklight::Solr::Response.new({ response: { numFound: 30 } }, start: 10, rows: 10) }
29
+ let(:search_builder) { Blacklight::SearchBuilder.new(view) }
30
+ let(:response) { Blacklight::Solr::Response.new({ response: { numFound: 30 } }, search_builder) }
29
31
 
30
32
  it "renders the search_header partial" do
31
33
  render
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: 9.0.0.beta1
4
+ version: 9.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Rochkind
@@ -14,9 +14,10 @@ authors:
14
14
  - Dan Funk
15
15
  - Naomi Dushay
16
16
  - Justin Coyne
17
+ autorequire:
17
18
  bindir: exe
18
19
  cert_chain: []
19
- date: 2025-02-06 00:00:00.000000000 Z
20
+ date: 2025-11-25 00:00:00.000000000 Z
20
21
  dependencies:
21
22
  - !ruby/object:Gem::Dependency
22
23
  name: rails
@@ -112,16 +113,22 @@ dependencies:
112
113
  name: view_component
113
114
  requirement: !ruby/object:Gem::Requirement
114
115
  requirements:
115
- - - "~>"
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '3.0'
119
+ - - "<"
116
120
  - !ruby/object:Gem::Version
117
- version: '3.9'
121
+ version: '5.0'
118
122
  type: :runtime
119
123
  prerelease: false
120
124
  version_requirements: !ruby/object:Gem::Requirement
121
125
  requirements:
122
- - - "~>"
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '3.0'
129
+ - - "<"
123
130
  - !ruby/object:Gem::Version
124
- version: '3.9'
131
+ version: '5.0'
125
132
  - !ruby/object:Gem::Dependency
126
133
  name: zeitwerk
127
134
  requirement: !ruby/object:Gem::Requirement
@@ -409,8 +416,14 @@ files:
409
416
  - ".docker/app/entrypoint.sh"
410
417
  - ".dockerignore"
411
418
  - ".env"
419
+ - ".github/matrix.json"
412
420
  - ".github/pull_request_template.md"
413
- - ".github/workflows/ruby.yml"
421
+ - ".github/workflows/build.yml"
422
+ - ".github/workflows/lint.yml"
423
+ - ".github/workflows/main.yml"
424
+ - ".github/workflows/release_7_x_scheduled.yml"
425
+ - ".github/workflows/release_8_x_scheduled.yml"
426
+ - ".github/workflows/test.yml"
414
427
  - ".gitignore"
415
428
  - ".hound.yml"
416
429
  - ".jshintrc"
@@ -442,7 +455,6 @@ files:
442
455
  - app/assets/stylesheets/blacklight/_facets.scss
443
456
  - app/assets/stylesheets/blacklight/_group.scss
444
457
  - app/assets/stylesheets/blacklight/_header.scss
445
- - app/assets/stylesheets/blacklight/_icons.scss
446
458
  - app/assets/stylesheets/blacklight/_layout.scss
447
459
  - app/assets/stylesheets/blacklight/_modal.scss
448
460
  - app/assets/stylesheets/blacklight/_pagination.scss
@@ -488,21 +500,35 @@ files:
488
500
  - app/components/blacklight/document_title_component.html.erb
489
501
  - app/components/blacklight/document_title_component.rb
490
502
  - app/components/blacklight/facet_component.rb
491
- - app/components/blacklight/facet_field_checkboxes_component.html.erb
492
503
  - app/components/blacklight/facet_field_checkboxes_component.rb
493
- - app/components/blacklight/facet_field_component.html.erb
494
504
  - app/components/blacklight/facet_field_component.rb
495
- - app/components/blacklight/facet_field_filter_component.html.erb
496
505
  - app/components/blacklight/facet_field_filter_component.rb
497
- - app/components/blacklight/facet_field_inclusive_constraint_component.html.erb
498
506
  - app/components/blacklight/facet_field_inclusive_constraint_component.rb
499
- - app/components/blacklight/facet_field_list_component.html.erb
500
507
  - app/components/blacklight/facet_field_list_component.rb
501
508
  - app/components/blacklight/facet_field_no_layout_component.rb
502
509
  - app/components/blacklight/facet_field_pagination_component.html.erb
503
510
  - app/components/blacklight/facet_field_pagination_component.rb
504
511
  - app/components/blacklight/facet_item_component.rb
505
512
  - app/components/blacklight/facet_item_pivot_component.rb
513
+ - app/components/blacklight/facets/checkboxes_component.html.erb
514
+ - app/components/blacklight/facets/checkboxes_component.rb
515
+ - app/components/blacklight/facets/count_component.rb
516
+ - app/components/blacklight/facets/field_component.html.erb
517
+ - app/components/blacklight/facets/field_component.rb
518
+ - app/components/blacklight/facets/filters_component.html.erb
519
+ - app/components/blacklight/facets/filters_component.rb
520
+ - app/components/blacklight/facets/inclusive_constraint_component.html.erb
521
+ - app/components/blacklight/facets/inclusive_constraint_component.rb
522
+ - app/components/blacklight/facets/index_navigation_component.html.erb
523
+ - app/components/blacklight/facets/index_navigation_component.rb
524
+ - app/components/blacklight/facets/item_component.rb
525
+ - app/components/blacklight/facets/list_component.html.erb
526
+ - app/components/blacklight/facets/list_component.rb
527
+ - app/components/blacklight/facets/no_layout_component.rb
528
+ - app/components/blacklight/facets/pivot_list_component.rb
529
+ - app/components/blacklight/facets/selected_value_component.rb
530
+ - app/components/blacklight/facets/suggest_component.html.erb
531
+ - app/components/blacklight/facets/suggest_component.rb
506
532
  - app/components/blacklight/header_component.html.erb
507
533
  - app/components/blacklight/header_component.rb
508
534
  - app/components/blacklight/hidden_search_state_component.rb
@@ -530,8 +556,6 @@ files:
530
556
  - app/components/blacklight/response/view_type_button_component.rb
531
557
  - app/components/blacklight/response/view_type_component.html.erb
532
558
  - app/components/blacklight/response/view_type_component.rb
533
- - app/components/blacklight/search/facet_suggest_input.html.erb
534
- - app/components/blacklight/search/facet_suggest_input.rb
535
559
  - app/components/blacklight/search/per_page_component.html.erb
536
560
  - app/components/blacklight/search/per_page_component.rb
537
561
  - app/components/blacklight/search/sidebar_component.html.erb
@@ -591,7 +615,6 @@ files:
591
615
  - app/javascript/blacklight-frontend/facet_suggest.js
592
616
  - app/javascript/blacklight-frontend/index.js
593
617
  - app/javascript/blacklight-frontend/modal.js
594
- - app/javascript/blacklight-frontend/modalForm.js
595
618
  - app/javascript/blacklight-frontend/search_context.js
596
619
  - app/models/blacklight/facet_paginator.rb
597
620
  - app/models/blacklight/icon.rb
@@ -614,6 +637,7 @@ files:
614
637
  - app/models/search_builder.rb
615
638
  - app/models/solr_document.rb
616
639
  - app/presenters/blacklight/clause_presenter.rb
640
+ - app/presenters/blacklight/constraint_presenter.rb
617
641
  - app/presenters/blacklight/document_presenter.rb
618
642
  - app/presenters/blacklight/facet_checkbox_item_presenter.rb
619
643
  - app/presenters/blacklight/facet_field_presenter.rb
@@ -655,10 +679,6 @@ files:
655
679
  - app/views/catalog/_document.rss.builder
656
680
  - app/views/catalog/_document_list.html.erb
657
681
  - app/views/catalog/_email_form.html.erb
658
- - app/views/catalog/_facet_index_navigation.html.erb
659
- - app/views/catalog/_facet_layout.html.erb
660
- - app/views/catalog/_facet_pagination.html.erb
661
- - app/views/catalog/_facet_pivot.html.erb
662
682
  - app/views/catalog/_field.json.jbuilder
663
683
  - app/views/catalog/_group.html.erb
664
684
  - app/views/catalog/_home.html.erb
@@ -716,7 +736,6 @@ files:
716
736
  - app/views/shared/_flash_msg.html.erb
717
737
  - app/views/shared/_footer.html.erb
718
738
  - app/views/shared/_modal.html.erb
719
- - app/views/shared/_sitelinks_search_box.html.erb
720
739
  - app/views/shared/_user_util_links.html.erb
721
740
  - blacklight.gemspec
722
741
  - compose.yaml
@@ -770,8 +789,11 @@ files:
770
789
  - lib/blacklight/search_state/filter_field.rb
771
790
  - lib/blacklight/search_state/pivot_filter_field.rb
772
791
  - lib/blacklight/solr.rb
792
+ - lib/blacklight/solr/abstract_filter_query_builder.rb
793
+ - lib/blacklight/solr/default_filter_query_builder.rb
773
794
  - lib/blacklight/solr/document.rb
774
795
  - lib/blacklight/solr/facet_paginator.rb
796
+ - lib/blacklight/solr/field_reflection_search_builder.rb
775
797
  - lib/blacklight/solr/repository.rb
776
798
  - lib/blacklight/solr/request.rb
777
799
  - lib/blacklight/solr/response.rb
@@ -784,6 +806,7 @@ files:
784
806
  - lib/blacklight/solr/response/response.rb
785
807
  - lib/blacklight/solr/response/spelling.rb
786
808
  - lib/blacklight/solr/search_builder_behavior.rb
809
+ - lib/blacklight/solr/single_doc_search_builder.rb
787
810
  - lib/blacklight/version.rb
788
811
  - lib/generators/blacklight/assets/importmap_generator.rb
789
812
  - lib/generators/blacklight/assets/propshaft_generator.rb
@@ -832,25 +855,29 @@ files:
832
855
  - spec/components/blacklight/document/page_header_component_spec.rb
833
856
  - spec/components/blacklight/document/sidebar_component_spec.rb
834
857
  - spec/components/blacklight/document_component_spec.rb
835
- - spec/components/blacklight/document_metadata_component_spec.rb
836
858
  - spec/components/blacklight/facet_component_spec.rb
837
- - spec/components/blacklight/facet_field_checkboxes_component_spec.rb
838
- - spec/components/blacklight/facet_field_list_component_spec.rb
839
- - spec/components/blacklight/facet_item_component_spec.rb
840
859
  - spec/components/blacklight/facet_item_pivot_component_spec.rb
860
+ - spec/components/blacklight/facets/checkboxes_component_spec.rb
861
+ - spec/components/blacklight/facets/filters_component_spec.rb
862
+ - spec/components/blacklight/facets/index_navigation_component_spec.rb
863
+ - spec/components/blacklight/facets/item_component_spec.rb
864
+ - spec/components/blacklight/facets/list_component_spec.rb
865
+ - spec/components/blacklight/facets/pivot_list_component_spec.rb
866
+ - spec/components/blacklight/facets/suggest_component_spec.rb
841
867
  - spec/components/blacklight/header_component_spec.rb
842
868
  - spec/components/blacklight/hidden_search_state_component_spec.rb
843
869
  - spec/components/blacklight/icons/icon_component_spec.rb
844
870
  - spec/components/blacklight/metadata_field_component_spec.rb
871
+ - spec/components/blacklight/response/facet_group_component_spec.rb
845
872
  - spec/components/blacklight/response/pagination_component_spec.rb
846
873
  - spec/components/blacklight/response/spellcheck_component_spec.rb
847
874
  - spec/components/blacklight/response/view_type_component_spec.rb
848
- - spec/components/blacklight/search/facet_suggest_input_spec.rb
849
875
  - spec/components/blacklight/search_bar_component_spec.rb
850
876
  - spec/components/blacklight/search_context/server_applied_params_component_spec.rb
851
877
  - spec/components/blacklight/search_context/server_item_pagination_component_spec.rb
852
878
  - spec/components/blacklight/skip_link_component_spec.rb
853
879
  - spec/components/blacklight/start_over_button_component_spec.rb
880
+ - spec/components/blacklight/system/dropdown_component_spec.rb
854
881
  - spec/components/blacklight/system/flash_message_component_spec.rb
855
882
  - spec/controllers/alternate_controller_spec.rb
856
883
  - spec/controllers/application_controller_spec.rb
@@ -880,7 +907,6 @@ files:
880
907
  - spec/features/search_results_spec.rb
881
908
  - spec/features/search_sort_spec.rb
882
909
  - spec/features/search_spec.rb
883
- - spec/features/sitelinks_search_box_spec.rb
884
910
  - spec/features/sms_spec.rb
885
911
  - spec/fixtures/sample_solr_documents.yml
886
912
  - spec/helpers/blacklight/configuration_helper_behavior_spec.rb
@@ -916,6 +942,7 @@ files:
916
942
  - spec/models/blacklight/facet_paginator_spec.rb
917
943
  - spec/models/blacklight/icon_spec.rb
918
944
  - spec/models/blacklight/search_builder_spec.rb
945
+ - spec/models/blacklight/solr/default_filter_query_builder_spec.rb
919
946
  - spec/models/blacklight/solr/document_spec.rb
920
947
  - spec/models/blacklight/solr/facet_paginator_spec.rb
921
948
  - spec/models/blacklight/solr/repository_spec.rb
@@ -933,6 +960,7 @@ files:
933
960
  - spec/models/search_spec.rb
934
961
  - spec/models/solr_document_spec.rb
935
962
  - spec/presenters/blacklight/clause_presenter_spec.rb
963
+ - spec/presenters/blacklight/constraint_presenter_spec.rb
936
964
  - spec/presenters/blacklight/document_presenter_spec.rb
937
965
  - spec/presenters/blacklight/facet_checkbox_item_presenter_spec.rb
938
966
  - spec/presenters/blacklight/facet_field_presenter_spec.rb
@@ -961,8 +989,6 @@ files:
961
989
  - spec/test_app_templates/lib/generators/test_app_generator.rb
962
990
  - spec/views/catalog/_document.html.erb_spec.rb
963
991
  - spec/views/catalog/_document_list.html.erb_spec.rb
964
- - spec/views/catalog/_facet_index_navigation.html.erb_spec.rb
965
- - spec/views/catalog/_facet_layout.html.erb_spec.rb
966
992
  - spec/views/catalog/_paginate_compact.html.erb_spec.rb
967
993
  - spec/views/catalog/_sort_and_per_page.html.erb_spec.rb
968
994
  - spec/views/catalog/_sort_widget.html.erb_spec.rb
@@ -984,6 +1010,7 @@ homepage: http://projectblacklight.org/
984
1010
  licenses:
985
1011
  - Apache 2.0
986
1012
  metadata: {}
1013
+ post_install_message:
987
1014
  rdoc_options: []
988
1015
  require_paths:
989
1016
  - lib
@@ -998,7 +1025,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
998
1025
  - !ruby/object:Gem::Version
999
1026
  version: '0'
1000
1027
  requirements: []
1001
- rubygems_version: 3.6.2
1028
+ rubygems_version: 3.5.22
1029
+ signing_key:
1002
1030
  specification_version: 4
1003
1031
  summary: Blacklight provides a discovery interface for any Solr (http://lucene.apache.org/solr)
1004
1032
  index.
@@ -1011,25 +1039,29 @@ test_files:
1011
1039
  - spec/components/blacklight/document/page_header_component_spec.rb
1012
1040
  - spec/components/blacklight/document/sidebar_component_spec.rb
1013
1041
  - spec/components/blacklight/document_component_spec.rb
1014
- - spec/components/blacklight/document_metadata_component_spec.rb
1015
1042
  - spec/components/blacklight/facet_component_spec.rb
1016
- - spec/components/blacklight/facet_field_checkboxes_component_spec.rb
1017
- - spec/components/blacklight/facet_field_list_component_spec.rb
1018
- - spec/components/blacklight/facet_item_component_spec.rb
1019
1043
  - spec/components/blacklight/facet_item_pivot_component_spec.rb
1044
+ - spec/components/blacklight/facets/checkboxes_component_spec.rb
1045
+ - spec/components/blacklight/facets/filters_component_spec.rb
1046
+ - spec/components/blacklight/facets/index_navigation_component_spec.rb
1047
+ - spec/components/blacklight/facets/item_component_spec.rb
1048
+ - spec/components/blacklight/facets/list_component_spec.rb
1049
+ - spec/components/blacklight/facets/pivot_list_component_spec.rb
1050
+ - spec/components/blacklight/facets/suggest_component_spec.rb
1020
1051
  - spec/components/blacklight/header_component_spec.rb
1021
1052
  - spec/components/blacklight/hidden_search_state_component_spec.rb
1022
1053
  - spec/components/blacklight/icons/icon_component_spec.rb
1023
1054
  - spec/components/blacklight/metadata_field_component_spec.rb
1055
+ - spec/components/blacklight/response/facet_group_component_spec.rb
1024
1056
  - spec/components/blacklight/response/pagination_component_spec.rb
1025
1057
  - spec/components/blacklight/response/spellcheck_component_spec.rb
1026
1058
  - spec/components/blacklight/response/view_type_component_spec.rb
1027
- - spec/components/blacklight/search/facet_suggest_input_spec.rb
1028
1059
  - spec/components/blacklight/search_bar_component_spec.rb
1029
1060
  - spec/components/blacklight/search_context/server_applied_params_component_spec.rb
1030
1061
  - spec/components/blacklight/search_context/server_item_pagination_component_spec.rb
1031
1062
  - spec/components/blacklight/skip_link_component_spec.rb
1032
1063
  - spec/components/blacklight/start_over_button_component_spec.rb
1064
+ - spec/components/blacklight/system/dropdown_component_spec.rb
1033
1065
  - spec/components/blacklight/system/flash_message_component_spec.rb
1034
1066
  - spec/controllers/alternate_controller_spec.rb
1035
1067
  - spec/controllers/application_controller_spec.rb
@@ -1059,7 +1091,6 @@ test_files:
1059
1091
  - spec/features/search_results_spec.rb
1060
1092
  - spec/features/search_sort_spec.rb
1061
1093
  - spec/features/search_spec.rb
1062
- - spec/features/sitelinks_search_box_spec.rb
1063
1094
  - spec/features/sms_spec.rb
1064
1095
  - spec/fixtures/sample_solr_documents.yml
1065
1096
  - spec/helpers/blacklight/configuration_helper_behavior_spec.rb
@@ -1095,6 +1126,7 @@ test_files:
1095
1126
  - spec/models/blacklight/facet_paginator_spec.rb
1096
1127
  - spec/models/blacklight/icon_spec.rb
1097
1128
  - spec/models/blacklight/search_builder_spec.rb
1129
+ - spec/models/blacklight/solr/default_filter_query_builder_spec.rb
1098
1130
  - spec/models/blacklight/solr/document_spec.rb
1099
1131
  - spec/models/blacklight/solr/facet_paginator_spec.rb
1100
1132
  - spec/models/blacklight/solr/repository_spec.rb
@@ -1112,6 +1144,7 @@ test_files:
1112
1144
  - spec/models/search_spec.rb
1113
1145
  - spec/models/solr_document_spec.rb
1114
1146
  - spec/presenters/blacklight/clause_presenter_spec.rb
1147
+ - spec/presenters/blacklight/constraint_presenter_spec.rb
1115
1148
  - spec/presenters/blacklight/document_presenter_spec.rb
1116
1149
  - spec/presenters/blacklight/facet_checkbox_item_presenter_spec.rb
1117
1150
  - spec/presenters/blacklight/facet_field_presenter_spec.rb
@@ -1140,8 +1173,6 @@ test_files:
1140
1173
  - spec/test_app_templates/lib/generators/test_app_generator.rb
1141
1174
  - spec/views/catalog/_document.html.erb_spec.rb
1142
1175
  - spec/views/catalog/_document_list.html.erb_spec.rb
1143
- - spec/views/catalog/_facet_index_navigation.html.erb_spec.rb
1144
- - spec/views/catalog/_facet_layout.html.erb_spec.rb
1145
1176
  - spec/views/catalog/_paginate_compact.html.erb_spec.rb
1146
1177
  - spec/views/catalog/_sort_and_per_page.html.erb_spec.rb
1147
1178
  - spec/views/catalog/_sort_widget.html.erb_spec.rb
@@ -1,98 +0,0 @@
1
- # This workflow uses actions that are not certified by GitHub.
2
- # They are provided by a third-party and are governed by
3
- # separate terms of service, privacy policy, and support
4
- # documentation.
5
- # This workflow will download a prebuilt Ruby version, install dependencies and run tests with Rake
6
- # For more information see: https://github.com/marketplace/actions/setup-ruby-jruby-and-truffleruby
7
-
8
- name: CI
9
-
10
- on:
11
- push:
12
- branches:
13
- - main
14
- - "release-*"
15
- pull_request:
16
-
17
- jobs:
18
- lint:
19
- runs-on: ubuntu-latest
20
- steps:
21
- - uses: actions/checkout@v4
22
- - name: Set up Ruby
23
- uses: ruby/setup-ruby@v1
24
- with:
25
- ruby-version: 3.2
26
- bundler: "latest"
27
- - name: Change permissions
28
- run: "chmod -f -R o-w /opt/hostedtoolcache/Ruby/3.2.5/x64/lib/ruby/gems/3.2.0/gems | :"
29
- - name: Install dependencies
30
- run: bundle install
31
- - name: Run linter
32
- run: bundle exec rake rubocop
33
- test:
34
- runs-on: ubuntu-latest
35
- name: test (ruby ${{ matrix.ruby }} / rails ${{ matrix.rails_version }} ${{ matrix.additional_name }})
36
- strategy:
37
- fail-fast: false
38
- matrix:
39
- ruby: ["3.3"]
40
- rails_version: ["7.1.5.1", "7.2.2.1"]
41
- bootstrap_version: [null]
42
- view_component_version: ["~> 3.12"]
43
- api: [null]
44
- additional_engine_cart_rails_options: [""]
45
- additional_name: [""]
46
- include:
47
- - ruby: "3.3"
48
- rails_version: "8.0.1"
49
- additional_engine_cart_rails_options: --css=bootstrap
50
- - ruby: "3.3"
51
- rails_version: "8.0.1"
52
- additional_engine_cart_rails_options: --css=bootstrap --js=esbuild
53
- additional_name: "/ esbuild"
54
- - ruby: "3.2"
55
- rails_version: "7.1.5.1"
56
- solr_version: "8.11.2"
57
- additional_name: "Solr 8.11.2"
58
- - ruby: "3.1"
59
- rails_version: "7.1.5.1"
60
- - ruby: "3.3"
61
- rails_version: "7.1.5.1"
62
- additional_name: "/ Propshaft"
63
- additional_engine_cart_rails_options: -a propshaft --css=bootstrap
64
- - ruby: "3.3"
65
- rails_version: "7.1.5.1"
66
- api: "true"
67
- additional_engine_cart_rails_options: --api --skip-yarn
68
- additional_name: "/ API"
69
- - ruby: "3.3"
70
- rails_version: "7.2.2.1"
71
- additional_engine_cart_rails_options: -a propshaft --css=bootstrap --js=esbuild
72
- additional_name: "/ Propshaft, esbuild"
73
- env:
74
- RAILS_VERSION: ${{ matrix.rails_version }}
75
- SOLR_VERSION: ${{ matrix.solr_version || 'latest' }}
76
- VIEW_COMPONENT_VERSION: ${{ matrix.view_component_version }}
77
- BOOTSTRAP_VERSION: ${{ matrix.bootstrap_version }}
78
- BLACKLIGHT_API_TEST: ${{ matrix.api }}
79
- ENGINE_CART_RAILS_OPTIONS: "--skip-git --skip-listen --skip-spring --skip-keeps --skip-kamal --skip-solid --skip-coffee --skip-test ${{ matrix.additional_engine_cart_rails_options }}"
80
- steps:
81
- - uses: actions/checkout@v4
82
- - name: Set up Ruby
83
- uses: ruby/setup-ruby@v1
84
- with:
85
- bundler: "latest"
86
- ruby-version: ${{ matrix.ruby }}
87
- - name: Change permissions
88
- run: "chmod -f -R o-w /opt/hostedtoolcache/Ruby/3.2.5/x64/lib/ruby/gems/3.2.0/gems | :"
89
- - name: Install dependencies
90
- run: bundle install
91
- - name: Run tests
92
- run: bundle exec rake ci
93
- docker_build:
94
- runs-on: ubuntu-latest
95
- steps:
96
- - uses: actions/checkout@v4
97
- - name: Build docker image
98
- run: docker compose build app
@@ -1,4 +0,0 @@
1
- .remove .bi {
2
- height: 1em;
3
- width: 1em;
4
- }
@@ -1,19 +0,0 @@
1
- <%= render(@layout.new(facet_field: @facet_field)) do |component| %>
2
- <% component.with_label do %>
3
- <%= @facet_field.label %>
4
- <% end %>
5
- <% component.with_body do %>
6
- <%= render(Blacklight::FacetFieldInclusiveConstraintComponent.new(facet_field: @facet_field)) %>
7
- <ul class="facet-values list-unstyled">
8
- <%= render facet_items %>
9
- </ul>
10
- <%# backwards compatibility, ugh %>
11
- <% if @layout == Blacklight::FacetFieldNoLayoutComponent && !@facet_field.in_modal? && @facet_field.modal_path %>
12
- <div class="more_facets">
13
- <%= link_to t("more_#{@facet_field.key}_html", scope: 'blacklight.search.facets', default: :more_html, field_name: @facet_field.label),
14
- @facet_field.modal_path,
15
- data: { blacklight_modal: 'trigger' } %>
16
- </div>
17
- <% end %>
18
- <% end %>
19
- <% end %>
@@ -1,9 +0,0 @@
1
- <label for="facet-suggest-<%= facet.key %>">
2
- <%= I18n.t('blacklight.search.facets.suggest.label', field_label: presenter&.label) %>
3
- </label>
4
- <input class="facet-suggest form-control"
5
- id="facet-suggest-<%= facet.key %>"
6
- data-facet-field="<%= facet.key %>"
7
- name="facet_suggest_<%= facet.key %>"
8
- placeholder="<%= I18n.t('blacklight.search.form.search.placeholder') %>">
9
- </input>
@@ -1,16 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Blacklight
4
- module Search
5
- class FacetSuggestInput < Blacklight::Component
6
- def initialize(facet:, presenter:)
7
- @facet = facet
8
- @presenter = presenter
9
- end
10
-
11
- private
12
-
13
- attr_accessor :facet, :presenter
14
- end
15
- end
16
- end
@@ -1,60 +0,0 @@
1
- // The email and sms forms are displayed inside a modal. When the form is submitted,
2
- // this script closes the modal and puts the output on the main part of the page.
3
- // By default it is rendering catalog/sms_success and catalog/email_succcess.
4
- // These templates deliver a payload of the format used by turbo-streams.
5
- // See https://turbo.hotwired.dev/handbook/streams
6
- // That format allows a downstream application to override the template to define
7
- // multiple customizable areas of the page to get updated.
8
- export default class {
9
- constructor(errorHandler, badRequestHandler, hideModal) {
10
- this.errorHandler = errorHandler
11
- this.badRequestHandler = badRequestHandler
12
- this.hideModal = hideModal
13
- }
14
-
15
- get triggerFormSelector() {
16
- return 'form[data-blacklight-modal~=trigger]'
17
- }
18
-
19
- bind() {
20
- document.addEventListener('submit', (e) => {
21
- if (e.target.matches(this.triggerFormSelector))
22
- this.onSubmit(e)
23
- })
24
- }
25
-
26
- // This is like a light-weight version of turbo that only supports append presently.
27
- updateTurboStream(data) {
28
- this.hideModal()
29
- const domparser = new DOMParser();
30
- const dom = domparser.parseFromString(data, "text/html")
31
- dom.querySelectorAll("turbo-stream[action='append']").forEach((node) => {
32
- const target = node.getAttribute('target')
33
- const element = document.getElementById(target)
34
- if (element)
35
- element.append(node.querySelector('template').content.cloneNode(true))
36
- else
37
- console.error(`Unable to find an element on the page with and ID of "${target}""`)
38
- })
39
- }
40
-
41
- onSubmit(e) {
42
- e.preventDefault();
43
- const form = e.target
44
- fetch(form.action, {
45
- body: new FormData(form),
46
- headers: { "X-Requested-With": "XMLHttpRequest" }, // Ensures rails will return true when checking request.xhr?
47
- method: form.method,
48
- })
49
- .then(response => {
50
- if (response.status === 422) {
51
- return response.text().then(content => this.badRequestHandler(content) )
52
- }
53
- if (!response.ok) {
54
- throw new TypeError("Request failed");
55
- }
56
- response.text().then(content => this.updateTurboStream(content))
57
- })
58
- .catch(error => this.errorHandler(error))
59
- }
60
- }
@@ -1 +0,0 @@
1
- <%= render(Blacklight::FacetFieldFilterComponent.new(facet_field: facet_field_presenter(@facet, @display_facet))) %>
@@ -1,8 +0,0 @@
1
- <%= render(Blacklight::FacetFieldComponent.new(facet_field: facet_field_presenter(facet_field, nil))) do |component| %>
2
- <% component.with_label do %>
3
- <%= facet_field_label(facet_field.key) %>
4
- <% end %>
5
- <% component.with_body do %>
6
- <%= yield %>
7
- <% end %>
8
- <% end %>
@@ -1 +0,0 @@
1
- <%= render(Blacklight::FacetFieldPaginationComponent.new(facet_field: facet_field_presenter(@facet, @display_facet))) %>
@@ -1,3 +0,0 @@
1
- <%= render(Blacklight::FacetFieldListComponent.new(
2
- facet_field: facet_field_presenter(facet_field.merge(item_component: Blacklight::FacetItemPivotComponent), display_facet),
3
- layout: false)) %>
@@ -1,12 +0,0 @@
1
- <script type="application/ld+json">
2
- {
3
- "@context": "http://schema.org",
4
- "@type": "WebSite",
5
- "url": "<%= root_url %>",
6
- "potentialAction": {
7
- "@type": "SearchAction",
8
- "target": "<%= root_url %>?q={search_term_string}",
9
- "query-input": "required name=search_term_string"
10
- }
11
- }
12
- </script>