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
@@ -0,0 +1,55 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Blacklight
4
+ module Assets
5
+ class ImportmapGenerator < Rails::Generators::Base
6
+ class_option :'bootstrap-version', type: :string, default: ENV.fetch('BOOTSTRAP_VERSION', '~> 5.1'), desc: "Set the generated app's bootstrap version"
7
+
8
+ # This could be skipped if you want to use webpacker
9
+ def add_javascript_dependencies
10
+ gem 'bootstrap', options[:'bootstrap-version'].presence # in rails 7, only for stylesheets
11
+ gem 'jquery-rails' if bootstrap_4? # Bootstrap 4 has a dependency on jquery
12
+ end
13
+
14
+ def import_javascript_assets
15
+ append_to_file 'config/importmap.rb' do
16
+ <<~CONTENT
17
+ pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.6/dist/umd/popper.min.js"
18
+ pin "bootstrap", to: "https://ga.jspm.io/npm:bootstrap@#{(defined?(Bootstrap) && Bootstrap::VERSION) || '5.2.2'}/dist/js/bootstrap.js"
19
+ pin "blacklight", to: "blacklight/blacklight.js"
20
+ pin "dialog-polyfill", to: "https://ga.jspm.io/npm:dialog-polyfill@0.5.6/dist/dialog-polyfill.js"
21
+ CONTENT
22
+ end
23
+ end
24
+
25
+ def append_blacklight_javascript
26
+ append_to_file 'app/javascript/application.js' do
27
+ <<~CONTENT
28
+ import bootstrap from "bootstrap"
29
+ import "blacklight"
30
+ import dialogPolyfill from "dialog-polyfill"
31
+ Blacklight.onLoad(() => {
32
+ const dialog = document.querySelector('dialog')
33
+ dialogPolyfill.registerDialog(dialog)
34
+ })
35
+ CONTENT
36
+ end
37
+ end
38
+
39
+ def add_stylesheet
40
+ gem "sassc-rails", "~> 2.1" if Rails.version > '7'
41
+
42
+ create_file 'app/assets/stylesheets/blacklight.scss' do
43
+ <<~CONTENT
44
+ @import 'bootstrap';
45
+ @import 'blacklight/blacklight';
46
+ CONTENT
47
+ end
48
+ end
49
+
50
+ def bootstrap_4?
51
+ options[:'bootstrap-version'].match?(/\A[^0-9]*4\./)
52
+ end
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Blacklight
4
+ module Assets
5
+ class PropshaftGenerator < Rails::Generators::Base
6
+ def add_package
7
+ run 'yarn add blacklight-frontend'
8
+ end
9
+
10
+ def add_package_assets
11
+ append_to_file 'app/assets/stylesheets/application.bootstrap.scss' do
12
+ <<~CONTENT
13
+ @import "blacklight-frontend/app/assets/stylesheets/blacklight/blacklight";
14
+ CONTENT
15
+ end
16
+
17
+ append_to_file 'app/javascript/application.js' do
18
+ <<~CONTENT
19
+ import Blacklight from "blacklight-frontend/app/assets/javascripts/blacklight/blacklight.esm";
20
+ CONTENT
21
+ end
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,66 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Blacklight
4
+ module Assets
5
+ class SprocketsGenerator < Rails::Generators::Base
6
+ class_option :'bootstrap-version', type: :string, default: ENV.fetch('BOOTSTRAP_VERSION', '~> 5.1'), desc: "Set the generated app's bootstrap version"
7
+
8
+ # This could be skipped if you want to use webpacker
9
+ def add_javascript_dependencies
10
+ gem 'bootstrap', options[:'bootstrap-version'].presence
11
+ gem 'jquery-rails' if bootstrap_4? # Bootstrap 4 has a dependency on jquery
12
+ end
13
+
14
+ ##
15
+ # Remove the empty generated app/assets/images directory. Without doing this,
16
+ # the default Sprockets 4 manifest will raise an exception.
17
+ def appease_sprockets4
18
+ return if Rails.version > '7' || Sprockets::VERSION < '4'
19
+
20
+ append_to_file 'app/assets/config/manifest.js', "\n//= link application.js"
21
+ empty_directory 'app/assets/images'
22
+ end
23
+
24
+ def assets
25
+ create_file 'app/assets/stylesheets/blacklight.scss' do
26
+ <<~CONTENT
27
+ @import 'bootstrap';
28
+ @import 'blacklight/blacklight';
29
+ CONTENT
30
+ end
31
+
32
+ gem "sassc-rails", "~> 2.1" if Rails.version > '7'
33
+
34
+ # Ensure this method is idempotent
35
+ return if has_blacklight_assets?
36
+
37
+ create_file 'app/assets/javascripts/application.js' do
38
+ <<~CONTENT
39
+ //= require rails-ujs
40
+ #{'//= require jquery3' if bootstrap_4?}
41
+
42
+ // Required by Blacklight
43
+ //= require popper
44
+ //= require bootstrap
45
+ CONTENT
46
+ end
47
+ end
48
+
49
+ private
50
+
51
+ def bootstrap_4?
52
+ options[:'bootstrap-version'].match?(/\A[^0-9]*4\./)
53
+ end
54
+
55
+ def has_blacklight_assets?
56
+ application_js.include?('blacklight/blacklight')
57
+ end
58
+
59
+ def application_js
60
+ path = File.expand_path("app/assets/javascripts/application.js", destination_root)
61
+
62
+ File.exist?(path) ? File.read(path) : ''
63
+ end
64
+ end
65
+ end
66
+ end
@@ -1,94 +1,21 @@
1
1
  # frozen_string_literal: true
