blacklight 6.14.0 → 7.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 (422) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.npmignore +23 -0
  4. data/.rubocop.yml +40 -16
  5. data/.rubocop_todo.yml +479 -375
  6. data/.solr_wrapper.yml +9 -2
  7. data/.travis.yml +27 -20
  8. data/Gemfile +3 -1
  9. data/README.md +22 -5
  10. data/Rakefile +3 -2
  11. data/VERSION +1 -1
  12. data/Vagrantfile +2 -0
  13. data/app/assets/images/blacklight/list.svg +1 -0
  14. data/app/assets/images/blacklight/search.svg +1 -0
  15. data/app/assets/javascripts/blacklight/blacklight.js +497 -57
  16. data/app/assets/stylesheets/blacklight/_balanced_list.scss +7 -12
  17. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +18 -15
  18. data/app/assets/stylesheets/blacklight/_bookmark.scss +1 -13
  19. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +27 -0
  20. data/app/assets/stylesheets/blacklight/_constraints.scss +17 -25
  21. data/app/assets/stylesheets/blacklight/_controls.scss +8 -16
  22. data/app/assets/stylesheets/blacklight/_facets.scss +64 -93
  23. data/app/assets/stylesheets/blacklight/_header.scss +35 -48
  24. data/app/assets/stylesheets/blacklight/_icons.scss +35 -0
  25. data/app/assets/stylesheets/blacklight/_layout.scss +0 -10
  26. data/app/assets/stylesheets/blacklight/_mixins.scss +15 -0
  27. data/app/assets/stylesheets/blacklight/_modal.scss +9 -17
  28. data/app/assets/stylesheets/blacklight/_pagination.scss +2 -17
  29. data/app/assets/stylesheets/blacklight/_search_form.scss +7 -0
  30. data/app/assets/stylesheets/blacklight/_search_history.scss +5 -13
  31. data/app/assets/stylesheets/blacklight/_search_results.scss +9 -8
  32. data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +1 -2
  33. data/app/assets/stylesheets/blacklight/blacklight.scss +1 -1
  34. data/app/builders/blacklight/action_builder.rb +57 -0
  35. data/app/controllers/bookmarks_controller.rb +2 -2
  36. data/app/controllers/catalog_controller.rb +2 -2
  37. data/app/controllers/concerns/blacklight/base.rb +0 -33
  38. data/app/controllers/concerns/blacklight/bookmarks.rb +36 -33
  39. data/app/controllers/concerns/blacklight/catalog.rb +266 -210
  40. data/app/controllers/concerns/blacklight/controller.rb +111 -126
  41. data/app/controllers/concerns/blacklight/default_component_configuration.rb +12 -43
  42. data/app/controllers/concerns/blacklight/facet.rb +3 -0
  43. data/app/controllers/concerns/blacklight/search_context.rb +16 -14
  44. data/app/controllers/concerns/blacklight/search_fields.rb +4 -14
  45. data/app/controllers/concerns/blacklight/search_history.rb +1 -6
  46. data/app/controllers/concerns/blacklight/token_based_user.rb +24 -9
  47. data/app/helpers/blacklight/blacklight_helper_behavior.rb +39 -119
  48. data/app/helpers/blacklight/catalog_helper_behavior.rb +94 -88
  49. data/app/helpers/blacklight/component_helper_behavior.rb +21 -19
  50. data/app/helpers/blacklight/configuration_helper_behavior.rb +30 -57
  51. data/app/helpers/blacklight/facets_helper_behavior.rb +55 -51
  52. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +9 -11
  53. data/app/helpers/blacklight/icon_helper_behavior.rb +18 -0
  54. data/app/helpers/blacklight/layout_helper_behavior.rb +3 -3
  55. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +8 -6
  56. data/app/helpers/blacklight/render_partials_helper_behavior.rb +195 -0
  57. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +19 -11
  58. data/app/helpers/blacklight/suggest_helper_behavior.rb +1 -0
  59. data/app/helpers/blacklight/url_helper_behavior.rb +50 -41
  60. data/app/{assets/javascripts → javascript}/blacklight/autocomplete.js +3 -2
  61. data/app/javascript/blacklight/bookmark_toggle.js +25 -0
  62. data/app/javascript/blacklight/checkbox_submit.js +134 -0
  63. data/app/{assets/javascripts → javascript}/blacklight/collapsable.js +1 -1
  64. data/app/{assets/javascripts → javascript}/blacklight/core.js +10 -8
  65. data/app/{assets/javascripts → javascript}/blacklight/facet_load.js +6 -6
  66. data/app/{assets/javascripts/blacklight/ajax_modal.js → javascript/blacklight/modal.js} +62 -64
  67. data/app/{assets/javascripts → javascript}/blacklight/search_context.js +10 -3
  68. data/app/models/blacklight/facet_paginator.rb +3 -3
  69. data/app/models/blacklight/icon.rb +56 -0
  70. data/app/models/blacklight/solr/facet_paginator.rb +3 -3
  71. data/app/models/blacklight/suggest_search.rb +4 -15
  72. data/app/models/bookmark.rb +5 -10
  73. data/app/models/concerns/blacklight/configurable.rb +13 -13
  74. data/app/models/concerns/blacklight/document/active_model_shim.rb +13 -11
  75. data/app/models/concerns/blacklight/document/cache_key.rb +1 -1
  76. data/app/models/concerns/blacklight/document/dublin_core.rb +2 -2
  77. data/app/models/concerns/blacklight/document/email.rb +1 -1
  78. data/app/models/concerns/blacklight/document/extensions.rb +5 -5
  79. data/app/models/concerns/blacklight/document/semantic_fields.rb +9 -9
  80. data/app/models/concerns/blacklight/document/sms.rb +1 -1
  81. data/app/models/concerns/blacklight/document.rb +26 -40
  82. data/app/models/concerns/blacklight/solr/document.rb +8 -8
  83. data/app/models/concerns/blacklight/suggest/response.rb +5 -3
  84. data/app/models/concerns/blacklight/user.rb +7 -6
  85. data/app/models/record_mailer.rb +5 -6
  86. data/app/models/search.rb +5 -7
  87. data/app/presenters/blacklight/document_presenter.rb +25 -140
  88. data/app/presenters/blacklight/field_presenter.rb +7 -5
  89. data/app/presenters/blacklight/index_presenter.rb +41 -58
  90. data/app/presenters/blacklight/json_presenter.rb +10 -14
  91. data/app/presenters/blacklight/link_alternate_presenter.rb +3 -1
  92. data/app/presenters/blacklight/rendering/abstract_step.rb +7 -5
  93. data/app/presenters/blacklight/rendering/helper_method.rb +10 -8
  94. data/app/presenters/blacklight/rendering/join.rb +5 -3
  95. data/app/presenters/blacklight/rendering/link_to_facet.rb +23 -19
  96. data/app/presenters/blacklight/rendering/microdata.rb +6 -3
  97. data/app/presenters/blacklight/rendering/pipeline.rb +7 -5
  98. data/app/presenters/blacklight/rendering/terminator.rb +2 -0
  99. data/app/presenters/blacklight/search_bar_presenter.rb +39 -0
  100. data/app/presenters/blacklight/show_presenter.rb +26 -63
  101. data/app/presenters/blacklight/thumbnail_presenter.rb +74 -0
  102. data/app/services/blacklight/document_factory.rb +13 -0
  103. data/app/services/blacklight/field_retriever.rb +26 -24
  104. data/app/services/blacklight/search_service.rb +152 -0
  105. data/app/values/blacklight/types.rb +31 -0
  106. data/app/views/blacklight/nav/_bookmark.html.erb +2 -2
  107. data/app/views/blacklight/nav/_search_history.html.erb +1 -1
  108. data/app/views/bookmarks/_tools.html.erb +2 -2
  109. data/app/views/bookmarks/index.html.erb +12 -13
  110. data/app/views/catalog/_bookmark_control.html.erb +26 -10
  111. data/app/views/catalog/_citation.html.erb +4 -4
  112. data/app/views/catalog/_constraints.html.erb +6 -7
  113. data/app/views/catalog/_constraints_element.html.erb +6 -6
  114. data/app/views/catalog/_did_you_mean.html.erb +1 -1
  115. data/app/views/catalog/{_document_default.atom.builder → _document.atom.builder} +19 -18
  116. data/app/views/catalog/_document.html.erb +5 -3
  117. data/app/views/catalog/{_document_default.rss.builder → _document.rss.builder} +2 -0
  118. data/app/views/catalog/_document_action.html.erb +2 -1
  119. data/app/views/catalog/_email_form.html.erb +8 -4
  120. data/app/views/catalog/_facet_index_navigation.html.erb +5 -4
  121. data/app/views/catalog/_facet_layout.html.erb +6 -10
  122. data/app/views/catalog/_facet_limit.html.erb +3 -2
  123. data/app/views/catalog/_facet_pagination.html.erb +8 -8
  124. data/app/views/catalog/_facet_pivot.html.erb +2 -2
  125. data/app/views/catalog/_facets.html.erb +9 -12
  126. data/app/views/catalog/_field.json.jbuilder +10 -0
  127. data/app/views/catalog/{_group_default.html.erb → _group.html.erb} +1 -1
  128. data/app/views/catalog/_home_text.html.erb +32 -36
  129. data/app/views/catalog/_index.html.erb +10 -0
  130. data/app/views/catalog/{_index_header_default.html.erb → _index_header.html.erb} +3 -3
  131. data/app/views/catalog/_per_page_widget.html.erb +6 -7
  132. data/app/views/catalog/_previous_next_doc.html.erb +6 -14
  133. data/app/views/catalog/_results_pagination.html.erb +2 -2
  134. data/app/views/catalog/_search_form.html.erb +12 -8
  135. data/app/views/catalog/_search_header.html.erb +0 -3
  136. data/app/views/catalog/_search_results.html.erb +6 -2
  137. data/app/views/catalog/_show.html.erb +8 -0
  138. data/app/views/catalog/_show_main_content.html.erb +4 -4
  139. data/app/views/catalog/_show_more_like_this.html.erb +1 -1
  140. data/app/views/catalog/_show_sidebar.html.erb +3 -3
  141. data/app/views/catalog/_show_tools.html.erb +10 -12
  142. data/app/views/catalog/_sms_form.html.erb +8 -4
  143. data/app/views/catalog/_sort_and_per_page.html.erb +3 -3
  144. data/app/views/catalog/_sort_widget.html.erb +7 -7
  145. data/app/views/catalog/_thumbnail.html.erb +5 -0
  146. data/app/views/catalog/_view_type_group.html.erb +2 -2
  147. data/app/views/catalog/_zero_results.html.erb +1 -1
  148. data/app/views/catalog/citation.js.erb +4 -2
  149. data/app/views/catalog/email.html.erb +5 -3
  150. data/app/views/catalog/email_success.html.erb +12 -8
  151. data/app/views/catalog/facet.html.erb +10 -8
  152. data/app/views/catalog/facet.json.jbuilder +2 -0
  153. data/app/views/catalog/index.atom.builder +13 -16
  154. data/app/views/catalog/index.html.erb +9 -11
  155. data/app/views/catalog/index.json.jbuilder +84 -3
  156. data/app/views/catalog/index.rss.builder +7 -5
  157. data/app/views/catalog/opensearch.xml.builder +12 -10
  158. data/app/views/catalog/show.html.erb +11 -6
  159. data/app/views/catalog/show.json.jbuilder +21 -0
  160. data/app/views/catalog/sms.html.erb +3 -1
  161. data/app/views/catalog/sms_success.html.erb +12 -8
  162. data/app/views/kaminari/blacklight/_first_page.html.erb +2 -2
  163. data/app/views/kaminari/blacklight/_gap.html.erb +2 -2
  164. data/app/views/kaminari/blacklight/_last_page.html.erb +2 -2
  165. data/app/views/kaminari/blacklight/_next_page.html.erb +5 -5
  166. data/app/views/kaminari/blacklight/_page.html.erb +5 -3
  167. data/app/views/kaminari/blacklight/_prev_page.html.erb +4 -4
  168. data/app/views/kaminari/blacklight_compact/_paginator.html.erb +4 -4
  169. data/app/views/layouts/blacklight/base.html.erb +35 -0
  170. data/app/views/layouts/blacklight.html.erb +14 -41
  171. data/app/views/layouts/catalog_result.html.erb +11 -0
  172. data/app/views/search_history/index.html.erb +16 -21
  173. data/app/views/shared/_header_navbar.html.erb +8 -13
  174. data/app/views/shared/_modal.html.erb +6 -0
  175. data/app/views/shared/_user_util_links.html.erb +22 -0
  176. data/blacklight.gemspec +10 -11
  177. data/config/i18n-tasks.yml +17 -0
  178. data/config/locales/blacklight.de.yml +71 -82
  179. data/config/locales/blacklight.en.yml +15 -27
  180. data/config/locales/blacklight.es.yml +14 -26
  181. data/config/locales/blacklight.fr.yml +16 -33
  182. data/config/locales/blacklight.hu.yml +212 -0
  183. data/config/locales/blacklight.it.yml +15 -26
  184. data/config/locales/blacklight.nl.yml +212 -0
  185. data/config/locales/blacklight.pt-BR.yml +24 -29
  186. data/config/locales/blacklight.sq.yml +4 -28
  187. data/config/locales/blacklight.zh.yml +3 -25
  188. data/config/routes.rb +2 -10
  189. data/db/migrate/20140202020202_create_bookmarks.rb +0 -1
  190. data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -1
  191. data/lib/blacklight/abstract_repository.rb +22 -10
  192. data/lib/blacklight/configuration/context.rb +12 -1
  193. data/lib/blacklight/configuration/facet_field.rb +16 -9
  194. data/lib/blacklight/configuration/field.rb +32 -3
  195. data/lib/blacklight/configuration/fields.rb +61 -58
  196. data/lib/blacklight/configuration/null_field.rb +2 -0
  197. data/lib/blacklight/configuration/search_field.rb +2 -2
  198. data/lib/blacklight/configuration/sort_field.rb +2 -2
  199. data/lib/blacklight/configuration/view_config.rb +4 -0
  200. data/lib/blacklight/configuration.rb +101 -88
  201. data/lib/blacklight/engine.rb +11 -7
  202. data/lib/blacklight/exceptions.rb +4 -7
  203. data/lib/blacklight/{utils.rb → nested_open_struct_with_hash_access.rb} +9 -81
  204. data/lib/blacklight/open_struct_with_hash_access.rb +49 -0
  205. data/lib/blacklight/parameters.rb +1 -1
  206. data/lib/blacklight/routes/exportable.rb +1 -3
  207. data/lib/blacklight/routes/searchable.rb +3 -3
  208. data/lib/blacklight/runtime_registry.rb +2 -0
  209. data/lib/blacklight/search_builder.rb +28 -35
  210. data/lib/blacklight/search_state.rb +10 -8
  211. data/lib/blacklight/solr/repository.rb +40 -6
  212. data/lib/blacklight/solr/request.rb +1 -1
  213. data/lib/blacklight/solr/response/facets.rb +29 -31
  214. data/lib/blacklight/solr/response/group.rb +3 -3
  215. data/lib/blacklight/solr/response/group_response.rb +1 -1
  216. data/lib/blacklight/solr/response/more_like_this.rb +2 -2
  217. data/lib/blacklight/solr/response/response.rb +2 -2
  218. data/lib/blacklight/solr/response/spelling.rb +4 -3
  219. data/lib/blacklight/solr/response.rb +29 -30
  220. data/lib/blacklight/solr/search_builder_behavior.rb +25 -29
  221. data/lib/blacklight/version.rb +1 -1
  222. data/lib/blacklight.rb +10 -8
  223. data/lib/generators/blacklight/assets_generator.rb +18 -12
  224. data/lib/generators/blacklight/controller_generator.rb +4 -5
  225. data/lib/generators/blacklight/document_generator.rb +1 -1
  226. data/lib/generators/blacklight/install_generator.rb +18 -28
  227. data/lib/generators/blacklight/search_builder_generator.rb +1 -1
  228. data/lib/generators/blacklight/{solr5_generator.rb → solr_generator.rb} +12 -6
  229. data/lib/generators/blacklight/templates/.solr_wrapper.yml +5 -0
  230. data/lib/generators/blacklight/templates/alternate_controller.rb +4 -4
  231. data/lib/generators/blacklight/templates/blacklight.scss +0 -2
  232. data/lib/generators/blacklight/templates/catalog_controller.rb +59 -49
  233. data/lib/generators/blacklight/templates/config/blacklight.yml +1 -13
  234. data/lib/generators/blacklight/templates/solr/conf/schema.xml +388 -0
  235. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +195 -0
  236. data/lib/generators/blacklight/test_support_generator.rb +10 -10
  237. data/lib/generators/blacklight/user_generator.rb +5 -6
  238. data/lib/railties/blacklight.rake +17 -21
  239. data/package-lock.json +2195 -0
  240. data/package.json +29 -0
  241. data/spec/controllers/alternate_controller_spec.rb +5 -4
  242. data/spec/controllers/application_controller_spec.rb +1 -5
  243. data/spec/controllers/blacklight/base_spec.rb +6 -3
  244. data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +11 -7
  245. data/spec/controllers/blacklight/facet_spec.rb +1 -2
  246. data/spec/controllers/blacklight/search_fields_spec.rb +25 -34
  247. data/spec/controllers/bookmarks_controller_spec.rb +46 -11
  248. data/spec/controllers/catalog_controller_spec.rb +334 -161
  249. data/spec/controllers/search_history_controller_spec.rb +6 -6
  250. data/spec/features/alternate_controller_spec.rb +4 -4
  251. data/spec/features/autocomplete_spec.rb +4 -2
  252. data/spec/features/bookmarks_spec.rb +10 -10
  253. data/spec/features/did_you_mean_spec.rb +7 -12
  254. data/spec/features/facets_spec.rb +29 -17
  255. data/spec/features/record_view_spec.rb +12 -18
  256. data/spec/features/search_context_spec.rb +6 -7
  257. data/spec/features/search_crawler_spec.rb +3 -5
  258. data/spec/features/search_filters_spec.rb +80 -80
  259. data/spec/features/search_formats_spec.rb +1 -1
  260. data/spec/features/search_history_spec.rb +6 -29
  261. data/spec/features/search_pagination_spec.rb +4 -2
  262. data/spec/features/search_results_spec.rb +14 -12
  263. data/spec/features/search_sort_spec.rb +2 -2
  264. data/spec/features/search_spec.rb +8 -9
  265. data/spec/features/sitelinks_search_box.rb +4 -4
  266. data/{solr → spec/fixtures}/sample_solr_documents.yml +688 -688
  267. data/spec/helpers/{configuration_helper_spec.rb → blacklight/configuration_helper_behavior_spec.rb} +97 -92
  268. data/spec/helpers/{facets_helper_spec.rb → blacklight/facets_helper_behavior_spec.rb} +72 -67
  269. data/spec/helpers/{hash_as_hidden_fields_spec.rb → blacklight/hash_as_hidden_fields_behavior_spec.rb} +2 -2
  270. data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +10 -0
  271. data/spec/helpers/{layout_helper_spec.rb → blacklight/layout_helper_behavior_spec.rb} +5 -5
  272. data/spec/helpers/{render_constraints_helper_spec.rb → blacklight/render_constraints_helper_behavior_spec.rb} +10 -6
  273. data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +92 -0
  274. data/spec/helpers/{search_history_constraints_helper_spec.rb → blacklight/search_history_constraints_helper_behavior_spec.rb} +29 -30
  275. data/spec/helpers/{suggest_helper_spec.rb → blacklight/suggest_helper_behavior_spec.rb} +9 -2
  276. data/spec/helpers/{url_helper_spec.rb → blacklight/url_helper_behavior_spec.rb} +56 -54
  277. data/spec/helpers/blacklight_helper_spec.rb +65 -150
  278. data/spec/helpers/catalog_helper_spec.rb +80 -96
  279. data/spec/i18n_spec.rb +18 -0
  280. data/spec/integration/generators/blacklight/{solr5_generator_spec.rb → solr_generator_spec.rb} +21 -13
  281. data/spec/lib/blacklight/configuration/facet_field_spec.rb +13 -0
  282. data/spec/lib/blacklight/configuration/field_spec.rb +15 -0
  283. data/spec/lib/blacklight/nested_open_struct_with_hash_access_spec.rb +17 -0
  284. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +148 -0
  285. data/spec/lib/blacklight/parameters_spec.rb +4 -2
  286. data/spec/lib/blacklight/search_state_spec.rb +53 -36
  287. data/spec/lib/blacklight_spec.rb +14 -15
  288. data/spec/lib/tasks/blacklight_task_spec.rb +4 -6
  289. data/spec/models/blacklight/configurable_spec.rb +24 -27
  290. data/spec/models/blacklight/configuration/context_spec.rb +9 -10
  291. data/spec/models/blacklight/configuration_spec.rb +248 -223
  292. data/spec/models/blacklight/document/active_model_shim_spec.rb +15 -6
  293. data/spec/models/blacklight/document/cache_key_spec.rb +9 -2
  294. data/spec/models/blacklight/document/dublin_core_spec.rb +17 -20
  295. data/spec/models/blacklight/document/email_spec.rb +10 -10
  296. data/spec/models/blacklight/document/sms_spec.rb +10 -10
  297. data/spec/models/blacklight/document_spec.rb +10 -22
  298. data/spec/models/blacklight/facet_paginator_spec.rb +40 -30
  299. data/spec/models/blacklight/icon_spec.rb +44 -0
  300. data/spec/models/blacklight/search_builder_spec.rb +41 -26
  301. data/spec/models/blacklight/solr/document_spec.rb +224 -216
  302. data/spec/models/blacklight/solr/facet_paginator_spec.rb +6 -4
  303. data/spec/models/blacklight/solr/repository_spec.rb +61 -46
  304. data/spec/models/blacklight/solr/request_spec.rb +17 -18
  305. data/spec/models/blacklight/solr/response/facets_spec.rb +58 -58
  306. data/spec/models/blacklight/solr/response/group_response_spec.rb +16 -22
  307. data/spec/models/blacklight/solr/response/group_spec.rb +18 -25
  308. data/spec/models/blacklight/solr/response_spec.rb +56 -55
  309. data/spec/models/blacklight/solr/search_builder_spec.rb +150 -164
  310. data/spec/models/blacklight/suggest/response_spec.rb +6 -4
  311. data/spec/models/blacklight/suggest_search_spec.rb +9 -16
  312. data/spec/models/blacklight/user_spec.rb +9 -11
  313. data/spec/models/bookmark_spec.rb +7 -6
  314. data/spec/models/record_mailer_spec.rb +23 -21
  315. data/spec/models/search_spec.rb +19 -18
  316. data/spec/models/solr_document_spec.rb +33 -5
  317. data/spec/presenters/blacklight/document_presenter_spec.rb +86 -0
  318. data/spec/presenters/blacklight/index_presenter_spec.rb +186 -0
  319. data/spec/presenters/blacklight/json_presenter_spec.rb +59 -0
  320. data/spec/presenters/blacklight/link_alternate_presenter_spec.rb +3 -0
  321. data/spec/presenters/blacklight/search_bar_presenter_spec.rb +79 -0
  322. data/spec/presenters/blacklight/show_presenter_spec.rb +333 -0
  323. data/spec/presenters/pipeline_spec.rb +18 -11
  324. data/spec/presenters/thumbnail_presenter_spec.rb +174 -0
  325. data/spec/routing/catalog_routing_spec.rb +13 -15
  326. data/spec/services/blacklight/search_service_spec.rb +488 -0
  327. data/spec/spec_helper.rb +20 -19
  328. data/spec/support/features/session_helpers.rb +4 -4
  329. data/spec/support/features.rb +1 -1
  330. data/spec/test_app_templates/Gemfile.extra +2 -4
  331. data/spec/test_app_templates/lib/generators/test_app_generator.rb +12 -13
  332. data/spec/views/catalog/_constraints.html.erb_spec.rb +3 -6
  333. data/spec/views/catalog/_constraints_element.html.erb_spec.rb +17 -13
  334. data/spec/views/catalog/_document.html.erb_spec.rb +11 -11
  335. data/spec/views/catalog/_document_list.html.erb_spec.rb +2 -1
  336. data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +5 -5
  337. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +6 -6
  338. data/spec/views/catalog/_facets.html.erb_spec.rb +10 -12
  339. data/spec/views/catalog/{_index_default.erb_spec.rb → _index.html.erb_spec.rb} +14 -15
  340. data/spec/views/catalog/{_index_header_default.html.erb_spec.rb → _index_header.html.erb_spec.rb} +6 -9
  341. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +7 -30
  342. data/spec/views/catalog/_search_header.erb_spec.rb +1 -3
  343. data/spec/views/catalog/{_show_default.erb_spec.rb → _show.html.erb_spec.rb} +13 -14
  344. data/spec/views/catalog/_show_sidebar.erb_spec.rb +6 -9
  345. data/spec/views/catalog/_show_tools.html.erb_spec.rb +5 -5
  346. data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +1 -2
  347. data/spec/views/catalog/_sort_widget.html.erb_spec.rb +3 -1
  348. data/spec/views/catalog/{_thumbnail_default.erb_spec.rb → _thumbnail.html.erb_spec.rb} +7 -9
  349. data/spec/views/catalog/_view_type_group.html.erb_spec.rb +12 -10
  350. data/spec/views/catalog/email_success.html.erb_spec.rb +8 -0
  351. data/spec/views/catalog/facet.html.erb_spec.rb +4 -3
  352. data/spec/views/catalog/facet.json.jbuilder_spec.rb +3 -2
  353. data/spec/views/catalog/index.atom.builder_spec.rb +11 -6
  354. data/spec/views/catalog/index.html.erb_spec.rb +6 -8
  355. data/spec/views/catalog/index.json.jbuilder_spec.rb +119 -26
  356. data/spec/views/catalog/opensearch.xml.builder_spec.rb +1 -1
  357. data/spec/views/catalog/show.html.erb_spec.rb +8 -8
  358. data/spec/views/catalog/show.json.jbuilder_spec.rb +40 -0
  359. data/spec/views/catalog/sms_success.html.erb_spec.rb +8 -0
  360. data/spec/views/{_user_util_links.html.erb_spec.rb → shared/_user_util_links.html.erb_spec.rb} +4 -7
  361. data/tasks/blacklight.rake +10 -8
  362. data/template.demo.rb +3 -11
  363. metadata +188 -189
  364. data/app/assets/javascripts/blacklight/autofocus.js +0 -16
  365. data/app/assets/javascripts/blacklight/bookmark_toggle.js +0 -23
  366. data/app/assets/javascripts/blacklight/checkbox_submit.js +0 -135
  367. data/app/controllers/concerns/blacklight/request_builders.rb +0 -77
  368. data/app/controllers/concerns/blacklight/saved_searches.rb +0 -70
  369. data/app/controllers/concerns/blacklight/search_helper.rb +0 -155
  370. data/app/controllers/concerns/blacklight/suggest.rb +0 -25
  371. data/app/controllers/saved_searches_controller.rb +0 -4
  372. data/app/controllers/suggest_controller.rb +0 -4
  373. data/app/helpers/blacklight/deprecated_url_helper_behavior.rb +0 -57
  374. data/app/helpers/blacklight/render_partials_helper.rb +0 -205
  375. data/app/helpers/blacklight_configuration_helper.rb +0 -4
  376. data/app/helpers/blacklight_url_helper.rb +0 -4
  377. data/app/helpers/component_helper.rb +0 -4
  378. data/app/helpers/facets_helper.rb +0 -4
  379. data/app/helpers/hash_as_hidden_fields_helper.rb +0 -4
  380. data/app/helpers/layout_helper.rb +0 -4
  381. data/app/helpers/render_constraints_helper.rb +0 -4
  382. data/app/helpers/search_history_constraints_helper.rb +0 -4
  383. data/app/helpers/suggest_helper.rb +0 -4
  384. data/app/models/concerns/blacklight/solr/document/more_like_this.rb +0 -6
  385. data/app/views/_user_util_links.html.erb +0 -26
  386. data/app/views/blacklight/nav/_saved_searches.html.erb +0 -1
  387. data/app/views/catalog/_index_default.html.erb +0 -12
  388. data/app/views/catalog/_show_default.html.erb +0 -10
  389. data/app/views/catalog/_thumbnail_default.html.erb +0 -5
  390. data/app/views/saved_searches/index.html.erb +0 -32
  391. data/app/views/shared/_ajax_modal.html.erb +0 -6
  392. data/lib/generators/blacklight/solr4_generator.rb +0 -31
  393. data/lib/generators/blacklight/templates/config/jetty.yml +0 -13
  394. data/solr/conf/schema.xml +0 -629
  395. data/solr/conf/solrconfig.xml +0 -411
  396. data/spec/controllers/blacklight/search_helper_spec.rb +0 -470
  397. data/spec/controllers/saved_searches_controller_spec.rb +0 -32
  398. data/spec/controllers/suggest_controller_spec.rb +0 -17
  399. data/spec/features/saved_searches_spec.rb +0 -47
  400. data/spec/helpers/deprecated_url_helper_behavior_spec.rb +0 -101
  401. data/spec/lib/blacklight/utils_spec.rb +0 -167
  402. data/spec/models/blacklight/solr/document/more_like_this_spec.rb +0 -18
  403. data/spec/presenters/document_presenter_spec.rb +0 -438
  404. data/spec/presenters/index_presenter_spec.rb +0 -173
  405. data/spec/presenters/show_presenter_spec.rb +0 -313
  406. data/spec/support/backport_test.rb +0 -14
  407. /data/app/views/catalog/{_show_header_default.html.erb → _show_header.html.erb} +0 -0
  408. /data/app/views/{_flash_msg.html.erb → shared/_flash_msg.html.erb} +0 -0
  409. /data/{solr → lib/generators/blacklight/templates/solr}/conf/_rest_managed.json +0 -0
  410. /data/{solr → lib/generators/blacklight/templates/solr}/conf/admin-extra.html +0 -0
  411. /data/{solr → lib/generators/blacklight/templates/solr}/conf/elevate.xml +0 -0
  412. /data/{solr → lib/generators/blacklight/templates/solr}/conf/mapping-ISOLatin1Accent.txt +0 -0
  413. /data/{solr → lib/generators/blacklight/templates/solr}/conf/protwords.txt +0 -0
  414. /data/{solr → lib/generators/blacklight/templates/solr}/conf/scripts.conf +0 -0
  415. /data/{solr → lib/generators/blacklight/templates/solr}/conf/spellings.txt +0 -0
  416. /data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords.txt +0 -0
  417. /data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords_en.txt +0 -0
  418. /data/{solr → lib/generators/blacklight/templates/solr}/conf/synonyms.txt +0 -0
  419. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example.xsl +0 -0
  420. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_atom.xsl +0 -0
  421. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_rss.xsl +0 -0
  422. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/luke.xsl +0 -0
