blacklight 7.33.0 → 8.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. checksums.yaml +4 -4
  2. data/.env +3 -2
  3. data/.github/workflows/ruby.yml +38 -107
  4. data/.gitignore +1 -0
  5. data/.rubocop.yml +243 -2
  6. data/.rubocop_todo.yml +216 -270
  7. data/Gemfile +7 -6
  8. data/README.md +12 -4
  9. data/Rakefile +18 -0
  10. data/VERSION +1 -1
  11. data/app/assets/config/blacklight/manifest.js +3 -0
  12. data/app/assets/javascripts/blacklight/blacklight.esm.js +376 -0
  13. data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -0
  14. data/app/assets/javascripts/blacklight/blacklight.js +332 -485
  15. data/app/assets/javascripts/blacklight/blacklight.js.map +1 -0
  16. data/app/assets/stylesheets/blacklight/_autocomplete.scss +25 -0
  17. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +1 -1
  18. data/app/assets/stylesheets/blacklight/_bookmark.scss +16 -0
  19. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +8 -0
  20. data/app/assets/stylesheets/blacklight/_facets.scss +104 -49
  21. data/app/assets/stylesheets/blacklight/_header.scss +0 -15
  22. data/app/assets/stylesheets/blacklight/_icons.scss +0 -14
  23. data/app/assets/stylesheets/blacklight/_mixins.scss +20 -0
  24. data/app/assets/stylesheets/blacklight/_modal.scss +8 -2
  25. data/app/assets/stylesheets/blacklight/_search_form.scss +30 -3
  26. data/app/assets/stylesheets/blacklight/_search_history.scss +10 -1
  27. data/app/assets/stylesheets/blacklight/_search_results.scss +6 -2
  28. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +4 -1
  29. data/app/builders/blacklight/action_builder.rb +18 -9
  30. data/app/components/blacklight/advanced_search_form_component.html.erb +1 -1
  31. data/app/components/blacklight/advanced_search_form_component.rb +7 -9
  32. data/app/components/blacklight/constraints_component.rb +27 -37
  33. data/app/components/blacklight/document/action_component.html.erb +2 -9
  34. data/app/components/blacklight/document/action_component.rb +26 -8
  35. data/app/components/blacklight/document/actions_component.rb +2 -2
  36. data/app/components/blacklight/document/bookmark_component.html.erb +9 -0
  37. data/app/components/blacklight/document/bookmark_component.rb +4 -2
  38. data/app/components/blacklight/document/citation_component.rb +5 -3
  39. data/app/components/blacklight/document/group_component.rb +7 -3
  40. data/app/components/blacklight/document/show_tools_component.html.erb +12 -0
  41. data/app/components/blacklight/document/show_tools_component.rb +23 -0
  42. data/app/components/blacklight/document/sidebar_component.html.erb +2 -0
  43. data/app/components/blacklight/document/sidebar_component.rb +16 -0
  44. data/app/components/blacklight/document/thumbnail_component.html.erb +2 -7
  45. data/app/components/blacklight/document/thumbnail_component.rb +1 -9
  46. data/app/components/blacklight/document_component.html.erb +4 -0
  47. data/app/components/blacklight/document_component.rb +54 -42
  48. data/app/components/blacklight/document_metadata_component.html.erb +4 -2
  49. data/app/components/blacklight/document_metadata_component.rb +11 -6
  50. data/app/components/blacklight/document_title_component.rb +4 -1
  51. data/app/components/blacklight/facet_component.rb +1 -1
  52. data/app/components/blacklight/facet_field_checkboxes_component.html.erb +3 -3
  53. data/app/components/blacklight/facet_field_checkboxes_component.rb +1 -1
  54. data/app/components/blacklight/facet_field_component.html.erb +5 -5
  55. data/app/components/blacklight/facet_field_component.rb +9 -2
  56. data/app/components/blacklight/facet_field_list_component.html.erb +3 -3
  57. data/app/components/blacklight/facet_field_list_component.rb +37 -5
  58. data/app/components/blacklight/facet_field_no_layout_component.rb +0 -2
  59. data/app/components/blacklight/facet_item_component.rb +1 -43
  60. data/app/components/blacklight/facet_item_pivot_component.rb +21 -23
  61. data/app/components/blacklight/header_component.html.erb +2 -0
  62. data/app/components/blacklight/header_component.rb +26 -0
  63. data/app/components/blacklight/hidden_search_state_component.rb +1 -2
  64. data/app/components/blacklight/icons/legacy_icon_component.rb +30 -0
  65. data/app/components/blacklight/icons/list_component.rb +16 -0
  66. data/app/components/blacklight/icons/search_component.rb +16 -0
  67. data/app/components/blacklight/metadata_field_component.html.erb +2 -2
  68. data/app/components/blacklight/metadata_field_component.rb +24 -8
  69. data/app/components/blacklight/metadata_field_layout_component.rb +7 -22
  70. data/app/components/blacklight/metadata_field_plain_text_layout_component.rb +17 -0
  71. data/app/components/blacklight/response/facet_group_component.html.erb +5 -6
  72. data/app/components/blacklight/response/facet_group_component.rb +29 -8
  73. data/app/components/blacklight/response/sort_component.rb +2 -2
  74. data/app/components/blacklight/response/spellcheck_component.rb +18 -7
  75. data/app/components/blacklight/response/view_type_button_component.rb +3 -7
  76. data/app/components/blacklight/response/view_type_component.rb +4 -6
  77. data/app/components/blacklight/search/sidebar_component.html.erb +8 -0
  78. data/app/components/blacklight/search/sidebar_component.rb +17 -0
  79. data/app/components/blacklight/search_bar_component.html.erb +20 -15
  80. data/app/components/blacklight/search_bar_component.rb +2 -16
  81. data/app/components/blacklight/search_button_component.rb +3 -3
  82. data/app/components/blacklight/search_context/server_applied_params_component.html.erb +4 -0
  83. data/app/components/blacklight/search_context/server_applied_params_component.rb +13 -0
  84. data/app/components/blacklight/search_context/server_item_pagination_component.rb +71 -0
  85. data/app/components/blacklight/search_header_component.html.erb +2 -0
  86. data/app/components/blacklight/search_header_component.rb +6 -0
  87. data/app/components/blacklight/search_navbar_component.html.erb +5 -0
  88. data/app/components/blacklight/search_navbar_component.rb +34 -0
  89. data/app/components/blacklight/start_over_button_component.rb +5 -3
  90. data/app/components/blacklight/system/dropdown_component.rb +3 -3
  91. data/app/components/blacklight/system/flash_message_component.html.erb +3 -1
  92. data/app/components/blacklight/system/flash_message_component.rb +12 -3
  93. data/app/components/blacklight/system/modal_component.html.erb +1 -1
  94. data/app/components/blacklight/system/modal_component.rb +1 -3
  95. data/app/components/blacklight/top_navbar_component.html.erb +12 -0
  96. data/app/components/blacklight/top_navbar_component.rb +17 -0
  97. data/app/controllers/bookmarks_controller.rb +1 -0
  98. data/app/controllers/catalog_controller.rb +1 -0
  99. data/app/controllers/concerns/blacklight/bookmarks.rb +11 -6
  100. data/app/controllers/concerns/blacklight/catalog.rb +21 -72
  101. data/app/controllers/concerns/blacklight/controller.rb +6 -43
  102. data/app/controllers/concerns/blacklight/search_context.rb +71 -13
  103. data/app/controllers/concerns/blacklight/search_history.rb +2 -0
  104. data/app/controllers/concerns/blacklight/searchable.rb +12 -1
  105. data/app/controllers/concerns/blacklight/token_based_user.rb +1 -0
  106. data/app/controllers/search_history_controller.rb +1 -0
  107. data/app/helpers/blacklight/blacklight_helper_behavior.rb +1 -400
  108. data/app/helpers/blacklight/catalog_helper_behavior.rb +40 -182
  109. data/app/helpers/blacklight/component_helper_behavior.rb +1 -63
  110. data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -117
  111. data/app/helpers/blacklight/document_helper_behavior.rb +76 -0
  112. data/app/helpers/blacklight/facets_helper_behavior.rb +4 -321
  113. data/app/helpers/blacklight/icon_helper_behavior.rb +5 -4
  114. data/app/helpers/blacklight/layout_helper_behavior.rb +60 -0
  115. data/app/helpers/blacklight/render_partials_helper_behavior.rb +12 -30
  116. data/app/helpers/blacklight/url_helper_behavior.rb +21 -97
  117. data/app/helpers/blacklight_helper.rb +1 -0
  118. data/app/helpers/catalog_helper.rb +1 -0
  119. data/app/javascript/blacklight/bookmark_toggle.js +9 -22
  120. data/app/javascript/blacklight/button_focus.js +9 -7
  121. data/app/javascript/blacklight/checkbox_submit.js +68 -122
  122. data/app/javascript/blacklight/core.js +6 -5
  123. data/app/javascript/blacklight/index.js +14 -0
  124. data/app/javascript/blacklight/modal.js +100 -165
  125. data/app/javascript/blacklight/modalForm.js +60 -0
  126. data/app/javascript/blacklight/search_context.js +13 -29
  127. data/app/models/blacklight/facet_paginator.rb +3 -2
  128. data/app/models/blacklight/icon.rb +4 -2
  129. data/app/models/bookmark.rb +0 -2
  130. data/app/models/concerns/blacklight/configurable.rb +5 -4
  131. data/app/models/concerns/blacklight/document/active_model_shim.rb +1 -0
  132. data/app/models/concerns/blacklight/document/attributes.rb +50 -0
  133. data/app/models/concerns/blacklight/document/cache_key.rb +1 -0
  134. data/app/models/concerns/blacklight/document/dublin_core.rb +2 -1
  135. data/app/models/concerns/blacklight/document/export.rb +2 -1
  136. data/app/models/concerns/blacklight/document/extensions.rb +1 -0
  137. data/app/models/concerns/blacklight/document/schema_org.rb +1 -0
  138. data/app/models/concerns/blacklight/document/semantic_fields.rb +1 -0
  139. data/app/models/concerns/blacklight/document.rb +23 -20
  140. data/app/models/concerns/blacklight/suggest/response.rb +1 -0
  141. data/app/models/concerns/blacklight/user.rb +17 -8
  142. data/app/models/record_mailer.rb +23 -18
  143. data/app/models/search.rb +0 -1
  144. data/app/models/solr_document.rb +1 -0
  145. data/app/presenters/blacklight/clause_presenter.rb +1 -1
  146. data/app/presenters/blacklight/document_presenter.rb +24 -30
  147. data/app/presenters/blacklight/facet_field_presenter.rb +39 -14
  148. data/app/presenters/blacklight/facet_grouped_item_presenter.rb +1 -5
  149. data/app/presenters/blacklight/facet_item_pivot_presenter.rb +60 -0
  150. data/app/presenters/blacklight/facet_item_presenter.rb +3 -9
  151. data/app/presenters/blacklight/field_presenter.rb +1 -0
  152. data/app/presenters/blacklight/index_presenter.rb +2 -40
  153. data/app/presenters/blacklight/json_presenter.rb +7 -5
  154. data/app/presenters/blacklight/rendering/abstract_step.rb +4 -0
  155. data/app/presenters/blacklight/rendering/join.rb +7 -1
  156. data/app/presenters/blacklight/rendering/link_to_facet.rb +3 -6
  157. data/app/presenters/blacklight/rendering/microdata.rb +1 -1
  158. data/app/presenters/blacklight/show_presenter.rb +1 -9
  159. data/app/presenters/blacklight/thumbnail_presenter.rb +1 -1
  160. data/app/services/blacklight/bookmarks_search_builder.rb +22 -0
  161. data/app/services/blacklight/field_retriever.rb +1 -8
  162. data/app/services/blacklight/search_service.rb +9 -7
  163. data/app/values/blacklight/types.rb +95 -11
  164. data/app/views/bookmarks/_clear_bookmarks_widget.html.erb +8 -1
  165. data/app/views/bookmarks/_tools.html.erb +7 -12
  166. data/app/views/catalog/_advanced_search_form.html.erb +0 -1
  167. data/app/views/catalog/_bookmark_control.html.erb +1 -1
  168. data/app/views/catalog/_constraints.html.erb +1 -14
  169. data/app/views/catalog/_document.atom.builder +12 -14
  170. data/app/views/catalog/_document.html.erb +3 -6
  171. data/app/views/catalog/_document.rss.builder +2 -4
  172. data/app/views/catalog/_document_list.html.erb +2 -1
  173. data/app/views/catalog/_facet_layout.html.erb +2 -2
  174. data/app/views/catalog/_facets.html.erb +5 -4
  175. data/app/views/catalog/_home_text.html.erb +2 -14
  176. data/app/views/catalog/_search_form.html.erb +3 -3
  177. data/app/views/catalog/_search_header.html.erb +1 -2
  178. data/app/views/catalog/_search_results.html.erb +2 -2
  179. data/app/views/catalog/_search_sidebar.html.erb +5 -1
  180. data/app/views/catalog/_show_main_content.html.erb +8 -19
  181. data/app/views/catalog/_show_sidebar.html.erb +2 -2
  182. data/app/views/catalog/_show_tools.html.erb +1 -19
  183. data/app/views/catalog/_view_type_group.html.erb +1 -1
  184. data/app/views/catalog/email_success.html.erb +5 -6
  185. data/app/views/catalog/facet.html.erb +7 -5
  186. data/app/views/catalog/index.atom.builder +12 -14
  187. data/app/views/catalog/index.html.erb +7 -1
  188. data/app/views/catalog/index.json.jbuilder +19 -19
  189. data/app/views/catalog/index.rss.builder +1 -1
  190. data/app/views/catalog/opensearch.xml.builder +1 -1
  191. data/app/views/catalog/show.html.erb +1 -6
  192. data/app/views/catalog/sms_success.html.erb +5 -6
  193. data/app/views/catalog/suggest.html.erb +3 -0
  194. data/app/views/layouts/blacklight/base.html.erb +19 -9
  195. data/app/views/record_mailer/email_record.text.erb +4 -3
  196. data/app/views/record_mailer/sms_record.text.erb +4 -4
  197. data/app/views/search_history/index.html.erb +6 -2
  198. data/app/views/shared/_header_navbar.html.erb +1 -22
  199. data/app/views/shared/_modal.html.erb +3 -3
  200. data/blacklight.gemspec +8 -10
  201. data/config/importmap.rb +3 -0
  202. data/config/locales/blacklight.ar.yml +209 -233
  203. data/config/locales/blacklight.ca.yml +0 -7
  204. data/config/locales/blacklight.de.yml +197 -216
  205. data/config/locales/blacklight.en.yml +2 -7
  206. data/config/locales/blacklight.es.yml +196 -216
  207. data/config/locales/blacklight.fr.yml +196 -220
  208. data/config/locales/blacklight.hu.yml +193 -213
  209. data/config/locales/blacklight.it.yml +197 -216
  210. data/config/locales/blacklight.nl.yml +193 -213
  211. data/config/locales/blacklight.pt-BR.yml +195 -216
  212. data/config/locales/blacklight.sq.yml +193 -213
  213. data/config/locales/blacklight.zh.yml +194 -214
  214. data/config/routes.rb +3 -2
  215. data/db/migrate/20140202020201_create_searches.rb +1 -0
  216. data/db/migrate/20140202020202_create_bookmarks.rb +1 -0
  217. data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -0
  218. data/docker-compose.yml +1 -0
  219. data/lib/blacklight/abstract_repository.rb +1 -0
  220. data/lib/blacklight/configuration/context.rb +4 -4
  221. data/lib/blacklight/configuration/display_field.rb +7 -9
  222. data/lib/blacklight/configuration/facet_field.rb +17 -11
  223. data/lib/blacklight/configuration/field.rb +1 -0
  224. data/lib/blacklight/configuration/fields.rb +12 -15
  225. data/lib/blacklight/configuration/index_field.rb +1 -0
  226. data/lib/blacklight/configuration/null_display_field.rb +17 -0
  227. data/lib/blacklight/configuration/search_field.rb +1 -0
  228. data/lib/blacklight/configuration/session_tracking_config.rb +45 -0
  229. data/lib/blacklight/configuration/show_field.rb +1 -0
  230. data/lib/blacklight/configuration/sort_field.rb +1 -0
  231. data/lib/blacklight/configuration/tool_config.rb +1 -0
  232. data/lib/blacklight/configuration/view_config.rb +16 -10
  233. data/lib/blacklight/configuration.rb +322 -341
  234. data/lib/blacklight/engine.rb +13 -15
  235. data/lib/blacklight/exceptions.rb +2 -2
  236. data/lib/blacklight/nested_open_struct_with_hash_access.rb +6 -12
  237. data/lib/blacklight/open_struct_with_hash_access.rb +19 -17
  238. data/lib/blacklight/parameters.rb +7 -21
  239. data/lib/blacklight/routes/exportable.rb +1 -0
  240. data/lib/blacklight/routes/searchable.rb +3 -1
  241. data/lib/blacklight/routes.rb +1 -0
  242. data/lib/blacklight/search_builder.rb +10 -10
  243. data/lib/blacklight/search_state/filter_field.rb +8 -25
  244. data/lib/blacklight/search_state/pivot_filter_field.rb +144 -0
  245. data/lib/blacklight/search_state.rb +23 -79
  246. data/lib/blacklight/solr/document.rb +1 -0
  247. data/lib/blacklight/solr/facet_paginator.rb +1 -0
  248. data/lib/blacklight/solr/repository.rb +1 -0
  249. data/lib/blacklight/solr/request.rb +3 -0
  250. data/lib/blacklight/solr/response/facets.rb +21 -5
  251. data/lib/blacklight/solr/response/group.rb +1 -0
  252. data/lib/blacklight/solr/response/group_response.rb +1 -0
  253. data/lib/blacklight/solr/response/more_like_this.rb +1 -0
  254. data/lib/blacklight/solr/response/pagination_methods.rb +4 -3
  255. data/lib/blacklight/solr/response/params.rb +5 -4
  256. data/lib/blacklight/solr/response/response.rb +1 -0
  257. data/lib/blacklight/solr/response/spelling.rb +1 -0
  258. data/lib/blacklight/solr/response.rb +4 -3
  259. data/lib/blacklight/solr/search_builder_behavior.rb +16 -32
  260. data/lib/blacklight/solr.rb +1 -0
  261. data/lib/blacklight/version.rb +1 -0
  262. data/lib/blacklight.rb +8 -11
  263. data/lib/generators/blacklight/assets/importmap_generator.rb +56 -0
  264. data/lib/generators/blacklight/assets/propshaft_generator.rb +34 -0
  265. data/lib/generators/blacklight/assets/sprockets_generator.rb +68 -0
  266. data/lib/generators/blacklight/assets_generator.rb +14 -88
  267. data/lib/generators/blacklight/controller_generator.rb +3 -2
  268. data/lib/generators/blacklight/document_generator.rb +1 -0
  269. data/lib/generators/blacklight/install_generator.rb +7 -4
  270. data/lib/generators/blacklight/models_generator.rb +1 -0
  271. data/lib/generators/blacklight/search_builder_generator.rb +1 -0
  272. data/lib/generators/blacklight/solr_generator.rb +1 -1
  273. data/lib/generators/blacklight/templates/catalog_controller.rb +37 -7
  274. data/lib/generators/blacklight/templates/solr_document.rb +1 -7
  275. data/lib/generators/blacklight/test_support_generator.rb +4 -2
  276. data/lib/generators/blacklight/user_generator.rb +7 -9
  277. data/lib/railties/blacklight.rake +2 -3
  278. data/package.json +10 -10
  279. data/rollup.config.js +37 -0
  280. data/spec/components/blacklight/constraints_component_spec.rb +17 -13
  281. data/spec/components/blacklight/document_component_spec.rb +74 -33
  282. data/spec/components/blacklight/facet_component_spec.rb +2 -7
  283. data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +1 -2
  284. data/spec/components/blacklight/facet_field_list_component_spec.rb +7 -6
  285. data/spec/components/blacklight/facet_item_pivot_component_spec.rb +9 -7
  286. data/spec/components/blacklight/header_component_spec.rb +20 -0
  287. data/spec/components/blacklight/response/view_type_component_spec.rb +83 -0
  288. data/spec/components/blacklight/search_bar_component_spec.rb +1 -1
  289. data/spec/components/blacklight/search_context/server_applied_params_component_spec.rb +29 -0
  290. data/spec/components/blacklight/search_context/server_item_pagination_component_spec.rb +51 -0
  291. data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +1 -6
  292. data/spec/controllers/blacklight/{base_spec.rb → catalog_spec.rb} +2 -2
  293. data/spec/controllers/bookmarks_controller_spec.rb +2 -3
  294. data/spec/controllers/catalog_controller_spec.rb +24 -126
  295. data/spec/features/autocomplete_spec.rb +1 -1
  296. data/spec/features/axe_spec.rb +1 -1
  297. data/spec/features/bookmarks_spec.rb +1 -1
  298. data/spec/features/component_template_override_spec.rb +8 -0
  299. data/spec/features/facets_spec.rb +1 -1
  300. data/spec/features/modal_spec.rb +12 -0
  301. data/spec/features/search_context_spec.rb +4 -10
  302. data/spec/features/search_results_spec.rb +0 -33
  303. data/spec/features/sitelinks_search_box_spec.rb +13 -0
  304. data/spec/helpers/blacklight/configuration_helper_behavior_spec.rb +2 -138
  305. data/spec/helpers/blacklight/facets_helper_behavior_spec.rb +0 -387
  306. data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +8 -0
  307. data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +5 -7
  308. data/spec/helpers/blacklight/url_helper_behavior_spec.rb +10 -132
  309. data/spec/helpers/blacklight_helper_spec.rb +3 -298
  310. data/spec/helpers/catalog_helper_spec.rb +60 -115
  311. data/spec/i18n_spec.rb +1 -0
  312. data/spec/integration/generators/blacklight/solr_generator_spec.rb +1 -1
  313. data/spec/lib/blacklight/configuration/facet_field_spec.rb +27 -16
  314. data/spec/lib/blacklight/configuration/field_spec.rb +1 -1
  315. data/spec/lib/blacklight/configuration/session_tracking_config_spec.rb +38 -0
  316. data/spec/lib/blacklight/configuration/view_config_spec.rb +1 -1
  317. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +4 -4
  318. data/spec/lib/blacklight/parameters_spec.rb +1 -4
  319. data/spec/lib/blacklight/search_state/filter_field_spec.rb +4 -4
  320. data/spec/lib/blacklight/search_state/pivot_filter_field_spec.rb +117 -0
  321. data/spec/lib/blacklight/search_state_spec.rb +80 -198
  322. data/spec/lib/tasks/blacklight_task_spec.rb +1 -0
  323. data/spec/models/blacklight/configuration_spec.rb +41 -53
  324. data/spec/models/blacklight/document/active_model_shim_spec.rb +2 -2
  325. data/spec/models/blacklight/icon_spec.rb +29 -15
  326. data/spec/models/blacklight/search_builder_spec.rb +12 -12
  327. data/spec/models/blacklight/solr/document_spec.rb +3 -3
  328. data/spec/models/blacklight/solr/request_spec.rb +2 -2
  329. data/spec/models/blacklight/solr/response/facets_spec.rb +27 -27
  330. data/spec/models/blacklight/solr/response/group_response_spec.rb +1 -0
  331. data/spec/models/blacklight/solr/response/group_spec.rb +1 -0
  332. data/spec/models/blacklight/solr/response_spec.rb +9 -2
  333. data/spec/models/blacklight/solr/search_builder_spec.rb +32 -23
  334. data/spec/models/blacklight/user_spec.rb +22 -0
  335. data/spec/models/record_mailer_spec.rb +36 -23
  336. data/spec/models/solr_document_spec.rb +21 -3
  337. data/spec/presenters/blacklight/clause_presenter_spec.rb +1 -0
  338. data/spec/presenters/blacklight/document_presenter_spec.rb +3 -2
  339. data/spec/presenters/blacklight/facet_field_presenter_spec.rb +85 -12
  340. data/spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb +1 -0
  341. data/spec/presenters/blacklight/facet_item_presenter_spec.rb +14 -13
  342. data/spec/presenters/blacklight/field_presenter_spec.rb +2 -16
  343. data/spec/presenters/blacklight/index_presenter_spec.rb +3 -4
  344. data/spec/presenters/blacklight/json_presenter_spec.rb +1 -0
  345. data/spec/presenters/blacklight/link_alternate_presenter_spec.rb +3 -2
  346. data/spec/presenters/blacklight/show_presenter_spec.rb +11 -25
  347. data/spec/presenters/pipeline_spec.rb +13 -2
  348. data/spec/presenters/thumbnail_presenter_spec.rb +1 -1
  349. data/spec/requests/load_suggestions_spec.rb +16 -0
  350. data/spec/routing/catalog_routing_spec.rb +6 -1
  351. data/spec/services/blacklight/search_service_spec.rb +31 -68
  352. data/spec/spec_helper.rb +4 -3
  353. data/spec/support/controller_level_helpers.rb +1 -2
  354. data/spec/support/features/search_helpers.rb +39 -0
  355. data/spec/support/features/session_helpers.rb +1 -0
  356. data/spec/support/features.rb +3 -0
  357. data/spec/support/view_component_test_helpers.rb +21 -0
  358. data/spec/test_app_templates/Gemfile.extra +4 -0
  359. data/spec/test_app_templates/lib/generators/test_app_generator.rb +17 -2
  360. data/spec/views/catalog/_document.html.erb_spec.rb +23 -33
  361. data/spec/views/catalog/_document_list.html.erb_spec.rb +7 -2
  362. data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +1 -1
  363. data/spec/views/catalog/_search_header.erb_spec.rb +1 -0
  364. data/spec/views/catalog/_show_sidebar.erb_spec.rb +1 -0
  365. data/spec/views/catalog/_show_tools.html.erb_spec.rb +7 -54
  366. data/spec/views/catalog/_view_type_group.html.erb_spec.rb +17 -9
  367. data/spec/views/catalog/email_success.html.erb_spec.rb +2 -2
  368. data/spec/views/catalog/facet.html.erb_spec.rb +6 -3
  369. data/spec/views/catalog/index.atom.builder_spec.rb +18 -11
  370. data/spec/views/catalog/index.html.erb_spec.rb +5 -6
  371. data/spec/views/catalog/index.json.jbuilder_spec.rb +3 -3
  372. data/spec/views/catalog/show.html.erb_spec.rb +3 -25
  373. data/spec/views/catalog/sms_success.html.erb_spec.rb +2 -2
  374. data/tasks/blacklight.rake +7 -5
  375. metadata +95 -123
  376. data/.babelrc +0 -11
  377. data/app/assets/images/blacklight/list.svg +0 -1
  378. data/app/assets/images/blacklight/search.svg +0 -1
  379. data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +0 -37
  380. data/app/components/blacklight/content_areas_shim.rb +0 -13
  381. data/app/components/blacklight/search_context_component.rb +0 -34
  382. data/app/controllers/concerns/blacklight/base.rb +0 -7
  383. data/app/controllers/concerns/blacklight/default_component_configuration.rb +0 -64
  384. data/app/controllers/concerns/blacklight/facet.rb +0 -69
  385. data/app/controllers/concerns/blacklight/search_fields.rb +0 -46
  386. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +0 -27
  387. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +0 -188
  388. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +0 -97
  389. data/app/helpers/blacklight/suggest_helper_behavior.rb +0 -13
  390. data/app/javascript/blacklight/autocomplete.js +0 -36
  391. data/app/javascript/blacklight/facet_load.js +0 -22
  392. data/app/models/concerns/blacklight/document/email.rb +0 -26
  393. data/app/models/concerns/blacklight/document/sms.rb +0 -24
  394. data/app/presenters/blacklight/search_bar_presenter.rb +0 -47
  395. data/app/views/catalog/_constraints_element.html.erb +0 -14
  396. data/app/views/catalog/_document_action.html.erb +0 -5
  397. data/app/views/catalog/_facet_group.html.erb +0 -5
  398. data/app/views/catalog/_facet_limit.html.erb +0 -3
  399. data/app/views/catalog/_index.html.erb +0 -1
  400. data/app/views/catalog/_index_header.html.erb +0 -22
  401. data/app/views/catalog/_previous_next_doc.html.erb +0 -2
  402. data/app/views/catalog/_show.html.erb +0 -6
  403. data/app/views/catalog/_show_header.html.erb +0 -2
  404. data/app/views/catalog/_thumbnail.html.erb +0 -1
  405. data/lib/blacklight/deprecations/engine_configuration.rb +0 -66
  406. data/lib/blacklight/deprecations/search_state_normalization.rb +0 -52
  407. data/spec/controllers/blacklight/facet_spec.rb +0 -33
  408. data/spec/controllers/blacklight/search_fields_spec.rb +0 -62
  409. data/spec/features/sitelinks_search_box.rb +0 -13
  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 -108
  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/models/blacklight/document/email_spec.rb +0 -57
  416. data/spec/models/blacklight/document/sms_spec.rb +0 -58
  417. data/spec/presenters/blacklight/search_bar_presenter_spec.rb +0 -94
  418. data/spec/support/view_component_capybara_test_helpers.rb +0 -8
  419. data/spec/views/catalog/_constraints.html.erb_spec.rb +0 -33
  420. data/spec/views/catalog/_facet_group.html.erb_spec.rb +0 -84
  421. data/spec/views/catalog/_facets.html.erb_spec.rb +0 -15
  422. data/spec/views/catalog/_index.html.erb_spec.rb +0 -62
  423. data/spec/views/catalog/_index_header.html.erb_spec.rb +0 -35
  424. data/spec/views/catalog/_previous_next_doc.html.erb_spec.rb +0 -22
  425. data/spec/views/catalog/_show.html.erb_spec.rb +0 -62
  426. data/spec/views/catalog/_thumbnail.html.erb_spec.rb +0 -38
  427. /data/app/components/blacklight/{search_context_component.html.erb → search_context/server_item_pagination_component.html.erb} +0 -0