2
- module Blacklight
3
- class Assets < Rails::Generators::Base
4
- source_root File.expand_path('../templates', __FILE__)
5
-
6
- class_option :'bootstrap-version', type: :string, default: ENV.fetch('BOOTSTRAP_VERSION', '~> 4.0'), desc: "Set the generated app's bootstrap version"
7
-
8
- # This could be skipped if you want to use webpacker
9
- def add_javascript_dependencies
10
- gem 'bootstrap', options[:'bootstrap-version']
11
- gem 'twitter-typeahead-rails', '0.11.1.pre.corejavascript'
12
- end
13
-
14
- def appease_rails7
15
- return unless Rails.version > '7'
16
-
17
- gem "sassc-rails", "~> 2.1"
18
- end
19
-
20
- # Add sprockets javascript if needed
21
- def create_sprockets_javascript
22
- create_file 'app/assets/javascripts/application.js' do
23
- <<~CONTENT
24
- //= require jquery3
25
- //= require rails-ujs
26
- #{'//= require turbolinks' if Rails.version < '7'}
27
- CONTENT
28
- end
29
- end
30
-
31
- ##
32
- # Remove the empty generated app/assets/images directory. Without doing this,
33
- # the default Sprockets 4 manifest will raise an exception.
34
- def appease_sprockets4
35
- return if !defined?(Sprockets::VERSION) || Sprockets::VERSION < '4' || using_importmap?
36
-
37
- append_to_file 'app/assets/config/manifest.js', "\n//= link application.js\n"
38
- empty_directory 'app/assets/images'
39
- end
40
-
41
- def assets
42
- copy_file "blacklight.scss", "app/assets/stylesheets/blacklight.scss"
43
-
44
- # Ensure this method is idempotent
45
- return if has_blacklight_assets?
46
2
 