@@ -1,19 +1,19 @@
1
- <div class="prev_next_links btn-group pull-left">
2
- <%= link_to_previous_page @pagination, raw(t('views.pagination.previous')), params: search_state.to_h, param_name: blacklight_config.facet_paginator_class.request_keys[:page], class: 'btn btn-link', data: { ajax_modal: "preserve" } do %>
1
+ <div class="prev_next_links btn-group float-md-left">
2
+ <%= link_to_previous_page @pagination, raw(t('views.pagination.previous')), params: search_state.to_h, param_name: blacklight_config.facet_paginator_class.request_keys[:page], class: 'btn btn-link', data: { blacklight_modal: "preserve" } do %>
3
3
  <span class="disabled btn btn-disabled"><%= raw(t('views.pagination.previous')) %></span>
4
4
  <% end %>
5
5
 
6
- <%= link_to_next_page @pagination, raw(t('views.pagination.next')), params: search_state.to_h, param_name: blacklight_config.facet_paginator_class.request_keys[:page], class: 'btn btn-link', data: { ajax_modal: "preserve" } do %>
6
+ <%= link_to_next_page @pagination, raw(t('views.pagination.next')), params: search_state.to_h, param_name: blacklight_config.facet_paginator_class.request_keys[:page], class: 'btn btn-link', data: { blacklight_modal: "preserve" } do %>
7
7
  <span class="disabled btn btn-disabled"><%= raw(t('views.pagination.next')) %></span>