@@ -1,241 +1,221 @@
1
+ ---
1
2
  zh:
2
- views:
3
- pagination:
4
- first: '« 首页'
5
- last: '末页 »'
6
- previous: '« 上一页'
7
- next: '下一页 »'
8
- truncate: '…'
9
- aria:
10
- container_label: 分页链接
11
- current_page: 当前页面,页面%{page}
12
- go_to_page: 前往页面%{page}
13
- go_to_previous_page: 转到上一页
14
- go_to_next_page: 转到下一页
15
- go_to_first_page: 转到第一页
16
- go_to_last_page: 转到最后一页
17
-
18
- pagination_compact:
19
- previous: '« 上一页'
20
- next: '下一页 »'
21
-
22
3
  blacklight:
23
- application_name: 'Blacklight'
24
- skip_links:
25
- label: '跳过链接'
26
- main_content: '转到主要内容'
27
- search_field: '转到搜索'
28
- first_result: '转到第一个搜索结果'
29
- header_links:
30
- login: '登陆'
31
- logout: '注销'
32
- bookmarks: '书签'
33
- search_history: '搜索历史'
34
-
35
- welcome: '欢迎!'
36
- and: '和'
37
- or: '或'
38
-
39
- modal:
40
- close: "关闭"
41
-
4
+ and: 和
5
+ application_name: Blacklight
6
+ back_to_bookmarks: 返回书签页面
7
+ back_to_search: 返回搜索页面
42
8
  bookmarks:
43
- title: '书签'
44
- page_title: '书签 - %{application_name}'
45
- no_bookmarks: '你还没有任何书签'
46
9
  add:
47
- button: '书签'
10
+ button: 书签
11
+ failure: 抱歉,保存书签时出错。
48
12
  success:
49
- one: '成功添加书签。'
50
- other: '成功添加书签。'
51
- failure: '抱歉,保存书签时出错。'
52
- remove:
53
- button: '删除书签'
54
- success: '成功删除书签。'
55
- failure: '抱歉,删除书签时出错。'
56
- action_confirm: '删除这个书签?'
57
- clear:
58
- action_title: '清除书签'
59
- action_confirm: '清除所有书签?'
60
- success: '已经清除了所有书签。'
61
- failure: '抱歉,清除书签时出错。'
62
- need_login: '登陆后才能访问你的书签功能。'
63
- list_title: '你的书签'
64
- delete: '删除'
65
-
66
- search_history:
13
+ one: 成功添加书签。
14
+ other: 成功添加书签。
67
15
  clear:
68
- action_title: '清除搜索历史'
69
- action_confirm: '清除搜索历史?'
70
- success: '已经清除搜索历史。'
71
- failure: '清除搜索历史时出错。'
72
- title: ''
73
- page_title: '搜索历史 - %{application_name}'
74
- no_history: '你没有任何搜索历史'
75
- recent: '你最近搜索历史'
76
- forget: '去除'
77
- save: '保存'
78
-
79
- tools:
80
- title: '工具'
81
- citation: '引用'
82
- email: '电子邮件'
83
- sms: '发送短信'
84
- clear: '清除'
85
-
16
+ action_confirm: 清除所有书签?
17
+ action_title: 清除书签
18
+ failure: 抱歉,清除书签时出错。
19
+ success: 已经清除了所有书签。
20
+ delete: 删除
21
+ list_title: 你的书签
22
+ need_login: 登陆后才能访问你的书签功能。
23
+ no_bookmarks: 你还没有任何书签
24
+ page_title: 书签 - %{application_name}
25
+ remove:
26
+ action_confirm: 删除这个书签?
27
+ button: 删除书签
28
+ failure: 抱歉,删除书签时出错。
29
+ success: 成功删除书签。
30
+ title: 书签
86
31
  citation:
87
- mla: 'MLA'
88
- apa: 'APA'
89
- chicago: 'Chicago'
90
-
32
+ apa: APA
33
+ chicago: Chicago
34
+ mla: MLA
35
+ did_you_mean: 你是要输入: %{options} 吗?
91
36
  email:
37
+ errors:
38
+ to:
39
+ blank: 请输入电子邮件接收人才能发送
40
+ invalid: 请输入合法电子邮件地址
92
41
  form:
93
- title: '通过电子邮件发送'
94
- to: '电子邮件:'
95
- message: '正文:'
96
- submit: '发送'
42
+ message: 正文:
43
+ submit: 发送
44
+ title: 通过电子邮件发送
45
+ to: 电子邮件:
46
+ success: 已发送电子邮件
97
47
  text:
98
- default_title: '无'
99
- title: '标题: %{value}'
100
- author: '作者: %{value}'
101
- format: '格式: %{value}'
102
- language: '语言: %{value}'
48
+ default_title: 无
49
+ message: 正文: %{message}
103
50
  subject:
104
51
  one: '记录: %{title}'
105
- other: '记录'
52
+ other: 记录
106
53
  url: '网址: %{url}'
107
- message: '正文: %{message}'
108
-
109
- success: "已发送电子邮件"
110
-
111
- errors:
112
- to:
113
- invalid: '请输入合法电子邮件地址'
114
- blank: '请输入电子邮件接收人才能发送'
115
- sms:
116
- form:
117
- title: '通过短信发送'
118
- to: '电话号码:'
119
- carrier: '运营商'
120
- carrier_prompt: '请选择运营商'
121
- submit: '发送'
122
- text:
123
- title: '%{value}'
124
- author: ' 来自 %{value}'
125
- url: '链接: %{url}'
126
- success: "已发送短信"
127
- errors:
128
- to:
129
- invalid: '请输入10位正确电话号码'
130
- blank: "请输入接收人电话号码才能发送短信"
131
- carrier:
132
- blank: '你必须选择一个运营商'
133
- invalid: "你必须输入一个运营商"
134
-
135
- back_to_search: '返回搜索页面'
136
- back_to_bookmarks: '返回书签页面'
137
-
54
+ entry_name:
55
+ default: 条目
56
+ grouped:
57
+ default: 分组结果
58
+ header_links:
59
+ bookmarks: 书签
60
+ login: 登陆
61
+ logout: 注销
62
+ search_history: 搜索历史
63
+ main:
64
+ aria:
65
+ main_container: 主要内容
66
+ modal:
67
+ close: 关闭
68
+ or: 或
138
69
  search:
139
- page_title:
140
- title: '%{constraints} - %{application_name} 搜索结果'
141
- constraint: '%{label}: %{value}'
142
- many_constraint_values: '%{values} 已选'
143
- header: '搜'
144
- search_constraints_header: '搜索条件'
145
- search_results: '搜索结果'
146
- errors:
147
- request_error: "抱歉,我不明白你要找什么。"
148
- invalid_solr_id: "抱歉,你要找的结果不存在。"
149
- per_page:
150
- label: '%{count}<span class="sr-only visually-hidden"> 每页</span>'
151
- button_label: '%{count} 每页' # TODO: Remove during major release
152
- button_label_html: '%{count}<span class="d-none d-sm-inline"> 每页</span>'
153
- title: '每页显示结果数'
154
- submit: '更新'
155
- aria_label: '结果导航'
156
- sort:
157
- label: '按 %{field} 排序' # TODO: Remove during major release
158
- label_html: '<span class="d-none d-sm-inline">按 %{field} </span>排序'
159
- submit: '排序'
160
- form:
161
- search_field:
162
- label: '搜索字段'
163
- title: '设定的搜索选项'
164
- post_label: '为'
165
- search:
166
- label: '搜索'
167
- placeholder: '搜索...'
168
- submit: '搜索'
169
- pagination:
170
- title: '搜索结果导航'
171
- pagination_info:
172
- no_items_found: '没有找到 %{entry_name} '
173
- single_item_found: '找到 <strong>1</strong> %{entry_name}'
174
- pages:
175
- one: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>'
176
- other: '<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>'
177
- entry_pagination_info:
178
- one: '<strong>1 / 1</strong>'
179
- other: '<strong>%{current}</strong> / <strong>%{total}</strong>'
70
+ atom_feed: 搜索结果Atom
71
+ bookmarks:
72
+ absent: 加入书签
73
+ inprogress: 保存...
74
+ present: 在书签中
180
75
  documents:
181
76
  aria:
182
- search_results: '搜索结果'
183
- limit_search: '限定搜索'
184
- counter: '%{counter}. '
77
+ limit_search: 限定搜索
78
+ search_results: 搜索结果
79
+ counter: "%{counter}. "
80
+ entry_pagination_info:
81
+ one: "<strong>1 / 1</strong>"
82
+ other: "<strong>%{current}</strong> / <strong>%{total}</strong>"
83
+ errors:
84
+ invalid_solr_id: 抱歉,你要找的结果不存在。
185
85
  facets:
186
- title: '限定搜索'
187
- clear: '清除搜索条件'
188
- all: '皆'
189
- sort:
190
- count: '按数量排序'
191
- index: '按字母排序'
192
- count: '%{number}'
193
- more_html: '更多 <span class="sr-only visually-hidden">%{field_name}</span> »'
194
- selected:
195
- remove: '[删除]'
86
+ all: 皆
87
+ clear: 清除搜索条件
88
+ count: "%{number}"
89
+ group:
90
+ close: 隐藏方面
91
+ open: 显示方面
92
+ toggle: 更多 »
196
93
  missing: "[未找到]"
94
+ more_html: 更多 <span class="sr-only visually-hidden">%{field_name}</span> »
197
95
  pivot:
198
- show: 打开
199
96
  hide: 关
200
- group:
201
- toggle: '更多 »'
202
- group:
203
- more: '更多 »'
97
+ show: 打开
98
+ selected:
99
+ remove: "[删除]"
100
+ sort:
101
+ count: 按数量排序
102
+ index: 按字母排序
103
+ title: 限定搜索
204
104
  filters:
205
- title: '你在搜索:'
206
- label: '%{label}:'
105
+ label: "%{label}:"
207
106
  remove:
208
- value: '删除限定条件 %{value}'
209
107
  label_value: '删除限定条件 %{label}: %{value}'
210
- start_over: '重新开始'
108
+ value: 删除限定条件 %{value}
109
+ title: 你在搜索:
110
+ form:
111
+ search:
112
+ label: 搜索
113
+ placeholder: 搜索...
114
+ search_field:
115
+ label: 搜索字段
116
+ post_label: 为
117
+ title: 设定的搜索选项
118
+ submit: 搜索
119
+ group:
120
+ more: 更多 »
121
+ header: 搜
211
122
  index:
212
- label: '%{label}:'
123
+ label: "%{label}:"
124
+ page_title:
125
+ constraint: "%{label}: %{value}"
126
+ many_constraint_values: "%{values} 已选"
127
+ title: "%{constraints} - %{application_name} 搜索结果"
128
+ pagination:
129
+ title: 搜索结果导航
130
+ pagination_info:
131
+ no_items_found: '没有找到 %{entry_name} '
132
+ pages:
133
+ one: "<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>"
134
+ other: "<strong>%{start_num}</strong> - <strong>%{end_num}</strong> 共 <strong>%{total_num}</strong>"
135
+ single_item_found: 找到 <strong>1</strong> %{entry_name}
136
+ per_page:
137
+ aria_label: 结果导航
138
+ button_label: "%{count} 每页"
139
+ button_label_html: '%{count}<span class="d-none d-sm-inline"> 每页</span>'
140
+ label: '%{count}<span class="sr-only visually-hidden"> 每页</span>'
141
+ submit: 更新
142
+ title: 每页显示结果数
143
+ rss_feed: 搜索结果RSS
144
+ search_constraints_header: 搜索条件
145
+ search_results: 搜索结果
213
146
  show:
214
- title: '%{document_title} - %{application_name}'
215
- label: '%{label}:'
216
- rss_feed: '搜索结果RSS'
217
- atom_feed: '搜索结果Atom'
218
- bookmarks:
219
- present: "在书签中"
220
- absent: "加入书签"
221
- inprogress: "保存..."
222
- zero_results:
223
- title: "未找到任何结果"
224
- modify_search: "请更改你的搜索条件"
225
- use_fewer_keywords: "使用更少的搜索条件,使用左边的链接来筛选搜索结果。"
226
- search_fields: "你在搜索如下字段 %{search_fields}"
227
- search_everything: "试一试搜索所有记录"
228
- view_title: "以如下方式察看搜索结果: "
147
+ label: "%{label}:"
148
+ title: "%{document_title} - %{application_name}"
149
+ sort:
150
+ label: 按 %{field} 排序
151
+ label_html: <span class="d-none d-sm-inline">按 %{field} </span>排序
152
+ submit: 排序
153
+ start_over: 重新开始
229
154
  view:
230
- list: "列表"
231
-
232
- entry_name:
233
- default: '条目'
234
- grouped:
235
- default: '分组结果'
236
-
237
- did_you_mean: '你是要输入: %{options} 吗?'
238
-
239
- main:
155
+ list: 列表
156
+ view_title: '以如下方式察看搜索结果: '
157
+ zero_results:
158
+ modify_search: 请更改你的搜索条件
159
+ search_everything: 试一试搜索所有记录
160
+ search_fields: 你在搜索如下字段 %{search_fields}
161
+ title: 未找到任何结果
162
+ use_fewer_keywords: 使用更少的搜索条件,使用左边的链接来筛选搜索结果。
163
+ search_history:
164
+ clear:
165
+ action_confirm: 清除搜索历史?
166
+ action_title: 清除搜索历史
167
+ failure: 清除搜索历史时出错。
168
+ success: 已经清除搜索历史。
169
+ forget: 去除
170
+ no_history: 你没有任何搜索历史
171
+ page_title: 搜索历史 - %{application_name}
172
+ recent: 你最近搜索历史
173
+ save: 保存
174
+ title: ''
175
+ skip_links:
176
+ first_result: 转到第一个搜索结果
177
+ label: 跳过链接
178
+ main_content: 转到主要内容
179
+ search_field: 转到搜索
180
+ sms:
181
+ errors:
182
+ carrier:
183
+ blank: 你必须选择一个运营商
184
+ invalid: 你必须输入一个运营商
185
+ to:
186
+ blank: 请输入接收人电话号码才能发送短信
187
+ invalid: 请输入10位正确电话号码
188
+ form:
189
+ carrier: 运营商
190
+ carrier_prompt: 请选择运营商
191
+ submit: 发送
192
+ title: 通过短信发送
193
+ to: '电话号码:'
194
+ success: 已发送短信
195
+ text:
196
+ url: '链接: %{url}'
197
+ tools:
198
+ citation: 引用
199
+ clear: 清除
200
+ email: 电子邮件
201
+ sms: 发送短信
202
+ title: 工具
203
+ welcome: 欢迎!
204
+ views:
205
+ pagination:
240
206
  aria:
241
- main_container: '主要内容'
207
+ container_label: 分页链接
208
+ current_page: 当前页面,页面%{page}
209
+ go_to_first_page: 转到第一页
210
+ go_to_last_page: 转到最后一页
211
+ go_to_next_page: 转到下一页
212
+ go_to_page: 前往页面%{page}
213
+ go_to_previous_page: 转到上一页
214
+ first: "&laquo; 首页"
215
+ last: 末页 &raquo;
216
+ next: 下一页 &raquo;
217
+ previous: "&laquo; 上一页"
218
+ truncate: "…"
219
+ pagination_compact:
220
+ next: 下一页 &raquo;
221
+ previous: "&laquo; 上一页"
data/config/routes.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  Blacklight::Engine.routes.draw do
3
- get "search_history", to: "search_history#index", as: "search_history"
4
- delete "search_history/clear", to: "search_history#clear", as: "clear_search_history"
4
+ get "search_history", to: "search_history#index", as: "search_history"
5
+ delete "search_history/clear", to: "search_history#clear", as: "clear_search_history"
5
6
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  class CreateSearches < ActiveRecord::Migration[4.2]
3
4
  def self.up
4
5
  create_table :searches do |t|
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  class CreateBookmarks < ActiveRecord::Migration[4.2]
3
4
  def self.up
4
5
  create_table :bookmarks do |t|
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  class AddPolymorphicTypeToBookmarks < ActiveRecord::Migration[4.2]
3
4
  def change
4
5
  add_column(:bookmarks, :document_type, :string) unless Bookmark.connection.column_exists? :bookmarks, :document_type
data/docker-compose.yml CHANGED
@@ -17,6 +17,7 @@ services:
17
17
  environment:
18
18
  - SOLR_URL # Set via environment variable or use default defined in .env file
19
19
  - RAILS_VERSION # Set via environment variable or use default defined in .env file
20
+ - VIEW_COMPONENT_VERSION # Set via environment variable or use default defined in .env file
20
21
  - SOLR_ENV=docker-compose
21
22
  - ENGINE_CART_RAILS_OPTIONS=--skip-git --skip-listen --skip-spring --skip-keeps --skip-action-cable --skip-coffee --skip-test --skip-solr
22
23
 
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  # Base class for Blacklight repository adapters
4
5
  class AbstractRepository
@@ -28,12 +28,12 @@ module Blacklight
28
28
  return config if config == true || config == false