47
- gem 'jquery-rails'
48
- contents = "\n//\n// Required by Blacklight\n"
49
- contents += "//= require popper\n"
50
- contents += "// Twitter Typeahead for autocomplete\n"
51
- contents += "//= require twitter/typeahead\n"
52
- contents += "//= require bootstrap\n"
53
- contents += "//= require blacklight/blacklight\n"
54
-
55
- marker = if turbolinks?
56
- '//= require turbolinks'
57
- else
58
- '//= require rails-ujs'
59
- end
60
-
61
- insert_into_file "app/assets/javascripts/application.js", after: marker do
62
- contents
63
- end
64
-
65
- insert_into_file "app/assets/javascripts/application.js", before: '//= require rails-ujs' do
66
- "//= require jquery3\n"
67
- end
68
- end
69
-
70
- private
71
-
72
- def root
73
- @root ||= Pathname(destination_root)
74
- end
75
-
76
- def using_importmap?
77
- @using_importmap ||= root.join('config/importmap.rb').exist?
78
- end
79
-
80
- def turbolinks?
81
- @turbolinks ||= application_js.include?('turbolinks')
82
- end
3
+ module Blacklight
4
+ class AssetsGenerator < Rails::Generators::Base
5
+ class_option :'bootstrap-version', type: :string, default: ENV.fetch('BOOTSTRAP_VERSION', '~> 5.1'), desc: "Set the generated app's bootstrap version"
83
6
 
84
- def has_blacklight_assets?
85
- application_js.include?('blacklight/blacklight')
86
- end
7
+ def run_asset_pipeline_specific_generator
8
+ generated_options = "--bootstrap-version='#{options[:'bootstrap-version']}'" if options[:'bootstrap-version']
87
9
 
88
- def application_js
89
- path = File.expand_path("app/assets/javascripts/application.js", destination_root)
10
+ generator = if defined?(Propshaft)
11
+ 'blacklight:assets:propshaft'
12
+ elsif defined?(Importmap)
13
+ 'blacklight:assets:importmap'
14
+ elsif defined?(Sprockets)
15
+ 'blacklight:assets:sprockets'
16
+ end
90
17
 
91
- File.exist?(path) ? File.read(path) : ''
18
+ generate generator, generated_options if generator
92
19
  end
93
20
  end
94
21
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  class ControllerGenerator < Rails::Generators::Base
4
5
  source_root File.expand_path('../templates', __FILE__)
@@ -16,8 +17,8 @@ module Blacklight
16
17
  def inject_blacklight_controller_behavior
17
18
  inject_into_class "app/controllers/application_controller.rb", "ApplicationController" do
18
19
  " # Adds a few additional behaviors into the application controller\n" \
19
- " include Blacklight::Controller\n" \
20
- " layout :determine_layout if respond_to? :layout\n\n"
20
+ " include Blacklight::Controller\n" \
21
+ " layout :determine_layout if respond_to? :layout\n\n"
21
22
  end
22
23
  end
23
24
 
@@ -30,7 +31,7 @@ module Blacklight
30
31
  route <<-EOF
31
32
  concern :searchable, Blacklight::Routes::Searchable.new
32
33
 
33
- resource :catalog, only: [], as: 'catalog', path: '/catalog', controller: 'catalog' do
34
+ resource :catalog, only: [:index], as: 'catalog', path: '/catalog', controller: 'catalog' do
34
35
  concerns :searchable
35
36
  end
36
37
  EOF
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'rails/generators'
3
4
 
4
5
  module Blacklight
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  class Install < Rails::Generators::Base
4
5
  source_root File.expand_path('../templates', __FILE__)
@@ -11,7 +12,7 @@ module Blacklight
11
12
  class_option :devise, type: :boolean, default: false, aliases: "-d", desc: "Use Devise as authentication logic."
12
13
  class_option :marc, type: :boolean, default: false, aliases: "-m", desc: "Generate MARC-based demo."
13
14
  class_option :'bootstrap-version', type: :string, default: nil, desc: "Set the generated app's bootstrap version"
14
- class_option :'skip-assets', type: :boolean, default: !defined?(Sprockets), desc: "Skip generating javascript and css assets into the application"
15
+ class_option :'skip-assets', type: :boolean, default: false, desc: "Skip generating javascript and css assets into the application"
15
16
  class_option :'skip-solr', type: :boolean, default: false, desc: "Skip generating solr configurations."
16
17
 
17
18
  desc <<-EOS
