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
@@ -1,188 +0,0 @@
1
- # frozen_string_literal: true
2
- # All methods in here are 'api' that may be over-ridden by plugins and local
3
- # code, so method signatures and semantics should not be changed casually.
4
- # implementations can be of course.
5
- #
6
- # Includes methods for rendering contraints graphically on the
7
- # search results page (render_constraints(_*))
8
- module Blacklight::RenderConstraintsHelperBehavior
9
- extend Deprecation
10
- self.deprecation_horizon = 'blacklight 8.0'
11
-
12
- ##
13
- # Check if the query has any constraints defined (a query, facet, etc)
14
- #
15
- # @deprecated
16
- # @param [Blacklight::SearchState,Hash] params_or_search_state query parameters
17
- # @return [Boolean]
18
- def query_has_constraints?(params_or_search_state = search_state)
19
- search_state = convert_to_search_state(params_or_search_state)
20
- search_state.has_constraints?
21
- end
22
- deprecation_deprecate query_has_constraints?: 'use search_state#has_constraints?'
23
-
24
- ##
25
- # Render the actual constraints, not including header or footer
26
- # info.
27
- #
28
- # @param [Hash] localized_params query parameters
29
- # @return [String]
30
- def render_constraints(localized_params = params, local_search_state = search_state)
31
- params_or_search_state = if localized_params != params
32
- localized_params
33
- else
34
- local_search_state
35
- end
36
-
37
- Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
38
- render_constraints_query(params_or_search_state) + render_constraints_clauses(params_or_search_state) + render_constraints_filters(params_or_search_state)
39
- end
40
- end
41
-
42
- ##
43
- # Render the query constraints
44
- #
45
- # @deprecated
46
- # @param [Blacklight::SearchState,ActionController::Parameters] params_or_search_state query parameters
47
- # @return [String]
48
- def render_constraints_query(params_or_search_state = search_state)
49
- Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_constraints_query is deprecated')
50
- search_state = convert_to_search_state(params_or_search_state)
51
-
52
- # So simple don't need a view template, we can just do it here.
53
- return "".html_safe if search_state.query_param.blank?
54
-
55
- Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
56
- render_constraint_element(constraint_query_label(search_state.params),
57
- search_state.query_param,
58
- classes: ["query"],
59
- remove: remove_constraint_url(search_state))
60
- end
61
- end
62
-
63
- ##
64
- # Render the query constraints
65
- #
66
- # @deprecated
67
- # @param [Blacklight::SearchState,ActionController::Parameters] params_or_search_state query parameters
68
- # @return [String]
69
- def render_constraints_clauses(params_or_search_state = search_state)
70
- search_state = convert_to_search_state(params_or_search_state)
71
-
72
- clause_presenters = search_state.clause_params.map do |key, clause|
73
- field_config = blacklight_config.search_fields[clause[:field]]
74
- Blacklight::ClausePresenter.new(key, clause, field_config, self, search_state)
75
- end
76
-
77
- render(Blacklight::ConstraintComponent.with_collection(clause_presenters))
78
- end
79
- deprecation_deprecate :render_constraints_clauses
80
-
81
- ##
82
- # Provide a url for removing a particular constraint. This can be overriden
83
- # in the case that you want parameters other than the defaults to be removed
84
- # (e.g. :search_field)
85
- #
86
- # @deprecated
87
- # @param [Blacklight::SearchState,ActionController::Parameters] params_or_search_state query parameters
88
- # @return [String]
89
- def remove_constraint_url(params_or_search_state = search_state)
90
- Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'remove_constraint_url is deprecated')
91
- search_state = convert_to_search_state(params_or_search_state)
92
-
93
- search_action_path(search_state.remove_query_params)
94
- end
95
-
96
- ##
97
- # Render the facet constraints
98
- # @deprecated
99
- # @param [Blacklight::SearchState,Hash] params_or_search_state query parameters
100
- # @return [String]
101
- def render_constraints_filters(params_or_search_state = search_state)
102
- Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_constraints_filters is deprecated')
103
- search_state = convert_to_search_state(params_or_search_state)
104
-
105
- return "".html_safe unless search_state.filters.any?
106
-
107
- Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
108
- safe_join(search_state.filters.map do |field|
109
- render_filter_element(field.key, field.values, search_state)
110
- end, "\n")
111
- end
112
- end
113
-
114
- ##
115
- # Render a single facet's constraint
116
- # @deprecated
117
- # @param [String] facet field
118
- # @param [Array<String>] values selected facet values
119
- # @param [Blacklight::SearchState] search_state path query parameters
120
- # @return [String]
121
- def render_filter_element(facet, values, search_state)
122
- Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_filter_element is deprecated')
123
- facet_config = facet_configuration_for_field(facet)
124
-
125
- safe_join(Array(values).map do |val|
126
- next if val.blank? # skip empty string
127
-
128
- Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
129
- presenter = if val.is_a? Array
130
- inclusive_facet_item_presenter(facet_config, val, facet)
131
- else
132
- facet_item_presenter(facet_config, val, facet)
133
- end
134
-
135
- render_constraint_element(presenter.field_label,
136
- presenter.label,
137
- remove: presenter.remove_href(search_state),
138
- classes: ["filter", "filter-" + facet.parameterize])
139
- end
140
- end, "\n")
141
- end
142
-
143
- def inclusive_facet_item_presenter(facet_config, facet_item, facet_field)
144
- Blacklight::InclusiveFacetItemPresenter.new(facet_item, facet_config, self, facet_field)
145
- end
146
-
147
- # Render a label/value constraint on the screen. Can be called
148
- # by plugins and such to get application-defined rendering.
149
- #
150
- # Can be over-ridden locally to render differently if desired,
151
- # although in most cases you can just change CSS instead.
152
- #
153
- # Can pass in nil label if desired.
154
- #
155
- # @deprecated
156
- # @param [String] label to display
157
- # @param [String] value to display
158
- # @param [Hash] options
159
- # @option options [String] :remove url to execute for a 'remove' action
160
- # @option options [Array<String>] :classes an array of classes to add to container span for constraint.
161
- # @return [String]
162
- def render_constraint_element(label, value, options = {})
163
- Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_constraints_element is deprecated')
164
- render(partial: "catalog/constraints_element", locals: { label: label, value: value, options: options })
165
- end
166
-
167
- # @private
168
- def constraints_helpers_and_partials_from_blacklight?
169
- method(:render_constraints).owner == Blacklight::RenderConstraintsHelperBehavior &&
170
- method(:render_constraints_query).owner == Blacklight::RenderConstraintsHelperBehavior &&
171
- method(:remove_constraint_url).owner == Blacklight::RenderConstraintsHelperBehavior &&
172
- method(:render_constraints_filters).owner == Blacklight::RenderConstraintsHelperBehavior &&
173
- method(:render_filter_element).owner == Blacklight::RenderConstraintsHelperBehavior &&
174
- method(:render_constraint_element).owner == Blacklight::RenderConstraintsHelperBehavior &&
175
- partial_from_blacklight?('catalog/constraints_element')
176
- end
177
-
178
- private
179
-
180
- def convert_to_search_state(params_or_search_state)
181
- if params_or_search_state.is_a? Blacklight::SearchState
182
- params_or_search_state
183
- else
184
- # deprecated
185
- controller.search_state_class.new(params_or_search_state, blacklight_config, controller)
186
- end
187
- end
188
- end
@@ -1,97 +0,0 @@
1
- # frozen_string_literal: true
2
- # All methods in here are 'api' that may be over-ridden by plugins and local
3
- # code, so method signatures and semantics should not be changed casually.
4
- # implementations can be of course.
5
- #
6
- # Includes methods for rendering more textually on Search History page
7
- # (render_search_to_s(_*))
8
- module Blacklight::SearchHistoryConstraintsHelperBehavior
9
- extend Deprecation
10
- self.deprecation_horizon = '8.0'
11
-
12
- # Simpler textual version of constraints, used on Search History page.
13
- # Theoretically can may be DRY'd up with results page render_constraints,
14
- # maybe even using the very same HTML with different CSS?
15
- # But too tricky for now, too many changes to existing CSS. TODO.
16
- def render_search_to_s(params)
17
- return render(Blacklight::ConstraintsComponent.for_search_history(search_state: convert_to_search_state(params))) unless overridden_search_history_constraints_helper_methods?
18
-
19
- Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, 'Calling out to potentially overridden helpers for backwards compatibility.')
20
-
21
- Deprecation.silence(Blacklight::SearchHistoryConstraintsHelperBehavior) do
22
- render_search_to_s_q(params) +
23
- render_search_to_s_filters(params)
24
- end
25
- end
26
- deprecation_deprecate render_search_to_s: 'Use Blacklight::ConstraintsComponent.for_search_history instead'
27
-
28
- ##
29
- # Render the search query constraint
30
- def render_search_to_s_q(params)
31
- Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, '#render_search_to_s_q is deprecated without replacement')
32
- return "".html_safe if params['q'].blank?
33
-
34
- label = label_for_search_field(params[:search_field]) unless default_search_field?(params[:search_field])
35
-
36
- render_search_to_s_element(label, render_filter_value(params['q']))
37
- end
38
-
39
- ##
40
- # Render the search facet constraints
41
- def render_search_to_s_filters(params)
42
- Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, '#render_search_to_s_filters is deprecated without replacement')
43
- return "".html_safe unless params[:f]
44
-
45
- safe_join(params[:f].collect do |facet_field, value_list|
46
- render_search_to_s_element(facet_field_label(facet_field),
47
- safe_join(value_list.collect do |value|
48
- render_filter_value(value, facet_field)
49
- end,
50
- tag.span(" #{t('blacklight.and')} ", class: 'filter-separator')))
51
- end, " \n ")
52
- end
53
-
54
- # value can be Array, in which case elements are joined with
55
- # 'and'. Pass in option :escape_value => false to pass in pre-rendered
56
- # html for value. key with escape_key if needed.
57
- def render_search_to_s_element(key, value, _options = {})
58
- Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, '#render_search_to_s_element is deprecated without replacement')
59
- tag.span(render_filter_name(key) + tag.span(value, class: 'filter-values'),
60
- class: 'constraint')
61
- end
62
-
63
- ##
64
- # Render the name of the facet
65
- def render_filter_name name
66
- Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, '#render_filter_name is deprecated without replacement')
67
- return "".html_safe if name.blank?
68
-
69
- tag.span(t('blacklight.search.filters.label', label: name),
70
- class: 'filter-name')
71
- end
72
-
73
- ##
74
- # Render the value of the facet
75
- def render_filter_value value, key = nil
76
- Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, '#render_filter_value is deprecated without replacement')
77
- display_value = value
78
- Deprecation.silence(Blacklight::FacetsHelperBehavior) do
79
- display_value = facet_display_value(key, value) if key
80
- end
81
- tag.span(h(display_value),
82
- class: 'filter-value')
83
- end
84
-
85
- private
86
-
87
- # Check if the downstream application has overridden these methods
88
- # @deprecated
89
- # @private
90
- def overridden_search_history_constraints_helper_methods?
91
- method(:render_search_to_s_q).owner != Blacklight::FacetsHelperBehavior ||
92
- method(:render_search_to_s_filters).owner != Blacklight::FacetsHelperBehavior ||
93
- method(:render_search_to_s_element).owner != Blacklight::FacetsHelperBehavior ||
94
- method(:render_filter_name).owner != Blacklight::FacetsHelperBehavior ||
95
- method(:render_filter_value).owner != Blacklight::FacetsHelperBehavior
96
- end
97
- end
@@ -1,13 +0,0 @@
1
- # frozen_string_literal: true
2
- module Blacklight
3
- module SuggestHelperBehavior
4
- ##
5
- # @deprecated
6
- # @return [Boolean] should autocomplete be enabled in the UI
7
- def autocomplete_enabled?
8
- blacklight_config.autocomplete_enabled.present? &&
9
- blacklight_config.autocomplete_path.present?
10
- end
11
- deprecation_deprecate autocomplete_enabled?: "use SearchBarPresenter#autocomplete_enabled?"
12
- end
13
- end
@@ -1,36 +0,0 @@
1
- /*global Bloodhound */
2
- import Bloodhound from 'typeahead.js/dist/bloodhound.js'
3
-
4
- Blacklight.onLoad(function() {
5
- 'use strict';
6
-
7
- $('[data-autocomplete-enabled="true"]').each(function() {
8
- var $el = $(this);
9
- if($el.hasClass('tt-hint')) {
10
- return;
11
- }
12
- var suggestUrl = $el.data().autocompletePath;
13
-
14
- var terms = new Bloodhound({
15
- datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
16
- queryTokenizer: Bloodhound.tokenizers.whitespace,
17
- remote: {
18
- url: suggestUrl + '?q=%QUERY',
19
- wildcard: '%QUERY'
20
- }
21
- });
22
-
23
- terms.initialize();
24
-
25
- $el.typeahead({
26
- hint: true,
27
- highlight: true,
28
- minLength: 2
29
- },
30
- {
31
- name: 'terms',
32
- displayKey: 'term',
33
- source: terms.ttAdapter()
34
- });
35
- });
36
- });
@@ -1,22 +0,0 @@
1
- /*global Blacklight */
2
-
3
- 'use strict';
4
-
5
- Blacklight.doResizeFacetLabelsAndCounts = function() {
6
- // adjust width of facet columns to fit their contents
7
- function longer (a,b) { return b.textContent.length - a.textContent.length }
8
-
9
- document.querySelectorAll('.facet-values, .pivot-facet').forEach(function(elem){
10
- const nodes = elem.querySelectorAll('.facet-count')
11
- // TODO: when we drop ie11 support, this can become the spread operator:
12
- const longest = Array.from(nodes).sort(longer)[0]
13
- if (longest && longest.textContent) {
14
- const width = longest.textContent.length + 1 + 'ch'
15
- elem.querySelector('.facet-count').style.width = width
16
- }
17
- })
18
- }
19
-
20
- Blacklight.onLoad(function() {
21
- Blacklight.doResizeFacetLabelsAndCounts()
22
- })
@@ -1,47 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Blacklight
4
- class SearchBarPresenter
5
- extend Deprecation
6
- attr_reader :configuration, :view_context, :controller
7
-
8
- # Set the partial this presenter draws
9
- class_attribute :partial
10
- self.partial = 'catalog/search_form'
11
-
12
- def initialize(controller, configuration = view_context.blacklight_config)
13
- @controller = controller
14
- @view_context = controller.view_context
15
- @configuration = configuration
16
- end
17
-
18
- def render
19
- view_context.render partial, presenter: self
20
- end
21
- deprecation_deprecate render: "The SearchBarPresenter has been deprecated. Call `render Blacklight::SearchBarComponent.new' instead"
22
-
23
- ##
24
- # @return [Boolean] should autocomplete be enabled in the UI
25
- def autocomplete_enabled?
26
- configuration.autocomplete_enabled.present? &&
27
- configuration.autocomplete_path.present?
28
- end
29
-
30
- ##
31
- # If no search parameters have been given, we should
32
- # auto-focus the user's cursor into the searchbox
33
- #
34
- # @return [Boolean]
35
- def autofocus?
36
- configuration.enable_search_bar_autofocus.present? &&
37
- configuration.enable_search_bar_autofocus &&
38
- controller.is_a?(Blacklight::Catalog) &&
39
- controller.action_name == "index" &&
40
- !controller.has_search_parameters?
41
- end
42
-
43
- def advanced_search_enabled?
44
- configuration.advanced_search.enabled
45
- end
46
- end
47
- end
@@ -1,14 +0,0 @@
1
- <% # local params:
2
- # label
3
- # value
4
- # options =>
5
- # :remove => url for a remove constraint link
6
- # :classes => array of classes to add to container span
7
- options ||= {}
8
- %>
9
-
10
- <%= render(Blacklight::ConstraintLayoutComponent.new(
11
- classes: options[:classes],
12
- label: label,
13
- value: value,
14
- remove_path: options[:remove])) %>
@@ -1,5 +0,0 @@
1
- <%= link_to document_action_label(document_action_config.key, document_action_config),
2
- document_action_path(document_action_config, (local_assigns.has_key?(:url_opts) ? url_opts : {}).merge(({id: document} if document) || {})),
3
- id: document_action_config.fetch(:id, "#{document_action_config.key}Link"),
4
- class: 'nav-link',
5
- data: {}.merge(({ blacklight_modal: "trigger" } if document_action_config.modal != false) || {}) %>
@@ -1,5 +0,0 @@
1
- <%= render (blacklight_config&.view_config(document_index_view_type)&.facet_group_component || Blacklight::Response::FacetGroupComponent).new(
2
- response: @response,
3
- id: groupname,
4
- fields: facet_field_names(groupname),
5
- title: groupname.present? ? t("blacklight.search.facets-#{groupname}.title") : t('blacklight.search.facets.title')) %>
@@ -1,3 +0,0 @@
1
- <%= render(Blacklight::FacetFieldListComponent.new(
2
- facet_field: facet_field_presenter(facet_field, display_facet),
3
- layout: false)) %>
@@ -1 +0,0 @@
1
- <%= render(Blacklight::DocumentMetadataComponent.new(fields: document_presenter(document).field_presenters)) %>
@@ -1,22 +0,0 @@
1
- <%# header bar for doc items in index view -%>
2
- <header class="documentHeader row">
3
- <%# main title container for doc partial view
4
- How many bootstrap columns need to be reserved
5
- for bookmarks control depends on size.
6
- -%>
7
- <% document_actions = capture do %>
8
- <% # bookmark functions for items/docs -%>
9
- <%= render_index_doc_actions document, wrapping_class: "index-document-functions col-sm-3 col-lg-2" %>
10
- <% end %>
11
-
12
- <h3 class="index_title document-title-heading <%= document_actions.present? ? "col-sm-9 col-lg-10" : "col-md-12" %>">
13
- <% if counter = document_counter_with_offset(document_counter) %>
14
- <span class="document-counter">
15
- <%= t('blacklight.search.documents.counter', counter: counter) %>
16
- </span>
17
- <% end %>
18
- <%= link_to_document document, counter: counter %>
19
- </h3>
20
-
21
- <%= document_actions %>
22
- </header>
@@ -1,2 +0,0 @@
1
- <% Deprecation.warn(self, 'The partial _previous_next_doc.html.erb will be removed in 8.0. Render Blacklight::SearchContext::ServerItemPaginationComponent instead.') %>
2
- <%= render(Blacklight::SearchContextComponent.new(search_context: @search_context, search_session: search_session)) %>
@@ -1,6 +0,0 @@
1
- <%= render(
2
- Blacklight::DocumentMetadataComponent.new(
3
- fields: document_presenter(document).field_presenters,
4
- show: true
5
- )
6
- ) %>
@@ -1,2 +0,0 @@
1
- <% # bookmark/folder functions -%>
2
- <%= Deprecation.silence(Blacklight::BlacklightHelperBehavior) { render_document_heading(document, :tag => :h1) } %>
@@ -1 +0,0 @@
1
- <%= render Blacklight::Document::ThumbnailComponent.new(presenter: document_presenter(document), counter: document_counter_with_offset(document_counter)) -%>
@@ -1,66 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Blacklight
4
- module Deprecations
5
- module EngineConfiguration
6
- # rubocop:disable Style/RedundantSelf, Style/HashSyntax
7
- # @deprecated
8
- def bookmarks_http_method
9
- self.blacklight.bookmarks_http_method
10
- end
11
- deprecation_deprecate bookmarks_http_method: 'Moved to `blacklight.bookmarks_http_method`'
12
-
13
- # @deprecated
14
- def bookmarks_http_method=(val)
15
- self.blacklight.bookmarks_http_method = val
16
- end
17
- deprecation_deprecate :'bookmarks_http_method=' => 'Moved to `blacklight.bookmarks_http_method=`'
18
-
19
- # @deprecated
20
- def email_regexp
21
- self.blacklight.email_regexp
22
- end
23
- deprecation_deprecate email_regexp: 'Moved to `blacklight.email_regexp`'
24
-
25
- # @deprecated
26
- def email_regexp=(val)
27
- self.blacklight.email_regexp = val
28
- end
29
- deprecation_deprecate :'email_regexp=' => 'Moved to `blacklight.email_regexp=`'
30
-
31
- # @deprecated
32
- def facet_missing_param
33
- self.blacklight.facet_missing_param
34
- end
35
- deprecation_deprecate facet_missing_param: 'Moved to `blacklight.facet_missing_param`'
36
-
37
- # @deprecated
38
- def facet_missing_param=(val)
39
- self.blacklight.facet_missing_param = val
40
- end
41
- deprecation_deprecate :'facet_missing_param=' => 'Moved to `blacklight.facet_missing_param=`'
42
-
43
- # @deprecated
44
- def sms_mappings
45
- self.blacklight.sms_mappings
46
- end
47
- deprecation_deprecate sms_mappings: 'Moved to `blacklight.sms_mappings`'
48
-
49
- # @deprecated
50
- def sms_mappings=(val)
51
- self.blacklight.sms_mappings = val
52
- end
53
- deprecation_deprecate :'sms_mappings=' => 'Moved to `blacklight.sms_mappings=`'
54
- # rubocop:enable Style/RedundantSelf, Style/HashSyntax
55
-
56
- def self.deprecate_in(object)
57
- class << object
58
- extend Deprecation
59
- self.deprecation_horizon = 'blacklight 8.0'
60
-
61
- include Blacklight::Deprecations::EngineConfiguration
62
- end
63
- end
64
- end
65
- end
66
- end
@@ -1,52 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Blacklight
4
- module Deprecations
5
- module SearchStateNormalization
6
- extend ActiveSupport::Concern
7
-
8
- class_methods do
9
- def facet_params_need_normalization(facet_params)
10
- Deprecation.warn(self, 'Calling `facet_params_need_normalization` on the Blacklight::SearchState ' \
11
- 'class is deprecated and will be removed in Blacklight 8. Delegate to #needs_normalization?(value_params) on the ' \
12
- 'filter fields of the search state object.')
13
-
14
- facet_params.is_a?(Hash) && facet_params.values.any? { |x| x.is_a?(Hash) }
15
- end
16
-
17
- def normalize_facet_params(facet_params)
18
- Deprecation.warn(self, 'Calling `normalize_facet_params` on the Blacklight::SearchState ' \
19
- 'class is deprecated and will be removed in Blacklight 8. Delegate to #normalize(value_params) on the ' \
20
- 'filter fields of the search state object.')
21
-
22
- facet_params.transform_values { |value| value.is_a?(Hash) ? value.values : value }
23
- end
24
-
25
- def normalize_params(untrusted_params = {})
26
- Deprecation.warn(self, 'Calling `normalize_params` on the Blacklight::SearchState ' \
27
- 'class is deprecated and will be removed in Blacklight 8. Call #normalize_params on the ' \
28
- 'search state object.')
29
- params = untrusted_params
30
-
31
- if params.respond_to?(:to_unsafe_h)
32
- # This is the typical (not-ActionView::TestCase) code path.
33
- params = params.to_unsafe_h
34
- # In Rails 5 to_unsafe_h returns a HashWithIndifferentAccess, in Rails 4 it returns Hash
35
- params = params.with_indifferent_access if params.instance_of? Hash
36
- elsif params.is_a? Hash
37
- # This is an ActionView::TestCase workaround for Rails 4.2.
38
- params = params.dup.with_indifferent_access
39
- else
40
- params = params.dup.to_h.with_indifferent_access
41
- end
42
-
43
- # Normalize facet parameters mangled by facebook
44
- params[:f] = normalize_facet_params(params[:f]) if facet_params_need_normalization(params[:f])
45
- params[:f_inclusive] = normalize_facet_params(params[:f_inclusive]) if facet_params_need_normalization(params[:f_inclusive])
46
-
47
- params
48
- end
49
- end
50
- end
51
- end
52
- end
@@ -1,20 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- RSpec.describe Blacklight::HeaderComponent, type: :component do
4
- before do
5
- with_controller_class(CatalogController) do
6
- allow(controller).to receive(:current_user).and_return(nil)
7
- allow(controller).to receive(:search_action_url).and_return('/search')
8
- render
9
- end
10
- end
11
-
12
- context 'with no slots' do
13
- let(:render) { render_inline(described_class.new(blacklight_config: CatalogController.blacklight_config)) }
14
-
15
- it 'draws the topbar' do
16
- expect(page).to have_css 'nav.topbar'
17
- expect(page).to have_link 'Blacklight', href: '/'
18
- end
19
- end
20
- end
@@ -1,42 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require 'spec_helper'
4
-
5
- RSpec.describe Blacklight::Icons::IconComponent, type: :component do
6
- subject(:component) { sub_component.new }
7
-
8
- let(:sub_component) do
9
- Class.new(described_class) do
10
- def self.name
11
- 'TestIconComponent'
12
- end
13
- end
14
- end
15
-
16
- context 'when no classes are passed in' do
17
- subject(:component) { sub_component.new }
18
-
19
- it "renders component" do
20
- render_inline(component)
21
- expect(page).to have_css "span[class='blacklight-icons blacklight-icons-test_icon']"
22
- end
23
- end
24
-
25
- context 'when classes are passed in' do
26
- subject(:component) { sub_component.new(classes: 'my-icon') }
27
-
28
- it "renders component" do
29
- render_inline(component)
30
- expect(page).to have_css "span[class='my-icon blacklight-icons blacklight-icons-test_icon']"
31
- end
32
- end
33
-
34
- context 'when name is passed in' do
35
- subject(:component) { sub_component.new(name: 'my-icon') }
36
-
37
- it "renders component" do
38
- render_inline(component)
39
- expect(page).to have_css "span[class='blacklight-icons blacklight-icons-my-icon']"
40
- end
41
- end
42
- end