8
8
  <% end %>
9
9
  </div>
10
10
 
11
- <div class="sort_options btn-group pull-right">
11
+ <div class="sort-options btn-group float-md-right">
12
12
  <% if @pagination.sort == 'index' -%>
13
- <span class="active az btn btn-default"><%= t('blacklight.search.facets.sort.index') %></span>
14
- <%= link_to(t('blacklight.search.facets.sort.count'), @pagination.params_for_resort_url('count', search_state.to_h), class: "sort_change numeric btn btn-default", data: { ajax_modal: "preserve" }) %>
13
+ <span class="active az btn btn-outline-secondary"><%= t('blacklight.search.facets.sort.index') %></span>
14
+ <%= link_to(t('blacklight.search.facets.sort.count'), @pagination.params_for_resort_url('count', search_state.to_h), class: "sort_change numeric btn btn-outline-secondary", data: { blacklight_modal: "preserve" }) %>
15
15
  <% elsif @pagination.sort == 'count' -%>
16
- <%= link_to(t('blacklight.search.facets.sort.index'), @pagination.params_for_resort_url('index', search_state.to_h), class: "sort_change az btn btn-default", data: { ajax_modal: "preserve" }) %>
17
- <span class="active numeric btn btn-default"><%= t('blacklight.search.facets.sort.count') %></span>
16
+ <%= link_to(t('blacklight.search.facets.sort.index'), @pagination.params_for_resort_url('index', search_state.to_h), class: "sort_change az btn btn-outline-secondary", data: { blacklight_modal: "preserve" }) %>
17
+ <span class="active numeric btn btn-outline-secondary"><%= t('blacklight.search.facets.sort.count') %></span>
18
18
  <% end -%>