@@ -41,7 +42,7 @@ module Blacklight
41
42
 
42
43
  def bundle_install
43
44
  inside destination_root do
44
- Bundler.with_clean_env do
45
+ Bundler.with_unbundled_env do
45
46
  run "bundle install"
46
47
  end
47
48
  end
@@ -84,7 +85,7 @@ module Blacklight
84
85
  return unless options[:marc]
85
86
 
86
87
  blacklight_marc = String.new('blacklight-marc')
87
- gem blacklight_marc, '>= 7.0.0.rc1', '< 8'
88
+ gem blacklight_marc, '~> 8.0'
88
89
 
89
90
  bundle_install
90
91
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'rails/generators'
3
4
  require 'rails/generators/migration'
4
5
  require 'blacklight/version'
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require 'rails/generators'
3
4
 
4
5
  module Blacklight
@@ -36,7 +36,7 @@ module Blacklight
36
36
 
37
37
  def bundle_install
38
38
  inside destination_root do
39
- Bundler.with_clean_env do
39
+ Bundler.with_unbundled_env do
40
40
  run "bundle install"
41
41
  end
42
42
  end
@@ -5,7 +5,16 @@ class <%= controller_name.classify %>Controller < ApplicationController
5
5
 
6
6
  include Blacklight::Catalog
7
7
 
8
+ # If you'd like to handle errors returned by Solr in a certain way,
9
+ # you can use Rails rescue_from with a method you define in this controller,
10
+ # uncomment:
11
+ #
12
+ # rescue_from Blacklight::Exceptions::InvalidRequest, with: :my_handling_method
13
+
8
14
  configure_blacklight do |config|
15
+ ## Specify the style of markup to be generated (may be 4 or 5)
16
+ # config.bootstrap_version = 5
17
+ #
9
18
  ## Class for sending and receiving requests from a search index
10
19
  # config.repository_class = Blacklight::Solr::Repository
11
20
  #
@@ -29,23 +38,32 @@ class <%= controller_name.classify %>Controller < ApplicationController
29
38
  # solr path which will be added to solr base url before the other solr params.
30
39
  #config.solr_path = 'select'
31
40
  #config.document_solr_path = 'get'
32
- #config.json_solr_path = 'advanced'
33
41
 
34
42
  # items to show per page, each number in the array represent another option to choose from.
35
43
  #config.per_page = [10,20,50,100]
36
44
 
37
45
  # solr field configuration for search results/index views
38
46
  config.index.title_field = 'title_tsim'
39
- #config.index.display_type_field = 'format'
40
- #config.index.thumbnail_field = 'thumbnail_path_ss'
47
+ # config.index.display_type_field = 'format'
48
+ # config.index.thumbnail_field = 'thumbnail_path_ss'
49
+
50
+ # The presenter is the view-model class for the page
51
+ # config.index.document_presenter_class = MyApp::IndexPresenter
41
52
 