29
29
 
30
30
  if_value = !config.respond_to?(:if) ||
31
- config.if.nil? ||
32
- evaluate_configuration_conditional(config.if, config, *args)
31
+ config.if.nil? ||
32
+ evaluate_configuration_conditional(config.if, config, *args)
33
33
 
34
34
  unless_value = !config.respond_to?(:unless) ||
35
- config.unless.nil? ||
36
- !evaluate_configuration_conditional(config.unless, config, *args)
35
+ config.unless.nil? ||
36
+ !evaluate_configuration_conditional(config.unless, config, *args)
37
37
 
38
38
  if_value && unless_value
39
39
  end
@@ -1,6 +1,13 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  class Configuration::DisplayField < Blacklight::Configuration::Field
5
+ def initialize(*args, **kwargs, &block)
6
+ super
7
+
8
+ self.presenter ||= Blacklight::FieldPresenter
9
+ self.component ||= Blacklight::MetadataFieldComponent
10
+ end
4
11
  ##
5
12
  # The following is a non-exhaustive list of display field config parameters that are used
6
13
  # by Blacklight directly. Application-specific code or plugins may add or replace
@@ -33,18 +40,9 @@ module Blacklight
33
40
  # Default rendering pipeline:
34
41
  # @!attribute link_to_facet
35
42
  # @return [Boolean]
36
- # @!attribute link_to_search
37
- # @deprecated use link_to_facet instead.
38
- # @return [Boolean]
39
43
  # @!attribute itemprop
40
44
  # @return [String]
41
45
  # @!attribute separator_options
42
46
  # @return [Hash]
43
-
44
- # @param [Blacklight::Configuration] _blacklight_config
45
- def normalize! _blacklight_config = nil
46
- super
47
- self.presenter ||= Blacklight::FieldPresenter
48
- end
49
47
  end
50
48
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  class Configuration::FacetField < Blacklight::Configuration::Field
4
5
  ##
@@ -19,9 +20,6 @@ module Blacklight
19
20
  # @return [Symbol|Hash] the i18n localization option for a date or time value; used as the second parameter for the I18n.l method
20
21
  # @!attribute link_to_facet
21
22
  # @return [Boolean]
22
- # @!attribute link_to_search
23
- # @deprecated use link_to_facet instead.
24
- # @return [Boolean]
25
23
  # @!attribute helper_method
26
24
  # @return [Symbol] the name of a helper method used to display the facet's value to the user; it receives the facet value.
27
25
  # @!attribute url_method
@@ -67,22 +65,20 @@ module Blacklight
67
65
  # @!attribute partial
68
66
  # @return [String] Rails view partial used to render the facet field
69
67
 
70
- extend Deprecation
71
-
68
+ # rubocop:disable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
72
69
  def normalize! blacklight_config = nil
73
70
  query.stringify_keys! if query
74
71
 
72
+ normalize_pivot_config! if pivot
75
73
  self.collapse = true if collapse.nil?
76
74
  self.show = true if show.nil?
77
75
  self.if = show if self.if.nil?
78
76
  self.index_range = 'A'..'Z' if index_range == true
79
77
  self.presenter ||= Blacklight::FacetFieldPresenter
80
-
81
- if link_to_search
82
- Deprecation.warn(Blacklight::Configuration::FacetField, '`link_to_search:` is deprecated, use `link_to_facet:` instead')
83
- self.link_to_facet = link_to_search if link_to_facet.nil?
84
- end
85
-
78
+ self.item_presenter ||= Blacklight::FacetItemPresenter
79
+ self.component = Blacklight::FacetFieldListComponent if component.nil? || component == true
80
+ self.advanced_search_component ||= Blacklight::FacetFieldCheckboxesComponent
81
+ self.item_component ||= Blacklight::FacetItemComponent
86
82
  super
87
83
 
88
84
  if single && tag.blank? && ex.blank?
@@ -92,5 +88,15 @@ module Blacklight
92
88
 
93
89
  self
94
90
  end
91
+ # rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
92
+
93
+ private
94
+
95
+ def normalize_pivot_config!
96
+ self.item_presenter ||= Blacklight::FacetItemPivotPresenter
97
+ self.item_component ||= Blacklight::FacetItemPivotComponent
98
+ self.filter_class ||= Blacklight::SearchState::PivotFilterField
99
+ self.filter_query_builder ||= Blacklight::SearchState::PivotFilterField::QueryBuilder
100
+ end
95
101
  end
96
102
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  class Configuration::Field < OpenStructWithHashAccess
4
5
  # @!attribute field
@@ -1,12 +1,11 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  class Configuration
4
5
  # This mixin provides Blacklight::Configuration with generic
5
6
  # solr fields configuration
6
7
  module Fields
7
8
  extend ActiveSupport::Concern
8
- extend Deprecation
9
- self.deprecation_horizon = 'blacklight version 8.0.0'
10
9
 
11
10
  class_methods do
12
11
  # Add a configuration block for a collection of solr fields
@@ -84,20 +83,20 @@ module Blacklight
84
83
  #
85
84
  def add_blacklight_field config_key, *args, &block
86
85
  field_config = case args.first
87
- when String
88
- field_config_from_key_and_hash(config_key, *args)
89
- when Symbol
90
- args[0] = args[0].to_s
91
- field_config_from_key_and_hash(config_key, *args)
92
- when Array
93
- field_config_from_array(config_key, *args, &block)
94
- return # we've iterated over the array above.
95
- else
96
- field_config_from_field_or_hash(config_key, *args)
86
+ when String
87
+ field_config_from_key_and_hash(config_key, *args)
88
+ when Symbol
89
+ args[0] = args[0].to_s
90
+ field_config_from_key_and_hash(config_key, *args)
91
+ when Array
92
+ field_config_from_array(config_key, *args, &block)
93
+ return # we've iterated over the array above.
94
+ else
95
+ field_config_from_field_or_hash(config_key, *args)
97
96
  end
98
97
 
99
98
  if (field_config.field || field_config.key).to_s =~ /\*/
100
- field_config.match = Regexp.new("^" + (field_config.field || field_config.key).to_s.gsub('*', '.+') + "$")
99
+ field_config.match = Regexp.new("^#{(field_config.field || field_config.key).to_s.gsub('*', '.+')}$")
101
100
  end
102
101
 
103
102
  # look up any dynamic fields
@@ -155,8 +154,6 @@ module Blacklight
155
154
 
156
155
  @table[:reflected_fields] || {}
157
156
  end
158
- alias luke_fields reflected_fields
159
- deprecation_deprecate luke_fields: 'use reflected_fields instead'
160
157
 
161
158
  # Add a solr field by a solr field name and hash
162
159
  def field_config_from_key_and_hash config_key, field_name, field_or_hash = {}
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Blacklight
3
4
  class Configuration::IndexField < Blacklight::Configuration::DisplayField
4
5
  end