19
19
  </div>
@@ -10,9 +10,9 @@
10
10
  </span>
11
11
 
12
12
  <% unless item.items.blank? %>
13
- <%= render partial: 'facet_pivot', locals: { display_facet: item, field_name: field_name, solr_field: field_name } %>
13
+ <%= render 'facet_pivot', display_facet: item, field_name: field_name %>
14
14
  <% end %>
15
15
  </li>
16
16
  <% end %>
17
17
 
18
- </ul>
18
+ </ul>
@@ -1,21 +1,18 @@
1
1
  <% # main container for facets/limits menu -%>
2
- <% if has_facet_values? %>
3
- <div id="facets" class="facets sidenav">
2
+ <% if has_facet_values? %>
3
+ <div id="facets" class="facets sidenav facets-toggleable-sm">
4
4
 
5
- <div class="top-panel-heading panel-heading">
6
- <button type="button" class="facets-toggle" data-toggle="collapse" data-target="#facet-panel-collapse">
7
- <span class="sr-only">Toggle facets</span>
8
- <span class="icon-bar"></span>
9
- <span class="icon-bar"></span>
10
- <span class="icon-bar"></span>
11
- </button>
12
-
13
- <h2 class='facets-heading'>
5
+ <div class="navbar">
6
+ <h2 class="facets-heading">
14
7
  <%= t('blacklight.search.facets.title') %>