42
- config.add_results_document_tool(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
53
+ # Some components can be configured
54
+ # config.index.document_component = MyApp::SearchResultComponent
55
+ # config.index.constraints_component = MyApp::ConstraintsComponent
56
+ # config.index.search_bar_component = MyApp::SearchBarComponent
57
+ # config.index.search_header_component = MyApp::SearchHeaderComponent
58
+ # config.index.document_actions.delete(:bookmark)
59
+
60
+ config.add_results_document_tool(:bookmark, component: Blacklight::Document::BookmarkComponent, if: :render_bookmarks_control?)
43
61
 
44
62
  config.add_results_collection_tool(:sort_widget)
45
63
  config.add_results_collection_tool(:per_page_widget)
46
64
  config.add_results_collection_tool(:view_type_group)
47
65
 
48
- config.add_show_tools_partial(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
66
+ config.add_show_tools_partial(:bookmark, component: Blacklight::Document::BookmarkComponent, if: :render_bookmarks_control?)
49
67
  config.add_show_tools_partial(:email, callback: :email_action, validator: :validate_email_params)
50
68
  config.add_show_tools_partial(:sms, if: :render_sms_action?, callback: :sms_action, validator: :validate_sms_params)
51
69
  config.add_show_tools_partial(:citation)
@@ -54,9 +72,17 @@ class <%= controller_name.classify %>Controller < ApplicationController
54
72
  config.add_nav_action(:search_history, partial: 'blacklight/nav/search_history')
55
73
 
56
74
  # solr field configuration for document/show views
57
- #config.show.title_field = 'title_tsim'
58
- #config.show.display_type_field = 'format'
59
- #config.show.thumbnail_field = 'thumbnail_path_ss'
75
+ # config.show.title_field = 'title_tsim'
76
+ # config.show.display_type_field = 'format'
77
+ # config.show.thumbnail_field = 'thumbnail_path_ss'
78
+ #
79
+ # The presenter is a view-model class for the page
80
+ # config.show.document_presenter_class = MyApp::ShowPresenter
81
+ #
82
+ # These components can be configured
83
+ # config.show.document_component = MyApp::DocumentComponent
84
+ # config.show.sidebar_component = MyApp::SidebarComponent
85
+ # config.show.embed_component = MyApp::EmbedComponent
60
86
 
61
87
  # solr fields that will be treated as facets by the blacklight application
62
88
  # The ordering of the field names is the order of the display
@@ -16,7 +16,7 @@
16
16
  </updateLog>
17
17
  </updateHandler>
18
18
 
19
- <!-- solr lib dirs, which are needed for Solr 8 compatibility but ignored in solr 9.8 and above -->
19
+ <!-- solr lib dirs -->
20
20
  <lib dir="${solr.install.dir:../../../..}/modules/analysis-extras/lib" />
21
21
  <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib" />
22
22
  <lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" />
@@ -100,75 +100,6 @@
100
100
  </arr>
101
101
  </requestHandler>
102
102
 
103
- <requestHandler name="/advanced" class="solr.SearchHandler">
104
- <!-- a lucene request handler for using the JSON Query DSL,
105
- specifically for advanced search.
106
- Using a separate requestHandler is a workaround to
107
- https://issues.apache.org/jira/browse/SOLR-16916, although
108
- it could be desirable for other reasons as well.
109
- -->
110
- <lst name="defaults">
111
- <str name="defType">lucene</str>
112
- <str name="echoParams">explicit</str>
113
- <str name="df">title_tsim</str>
114
- <str name="qf">
115
- id
116
- full_title_tsim
117
- short_title_tsim
118
- alternative_title_tsim
119
- active_fedora_model_ssi
120
- title_tsim
121
- author_tsim
122
- subject_tsim
123
- all_text_timv
124
- </str>
125
- <str name="pf">
126
- all_text_timv^10
127
- </str>
128
-
129
- <str name="author_qf">
130
- author_tsim
131
- </str>
132
- <str name="author_pf">
133
- </str>
134
- <str name="title_qf">
135
- title_tsim
136
- full_title_tsim
137
- short_title_tsim
138
- alternative_title_tsim
139
- </str>
140
- <str name="title_pf">
141
- </str>
142
- <str name="subject_qf">
143
- subject_tsim
144
- </str>
145
- <str name="subject_pf">
146
- </str>
147
-
148
- <str name="fl">
149
- *,
150
- score
151
- </str>
152
-
153
- <str name="facet">true</str>
154
- <str name="facet.mincount">1</str>
155
- <str name="facet.limit">10</str>
156
- <str name="facet.field">active_fedora_model_ssi</str>
157
- <str name="facet.field">subject_ssim</str>
158
-
159
- <str name="spellcheck">true</str>
160
- <str name="spellcheck.dictionary">default</str>
161
- <str name="spellcheck.onlyMorePopular">true</str>
162
- <str name="spellcheck.extendedResults">true</str>
163
- <str name="spellcheck.collate">false</str>
164
- <str name="spellcheck.count">5</str>
165
-
166
- </lst>
167
- <arr name="last-components">
168
- <str>spellcheck</str>
169
- </arr>
170
- </requestHandler>
171
-
172
103
  <requestHandler name="permissions" class="solr.SearchHandler" >
173
104
  <lst name="defaults">
174
105
  <str name="facet">off</str>
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  # Copy Blacklight test support material in place
3
4
 
4
5
  # Need the requires here so we can call the generator from environment.rb
@@ -17,7 +18,7 @@ module Blacklight
17
18
  copy_file "alternate_controller.rb", "app/controllers/alternate_controller.rb"
18
19
 
19
20
  routing_code = <<-EOF
20
- resource :alternate, controller: 'alternate', only: [] do
21
+ resource :alternate, controller: 'alternate', only: [:index] do
21
22
  concerns :searchable
22
23
  end
23
24
  EOF
@@ -41,9 +42,10 @@ module Blacklight
41
42
  end
42
43
 
43
44
  def configure_action_mailer
44
- insert_into_file "config/environments/test.rb", after: "config.action_mailer.delivery_method = :test\n" do <<-EOF
45
+ insert_into_file "config/environments/test.rb", after: "config.action_mailer.delivery_method = :test\n" do
46
+ <<-EOF
45
47
  config.action_mailer.default_options = {from: 'no-reply@example.org'}
46
- EOF
48
+ EOF
47
49
  end
48
50
  end
49
51
  end
@@ -25,7 +25,7 @@ module Blacklight
25
25
  gem "devise-guests", "~> 0.8"
26
26
 
27
27
  inside destination_root do
28
- Bundler.with_clean_env do
28
+ Bundler.with_unbundled_env do
29
29
  run "bundle install"
30
30
  end
31
31
  end
@@ -36,12 +36,10 @@ module Blacklight
36
36
 
37
37
  # add the #to_s to the model.
38
38
  insert_into_file("app/models/#{model_name}.rb", before: /end(\n| )*$/) do
39
- "\n # Method added by Blacklight; Blacklight uses #to_s on your\n" \
40
- " # user class to get a user-displayable login/identifier for\n" \
41
- " # the account.\n" \
42
- " def to_s\n" \
43
- " email\n" \
44
- " end\n"
39
+ "\n # Configuration added by Blacklight; Blacklight::User uses a method key on your\n" \
40
+ " # user class to get a user-displayable login/identifier for\n" \
41
+ " # the account.\n" \
42
+ " self.string_display_key ||= :email\n"
45
43
  end
46
44
  gsub_file("config/initializers/devise.rb", "config.sign_out_via = :delete", "config.sign_out_via = :get")
47
45
  end
@@ -52,10 +50,10 @@ module Blacklight
52
50
  if File.exist?(File.expand_path(file_path, destination_root))
53
51
  inject_into_class file_path, model_name.classify do
54
52
  "\n # Connects this user object to Blacklights Bookmarks." \
55
- "\n include Blacklight::User\n"
53
+ "\n include Blacklight::User\n"
56
54
  end
57
55
  else
58
- say_status "warning", <<-EOS.strip_heredoc, :yellow
56
+ say_status "warning", <<~EOS, :yellow
59
57
  Blacklight authenticated user functionality not installed, as a user model
60
58
  could not be found at /app/models/user.rb. If you used a different name,
61
59
  please re-run the migration and provide that name as an argument. E.g.:
@@ -19,9 +19,8 @@ namespace :blacklight do
19
19
  task seed: [:environment] do
20
20
  require 'yaml'
21
21
 
22
- app_file = Rails.root && Rails.root + 'spec/fixtures/sample_solr_documents.yml'
23
- file = ENV['FILE'] ||
24
- (app_file && File.exist?(app_file) && app_file) ||
22
+ app_file = Rails.root && "#{Rails.root}spec/fixtures/sample_solr_documents.yml"
23
+ file = ENV.fetch('FILE') { (app_file && File.exist?(app_file) && app_file) } ||
25
24
  File.join(Blacklight.root, 'spec', 'fixtures', 'sample_solr_documents.yml')
26
25
  docs = YAML.safe_load(File.open(file))
27
26
  conn = Blacklight.default_index.connection
@@ -41,7 +40,7 @@ namespace :blacklight do
41
40
  exit 1
42
41
  end
43
42
  rescue => e
44
- puts e
43
+ puts e.to_s
45
44
  exit 1
46
45
  end
47
46
 
@@ -71,7 +70,7 @@ namespace :blacklight do
71
70
  end
72
71
  rescue => e
73
72
  errors += 1
74
- puts e
73
+ puts e.to_s
75
74
  end
76
75
 
77
76
  print " - search_results: "
@@ -93,7 +92,7 @@ namespace :blacklight do
93
92
  end
94
93
  rescue => e
95
94
  errors += 1
96
- puts e
95
+ puts e.to_s
97
96
  end
98
97
 
99
98
  print " - fetch: "
@@ -113,7 +112,7 @@ namespace :blacklight do
113
112
  end
114
113
  rescue => e
115
114
  errors += 1
116
- puts e
115
+ puts e.to_s
117
116
  end
118
117
 
119
118
  exit 1 if errors > 0
data/package.json CHANGED
@@ -1,18 +1,17 @@
1
1
  {
2
2
  "name": "blacklight-frontend",
3
- "version": "7.41.0",
4
- "description": "The frontend code and styles for Blacklight",
3
+ "version": "8.0.0-beta.1",
4
+ "description": "[![Build Status](https://travis-ci.com/projectblacklight/blacklight.png?branch=main)](https://travis-ci.com/projectblacklight/blacklight) [![Gem Version](https://badge.fury.io/rb/blacklight.png)](http://badge.fury.io/rb/blacklight) [![Coverage Status](https://coveralls.io/repos/github/projectblacklight/blacklight/badge.svg?branch=main)](https://coveralls.io/github/projectblacklight/blacklight?branch=main)",
5
5
  "main": "app/assets/javascripts/blacklight",
6
6
  "scripts": {
7
- "js-compile-bundle": "shx cat app/javascript/blacklight/core.js app/javascript/blacklight/autocomplete.js app/javascript/blacklight/bookmark_toggle.js app/javascript/blacklight/button_focus.js app/javascript/blacklight/checkbox_submit.js app/javascript/blacklight/facet_load.js app/javascript/blacklight/modal.js app/javascript/blacklight/search_context.js | shx sed \"s/^(import|export).*//\" | babel --filename app/javascript/blacklight/blacklight.js > app/assets/javascripts/blacklight/blacklight.js"
7
+ "js-compile-bundle": "rollup --config rollup.config.js --sourcemap && ESM=true rollup --config rollup.config.js --sourcemap"
8
8
  },
9
9
  "repository": {
10
10
  "type": "git",
11
11
  "url": "git+https://github.com/projectblacklight/blacklight.git"
12
12
  },
13
13
  "files": [
14
- "app/assets",
15
- "app/javascript"
14
+ "app/assets"
16
15
  ],
17
16
  "author": "",
18
17
  "license": "Apache-2.0",
@@ -21,15 +20,13 @@
21
20
  },
22
21
  "homepage": "https://github.com/projectblacklight/blacklight#readme",
23
22
  "devDependencies": {
24
- "@babel/cli": "^7.2.3",
25
- "@babel/core": "^7.2.3",
26
- "@babel/preset-env": "^7.16.0",
27
- "shx": "^0.3.2"
23
+ "rollup": "^2.60.0"
28
24
  },
29
- "browserslist": "> 0.25%, not dead",
25
+ "browserslist": [
26
+ "defaults",
27
+ "not IE 11"
28
+ ],
30
29
  "dependencies": {
31
- "bootstrap": ">=4.3.1 <6.0.0",
32
- "jquery": "^3.5.1",
33
- "typeahead.js": "^0.11.1"
30
+ "bootstrap": ">=4.3.1 <6.0.0"
34
31
  }
35
32
  }