blacklight 7.41.0 → 8.0.0.beta1

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 (425) hide show
  1. checksums.yaml +4 -4
  2. data/.env +2 -3
  3. data/.github/workflows/ruby.yml +81 -0
  4. data/.rubocop.yml +243 -14
  5. data/.rubocop_todo.yml +137 -429
  6. data/Gemfile +11 -6
  7. data/README.md +11 -3
  8. data/VERSION +1 -1
  9. data/app/assets/javascripts/blacklight/blacklight.esm.js +384 -0
  10. data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -0
  11. data/app/assets/javascripts/blacklight/blacklight.js +374 -493
  12. data/app/assets/javascripts/blacklight/blacklight.js.map +1 -0
  13. data/app/assets/stylesheets/blacklight/_autocomplete.scss +25 -0
  14. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +1 -1
  15. data/app/assets/stylesheets/blacklight/_bookmark.scss +16 -0
  16. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +8 -0
  17. data/app/assets/stylesheets/blacklight/_constraints.scss +4 -4
  18. data/app/assets/stylesheets/blacklight/_facets.scss +72 -44
  19. data/app/assets/stylesheets/blacklight/_header.scss +0 -15
  20. data/app/assets/stylesheets/blacklight/_icons.scss +0 -14
  21. data/app/assets/stylesheets/blacklight/_mixins.scss +20 -0
  22. data/app/assets/stylesheets/blacklight/_modal.scss +8 -2
  23. data/app/assets/stylesheets/blacklight/_search_form.scss +30 -3
  24. data/app/assets/stylesheets/blacklight/_search_history.scss +10 -1
  25. data/app/assets/stylesheets/blacklight/_search_results.scss +6 -2
  26. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +4 -1
  27. data/app/builders/blacklight/action_builder.rb +18 -9
  28. data/app/components/blacklight/advanced_search_form_component.html.erb +3 -3
  29. data/app/components/blacklight/advanced_search_form_component.rb +8 -10
  30. data/app/components/blacklight/constraints_component.rb +27 -37
  31. data/app/components/blacklight/document/action_component.rb +12 -10
  32. data/app/components/blacklight/document/actions_component.rb +2 -2
  33. data/app/components/blacklight/document/bookmark_component.html.erb +9 -0
  34. data/app/components/blacklight/document/bookmark_component.rb +4 -2
  35. data/app/components/blacklight/document/citation_component.rb +5 -3
  36. data/app/components/blacklight/document/group_component.rb +7 -3
  37. data/app/components/blacklight/document/sidebar_component.html.erb +2 -0
  38. data/app/components/blacklight/document/sidebar_component.rb +16 -0
  39. data/app/components/blacklight/document/thumbnail_component.html.erb +2 -7
  40. data/app/components/blacklight/document/thumbnail_component.rb +1 -9
  41. data/app/components/blacklight/document_component.html.erb +1 -1
  42. data/app/components/blacklight/document_component.rb +16 -78
  43. data/app/components/blacklight/document_metadata_component.html.erb +2 -4
  44. data/app/components/blacklight/document_metadata_component.rb +5 -10
  45. data/app/components/blacklight/facet_component.rb +3 -3
  46. data/app/components/blacklight/facet_field_checkboxes_component.html.erb +4 -4
  47. data/app/components/blacklight/facet_field_checkboxes_component.rb +1 -1
  48. data/app/components/blacklight/facet_field_component.html.erb +4 -5
  49. data/app/components/blacklight/facet_field_component.rb +9 -2
  50. data/app/components/blacklight/facet_field_list_component.html.erb +3 -3
  51. data/app/components/blacklight/facet_field_list_component.rb +37 -5
  52. data/app/components/blacklight/facet_field_no_layout_component.rb +0 -2
  53. data/app/components/blacklight/facet_item_component.rb +1 -43
  54. data/app/components/blacklight/facet_item_pivot_component.rb +21 -23
  55. data/app/components/blacklight/header_component.rb +1 -1
  56. data/app/components/blacklight/hidden_search_state_component.rb +1 -2
  57. data/app/components/blacklight/icons/icon_component.rb +4 -9
  58. data/app/components/blacklight/icons/legacy_icon_component.rb +30 -0
  59. data/app/components/blacklight/icons/list_component.rb +16 -0
  60. data/app/components/blacklight/icons/search_component.rb +16 -0
  61. data/app/components/blacklight/metadata_field_component.html.erb +2 -2
  62. data/app/components/blacklight/metadata_field_component.rb +24 -8
  63. data/app/components/blacklight/metadata_field_layout_component.rb +4 -25
  64. data/app/components/blacklight/response/facet_group_component.html.erb +3 -5
  65. data/app/components/blacklight/response/facet_group_component.rb +29 -8
  66. data/app/components/blacklight/response/pagination_component.html.erb +1 -1
  67. data/app/components/blacklight/response/pagination_component.rb +2 -11
  68. data/app/components/blacklight/response/sort_component.html.erb +6 -1
  69. data/app/components/blacklight/response/sort_component.rb +1 -16
  70. data/app/components/blacklight/response/spellcheck_component.rb +18 -7
  71. data/app/components/blacklight/response/view_type_button_component.rb +3 -7
  72. data/app/components/blacklight/response/view_type_component.rb +4 -6
  73. data/app/components/blacklight/search/sidebar_component.html.erb +8 -0
  74. data/app/components/blacklight/search/sidebar_component.rb +17 -0
  75. data/app/components/blacklight/search_bar_component.html.erb +20 -15
  76. data/app/components/blacklight/search_bar_component.rb +2 -16
  77. data/app/components/blacklight/search_button_component.rb +3 -3
  78. data/app/components/blacklight/search_context_component.rb +43 -10
  79. data/app/components/blacklight/search_header_component.html.erb +2 -0
  80. data/app/components/blacklight/search_header_component.rb +6 -0
  81. data/app/components/blacklight/start_over_button_component.rb +5 -3
  82. data/app/components/blacklight/system/dropdown_component.rb +8 -5
  83. data/app/components/blacklight/system/flash_message_component.html.erb +4 -2
  84. data/app/components/blacklight/system/flash_message_component.rb +12 -3
  85. data/app/components/blacklight/system/modal_component.html.erb +1 -1
  86. data/app/components/blacklight/system/modal_component.rb +1 -3
  87. data/app/components/blacklight/top_navbar_component.html.erb +1 -1
  88. data/app/components/blacklight/top_navbar_component.rb +0 -4
  89. data/app/controllers/bookmarks_controller.rb +1 -0
  90. data/app/controllers/catalog_controller.rb +1 -0
  91. data/app/controllers/concerns/blacklight/bookmarks.rb +10 -9
  92. data/app/controllers/concerns/blacklight/catalog.rb +21 -83
  93. data/app/controllers/concerns/blacklight/controller.rb +3 -41
  94. data/app/controllers/concerns/blacklight/search_context.rb +25 -7
  95. data/app/controllers/concerns/blacklight/search_history.rb +2 -0
  96. data/app/controllers/concerns/blacklight/searchable.rb +12 -1
  97. data/app/controllers/concerns/blacklight/token_based_user.rb +13 -1
  98. data/app/controllers/search_history_controller.rb +1 -0
  99. data/app/helpers/blacklight/blacklight_helper_behavior.rb +12 -310
  100. data/app/helpers/blacklight/catalog_helper_behavior.rb +22 -139
  101. data/app/helpers/blacklight/component_helper_behavior.rb +2 -53
  102. data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -119
  103. data/app/helpers/blacklight/facets_helper_behavior.rb +4 -321
  104. data/app/helpers/blacklight/icon_helper_behavior.rb +5 -7
  105. data/app/helpers/blacklight/layout_helper_behavior.rb +4 -3
  106. data/app/helpers/blacklight/render_partials_helper_behavior.rb +11 -31
  107. data/app/helpers/blacklight/url_helper_behavior.rb +12 -97
  108. data/app/helpers/blacklight_helper.rb +1 -0
  109. data/app/helpers/catalog_helper.rb +1 -0
  110. data/app/javascript/blacklight/bookmark_toggle.js +13 -19
  111. data/app/javascript/blacklight/button_focus.js +12 -10
  112. data/app/javascript/blacklight/checkbox_submit.js +68 -123
  113. data/app/javascript/blacklight/core.js +5 -7
  114. data/app/javascript/blacklight/index.js +13 -0
  115. data/app/javascript/blacklight/modal.js +99 -164
  116. data/app/javascript/blacklight/modalForm.js +60 -0
  117. data/app/javascript/blacklight/search_context.js +46 -54
  118. data/app/models/blacklight/facet_paginator.rb +3 -2
  119. data/app/models/blacklight/icon.rb +4 -2
  120. data/app/models/bookmark.rb +0 -2
  121. data/app/models/concerns/blacklight/configurable.rb +5 -4
  122. data/app/models/concerns/blacklight/document/active_model_shim.rb +1 -10
  123. data/app/models/concerns/blacklight/document/cache_key.rb +1 -0
  124. data/app/models/concerns/blacklight/document/dublin_core.rb +2 -1
  125. data/app/models/concerns/blacklight/document/email.rb +1 -0
  126. data/app/models/concerns/blacklight/document/export.rb +2 -1
  127. data/app/models/concerns/blacklight/document/extensions.rb +1 -0
  128. data/app/models/concerns/blacklight/document/schema_org.rb +1 -0
  129. data/app/models/concerns/blacklight/document/semantic_fields.rb +2 -1
  130. data/app/models/concerns/blacklight/document/sms.rb +1 -0
  131. data/app/models/concerns/blacklight/suggest/response.rb +1 -0
  132. data/app/models/concerns/blacklight/user.rb +17 -8
  133. data/app/models/record_mailer.rb +13 -12
  134. data/app/models/search.rb +1 -7
  135. data/app/models/solr_document.rb +1 -0
  136. data/app/presenters/blacklight/clause_presenter.rb +1 -1
  137. data/app/presenters/blacklight/document_presenter.rb +23 -50
  138. data/app/presenters/blacklight/facet_field_presenter.rb +39 -14
  139. data/app/presenters/blacklight/facet_grouped_item_presenter.rb +1 -5
  140. data/app/presenters/blacklight/facet_item_pivot_presenter.rb +60 -0
  141. data/app/presenters/blacklight/facet_item_presenter.rb +3 -9
  142. data/app/presenters/blacklight/field_presenter.rb +1 -0
  143. data/app/presenters/blacklight/index_presenter.rb +2 -40
  144. data/app/presenters/blacklight/json_presenter.rb +10 -6
  145. data/app/presenters/blacklight/rendering/link_to_facet.rb +2 -5
  146. data/app/presenters/blacklight/show_presenter.rb +1 -9
  147. data/app/presenters/blacklight/thumbnail_presenter.rb +1 -1
  148. data/app/services/blacklight/bookmarks_search_builder.rb +22 -0
  149. data/app/services/blacklight/field_retriever.rb +12 -21
  150. data/app/services/blacklight/search_service.rb +10 -17
  151. data/app/values/blacklight/types.rb +0 -18
  152. data/app/views/bookmarks/_clear_bookmarks_widget.html.erb +8 -1
  153. data/app/views/bookmarks/_tools.html.erb +7 -12
  154. data/app/views/catalog/_advanced_search_form.html.erb +0 -1
  155. data/app/views/catalog/_bookmark_control.html.erb +1 -1
  156. data/app/views/catalog/_citation.html.erb +1 -1
  157. data/app/views/catalog/_constraints.html.erb +1 -14
  158. data/app/views/catalog/_document.atom.builder +12 -14
  159. data/app/views/catalog/_document.html.erb +5 -3
  160. data/app/views/catalog/_document.rss.builder +2 -4
  161. data/app/views/catalog/_facet_layout.html.erb +2 -2
  162. data/app/views/catalog/_facets.html.erb +5 -4
  163. data/app/views/catalog/_home_text.html.erb +2 -14
  164. data/app/views/catalog/_per_page_widget.html.erb +10 -1
  165. data/app/views/catalog/_search_form.html.erb +2 -2
  166. data/app/views/catalog/_search_header.html.erb +1 -2
  167. data/app/views/catalog/_search_results.html.erb +2 -2
  168. data/app/views/catalog/_search_sidebar.html.erb +5 -1
  169. data/app/views/catalog/_show_main_content.html.erb +11 -16
  170. data/app/views/catalog/_show_sidebar.html.erb +2 -2
  171. data/app/views/catalog/_show_tools.html.erb +8 -14
  172. data/app/views/catalog/_view_type_group.html.erb +1 -1
  173. data/app/views/catalog/email.html.erb +2 -2
  174. data/app/views/catalog/email_success.html.erb +5 -6
  175. data/app/views/catalog/facet.html.erb +7 -5
  176. data/app/views/catalog/index.atom.builder +12 -14
  177. data/app/views/catalog/index.html.erb +4 -1
  178. data/app/views/catalog/index.json.jbuilder +19 -19
  179. data/app/views/catalog/index.rss.builder +1 -1
  180. data/app/views/catalog/opensearch.xml.builder +1 -1
  181. data/app/views/catalog/sms.html.erb +2 -2
  182. data/app/views/catalog/sms_success.html.erb +5 -6
  183. data/app/views/catalog/suggest.html.erb +3 -0
  184. data/app/views/kaminari/blacklight/_page.html.erb +2 -1
  185. data/app/views/layouts/blacklight/base.html.erb +13 -2
  186. data/app/views/search_history/index.html.erb +6 -2
  187. data/app/views/shared/_flash_messages.html.erb +1 -1
  188. data/app/views/shared/_modal.html.erb +3 -3
  189. data/blacklight.gemspec +7 -11
  190. data/config/importmap.rb +3 -0
  191. data/config/locales/blacklight.ar.yml +0 -1
  192. data/config/locales/blacklight.ca.yml +0 -1
  193. data/config/locales/blacklight.de.yml +0 -1
  194. data/config/locales/blacklight.en.yml +0 -2
  195. data/config/locales/blacklight.es.yml +0 -1
  196. data/config/locales/blacklight.fr.yml +0 -1
  197. data/config/locales/blacklight.hu.yml +0 -1
  198. data/config/locales/blacklight.it.yml +0 -1
  199. data/config/locales/blacklight.nl.yml +0 -1
  200. data/config/locales/blacklight.pt-BR.yml +0 -1
  201. data/config/locales/blacklight.sq.yml +0 -1
  202. data/config/locales/blacklight.zh.yml +0 -1
  203. data/config/routes.rb +3 -2
  204. data/db/migrate/20140202020201_create_searches.rb +1 -0
  205. data/db/migrate/20140202020202_create_bookmarks.rb +1 -0
  206. data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -0
  207. data/docker-compose.yml +3 -3
  208. data/lib/blacklight/abstract_repository.rb +1 -6
  209. data/lib/blacklight/component.rb +47 -10
  210. data/lib/blacklight/configuration/context.rb +4 -4
  211. data/lib/blacklight/configuration/display_field.rb +7 -9
  212. data/lib/blacklight/configuration/facet_field.rb +17 -11
  213. data/lib/blacklight/configuration/field.rb +1 -0
  214. data/lib/blacklight/configuration/fields.rb +12 -15
  215. data/lib/blacklight/configuration/index_field.rb +1 -0
  216. data/lib/blacklight/configuration/null_display_field.rb +17 -0
  217. data/lib/blacklight/configuration/search_field.rb +1 -0
  218. data/lib/blacklight/configuration/show_field.rb +1 -0
  219. data/lib/blacklight/configuration/sort_field.rb +1 -0
  220. data/lib/blacklight/configuration/tool_config.rb +1 -0
  221. data/lib/blacklight/configuration/view_config.rb +14 -10
  222. data/lib/blacklight/configuration.rb +310 -365
  223. data/lib/blacklight/engine.rb +8 -24
  224. data/lib/blacklight/exceptions.rb +2 -2
  225. data/lib/blacklight/nested_open_struct_with_hash_access.rb +7 -13
  226. data/lib/blacklight/open_struct_with_hash_access.rb +23 -6
  227. data/lib/blacklight/parameters.rb +7 -21
  228. data/lib/blacklight/routes/exportable.rb +1 -0
  229. data/lib/blacklight/routes/searchable.rb +2 -1
  230. data/lib/blacklight/routes.rb +1 -0
  231. data/lib/blacklight/search_builder.rb +10 -10
  232. data/lib/blacklight/search_state/filter_field.rb +8 -25
  233. data/lib/blacklight/search_state/pivot_filter_field.rb +144 -0
  234. data/lib/blacklight/search_state.rb +23 -79
  235. data/lib/blacklight/solr/document.rb +1 -0
  236. data/lib/blacklight/solr/facet_paginator.rb +1 -0
  237. data/lib/blacklight/solr/repository.rb +4 -24
  238. data/lib/blacklight/solr/request.rb +1 -0
  239. data/lib/blacklight/solr/response/facets.rb +21 -5
  240. data/lib/blacklight/solr/response/group.rb +1 -0
  241. data/lib/blacklight/solr/response/group_response.rb +1 -0
  242. data/lib/blacklight/solr/response/more_like_this.rb +1 -0
  243. data/lib/blacklight/solr/response/pagination_methods.rb +4 -3
  244. data/lib/blacklight/solr/response/params.rb +5 -4
  245. data/lib/blacklight/solr/response/response.rb +1 -0
  246. data/lib/blacklight/solr/response/spelling.rb +1 -0
  247. data/lib/blacklight/solr/response.rb +16 -3
  248. data/lib/blacklight/solr/search_builder_behavior.rb +16 -35
  249. data/lib/blacklight/solr.rb +7 -0
  250. data/lib/blacklight/version.rb +1 -0
  251. data/lib/blacklight.rb +26 -14
  252. data/lib/generators/blacklight/assets/importmap_generator.rb +55 -0
  253. data/lib/generators/blacklight/assets/propshaft_generator.rb +25 -0
  254. data/lib/generators/blacklight/assets/sprockets_generator.rb +66 -0
  255. data/lib/generators/blacklight/assets_generator.rb +13 -86
  256. data/lib/generators/blacklight/controller_generator.rb +4 -3
  257. data/lib/generators/blacklight/document_generator.rb +1 -0
  258. data/lib/generators/blacklight/install_generator.rb +4 -3
  259. data/lib/generators/blacklight/models_generator.rb +1 -0
  260. data/lib/generators/blacklight/search_builder_generator.rb +1 -0
  261. data/lib/generators/blacklight/solr_generator.rb +1 -1
  262. data/lib/generators/blacklight/templates/catalog_controller.rb +34 -8
  263. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +1 -70
  264. data/lib/generators/blacklight/test_support_generator.rb +5 -3
  265. data/lib/generators/blacklight/user_generator.rb +7 -9
  266. data/lib/railties/blacklight.rake +6 -7
  267. data/package.json +10 -13
  268. data/rollup.config.js +27 -0
  269. data/spec/components/blacklight/constraints_component_spec.rb +17 -13
  270. data/spec/components/blacklight/document/action_component_spec.rb +6 -1
  271. data/spec/components/blacklight/document_component_spec.rb +22 -131
  272. data/spec/components/blacklight/facet_component_spec.rb +3 -18
  273. data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +1 -2
  274. data/spec/components/blacklight/facet_field_list_component_spec.rb +7 -6
  275. data/spec/components/blacklight/facet_item_pivot_component_spec.rb +10 -9
  276. data/spec/components/blacklight/response/view_type_component_spec.rb +66 -0
  277. data/spec/components/blacklight/search_bar_component_spec.rb +1 -1
  278. data/spec/components/blacklight/search_context_component_spec.rb +17 -8
  279. data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +1 -6
  280. data/spec/controllers/blacklight/{base_spec.rb → catalog_spec.rb} +2 -2
  281. data/spec/controllers/bookmarks_controller_spec.rb +2 -3
  282. data/spec/controllers/catalog_controller_spec.rb +13 -135
  283. data/spec/features/advanced_search_spec.rb +0 -56
  284. data/spec/features/autocomplete_spec.rb +1 -1
  285. data/spec/features/axe_spec.rb +1 -6
  286. data/spec/features/bookmarks_spec.rb +1 -1
  287. data/spec/features/facets_spec.rb +6 -4
  288. data/spec/features/search_context_spec.rb +5 -11
  289. data/spec/features/search_results_spec.rb +0 -33
  290. data/spec/features/sitelinks_search_box.rb +13 -0
  291. data/spec/helpers/blacklight/configuration_helper_behavior_spec.rb +2 -138
  292. data/spec/helpers/blacklight/facets_helper_behavior_spec.rb +0 -387
  293. data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +8 -0
  294. data/spec/helpers/blacklight/layout_helper_behavior_spec.rb +3 -20
  295. data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +5 -7
  296. data/spec/helpers/blacklight/url_helper_behavior_spec.rb +9 -131
  297. data/spec/helpers/blacklight_helper_spec.rb +8 -252
  298. data/spec/helpers/catalog_helper_spec.rb +7 -118
  299. data/spec/i18n_spec.rb +1 -0
  300. data/spec/integration/generators/blacklight/solr_generator_spec.rb +1 -1
  301. data/spec/lib/blacklight/component_spec.rb +27 -32
  302. data/spec/lib/blacklight/configuration/facet_field_spec.rb +27 -16
  303. data/spec/lib/blacklight/configuration/field_spec.rb +1 -1
  304. data/spec/lib/blacklight/configuration/view_config_spec.rb +1 -1
  305. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +2 -2
  306. data/spec/lib/blacklight/parameters_spec.rb +1 -4
  307. data/spec/lib/blacklight/search_state/filter_field_spec.rb +4 -4
  308. data/spec/lib/blacklight/search_state/pivot_filter_field_spec.rb +117 -0
  309. data/spec/lib/blacklight/search_state_spec.rb +80 -198
  310. data/spec/lib/tasks/blacklight_task_spec.rb +1 -0
  311. data/spec/models/blacklight/configuration_spec.rb +17 -51
  312. data/spec/models/blacklight/document/active_model_shim_spec.rb +2 -2
  313. data/spec/models/blacklight/icon_spec.rb +31 -15
  314. data/spec/models/blacklight/search_builder_spec.rb +9 -9
  315. data/spec/models/blacklight/solr/document_spec.rb +3 -3
  316. data/spec/models/blacklight/solr/repository_spec.rb +0 -45
  317. data/spec/models/blacklight/solr/response/facets_spec.rb +27 -27
  318. data/spec/models/blacklight/solr/response/group_response_spec.rb +1 -0
  319. data/spec/models/blacklight/solr/response/group_spec.rb +1 -0
  320. data/spec/models/blacklight/solr/response_spec.rb +9 -2
  321. data/spec/models/blacklight/solr/search_builder_spec.rb +24 -44
  322. data/spec/models/blacklight/user_spec.rb +22 -0
  323. data/spec/models/solr_document_spec.rb +3 -9
  324. data/spec/presenters/blacklight/clause_presenter_spec.rb +1 -0
  325. data/spec/presenters/blacklight/document_presenter_spec.rb +2 -3
  326. data/spec/presenters/blacklight/facet_field_presenter_spec.rb +85 -12
  327. data/spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb +1 -0
  328. data/spec/presenters/blacklight/facet_item_presenter_spec.rb +14 -13
  329. data/spec/presenters/blacklight/field_presenter_spec.rb +0 -14
  330. data/spec/presenters/blacklight/index_presenter_spec.rb +2 -5
  331. data/spec/presenters/blacklight/json_presenter_spec.rb +1 -0
  332. data/spec/presenters/blacklight/link_alternate_presenter_spec.rb +3 -2
  333. data/spec/presenters/blacklight/show_presenter_spec.rb +20 -30
  334. data/spec/presenters/thumbnail_presenter_spec.rb +1 -1
  335. data/spec/requests/load_suggestions_spec.rb +16 -0
  336. data/spec/routing/catalog_routing_spec.rb +2 -1
  337. data/spec/services/blacklight/search_service_spec.rb +39 -76
  338. data/spec/spec_helper.rb +8 -9
  339. data/spec/support/controller_level_helpers.rb +1 -2
  340. data/spec/support/features/search_helpers.rb +39 -0
  341. data/spec/support/features/session_helpers.rb +1 -0
  342. data/spec/support/features.rb +3 -0
  343. data/spec/support/view_component_capybara_test_helpers.rb +8 -0
  344. data/spec/test_app_templates/Gemfile.extra +1 -0
  345. data/spec/test_app_templates/lib/generators/test_app_generator.rb +9 -2
  346. data/spec/views/catalog/_document.html.erb_spec.rb +3 -34
  347. data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +1 -1
  348. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +0 -2
  349. data/spec/views/catalog/_search_header.erb_spec.rb +1 -0
  350. data/spec/views/catalog/_show_sidebar.erb_spec.rb +1 -0
  351. data/spec/views/catalog/_show_tools.html.erb_spec.rb +5 -66
  352. data/spec/views/catalog/_view_type_group.html.erb_spec.rb +17 -9
  353. data/spec/views/catalog/email_success.html.erb_spec.rb +2 -2
  354. data/spec/views/catalog/facet.html.erb_spec.rb +6 -3
  355. data/spec/views/catalog/index.atom.builder_spec.rb +17 -11
  356. data/spec/views/catalog/index.html.erb_spec.rb +5 -6
  357. data/spec/views/catalog/index.json.jbuilder_spec.rb +2 -2
  358. data/spec/views/catalog/show.html.erb_spec.rb +3 -25
  359. data/spec/views/catalog/sms_success.html.erb_spec.rb +2 -2
  360. data/tasks/blacklight.rake +11 -9
  361. data/template.demo.rb +7 -7
  362. metadata +77 -189
  363. data/.babelrc +0 -11
  364. data/.github/matrix.json +0 -62
  365. data/.github/workflows/build.yml +0 -16
  366. data/.github/workflows/lint.yml +0 -23
  367. data/.github/workflows/main.yml +0 -23
  368. data/.github/workflows/test.yml +0 -53
  369. data/app/assets/images/blacklight/list.svg +0 -1
  370. data/app/assets/images/blacklight/search.svg +0 -1
  371. data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +0 -37
  372. data/app/components/blacklight/content_areas_shim.rb +0 -13
  373. data/app/components/blacklight/search/per_page_component.html.erb +0 -2
  374. data/app/components/blacklight/search/per_page_component.rb +0 -50
  375. data/app/components/blacklight/search_context/server_item_pagination_component.html.erb +0 -10
  376. data/app/components/blacklight/search_context/server_item_pagination_component.rb +0 -15
  377. data/app/components/blacklight/system/dropdown_button_component.rb +0 -18
  378. data/app/controllers/concerns/blacklight/base.rb +0 -12
  379. data/app/controllers/concerns/blacklight/default_component_configuration.rb +0 -64
  380. data/app/controllers/concerns/blacklight/facet.rb +0 -69
  381. data/app/controllers/concerns/blacklight/search_fields.rb +0 -46
  382. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +0 -27
  383. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +0 -188
  384. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +0 -97
  385. data/app/helpers/blacklight/suggest_helper_behavior.rb +0 -13
  386. data/app/javascript/blacklight/autocomplete.js +0 -36
  387. data/app/javascript/blacklight/facet_load.js +0 -22
  388. data/app/presenters/blacklight/search_bar_presenter.rb +0 -47
  389. data/app/views/catalog/_constraints_element.html.erb +0 -14
  390. data/app/views/catalog/_document_action.html.erb +0 -5
  391. data/app/views/catalog/_facet_group.html.erb +0 -5
  392. data/app/views/catalog/_facet_limit.html.erb +0 -3
  393. data/app/views/catalog/_index.html.erb +0 -1
  394. data/app/views/catalog/_index_header.html.erb +0 -22
  395. data/app/views/catalog/_previous_next_doc.html.erb +0 -2
  396. data/app/views/catalog/_show.html.erb +0 -6
  397. data/app/views/catalog/_show_header.html.erb +0 -2
  398. data/app/views/catalog/_thumbnail.html.erb +0 -1
  399. data/lib/blacklight/deprecations/engine_configuration.rb +0 -66
  400. data/lib/blacklight/deprecations/search_state_normalization.rb +0 -52
  401. data/spec/components/blacklight/header_component_spec.rb +0 -20
  402. data/spec/components/blacklight/icons/icon_component_spec.rb +0 -42
  403. data/spec/components/blacklight/response/pagination_component_spec.rb +0 -53
  404. data/spec/components/blacklight/search_context/server_item_pagination_component_spec.rb +0 -35
  405. data/spec/controllers/blacklight/facet_spec.rb +0 -33
  406. data/spec/controllers/blacklight/search_fields_spec.rb +0 -62
  407. data/spec/features/citation_spec.rb +0 -10
  408. data/spec/features/sitelinks_search_box_spec.rb +0 -13
  409. data/spec/features/sms_spec.rb +0 -12
  410. data/spec/helpers/blacklight/hash_as_hidden_fields_behavior_spec.rb +0 -26
  411. data/spec/helpers/blacklight/render_constraints_helper_behavior_spec.rb +0 -92
  412. data/spec/helpers/blacklight/search_history_constraints_helper_behavior_spec.rb +0 -101
  413. data/spec/helpers/blacklight/suggest_helper_behavior_spec.rb +0 -48
  414. data/spec/lib/blacklight/engine_spec.rb +0 -41
  415. data/spec/presenters/blacklight/search_bar_presenter_spec.rb +0 -94
  416. data/spec/services/blacklight/field_retriever_spec.rb +0 -17
  417. data/spec/support/view_component_test_helpers.rb +0 -35
  418. data/spec/views/catalog/_constraints.html.erb_spec.rb +0 -33
  419. data/spec/views/catalog/_facet_group.html.erb_spec.rb +0 -84
  420. data/spec/views/catalog/_facets.html.erb_spec.rb +0 -15
  421. data/spec/views/catalog/_index.html.erb_spec.rb +0 -62
  422. data/spec/views/catalog/_index_header.html.erb_spec.rb +0 -35
  423. data/spec/views/catalog/_previous_next_doc.html.erb_spec.rb +0 -22
  424. data/spec/views/catalog/_show.html.erb_spec.rb +0 -62
  425. data/spec/views/catalog/_thumbnail.html.erb_spec.rb +0 -38