15
8
  </h2>
9
+
10
+ <button class="navbar-toggler navbar-toggler-right" type="button" data-toggle="collapse" data-target="#facet-panel-collapse" aria-controls="facet-panel-collapse" aria-expanded="false" aria-label="Toggle facets">
11
+ <span class="navbar-toggler-icon"></span>
12
+ </button>
16
13
  </div>
17
14
 
18
- <div id="facet-panel-collapse" class="collapse panel-group">
15
+ <div id="facet-panel-collapse" class="facets-collapse collapse">
19
16
  <%= render_facet_partials %>
20
17
  </div>
21
18
  </div>
@@ -0,0 +1,10 @@
1
+ # frozen_string_literal: true
2
+
3
+ json.set!(field_name) do
4
+ json.id "#{document_url}##{field_name}"
5
+ json.type 'document_value'
6
+ json.attributes do
7
+ json.value doc_presenter.field_value(field)
8
+ json.label field.label
9
+ end
10
+ end
@@ -1,7 +1,7 @@
1
1
  <% # container for all groups in index view -%>
2
2
  <div id="groups">
3
3
  <%- @response.groups.each do |g| %>
4
- <h3 class="group-key"><%= g.key %></h3>
4
+ <h2 class="group-key"><%= g.key %></h2>
5
5
  <div class="grouped-documents">
6
6
  <%= render_document_index g.docs %>
7
7
  </div>
@@ -1,48 +1,44 @@
1
- <div class="page-header row">
2
- <h2 class="col-md-8 page-heading"><%= t('blacklight.welcome') %></h2>
3
-
4
- <ul class="nav nav-pills col-md-4">
5
- <li><a href="https://github.com/projectblacklight/blacklight/">Github</a></li>
6
- <li><a href="https://github.com/projectblacklight/blacklight/wiki">Wiki</a></li>
7
- <li><a href="https://github.com/projectblacklight/blacklight/releases/tag/v<%= Blacklight::VERSION %>">Release Notes</a></li>
8
- </ul>
1
+ <div class="jumbotron text-center">
2
+ <h1 class="jumbotron-heading"><%= t('blacklight.welcome') %></h1>
9
3
 
4
+ <p class="lead">Blacklight is a multi-institutional open-source collaboration building a better discovery platform framework.</p>
5
+
6
+ <p>
7
+ <%= link_to 'Read the Documentation', 'https://github.com/projectblacklight/blacklight/wiki', class: 'btn btn-primary' %>
8
+ <%= link_to 'See Examples', 'http://projectblacklight.org', class: 'btn btn-outline-secondary' %>
9
+ </p>
10
10
  </div>
11
11
 
12
12
  <div id="getting-started">
13
- <h3 class='section-heading'>Here&rsquo;s how to get started:</h3>
14
-
15
- <ol>
16
- <li>To modify this text, you need to <a href="http://guides.rubyonrails.org/engines.html#improving-engine-functionality">override the Blacklight-provided view</a>.
17
- You can copy this file, located in the blacklight gem: <br />
18
- <%= Blacklight.root %>/app/views/catalog/_home_text.html.erb <br />
19
- to your own application: <br />
20
- <%= Rails.root %>/app/views/catalog/_home_text.html.erb
21
- </li>
22
- <li><a href="https://github.com/projectblacklight/blacklight/wiki/Indexing-your-data-into-solr">Index your own data</a> into Solr</li>
23
- <li><a href="https://github.com/projectblacklight/blacklight/wiki#blacklight-configuration">Configure Blacklight</a> to match your data and user-experience needs</li>
24
- <li><a href="https://github.com/projectblacklight/blacklight/wiki#support">Get in touch</a> with your comments, questions, and ideas</li>
25
- </ol>
13
+ <h2>Heres how to get started customizing your application:</h2>
14
+
15
+ <p>There are many ways to override specific behaviors and views in Blacklight. Because Blacklight is distributed as a Rails engine-based gem, all customization of Blacklight behavior should be done within your application by overriding Blacklight-provided behaviors with your own.</p>
16
+
17
+ <p>
18
+ <ol>
19
+ <li>To modify this text, you need to <a href="http://guides.rubyonrails.org/engines.html#improving-engine-functionality">override the Blacklight-provided view</a>.
20
+ You can copy this file, located in the blacklight gem: <br />
21
+ <%= Blacklight.root %>/app/views/catalog/_home_text.html.erb <br />
22
+ to your own application: <br />
23
+ <%= Rails.root %>/app/views/catalog/_home_text.html.erb
24
+ </li>
25
+ <li><a href="https://github.com/projectblacklight/blacklight/wiki/Indexing-your-data-into-solr">Index your own data</a> into Solr</li>
26
+ <li><a href="https://github.com/projectblacklight/blacklight/wiki#blacklight-configuration">Configure Blacklight</a> to match your data and user-experience needs</li>
27
+ <li><a href="https://github.com/projectblacklight/blacklight/wiki#support">Get in touch</a> with your comments, questions, and ideas</li>
28
+ </ol>
29
+ </p>
26
30
  </div>
27
31
 
28
32
  <%# This is the same panel shown in the Rails welcome template %>
29
- <div id="about">
30
- <h3 class='section-heading'><a href="/rails/info/properties">About your application&rsquo;s environment</a></h3>
31
- <div id="about-content" class="well" style="display: none"></div>
33
+ <div id="about" class="card">
34
+ <h2 class='card-header collapsed collapse-toggle' data-toggle="collapse" data-target="#about-content"><a href="/rails/info/properties">About your application&rsquo;s environment</a></h2>
35
+ <div id="about-content" class="card-body collapse"></div>
32
36
  </div>
33
37
 
34
38
  <script>