data/.babelrc DELETED
@@ -1,11 +0,0 @@
1
- {
2
- "presets": [
3
- [
4
- "@babel/preset-env",
5
- {
6
- "useBuiltIns": "entry",
7
- "corejs": "2.0"
8
- }
9
- ]
10
- ]
11
- }
data/.github/matrix.json DELETED
@@ -1,62 +0,0 @@
1
- {
2
- "ruby": ["3.3"],
3
- "rails_version": [
4
- "7.1.5.1",
5
- "7.2.2.1"
6
- ],
7
- "bootstrap_version": [
8
- null
9
- ],
10
- "view_component_version": [
11
- "~> 3.12"
12
- ],
13
- "api": [
14
- null
15
- ],
16
- "additional_engine_cart_rails_options": [
17
- ""
18
- ],
19
- "additional_name": [
20
- ""
21
- ],
22
- "include": [
23
- {
24
- "ruby": "3.2",
25
- "rails_version": "7.1.5.1"
26
- },
27
- {
28
- "ruby": "3.3",
29
- "rails_version": "7.1.5.1",
30
- "bootstrap_version": "~> 5.0",
31
- "additional_name": "| bootstrap 5"
32
- },
33
- {
34
- "ruby": "3.4",
35
- "rails_version": "7.2.2.1"
36
- },
37
- {
38
- "ruby": "3.4",
39
- "rails_version": "8.0.2"
40
- },
41
- {
42
- "ruby": "3.3",
43
- "rails_version": "7.1.5.1",
44
- "view_component_version": "~> 2.74",
45
- "additional_name": "| View Component 2"
46
- },
47
- {
48
- "ruby": "3.2",
49
- "rails_version": "7.1.5.1",
50
- "api": "true",
51
- "additional_engine_cart_rails_options": "--api --skip-yarn",
52
- "additional_name": "| API"
53
- },
54
- {
55
- "ruby": "3.3",
56
- "rails_version": "7.1.5.1",
57
- "api:": "true",
58
- "additional_engine_cart_rails_options": "--api --skip-yarn",
59
- "additional_name": "| API"
60
- }
61
- ]
62
- }
@@ -1,16 +0,0 @@
1
- on:
2
- workflow_call:
3
- inputs:
4
- ref:
5
- required: false
6
- type: string
7
- default: ''
8
- jobs:
9
- build:
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v4
13
- with:
14
- ref: ${{ inputs.ref }}
15
- - name: Build docker image
16
- run: docker compose build app
@@ -1,23 +0,0 @@
1
- on:
2
- workflow_call:
3
- inputs:
4
- ref:
5
- required: false
6
- type: string
7
- default: ''
8
- jobs:
9
- lint:
10
- runs-on: ubuntu-latest
11
- steps:
12
- - uses: actions/checkout@v4
13
- with:
14
- ref: ${{ inputs.ref }}
15
- - name: Set up Ruby
16
- uses: ruby/setup-ruby@v1
17
- with:
18
- ruby-version: 3.2
19
- bundler: "default"
20
- - name: Install dependencies
21
- run: bundle install
22
- - name: Run linter
23
- run: bundle exec rake rubocop
@@ -1,23 +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
- uses: ./.github/workflows/lint.yml
20
- test:
21
- uses: ./.github/workflows/test.yml
22
- docker_build:
23
- uses: ./.github/workflows/build.yml
@@ -1,53 +0,0 @@
1
- on:
2
- workflow_call:
3
- inputs:
4
- ref:
5
- required: false
6
- type: string
7
- default: ''
8
- description: The branch or reference to run the workflow against
9
- jobs:
10
- set_matrix:
11
- runs-on: ubuntu-latest
12
- outputs:
13
- matrix: ${{ steps.matrix.outputs.matrix }}
14
- steps:
15
- - name: Checkout repository
16
- uses: actions/checkout@v3
17
- with:
18
- ref: ${{ inputs.ref }}
19
- - name: Echo ./.github/matrix.json
20
- id: matrix
21
- run: |
22
- echo "matrix<<EOF" >> $GITHUB_OUTPUT
23
- cat ./.github/matrix.json >> $GITHUB_OUTPUT
24
- echo "EOF" >> $GITHUB_OUTPUT
25
- test:
26
- needs: set_matrix
27
- runs-on: ubuntu-latest
28
- name: ruby ${{ matrix.ruby }} | rails ${{ matrix.rails_version }} ${{ matrix.additional_name }}
29
- strategy:
30
- fail-fast: false
31
- matrix: ${{fromJson(needs.set_matrix.outputs.matrix)}}
32
- env:
33
- RAILS_VERSION: ${{ matrix.rails_version }}
34
- SOLR_VERSION: ${{ matrix.solr_version || 'latest' }}
35
- VIEW_COMPONENT_VERSION: ${{ matrix.view_component_version }}
36
- BOOTSTRAP_VERSION: ${{ matrix.bootstrap_version }}
37
- BLACKLIGHT_API_TEST: ${{ matrix.api }}
38
- 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 }}"
39
- steps:
40
- - uses: actions/checkout@v4
41
- with:
42
- ref: ${{ inputs.ref }}
43
- - name: Set up Ruby
44
- uses: ruby/setup-ruby@v1
45
- with:
46
- bundler: "latest"
47
- ruby-version: ${{ matrix.ruby }}
48
- - name: Change permissions
49
- run: "chmod -f -R o-w /opt/hostedtoolcache/Ruby/3.2.5/x64/lib/ruby/gems/3.2.0/gems | :"
50
- - name: Install dependencies
51
- run: bundle install
52
- - name: Run tests
53
- run: bundle exec rake ci
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path d="M3 13h2v-2H3v2zm0 4h2v-2H3v2zm0-8h2V7H3v2zm4 4h14v-2H7v2zm0 4h14v-2H7v2zM7 7v2h14V7H7z"/><path d="M0 0h24v24H0z" fill="none"/></svg>
@@ -1 +0,0 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="none" d="M0 0h24v24H0V0z"/><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z"/></svg>
@@ -1,37 +0,0 @@
1
- .twitter-typeahead {
2
- display: inline-flex !important;
3
- flex-grow: 2;
4
- z-index: $zindex-typeahead;
5
-
6
- input.tt-input.form-control {
7
- width: 100%;
8
- }
9
-
10
- input.tt-hint.form-control {
11
- width: 100%;
12
- filter: opacity(0.33);
13
- }
14
-
15
- .tt-menu {
16
- @extend .dropdown-menu;
17
- font-family: $font-family-base;
18
- width: 100%;
19
- }
20
-
21
- .tt-cursor {
22
- background-color: $dropdown-link-hover-bg;
23
- color: $dropdown-link-hover-color;
24
- text-decoration: none;
25
- }
26
-
27
- .tt-suggestion {
28
- font-size: 14px;
29
- padding: 5px 5px 5px 10px;
30
- }
31
-
32
- .tt-suggestion:hover {
33
- background-color: $dropdown-link-hover-bg;
34
- color: $dropdown-link-hover-color;
35
- cursor: pointer;
36
- }
37
- }
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Blacklight
4
- # Shim to support ViewComponent v2 slots using the content_areas API for backwards compatibility
5
- module ContentAreasShim
6
- # Shim the `with` helper to write content into slots instead
7
- def with(slot_name, *args, **kwargs, &block)
8
- Deprecation.warn(Blacklight::ContentAreasShim,
9
- 'ViewComponents deprecated `with` and it will be removed in ViewComponents 3.0. content_areas. Use slots (https://viewcomponent.org/guide/slots.html) instead.')
10
- public_send("with_#{slot_name}", *args, **kwargs, &block)
11
- end
12
- end
13
- end
@@ -1,2 +0,0 @@
1
- <span class="sr-only visually-hidden"><%= t('blacklight.search.per_page.title') %></span>
2
- <%= dropdown %>
@@ -1,50 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Blacklight
4
- module Search
5
- class PerPageComponent < Blacklight::Component
6
- def initialize(blacklight_config:, response:, search_state:)
7
- @blacklight_config = blacklight_config
8
- @response = response
9
- @search_state = search_state
10
- end
11
-
12
- def render?
13
- helpers.show_sort_and_per_page?
14
- end
15
-
16
- # You may override this method in a subclass if you want to use a different dropdown component
17
- def dropdown_class
18
- Blacklight::System::DropdownComponent
19
- end
20
-
21
- def dropdown
22
- render(dropdown_class.new(
23
- param: :per_page,
24
- choices: per_page_options_for_select,
25
- id: 'per_page-dropdown',
26
- search_state: @search_state,
27
- selected: current_per_page,
28
- interpolation: :count
29
- ))
30
- end
31
-
32
- #
33
- # @return [Integer]
34
- def current_per_page
35
- (@response.rows if @response && @response.rows > 0) || # rubocop:disable Style/NumericPredicate
36
- params.fetch(:per_page, @blacklight_config.default_per_page).to_i
37
- end
38
-
39
- ##
40
- # The available options for results per page, in the style of #options_for_select
41
- def per_page_options_for_select
42
- return [] if @blacklight_config.per_page.blank?
43
-
44
- @blacklight_config.per_page.map do |count|
45
- [t(:'blacklight.search.per_page.label', count: count).html_safe, count]
46
- end
47
- end
48
- end
49
- end
50
- end
@@ -1,10 +0,0 @@
1
- <div class='pagination-search-widgets'>
2
-
3
- <div class="page-links">
4
- <%= link_to_previous_document %> |
5
-
6
- <%= item_page_entry_info %> |
7
-
8
- <%= link_to_next_document %>
9
- </div>
10
- </div>
@@ -1,15 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Blacklight
4
- module SearchContext
5
- class ServerItemPaginationComponent < Blacklight::SearchContextComponent
6
- with_collection_parameter :search_context
7
-
8
- def initialize(search_context:, search_session:, current_document:)
9
- @search_context = search_context
10
- @search_session = search_session
11
- @current_document_id = current_document.id
12
- end
13
- end
14
- end
15
- end
@@ -1,18 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Blacklight
4
- module System
5
- class DropdownButtonComponent < Blacklight::Component
6
- def initialize(label:, classes: %w[btn btn-outline-secondary dropdown-toggle])
7
- @classes = classes
8
- @label = label
9
- end
10
-
11
- def call
12
- button_tag class: @classes, aria: { expanded: false }, data: { toggle: 'dropdown', 'bs-toggle': 'dropdown' } do
13
- safe_join([@label, content_tag(:span, '', class: 'caret')])
14
- end
15
- end
16
- end
17
- end
18
- end
@@ -1,12 +0,0 @@
1
- # frozen_string_literal: true
2
- module Blacklight::Base
3
- extend ActiveSupport::Concern
4
-
5
- include Blacklight::Configurable
6
- include Blacklight::SearchContext
7
-
8
- def self.included(mod)
9
- Deprecation.warn(Blacklight::Base, "Blacklight::Base is deprecated and will be removed in Blacklight 8.0.0.
10
- Include Blacklight::Configurable and Blacklight::SearchContext as needed (included in #{mod}).")
11
- end
12
- end
@@ -1,64 +0,0 @@
1
- # frozen_string_literal: true
2
- module Blacklight
3
- module DefaultComponentConfiguration
4
- extend ActiveSupport::Concern
5
-
6
- included do
7
- Deprecation.warn(self, "Blacklight::DefaultComponentConfiguration is deprecated and will be removed in the next release." \
8
- "this means you must call add_results_document_tool, add_results_collection_tool, " \
9
- "add_show_tools_partial and add_nav_action manually in your config")
10
- add_results_document_tool(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
11
-
12
- add_results_collection_tool(:sort_widget)
13
- add_results_collection_tool(:per_page_widget)
14
- add_results_collection_tool(:view_type_group)
15
-
16
- add_show_tools_partial(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
17
- add_show_tools_partial(:email, callback: :email_action, validator: :validate_email_params)
18
- add_show_tools_partial(:sms, if: :render_sms_action?, callback: :sms_action, validator: :validate_sms_params)
19
- add_show_tools_partial(:citation)
20
-
21
- add_nav_action(:bookmark, partial: 'blacklight/nav/bookmark', if: :render_bookmarks_control?)
22
- add_nav_action(:search_history, partial: 'blacklight/nav/search_history')
23
- end
24
-
25
- module ClassMethods
26
- # YARD will include inline disabling as docs, cannot do multiline inside @!macro. AND this must be separate from doc block.
27
- # rubocop:disable Layout/LineLength
28
-
29
- # @!macro partial_if_unless
30
- # @param name [String] the name of the document partial
31
- # @param opts [Hash]
32
- # @option opts [Symbol,Proc] :if render this action if the method identified by the symbol or the proc evaluates to true. The proc will receive the action configuration and the document or documents for the action.
33
- # @option opts [Symbol,Proc] :unless render this action unless the method identified by the symbol or the proc evaluates to true. The proc will receive the action configuration and the document or documents for the action.
34
-
35
- # Add a partial to the tools for rendering a document
36
- # @!macro partial_if_unless
37
- # @option opts [Boolean] :define_method define a controller method as named, default: true
38
- # @option opts [Symbol] :validator method for toggling between success and failure, should return Boolean (true if valid)
39
- # @option opts [Symbol] :callback method for further processing of documents, receives Array of documents
40
- def add_show_tools_partial(name, opts = {})
41
- blacklight_config.add_show_tools_partial(name, opts)
42
- ActionBuilder.new(self, name, opts).build
43
- end
44
- # rubocop:enable Layout/LineLength
45
-
46
- deprecation_deprecate add_show_tools_partial: 'use blacklight_config.add_show_tools_partial instead'
47
-
48
- # Add a tool to be displayed for each document in the search results.
49
- # @!macro partial_if_unless
50
- delegate :add_results_document_tool, to: :blacklight_config
51
- deprecation_deprecate add_results_document_tool: 'use blacklight_config.add_results_document_tool instead'
52
-
53
- # Add a tool to be displayed for the list of search results themselves.
54
- # @!macro partial_if_unless
55
- delegate :add_results_collection_tool, to: :blacklight_config
56
- deprecation_deprecate add_results_collection_tool: 'use blacklight_config.add_results_collection_tool instead'
57
-
58
- # Add a partial to the header navbar.
59
- # @!macro partial_if_unless
60
- delegate :add_nav_action, to: :blacklight_config
61
- deprecation_deprecate add_nav_action: 'use blacklight_config.add_nav_action instead'
62
- end
63
- end
64
- end
@@ -1,69 +0,0 @@
1
- # frozen_string_literal: true
2
- module Blacklight
3
- # These are methods that are used at both the view helper and controller layers
4
- # They are only dependent on `blacklight_config` and `@response`
5
- #
6
- module Facet
7
- extend Deprecation
8
- delegate :facet_configuration_for_field, :facet_field_names, to: :blacklight_config
9
-
10
- # @deprecated
11
- # @param [Blacklight::Configuration::Facet] field_config
12
- # @param [Object] response_data
13
- # @return [Blacklight::FacetPaginator]
14
- def facet_paginator(field_config, response_data)
15
- blacklight_config.facet_paginator_class.new(
16
- response_data.items,
17
- sort: response_data.sort,
18
- offset: response_data.offset,
19
- prefix: response_data.prefix,
20
- limit: Deprecation.silence(Blacklight::Catalog) { facet_limit_for(field_config.key) }
21
- )
22
- end
23
- deprecation_deprecate facet_paginator: 'Use Blacklight::FacetFieldPresenter#paginator instead'
24
-
25
- # @param fields [Array<String>] a list of facet field names
26
- # @return [Array<Solr::Response::Facets::FacetField>]
27
- # @deprecated
28
- def facets_from_request(fields = facet_field_names, response = nil)
29
- unless response
30
- Deprecation.warn(self, 'Calling facets_from_request without passing the ' \
31
- 'second argument (response) is deprecated and will be removed in Blacklight ' \
32
- '8.0.0')
33
- response = @response
34
- end
35
-
36
- Deprecation.silence(Blacklight::Facet) do
37
- fields.map { |field| facet_by_field_name(field, response) }.compact
38
- end
39
- end
40
- deprecation_deprecate facets_from_request: 'Removed without replacement'
41
-
42
- delegate :facet_group_names, to: :blacklight_config
43
- deprecation_deprecate facet_group_names: 'Use blacklight_config.facet_group_names instead'
44
-
45
- # Get a FacetField object from the @response
46
- # @deprecated
47
- # @private
48
- # @return [Blacklight::Solr::Response::Facets::FacetField]
49
- def facet_by_field_name(field_or_field_name, response = nil)
50
- unless response
51
- Deprecation.warn(self, 'Calling facet_by_field_name without passing the ' \
52
- 'second argument (response) is deprecated and will be removed in Blacklight ' \
53
- '8.0.0')
54
- response = @response
55
- end
56
- case field_or_field_name
57
- when String, Symbol
58
- facet_field = facet_configuration_for_field(field_or_field_name)
59
- response.aggregations[facet_field.field]
60
- when Blacklight::Configuration::FacetField
61
- response.aggregations[field_or_field_name.field]
62
- else
63
- # is this really a useful case?
64
- field_or_field_name
65
- end
66
- end
67
- deprecation_deprecate facet_by_field_name: 'Removed without replacement'
68
- end
69
- end
@@ -1,46 +0,0 @@
1
- # frozen_string_literal: true
2
- ##
3
- # Module to deal with accessing (and setting some defaults) in an array of
4
- # hashes that describe Blacklight search fields. Requires the base class this
5
- # module is added to implements a #blacklight_config method that returns a hash, where
6
- # blacklight_config[:search_fields] will be an array of hashes describing search fields.
7
- #
8
- # = Search Field blacklight_configuration Hash =
9
- # [:key]
10
- # "title", required, unique key used in search URLs to specify search_field
11
- # [:label]
12
- # "Title", # user-displayable label, optional, if not supplied :key.titlecase will be used
13
- # [:qt]
14
- # "search", # Solr qt param, request handler, usually can be left blank; defaults to nil if not explicitly specified
15
- # [:solr_parameters]
16
- # { :qf => "something" } # optional hash of additional parameters to pass to solr for searches on this field.
17
- # [:solr_local_parameters]
18
- # { :qf => "$something" } # optional hash of additional parameters that will be passed using Solr LocalParams syntax, that can use dollar sign to reference other solr variables.
19
- # [:include_in_simple_select]
20
- # false. Defaults to true, but you can set to false to have a search field defined for deep-links or BL extensions, but not actually included in the HTML select for simple search choice.
21
- #
22
- # Optionally you can supply a :key, which is what Blacklight will use
23
- # to identify this search field in HTTP query params. If no :key is
24
- # supplied, one will be computed from the :label. If that will
25
- # result in a collision of keys, you should supply one explicitly.
26
- #
27
- ##
28
- module Blacklight::SearchFields
29
- extend Deprecation
30
-
31
- # Looks up search field config list from blacklight_config[:search_fields], and
32
- # 'normalizes' all field config hashes using normalize_config method.
33
- # @deprecated
34
- def search_field_list
35
- blacklight_config.search_fields.values
36
- end
37
- deprecation_deprecate search_field_list: 'Use blacklight_config.search_fields instead'
38
-
39
- # Returns default search field, used for simpler display in history, etc.
40
- # if not set in blacklight_config, defaults to first field listed in #search_field_list
41
- # @deprecated
42
- def default_search_field
43
- blacklight_config.default_search_field || (Deprecation.silence(Blacklight::SearchFields) { search_field_list.first })
44
- end
45
- deprecation_deprecate default_search_field: 'Use Blacklight::Configuration#default_search_field'
46
- end
@@ -1,27 +0,0 @@
1
- # frozen_string_literal: true
2
- # Rails Helper methods to take a hash and turn it to form <input type="hidden">
3
- # fields, works with hash nested with other hashes and arrays, standard rails
4
- # serialization style. Oddly while Hash#to_query will do this for a URL
5
- # query parameters, there seems to be no built in way to do it to create
6
- # hidden form fields instead.
7
- #
8
- # Code taken from http://marklunds.com/articles/one/314
9
- #
10
- # This is used to serialize a complete current query from current params
11
- # to form fields used for sort and change per-page
12
- module Blacklight::HashAsHiddenFieldsHelperBehavior
13
- extend Deprecation
14
-
15
- ##
16
- # Writes out zero or more <input type="hidden"> elements, completely
17
- # representing a hash passed in using Rails-style request parameters
18
- # for hashes nested with arrays and other hashes.
19
- #
20
- # @deprecated
21
- # @param [Hash] hash
22
- # @return [String]
23
- def render_hash_as_hidden_fields(hash)
24
- render Blacklight::HiddenSearchStateComponent.new(params: hash)
25
- end
26
- deprecation_deprecate render_hash_as_hidden_fields: 'Use Blacklight::HiddenSearchStateComponent instead'
27
- end