35
- $(function() {
36
- $('#about a').on('click', function(e) {
37
- e.preventDefault();
38
-
39
- if ($('#about-content').html() == "") {
40
- $('#about-content').load($(this).attr("href"), function() {
41
- $('#about-content').show();
42
- });
43
- } else {
44
- $('#about-content').toggle();
45
- }
39
+ Blacklight.onLoad(function() {
40
+ $('#about .card-header').one('click', function() {
41
+ $($(this).data('target')).load($(this).find('a').attr('href'));
46
42
  });
47
43
  });
48
- </script>
44
+ </script>
@@ -0,0 +1,10 @@
1
+ <% doc_presenter = index_presenter(document) %>
2
+ <%# default partial to display solr document fields in catalog index view -%>
3
+ <dl class="document-metadata dl-invert row">
4
+
5
+ <% doc_presenter.fields_to_render.each do |field_name, field| -%>
6
+ <dt class="blacklight-<%= field_name.parameterize %> col-md-3"><%= render_index_field_label document, field: field_name %></dt>
7
+ <dd class="blacklight-<%= field_name.parameterize %> col-md-9"><%= doc_presenter.field_value field %></dd>
8
+ <% end -%>
9
+
10
+ </dl>
@@ -1,5 +1,5 @@
1
1
  <%# header bar for doc items in index view -%>
2
- <div class="documentHeader row">
2
+ <header class="documentHeader row">
3
3
  <%# main title container for doc partial view
4
4
  How many bootstrap columns need to be reserved
5
5
  for bookmarks control depends on size.
@@ -15,8 +15,8 @@
15
15
  <%= t('blacklight.search.documents.counter', counter: counter) %>
16
16
  </span>
17
17
  <% end %>
18
- <%= link_to_document document, document_show_link_field(document), counter: counter %>
18
+ <%= link_to_document document, counter: counter %>
19
19
  </h3>
20
20
 
21
21
  <%= document_actions %>
22
- </div>
22
+ </header>
@@ -1,14 +1,13 @@
1
1
  <% if show_sort_and_per_page? and !blacklight_config.per_page.blank? %>
2
-
3
- <span class="sr-only"><%= t('blacklight.search.per_page.title') %></span>
4
- <div id="per_page-dropdown" class="btn-group">
5
- <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
2
+ <span class="sr-only"><%= t('blacklight.search.per_page.title') %></span>
3
+ <div id="per_page-dropdown" class="per-page-dropdown btn-group">
4
+ <button type="button" class="btn btn-outline-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
6
5
  <%= t(:'blacklight.search.per_page.button_label', :count => current_per_page) %> <span class="caret"></span>
7
6
  </button>
8
- <ul class="dropdown-menu" role="menu">
7
+ <div class="dropdown-menu dropdown-menu-right" role="menu">
9
8
  <%- per_page_options_for_select.each do |(label, count)| %>
10
- <li><%= link_to(label, url_for(search_state.params_for_search(per_page: count))) %></li>
9
+ <%= link_to(label, url_for(search_state.params_for_search(per_page: count)), class: 'dropdown-item') %>
11
10
  <%- end -%>
12
- </ul>
11
+ </div>
13
12
  </div>
14
13
  <% end %>
@@ -1,20 +1,12 @@
1
- <% #Using the Bootstrap Pagination class -%>
2
- <% #DEPRECATED - using id="previousNextDocument" as a selector is deprecated and will be removed in Blacklight 6.0 %>
3
- <div id='previousNextDocument' class='pagination-search-widgets'>
4
- <% if @previous_document || @next_document %>
5
- <div class="page_links">
6
- <%= link_to_previous_document @previous_document %> |
1
+ <% # Using the Bootstrap Pagination class -%>
2
+ <div class='pagination-search-widgets'>
3
+ <% if @search_context[:prev] || @search_context[:next] %>
4
+ <div class="page-links">
5
+ <%= link_to_previous_document @search_context[:prev] %> |
7
6
 
8
7
  <%= item_page_entry_info %> |
9
8
 
10
- <%= link_to_next_document @next_document %>
11
- </div>
12
- <% end %>
13
- <% if current_search_session %>
14
- <div class="pull-right search-widgets">
15
- <%= link_back_to_catalog class: 'btn' %>
16
-
17
- <%=link_to t('blacklight.search.start_over'), start_over_path(current_search_session.try(:query_params) || {}), id: 'startOverLink', class: 'btn' %>
9
+ <%= link_to_next_document @search_context[:next] %>
18
10
  </div>
19
11
  <% end %>
20
12
  </div>
@@ -1,9 +1,9 @@
1
1
  <% if show_pagination? and @response.total_pages > 1 %>
2
2
  <div class="row record-padding">
3
3
  <div class="col-md-12">
4
- <div class="pagination">
4
+ <nav class="pagination" role="region" aria-label="<%= t('views.pagination.aria.container_label') %>">
5
5
  <%= paginate @response, :outer_window => 2, :theme => 'blacklight' %>
6
- </div>
6
+ </nav>
7
7
  </div>
8
8
  </div>
9
9
  <% end %>
@@ -1,22 +1,26 @@
1
- <%= form_tag search_action_url, method: :get, class: 'search-query-form clearfix navbar-form', role: 'search' do %>
1
+ <%= form_tag search_action_url, method: :get, class: 'search-query-form', role: 'search' do %>
2
2
  <%= render_hash_as_hidden_fields(search_state.params_for_search.except(:q, :search_field, :qt, :page, :utf8)) %>
3
+ <% if search_fields.length > 1 %>
4
+ <label for="search_field" class="sr-only"><%= t('blacklight.search.form.search_field.label') %></label>
5
+ <% end %>
3
6
  <div class="input-group">
4
7
  <% if search_fields.length > 1 %>
5
- <span class="input-group-addon for-search-field">
6
- <label for="search_field" class="sr-only"><%= t('blacklight.search.form.search_field.label') %></label>
7
- <%= select_tag(:search_field, options_for_select(search_fields, h(params[:search_field])), title: t('blacklight.search.form.search_field.title'), id: "search_field", class: "search_field") %>
8
- </span>
8
+ <%= select_tag(:search_field,
9
+ options_for_select(search_fields, h(params[:search_field])),
10
+ title: t('blacklight.search.form.search_field.title'),
11
+ id: "search_field",
12
+ class: "custom-select search-field") %>
9
13
  <% elsif search_fields.length == 1 %>
10
14
  <%= hidden_field_tag :search_field, search_fields.first.last %>
11
15
  <% end %>
12
16
 
13
17
  <label for="q" class="sr-only"><%= t('blacklight.search.form.search.label') %></label>
14
- <%= text_field_tag :q, params[:q], placeholder: t('blacklight.search.form.search.placeholder'), class: "search_q q form-control", id: "q", autofocus: should_autofocus_on_search_box?, data: { autocomplete_enabled: autocomplete_enabled?, autocomplete_path: blacklight.suggest_index_path } %>
18
+ <%= text_field_tag :q, params[:q], placeholder: t('blacklight.search.form.search.placeholder'), class: "search-q q form-control", id: "q", autofocus: presenter.autofocus?, data: { autocomplete_enabled: presenter.autocomplete_enabled?, autocomplete_path: search_action_path(action: :suggest) } %>
15
19
 
16
- <span class="input-group-btn">
20
+ <span class="input-group-append">
17
21
  <button type="submit" class="btn btn-primary search-btn" id="search">
18
22
  <span class="submit-search-text"><%= t('blacklight.search.form.submit') %></span>
19
- <span class="glyphicon glyphicon-search"></span>
23
+ <%= blacklight_icon :search %>
20
24
  </button>
21
25
  </span>
22
26
  </div>
@@ -1,5 +1,2 @@
1
1
  <%= render 'did_you_mean' %>
2
-
3
- <%= render 'constraints' %>
4
-
5
2
  <%= render 'sort_and_per_page' %>
@@ -1,5 +1,3 @@
1
- <h2 class="sr-only top-content-title"><%= t('blacklight.search.search_results_header') %></h2>
2
-
3
1
  <% @page_title = t('blacklight.search.page_title.title', :constraints => render_search_to_page_title(params), :application_name => application_name) %>
4
2
 
5
3
  <% content_for(:head) do -%>
@@ -9,6 +7,12 @@
9
7
  <%= json_api_link_tag %>
10
8
  <% end %>
11
9
 
10
+ <% content_for(:container_header) do -%>
11
+ <h1 class="sr-only top-content-title"><%= t('blacklight.search.header') %></h1>
12
+
13
+ <%= render 'constraints' %>
14
+ <% end %>
15
+
12
16
  <%= render 'search_header' %>
13
17
 
14
18
  <h2 class="sr-only"><%= t('blacklight.search.search_results') %></h2>
@@ -0,0 +1,8 @@
1
+ <% doc_presenter = show_presenter(document) %>
2
+ <%# default partial to display solr document fields in catalog show view -%>
3
+ <dl class="row dl-invert document-metadata">
4
+ <% doc_presenter.fields_to_render.each do |field_name, field| -%>
5
+ <dt class="blacklight-<%= field_name.parameterize %> col-md-3"><%= render_document_show_field_label document, field: field_name %></dt>
6
+ <dd class="blacklight-<%= field_name.parameterize %> col-md-9"><%= doc_presenter.field_value field %></dd>
7
+ <% end -%>
8
+ </dl>
@@ -1,4 +1,4 @@
1
- <%= render 'previous_next_doc' %>
1
+ <%= render 'previous_next_doc' if @search_context %>
2
2
 
3
3
  <% @page_title = t('blacklight.search.show.title', :document_title => document_show_html_title, :application_name => application_name).html_safe %>
4
4
  <% content_for(:head) { render_link_rel_alternates } %>
@@ -10,10 +10,10 @@
10
10
  </div>
11
11
 
12
12
  <% if @document.respond_to?(:export_as_openurl_ctx_kev) %>
13
- <!--
14
- // COinS, for Zotero among others.
13
+ <!--
14
+ // COinS, for Zotero among others.
15
15
  // This document_partial_name(@document) business is not quite right,
16
- // but has been there for a while.
16
+ // but has been there for a while.
17
17
  -->
18
18
  <span class="Z3988" title="<%= @document.export_as_openurl_ctx_kev(document_partial_name(@document)) %>"></span>
19
19
  <% end %>
@@ -1,3 +1,3 @@
1
1
  <li class="more_like_this_document">
2
- <span class="mlt_title"><%= link_to_document document, document_show_link_field(document) %></span>
2
+ <span class="mlt_title"><%= link_to_document document %></span>
3
3
  </li>
@@ -1,9 +1,9 @@
1
1
  <%= render :partial => 'show_tools' %>
2
2
 
3
3
  <% unless @document.more_like_this.empty? %>
4
- <div class="panel panel-default">
5
- <div class="panel-heading">More Like This</div>
6
- <div class="panel-body">
4
+ <div class="card">
5
+ <div class="card-header">More Like This</div>
6
+ <div class="card-body">
7
7
  <%= render :collection => @document.more_like_this, :partial => 'show_more_like_this', :as => :document %>
8
8
  </div>
9
9
  </div>
@@ -8,19 +8,17 @@
8
8
 
9
9
  -%>
10
10
  <% if show_doc_actions? %>
11
- <div class="panel panel-default show-tools">
12
- <div class="panel-heading">
13
- <%= t('blacklight.tools.title') %>
11
+ <div class="card show-tools">
12
+ <div class="card-header">
13
+ <h2 class="mb-0 h6"><%= t('blacklight.tools.title') %></h2>
14
14
  </div>
15
15
 
16
- <div class="panel-body">
17
- <ul class="nav">
18
- <%= render_show_doc_actions @document do |config, inner| %>
19
- <li class="<%= config.key %>">
20
- <%= inner %>
21
- </li>
22
- <% end %>
23
- </ul>
24
- </div>
16
+ <ul class="list-group list-group-flush">
17
+ <%= render_show_doc_actions @document do |config, inner| %>
18
+ <li class="list-group-item <%= config.key %>">
19
+ <%= inner %>
20
+ </li>
21
+ <% end %>
22
+ </ul>
25
23
  </div>
26
24
  <% end %>
@@ -1,7 +1,11 @@
1
- <%= form_tag url_for(:controller => controller_name, :action => "sms"), :id => 'sms_form', :class => "form-horizontal ajax_form", :method => :post do %>
1
+ <%= form_tag url_for(controller: controller_name, action: "sms"),
2
+ data: { blacklight_modal: 'trigger' },
3
+ id: 'sms_form',
4
+ class: "modal_form",
5
+ method: :post do %>
2
6
  <div class="modal-body">
3
- <%= render :partial=>'/flash_msg' %>
4
- <div class="form-group">
7
+ <%= render '/shared/flash_msg' %>
8
+ <div class="form-group row">
5
9
  <label class="control-label col-sm-2" for="to">
6
10
  <%= t('blacklight.sms.form.to') %>
7
11
  </label>
@@ -9,7 +13,7 @@
9
13
  <%= telephone_field_tag :to, params[:to], class: 'form-control' %>
10
14
  </div>
11
15
  </div>
12
- <div class="form-group">
16
+ <div class="form-group row">
13
17
  <label class="control-label col-sm-2" for="carrier">
14
18
  <%= t('blacklight.sms.form.carrier') %>
15
19
  </label>
@@ -1,4 +1,4 @@
1
- <div id="sortAndPerPage" class="clearfix">
2
- <%= render :partial => "paginate_compact", :object => @response if show_pagination? %>
3
- <%= render_results_collection_tools wrapping_class: "search-widgets pull-right" %>
1
+ <div id="sortAndPerPage" class="sort-pagination clearfix">
2
+ <%= render partial: "paginate_compact", object: @response if show_pagination? %>
3
+ <%= render_results_collection_tools wrapping_class: "search-widgets float-md-right" %>
4
4
  </div>
@@ -1,13 +1,13 @@
1
1
  <% if show_sort_and_per_page? and active_sort_fields.many? %>
2
- <div id="sort-dropdown" class="btn-group">
3
- <button type="button" class="btn btn-default dropdown-toggle" data-toggle="dropdown">
2
+ <div id="sort-dropdown" class="sort-dropdown btn-group">
3
+ <button type="button" class="btn btn-outline-secondary dropdown-toggle" data-toggle="dropdown" aria-expanded="false">
4
4
  <%= t('blacklight.search.sort.label', :field =>sort_field_label(current_sort_field.key)) %> <span class="caret"></span>
5
5
  </button>
6
6
 
7
- <ul class="dropdown-menu" role="menu">
8
- <%- active_sort_fields.each do |sort_key, field_config| %>
9
- <li><%= link_to(sort_field_label(sort_key), url_for(search_state.params_for_search(sort: sort_key))) %></li>
10
- <%- end -%>
11
- </ul>
7
+ <div class="dropdown-menu" role="menu">
8
+ <%- active_sort_fields.each do |sort_key, field_config| %>
9
+ <%= link_to(sort_field_label(sort_key), url_for(search_state.params_for_search(sort: sort_key)), class: 'dropdown-item') %>
10
+ <%- end -%>
11
+ </div>
12
12
  </div>
13
13
  <% end %>
@@ -0,0 +1,5 @@
1
+ <% if presenter(document).thumbnail.exists? && tn = presenter(document).thumbnail.thumbnail_tag({}, counter: document_counter_with_offset(document_counter)) %>
2
+ <div class="document-thumbnail">
3
+ <%= tn %>
4
+ </div>
5
+ <% end %>
@@ -2,8 +2,8 @@
2
2
  <div class="view-type">
3
3
  <span class="sr-only"><%= t('blacklight.search.view_title') %></span>
4
4
  <div class="view-type-group btn-group">
5
- <% document_index_view_controls.each do |view, config| %>
6
- <%= link_to url_for(search_state.to_h.merge(view: view)), title: view_label(view), class: "btn btn-default view-type-#{ view.to_s.parameterize } #{"active" if document_index_view_type == view}" do %>
5
+ <% document_index_view_controls.each do |view, config| %>
6
+ <%= link_to url_for(search_state.to_h.merge(view: view)), title: view_label(view), class: "btn btn-outline-secondary view-type-#{ view.to_s.parameterize } #{"active" if document_index_view_type == view}" do %>
7
7
  <%= render_view_type_group_icon view %>
8
8
  <span class="caption"><%= view_label(view) %></span>
9
9
  <% end %>
@@ -5,7 +5,7 @@
5
5
  <li><%= t 'blacklight.search.zero_results.use_fewer_keywords' %></li>
6
6
 
7
7
  <%- if params[:q] and params[:search_field] and params[:search_field] != blacklight_config.default_search_field.try(:key) -%>
8
- <li><%= t 'blacklight.search.zero_results.search_fields', :search_fields => search_field_label(params) %> -
8
+ <li><%= t 'blacklight.search.zero_results.search_fields', :search_fields => search_field_label(params) %> -
9
9
  <%= link_to t('blacklight.search.zero_results.search_everything', field: blacklight_config.default_search_field.label), url_for(search_state.params_for_search(search_field: blacklight_config.default_search_field.key)) %>
10
10
  </li>
11
11
  <%- end %>
@@ -1,6 +1,8 @@
1
1
  <div class="modal-header">
2
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
3
- <h3><%= t('blacklight.tools.citation') %></h3>
2
+ <h1><%= t('blacklight.tools.citation') %></h1>
3
+ <button type="button" class="blacklight-modal-close close" data-dismiss="modal" aria-label="<%= t('blacklight.modal.close') %>">
4
+ <span aria-hidden="true">&times;</span>
5
+ </button>
4
6
  </div>
5
7
  <div class="modal-body">
6
8
  <%= render :partial => 'citation' -%>
@@ -1,5 +1,7 @@
1
1
  <div class="modal-header">
2
- <button type="button" class="ajax-modal-close close" data-dismiss="modal" aria-hidden="true">×</button>
3
- <h1 class="modal-title"><%= t('blacklight.email.form.title') %></h1>
4
- </div>
2
+ <h1 class="modal-title"><%= t('blacklight.email.form.title') %></h1>
3
+ <button type="button" class="blacklight-modal-close close" data-dismiss="modal" aria-label="<%= t('blacklight.modal.close') %>">
4
+ <span aria-hidden="true">&times;</span>
5
+ </button>
6
+ </div>
5
7
  <%= render :partial => 'email_form' %>
@@ -1,9 +1,13 @@
1
- <div class="modal-header">
2
- <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
3
- <h1><%= t('blacklight.email.form.title') %></h1>
4
- </div>
1
+ <div data-blacklight-modal="container">
2
+ <div class="modal-header">
3
+ <h1><%= t('blacklight.email.form.title') %></h1>
4
+ <button type="button" class="blacklight-modal-close close" data-dismiss="modal" aria-label="<%= t('blacklight.modal.close') %>">
5
+ <span aria-hidden="true">&times;</span>
6
+ </button>
7
+ </div>
5
8
 
6
- <div class="modal-body">
7
- <%= render :partial=>'/flash_msg' %>
8
- <span class="ajax-close-modal"></span>
9
- </div>
9
+ <div class="modal-body">
10
+ <%= render partial: '/shared/flash_msg' %>
11
+ <span data-blacklight-modal="close"></span>
12
+ </div>
13
+ </div>
@@ -1,23 +1,25 @@
1
- <div class="facet_pagination top">
1
+ <div class="facet-pagination top">
2
2
  <%= render :partial=>'facet_pagination' %>
3
3
  </div>
4
4
 
5
5
  <div class="modal-header">
6
- <button type="button" class="ajax-modal-close close" data-dismiss="modal" aria-hidden="true">×</button>
6
+ <h1 class="modal-title"><%= facet_field_label(@facet.key) %></h1>
7
+ <button type="button" class="blacklight-modal-close close" data-dismiss="modal" aria-label="<%= t('blacklight.modal.close') %>">
8
+ <span aria-hidden="true">&times;</span>
9
+ </button>
10
+ </div>
7
11
 
8
- <h3 class="modal-title"><%= facet_field_label(@facet.key) %></h3>
12
+ <div class="modal-body">
9
13
  <%= render partial: 'facet_index_navigation' if @facet.index_range && @display_facet.index? %>
10
14
 
11
- </div>
12
- <div class="modal-body">
13
- <div class="facet_extended_list">
15
+ <div class="facet-extended-list">
14
16
  <%= render_facet_limit(@display_facet, layout: false) %>
15
17
  </div>
16
18
  </div>
17
-
19
+
18
20
  <div class="modal-footer">
19
21
 
20
- <div class="facet_pagination bottom">
22
+ <div class="facet-pagination bottom">
21
23
  <%= render :partial=>'facet_pagination' %>
22
24
  </div>
23
25
  </div>
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  json.response do
2
4
  json.facets @pagination
3
5
  end