blacklight 6.19.1 → 7.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (425) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.npmignore +23 -0
  4. data/.rubocop.yml +40 -16
  5. data/.rubocop_todo.yml +478 -382
  6. data/.solr_wrapper.yml +9 -2
  7. data/.travis.yml +23 -25
  8. data/CONTRIBUTING.md +48 -0
  9. data/Gemfile +3 -2
  10. data/README.md +22 -5
  11. data/Rakefile +3 -2
  12. data/VERSION +1 -1
  13. data/Vagrantfile +2 -0
  14. data/app/assets/images/blacklight/list.svg +1 -0
  15. data/app/assets/images/blacklight/search.svg +1 -0
  16. data/app/assets/javascripts/blacklight/blacklight.js +483 -57
  17. data/app/assets/stylesheets/blacklight/_balanced_list.scss +7 -12
  18. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +18 -15
  19. data/app/assets/stylesheets/blacklight/_bookmark.scss +1 -13
  20. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +27 -0
  21. data/app/assets/stylesheets/blacklight/_constraints.scss +17 -25
  22. data/app/assets/stylesheets/blacklight/_controls.scss +8 -16
  23. data/app/assets/stylesheets/blacklight/_facets.scss +64 -93
  24. data/app/assets/stylesheets/blacklight/_header.scss +35 -48
  25. data/app/assets/stylesheets/blacklight/_icons.scss +35 -0
  26. data/app/assets/stylesheets/blacklight/_layout.scss +0 -10
  27. data/app/assets/stylesheets/blacklight/_mixins.scss +15 -0
  28. data/app/assets/stylesheets/blacklight/_modal.scss +9 -17
  29. data/app/assets/stylesheets/blacklight/_pagination.scss +4 -13
  30. data/app/assets/stylesheets/blacklight/_search_form.scss +7 -0
  31. data/app/assets/stylesheets/blacklight/_search_history.scss +5 -13
  32. data/app/assets/stylesheets/blacklight/_search_results.scss +9 -8
  33. data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +1 -2
  34. data/app/assets/stylesheets/blacklight/blacklight.scss +1 -1
  35. data/app/builders/blacklight/action_builder.rb +57 -0
  36. data/app/controllers/bookmarks_controller.rb +2 -2
  37. data/app/controllers/catalog_controller.rb +2 -2
  38. data/app/controllers/concerns/blacklight/base.rb +0 -33
  39. data/app/controllers/concerns/blacklight/bookmarks.rb +20 -30
  40. data/app/controllers/concerns/blacklight/catalog.rb +256 -210
  41. data/app/controllers/concerns/blacklight/controller.rb +102 -124
  42. data/app/controllers/concerns/blacklight/default_component_configuration.rb +12 -43
  43. data/app/controllers/concerns/blacklight/facet.rb +10 -2
  44. data/app/controllers/concerns/blacklight/search_context.rb +11 -11
  45. data/app/controllers/concerns/blacklight/search_fields.rb +4 -14
  46. data/app/controllers/concerns/blacklight/search_history.rb +1 -6
  47. data/app/controllers/concerns/blacklight/searchable.rb +17 -0
  48. data/app/controllers/concerns/blacklight/token_based_user.rb +5 -7
  49. data/app/helpers/blacklight/blacklight_helper_behavior.rb +36 -118
  50. data/app/helpers/blacklight/catalog_helper_behavior.rb +100 -89
  51. data/app/helpers/blacklight/component_helper_behavior.rb +21 -21
  52. data/app/helpers/blacklight/configuration_helper_behavior.rb +30 -58
  53. data/app/helpers/blacklight/facets_helper_behavior.rb +56 -52
  54. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +9 -11
  55. data/app/helpers/blacklight/icon_helper_behavior.rb +18 -0
  56. data/app/helpers/blacklight/layout_helper_behavior.rb +3 -3
  57. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +8 -6
  58. data/app/helpers/blacklight/render_partials_helper_behavior.rb +207 -0
  59. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +19 -11
  60. data/app/helpers/blacklight/suggest_helper_behavior.rb +1 -0
  61. data/app/helpers/blacklight/url_helper_behavior.rb +50 -41
  62. data/app/{assets/javascripts → javascript}/blacklight/autocomplete.js +3 -2
  63. data/app/javascript/blacklight/bookmark_toggle.js +25 -0
  64. data/app/javascript/blacklight/checkbox_submit.js +134 -0
  65. data/app/{assets/javascripts → javascript}/blacklight/collapsable.js +1 -1
  66. data/app/javascript/blacklight/core.js +41 -0
  67. data/app/{assets/javascripts → javascript}/blacklight/facet_load.js +6 -6
  68. data/app/{assets/javascripts/blacklight/ajax_modal.js → javascript/blacklight/modal.js} +62 -64
  69. data/app/{assets/javascripts → javascript}/blacklight/search_context.js +10 -3
  70. data/app/models/blacklight/facet_paginator.rb +3 -3
  71. data/app/models/blacklight/icon.rb +58 -0
  72. data/app/models/blacklight/solr/facet_paginator.rb +3 -3
  73. data/app/models/blacklight/suggest_search.rb +1 -1
  74. data/app/models/bookmark.rb +5 -10
  75. data/app/models/concerns/blacklight/configurable.rb +13 -13
  76. data/app/models/concerns/blacklight/document.rb +23 -39
  77. data/app/models/concerns/blacklight/document/active_model_shim.rb +8 -11
  78. data/app/models/concerns/blacklight/document/cache_key.rb +1 -1
  79. data/app/models/concerns/blacklight/document/dublin_core.rb +2 -2
  80. data/app/models/concerns/blacklight/document/email.rb +5 -5
  81. data/app/models/concerns/blacklight/document/extensions.rb +5 -5
  82. data/app/models/concerns/blacklight/document/semantic_fields.rb +9 -9
  83. data/app/models/concerns/blacklight/document/sms.rb +3 -3
  84. data/app/models/concerns/blacklight/solr/document.rb +8 -8
  85. data/app/models/concerns/blacklight/user.rb +7 -6
  86. data/app/models/record_mailer.rb +8 -6
  87. data/app/models/search.rb +5 -7
  88. data/app/presenters/blacklight/document_presenter.rb +25 -140
  89. data/app/presenters/blacklight/field_presenter.rb +7 -5
  90. data/app/presenters/blacklight/index_presenter.rb +41 -70
  91. data/app/presenters/blacklight/json_presenter.rb +10 -14
  92. data/app/presenters/blacklight/link_alternate_presenter.rb +3 -1
  93. data/app/presenters/blacklight/rendering/abstract_step.rb +7 -5
  94. data/app/presenters/blacklight/rendering/helper_method.rb +10 -8
  95. data/app/presenters/blacklight/rendering/join.rb +5 -3
  96. data/app/presenters/blacklight/rendering/link_to_facet.rb +23 -19
  97. data/app/presenters/blacklight/rendering/microdata.rb +6 -3
  98. data/app/presenters/blacklight/rendering/pipeline.rb +7 -5
  99. data/app/presenters/blacklight/rendering/terminator.rb +2 -0
  100. data/app/presenters/blacklight/search_bar_presenter.rb +39 -0
  101. data/app/presenters/blacklight/show_presenter.rb +26 -72
  102. data/app/presenters/blacklight/thumbnail_presenter.rb +74 -0
  103. data/app/services/blacklight/document_factory.rb +13 -0
  104. data/app/services/blacklight/field_retriever.rb +26 -24
  105. data/app/services/blacklight/search_service.rb +153 -0
  106. data/app/values/blacklight/types.rb +31 -0
  107. data/app/views/blacklight/nav/_bookmark.html.erb +2 -2
  108. data/app/views/blacklight/nav/_search_history.html.erb +1 -1
  109. data/app/views/bookmarks/_tools.html.erb +2 -2
  110. data/app/views/bookmarks/index.html.erb +12 -13
  111. data/app/views/catalog/_bookmark_control.html.erb +26 -10
  112. data/app/views/catalog/_citation.html.erb +23 -18
  113. data/app/views/catalog/_constraints.html.erb +6 -7
  114. data/app/views/catalog/_constraints_element.html.erb +6 -6
  115. data/app/views/catalog/_did_you_mean.html.erb +1 -1
  116. data/app/views/catalog/{_document_default.atom.builder → _document.atom.builder} +19 -18
  117. data/app/views/catalog/_document.html.erb +5 -3
  118. data/app/views/catalog/{_document_default.rss.builder → _document.rss.builder} +2 -0
  119. data/app/views/catalog/_document_action.html.erb +2 -1
  120. data/app/views/catalog/_email_form.html.erb +8 -4
  121. data/app/views/catalog/_facet_group.html.erb +19 -0
  122. data/app/views/catalog/_facet_index_navigation.html.erb +5 -4
  123. data/app/views/catalog/_facet_layout.html.erb +6 -8
  124. data/app/views/catalog/_facet_limit.html.erb +3 -2
  125. data/app/views/catalog/_facet_pagination.html.erb +8 -8
  126. data/app/views/catalog/_facet_pivot.html.erb +2 -2
  127. data/app/views/catalog/_facets.html.erb +3 -21
  128. data/app/views/catalog/_field.json.jbuilder +10 -0
  129. data/app/views/catalog/{_group_default.html.erb → _group.html.erb} +1 -1
  130. data/app/views/catalog/_home_text.html.erb +32 -36
  131. data/app/views/catalog/_index.html.erb +10 -0
  132. data/app/views/catalog/{_index_header_default.html.erb → _index_header.html.erb} +3 -3
  133. data/app/views/catalog/_per_page_widget.html.erb +6 -7
  134. data/app/views/catalog/_previous_next_doc.html.erb +6 -14
  135. data/app/views/catalog/_results_pagination.html.erb +2 -2
  136. data/app/views/catalog/_search_form.html.erb +12 -8
  137. data/app/views/catalog/_search_header.html.erb +0 -3
  138. data/app/views/catalog/_search_results.html.erb +6 -2
  139. data/app/views/catalog/_show.html.erb +8 -0
  140. data/app/views/catalog/{_show_header_default.html.erb → _show_header.html.erb} +0 -0
  141. data/app/views/catalog/_show_main_content.html.erb +4 -4
  142. data/app/views/catalog/_show_more_like_this.html.erb +1 -1
  143. data/app/views/catalog/_show_sidebar.html.erb +10 -8
  144. data/app/views/catalog/_show_tools.html.erb +10 -21
  145. data/app/views/catalog/_sms_form.html.erb +8 -4
  146. data/app/views/catalog/_sort_and_per_page.html.erb +3 -3
  147. data/app/views/catalog/_sort_widget.html.erb +7 -7
  148. data/app/views/catalog/_thumbnail.html.erb +5 -0
  149. data/app/views/catalog/_view_type_group.html.erb +2 -2
  150. data/app/views/catalog/_zero_results.html.erb +1 -1
  151. data/app/views/catalog/citation.html.erb +1 -1
  152. data/app/views/catalog/citation.js.erb +1 -7
  153. data/app/views/catalog/email.html.erb +5 -3
  154. data/app/views/catalog/email_success.html.erb +12 -8
  155. data/app/views/catalog/facet.html.erb +10 -8
  156. data/app/views/catalog/facet.json.jbuilder +2 -0
  157. data/app/views/catalog/index.atom.builder +27 -29
  158. data/app/views/catalog/index.html.erb +9 -11
  159. data/app/views/catalog/index.json.jbuilder +84 -3
  160. data/app/views/catalog/index.rss.builder +8 -6
  161. data/app/views/catalog/opensearch.xml.builder +12 -10
  162. data/app/views/catalog/show.html.erb +11 -6
  163. data/app/views/catalog/show.json.jbuilder +21 -0
  164. data/app/views/catalog/sms.html.erb +3 -1
  165. data/app/views/catalog/sms_success.html.erb +12 -8
  166. data/app/views/kaminari/blacklight/_first_page.html.erb +2 -2
  167. data/app/views/kaminari/blacklight/_gap.html.erb +2 -2
  168. data/app/views/kaminari/blacklight/_last_page.html.erb +2 -2
  169. data/app/views/kaminari/blacklight/_next_page.html.erb +5 -5
  170. data/app/views/kaminari/blacklight/_page.html.erb +5 -3
  171. data/app/views/kaminari/blacklight/_prev_page.html.erb +4 -4
  172. data/app/views/kaminari/blacklight_compact/_paginator.html.erb +4 -4
  173. data/app/views/layouts/blacklight.html.erb +14 -41
  174. data/app/views/layouts/blacklight/base.html.erb +35 -0
  175. data/app/views/layouts/catalog_result.html.erb +11 -0
  176. data/app/views/record_mailer/email_record.text.erb +6 -5
  177. data/app/views/search_history/index.html.erb +16 -21
  178. data/app/views/{_flash_msg.html.erb → shared/_flash_msg.html.erb} +5 -3
  179. data/app/views/shared/_header_navbar.html.erb +8 -13
  180. data/app/views/shared/_modal.html.erb +6 -0
  181. data/app/views/shared/_user_util_links.html.erb +22 -0
  182. data/blacklight.gemspec +8 -11
  183. data/config/i18n-tasks.yml +17 -0
  184. data/config/locales/blacklight.de.yml +71 -82
  185. data/config/locales/blacklight.en.yml +15 -27
  186. data/config/locales/blacklight.es.yml +14 -26
  187. data/config/locales/blacklight.fr.yml +16 -33
  188. data/config/locales/blacklight.hu.yml +212 -0
  189. data/config/locales/blacklight.it.yml +15 -26
  190. data/config/locales/blacklight.nl.yml +212 -0
  191. data/config/locales/blacklight.pt-BR.yml +24 -29
  192. data/config/locales/blacklight.sq.yml +4 -28
  193. data/config/locales/blacklight.zh.yml +3 -25
  194. data/config/routes.rb +2 -10
  195. data/db/migrate/20140202020202_create_bookmarks.rb +0 -1
  196. data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -1
  197. data/lib/blacklight.rb +6 -4
  198. data/lib/blacklight/abstract_repository.rb +9 -9
  199. data/lib/blacklight/configuration.rb +100 -88
  200. data/lib/blacklight/configuration/context.rb +12 -1
  201. data/lib/blacklight/configuration/facet_field.rb +16 -9
  202. data/lib/blacklight/configuration/field.rb +32 -3
  203. data/lib/blacklight/configuration/fields.rb +15 -17
  204. data/lib/blacklight/configuration/null_field.rb +2 -0
  205. data/lib/blacklight/configuration/search_field.rb +2 -2
  206. data/lib/blacklight/configuration/sort_field.rb +2 -2
  207. data/lib/blacklight/configuration/view_config.rb +4 -0
  208. data/lib/blacklight/engine.rb +10 -7
  209. data/lib/blacklight/exceptions.rb +4 -7
  210. data/lib/blacklight/{utils.rb → nested_open_struct_with_hash_access.rb} +9 -81
  211. data/lib/blacklight/open_struct_with_hash_access.rb +49 -0
  212. data/lib/blacklight/parameters.rb +1 -1
  213. data/lib/blacklight/routes/exportable.rb +1 -3
  214. data/lib/blacklight/routes/searchable.rb +3 -3
  215. data/lib/blacklight/runtime_registry.rb +2 -0
  216. data/lib/blacklight/search_builder.rb +28 -35
  217. data/lib/blacklight/search_state.rb +10 -8
  218. data/lib/blacklight/solr/repository.rb +4 -3
  219. data/lib/blacklight/solr/request.rb +1 -1
  220. data/lib/blacklight/solr/response.rb +29 -30
  221. data/lib/blacklight/solr/response/facets.rb +29 -31
  222. data/lib/blacklight/solr/response/group.rb +3 -3
  223. data/lib/blacklight/solr/response/group_response.rb +1 -1
  224. data/lib/blacklight/solr/response/more_like_this.rb +2 -2
  225. data/lib/blacklight/solr/response/response.rb +2 -2
  226. data/lib/blacklight/solr/response/spelling.rb +4 -3
  227. data/lib/blacklight/solr/search_builder_behavior.rb +27 -31
  228. data/lib/blacklight/version.rb +1 -1
  229. data/lib/generators/blacklight/assets_generator.rb +12 -12
  230. data/lib/generators/blacklight/controller_generator.rb +4 -5
  231. data/lib/generators/blacklight/document_generator.rb +1 -1
  232. data/lib/generators/blacklight/install_generator.rb +15 -34
  233. data/lib/generators/blacklight/search_builder_generator.rb +1 -1
  234. data/lib/generators/blacklight/{solr5_generator.rb → solr_generator.rb} +12 -6
  235. data/lib/generators/blacklight/templates/.solr_wrapper.yml +5 -0
  236. data/lib/generators/blacklight/templates/alternate_controller.rb +4 -4
  237. data/lib/generators/blacklight/templates/blacklight.scss +0 -2
  238. data/lib/generators/blacklight/templates/catalog_controller.rb +57 -50
  239. data/lib/generators/blacklight/templates/config/blacklight.yml +1 -13
  240. data/{solr → lib/generators/blacklight/templates/solr}/conf/_rest_managed.json +0 -0
  241. data/{solr → lib/generators/blacklight/templates/solr}/conf/admin-extra.html +0 -0
  242. data/{solr → lib/generators/blacklight/templates/solr}/conf/elevate.xml +0 -0
  243. data/{solr → lib/generators/blacklight/templates/solr}/conf/mapping-ISOLatin1Accent.txt +0 -0
  244. data/{solr → lib/generators/blacklight/templates/solr}/conf/protwords.txt +0 -0
  245. data/lib/generators/blacklight/templates/solr/conf/schema.xml +388 -0
  246. data/{solr → lib/generators/blacklight/templates/solr}/conf/scripts.conf +0 -0
  247. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +195 -0
  248. data/{solr → lib/generators/blacklight/templates/solr}/conf/spellings.txt +0 -0
  249. data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords.txt +0 -0
  250. data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords_en.txt +0 -0
  251. data/{solr → lib/generators/blacklight/templates/solr}/conf/synonyms.txt +0 -0
  252. data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example.xsl +0 -0
  253. data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_atom.xsl +0 -0
  254. data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_rss.xsl +0 -0
  255. data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/luke.xsl +0 -0
  256. data/lib/generators/blacklight/test_support_generator.rb +10 -10
  257. data/lib/generators/blacklight/user_generator.rb +5 -6
  258. data/lib/railties/blacklight.rake +7 -6
  259. data/package-lock.json +2793 -0
  260. data/package.json +30 -0
  261. data/spec/controllers/alternate_controller_spec.rb +5 -4
  262. data/spec/controllers/application_controller_spec.rb +1 -5
  263. data/spec/controllers/blacklight/base_spec.rb +6 -3
  264. data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +11 -7
  265. data/spec/controllers/blacklight/facet_spec.rb +1 -2
  266. data/spec/controllers/blacklight/search_fields_spec.rb +25 -34
  267. data/spec/controllers/bookmarks_controller_spec.rb +17 -13
  268. data/spec/controllers/catalog_controller_spec.rb +332 -164
  269. data/spec/controllers/search_history_controller_spec.rb +6 -6
  270. data/spec/features/alternate_controller_spec.rb +4 -4
  271. data/spec/features/autocomplete_spec.rb +4 -2
  272. data/spec/features/bookmarks_spec.rb +10 -10
  273. data/spec/features/did_you_mean_spec.rb +7 -12
  274. data/spec/features/facets_spec.rb +16 -16
  275. data/spec/features/record_view_spec.rb +12 -18
  276. data/spec/features/search_context_spec.rb +6 -7
  277. data/spec/features/search_crawler_spec.rb +3 -5
  278. data/spec/features/search_filters_spec.rb +80 -80
  279. data/spec/features/search_formats_spec.rb +4 -5
  280. data/spec/features/search_history_spec.rb +6 -29
  281. data/spec/features/search_pagination_spec.rb +4 -2
  282. data/spec/features/search_results_spec.rb +14 -12
  283. data/spec/features/search_sort_spec.rb +2 -2
  284. data/spec/features/search_spec.rb +8 -9
  285. data/spec/features/sitelinks_search_box.rb +4 -4
  286. data/{solr → spec/fixtures}/sample_solr_documents.yml +688 -688
  287. data/spec/helpers/{configuration_helper_spec.rb → blacklight/configuration_helper_behavior_spec.rb} +97 -98
  288. data/spec/helpers/{facets_helper_spec.rb → blacklight/facets_helper_behavior_spec.rb} +72 -67
  289. data/spec/helpers/{hash_as_hidden_fields_spec.rb → blacklight/hash_as_hidden_fields_behavior_spec.rb} +2 -2
  290. data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +10 -0
  291. data/spec/helpers/{layout_helper_spec.rb → blacklight/layout_helper_behavior_spec.rb} +5 -5
  292. data/spec/helpers/{render_constraints_helper_spec.rb → blacklight/render_constraints_helper_behavior_spec.rb} +10 -6
  293. data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +92 -0
  294. data/spec/helpers/{search_history_constraints_helper_spec.rb → blacklight/search_history_constraints_helper_behavior_spec.rb} +29 -30
  295. data/spec/helpers/{suggest_helper_spec.rb → blacklight/suggest_helper_behavior_spec.rb} +9 -2
  296. data/spec/helpers/{url_helper_spec.rb → blacklight/url_helper_behavior_spec.rb} +61 -54
  297. data/spec/helpers/blacklight_helper_spec.rb +62 -151
  298. data/spec/helpers/catalog_helper_spec.rb +91 -98
  299. data/spec/i18n_spec.rb +18 -0
  300. data/spec/integration/generators/blacklight/{solr5_generator_spec.rb → solr_generator_spec.rb} +21 -13
  301. data/spec/lib/blacklight/configuration/facet_field_spec.rb +13 -0
  302. data/spec/lib/blacklight/configuration/field_spec.rb +15 -0
  303. data/spec/lib/blacklight/nested_open_struct_with_hash_access_spec.rb +17 -0
  304. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +148 -0
  305. data/spec/lib/blacklight/parameters_spec.rb +4 -2
  306. data/spec/lib/blacklight/search_state_spec.rb +53 -36
  307. data/spec/lib/blacklight_spec.rb +14 -15
  308. data/spec/lib/tasks/blacklight_task_spec.rb +4 -6
  309. data/spec/models/blacklight/configurable_spec.rb +24 -27
  310. data/spec/models/blacklight/configuration/context_spec.rb +9 -10
  311. data/spec/models/blacklight/configuration_spec.rb +188 -165
  312. data/spec/models/blacklight/document/active_model_shim_spec.rb +15 -6
  313. data/spec/models/blacklight/document/cache_key_spec.rb +10 -3
  314. data/spec/models/blacklight/document/dublin_core_spec.rb +17 -20
  315. data/spec/models/blacklight/document/email_spec.rb +10 -10
  316. data/spec/models/blacklight/document/sms_spec.rb +10 -10
  317. data/spec/models/blacklight/document_spec.rb +10 -22
  318. data/spec/models/blacklight/facet_paginator_spec.rb +40 -30
  319. data/spec/models/blacklight/icon_spec.rb +58 -0
  320. data/spec/models/blacklight/search_builder_spec.rb +41 -26
  321. data/spec/models/blacklight/solr/document_spec.rb +224 -216
  322. data/spec/models/blacklight/solr/facet_paginator_spec.rb +6 -4
  323. data/spec/models/blacklight/solr/repository_spec.rb +50 -42
  324. data/spec/models/blacklight/solr/request_spec.rb +17 -18
  325. data/spec/models/blacklight/solr/response/facets_spec.rb +60 -60
  326. data/spec/models/blacklight/solr/response/group_response_spec.rb +16 -22
  327. data/spec/models/blacklight/solr/response/group_spec.rb +18 -25
  328. data/spec/models/blacklight/solr/response_spec.rb +69 -68
  329. data/spec/models/blacklight/solr/search_builder_spec.rb +150 -164
  330. data/spec/models/blacklight/suggest/response_spec.rb +2 -1
  331. data/spec/models/blacklight/suggest_search_spec.rb +4 -4
  332. data/spec/models/blacklight/user_spec.rb +9 -11
  333. data/spec/models/bookmark_spec.rb +7 -6
  334. data/spec/models/record_mailer_spec.rb +23 -21
  335. data/spec/models/search_spec.rb +19 -18
  336. data/spec/models/solr_document_spec.rb +33 -5
  337. data/spec/presenters/blacklight/document_presenter_spec.rb +86 -0
  338. data/spec/presenters/{index_presenter_spec.rb → blacklight/index_presenter_spec.rb} +25 -62
  339. data/spec/presenters/blacklight/json_presenter_spec.rb +59 -0
  340. data/spec/presenters/blacklight/link_alternate_presenter_spec.rb +3 -0
  341. data/spec/presenters/blacklight/search_bar_presenter_spec.rb +79 -0
  342. data/spec/presenters/{show_presenter_spec.rb → blacklight/show_presenter_spec.rb} +47 -62
  343. data/spec/presenters/pipeline_spec.rb +18 -11
  344. data/spec/presenters/thumbnail_presenter_spec.rb +174 -0
  345. data/spec/routing/catalog_routing_spec.rb +13 -15
  346. data/spec/services/blacklight/search_service_spec.rb +495 -0
  347. data/spec/spec_helper.rb +12 -24
  348. data/spec/support/features.rb +1 -1
  349. data/spec/support/features/session_helpers.rb +4 -4
  350. data/spec/test_app_templates/Gemfile.extra +2 -5
  351. data/spec/test_app_templates/lib/generators/test_app_generator.rb +12 -13
  352. data/spec/views/catalog/_constraints.html.erb_spec.rb +3 -6
  353. data/spec/views/catalog/_constraints_element.html.erb_spec.rb +17 -13
  354. data/spec/views/catalog/_document.html.erb_spec.rb +11 -11
  355. data/spec/views/catalog/_document_list.html.erb_spec.rb +2 -1
  356. data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +5 -5
  357. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +6 -6
  358. data/spec/views/catalog/_facets.html.erb_spec.rb +37 -16
  359. data/spec/views/catalog/{_index_default.erb_spec.rb → _index.html.erb_spec.rb} +14 -15
  360. data/spec/views/catalog/{_index_header_default.html.erb_spec.rb → _index_header.html.erb_spec.rb} +6 -9
  361. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +7 -30
  362. data/spec/views/catalog/_search_header.erb_spec.rb +1 -3
  363. data/spec/views/catalog/{_show_default.erb_spec.rb → _show.html.erb_spec.rb} +13 -14
  364. data/spec/views/catalog/_show_sidebar.erb_spec.rb +7 -10
  365. data/spec/views/catalog/_show_tools.html.erb_spec.rb +5 -5
  366. data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +1 -2
  367. data/spec/views/catalog/_sort_widget.html.erb_spec.rb +3 -1
  368. data/spec/views/catalog/{_thumbnail_default.erb_spec.rb → _thumbnail.html.erb_spec.rb} +7 -9
  369. data/spec/views/catalog/_view_type_group.html.erb_spec.rb +12 -10
  370. data/spec/views/catalog/email_success.html.erb_spec.rb +8 -0
  371. data/spec/views/catalog/facet.html.erb_spec.rb +4 -3
  372. data/spec/views/catalog/facet.json.jbuilder_spec.rb +3 -2
  373. data/spec/views/catalog/index.atom.builder_spec.rb +11 -6
  374. data/spec/views/catalog/index.html.erb_spec.rb +6 -8
  375. data/spec/views/catalog/index.json.jbuilder_spec.rb +119 -26
  376. data/spec/views/catalog/opensearch.xml.builder_spec.rb +1 -1
  377. data/spec/views/catalog/show.html.erb_spec.rb +8 -8
  378. data/spec/views/catalog/show.json.jbuilder_spec.rb +40 -0
  379. data/spec/views/catalog/sms_success.html.erb_spec.rb +8 -0
  380. data/spec/views/{_user_util_links.html.erb_spec.rb → shared/_user_util_links.html.erb_spec.rb} +4 -7
  381. data/tasks/blacklight.rake +6 -6
  382. data/template.demo.rb +4 -12
  383. metadata +174 -207
  384. data/app/assets/javascripts/blacklight/autofocus.js +0 -16
  385. data/app/assets/javascripts/blacklight/bookmark_toggle.js +0 -23
  386. data/app/assets/javascripts/blacklight/checkbox_submit.js +0 -139
  387. data/app/assets/javascripts/blacklight/core.js +0 -30
  388. data/app/controllers/concerns/blacklight/request_builders.rb +0 -77
  389. data/app/controllers/concerns/blacklight/saved_searches.rb +0 -70
  390. data/app/controllers/concerns/blacklight/search_helper.rb +0 -161
  391. data/app/controllers/concerns/blacklight/suggest.rb +0 -25
  392. data/app/controllers/saved_searches_controller.rb +0 -4
  393. data/app/controllers/suggest_controller.rb +0 -4
  394. data/app/helpers/blacklight/deprecated_url_helper_behavior.rb +0 -57
  395. data/app/helpers/blacklight/render_partials_helper.rb +0 -205
  396. data/app/helpers/blacklight_configuration_helper.rb +0 -4
  397. data/app/helpers/blacklight_url_helper.rb +0 -4
  398. data/app/helpers/component_helper.rb +0 -4
  399. data/app/helpers/facets_helper.rb +0 -4
  400. data/app/helpers/hash_as_hidden_fields_helper.rb +0 -4
  401. data/app/helpers/layout_helper.rb +0 -4
  402. data/app/helpers/render_constraints_helper.rb +0 -4
  403. data/app/helpers/search_history_constraints_helper.rb +0 -4
  404. data/app/helpers/suggest_helper.rb +0 -4
  405. data/app/models/concerns/blacklight/solr/document/more_like_this.rb +0 -6
  406. data/app/views/_user_util_links.html.erb +0 -26
  407. data/app/views/blacklight/nav/_saved_searches.html.erb +0 -1
  408. data/app/views/catalog/_index_default.html.erb +0 -12
  409. data/app/views/catalog/_show_default.html.erb +0 -10
  410. data/app/views/catalog/_thumbnail_default.html.erb +0 -5
  411. data/app/views/saved_searches/index.html.erb +0 -32
  412. data/app/views/shared/_ajax_modal.html.erb +0 -6
  413. data/lib/generators/blacklight/solr4_generator.rb +0 -31
  414. data/lib/generators/blacklight/templates/config/jetty.yml +0 -13
  415. data/solr/conf/schema.xml +0 -629
  416. data/solr/conf/solrconfig.xml +0 -411
  417. data/spec/controllers/blacklight/search_helper_spec.rb +0 -489
  418. data/spec/controllers/saved_searches_controller_spec.rb +0 -32
  419. data/spec/controllers/suggest_controller_spec.rb +0 -17
  420. data/spec/features/saved_searches_spec.rb +0 -47
  421. data/spec/helpers/deprecated_url_helper_behavior_spec.rb +0 -101
  422. data/spec/lib/blacklight/utils_spec.rb +0 -167
  423. data/spec/models/blacklight/solr/document/more_like_this_spec.rb +0 -18
  424. data/spec/presenters/document_presenter_spec.rb +0 -438
  425. data/spec/support/backport_test.rb +0 -14
@@ -7,11 +7,11 @@ module Blacklight
7
7
 
8
8
  def document_action_path action_opts, url_opts = nil
9
9
  if action_opts.path
10
- self.send(action_opts.path, url_opts)
10
+ send(action_opts.path, url_opts)
11
11
  elsif url_opts[:id].class.respond_to?(:model_name)
12
12
  url_for([action_opts.key, url_opts[:id]])
13
13
  else
14
- self.send("#{action_opts.key}_#{controller_name}_path", url_opts)
14
+ send("#{action_opts.key}_#{controller_name}_path", url_opts)
15
15
  end
16
16
  end
17
17
 
@@ -23,7 +23,7 @@ module Blacklight
23
23
  #
24
24
  # @param [Hash] options
25
25
  # @return [String]
26
- def render_nav_actions(options={}, &block)
26
+ def render_nav_actions(options = {}, &block)
27
27
  render_filtered_partials(blacklight_config.navbar.partials, options, &block)
28
28
  end
29
29
 
@@ -35,10 +35,10 @@ module Blacklight
35
35
  # @param [Hash] options
36
36
  # @option options [String] :wrapping_class
37
37
  # @return [String]
38
- def render_index_doc_actions(document, options={})
38
+ def render_index_doc_actions(document, options = {})
39
39
  wrapping_class = options.delete(:wrapping_class) || "index-document-functions"
40
40
  rendered = render_filtered_partials(blacklight_config.view_config(document_index_view_type).document_actions, { document: document }.merge(options))
41
- content_tag("div", rendered, class: wrapping_class) unless rendered.blank?
41
+ content_tag("div", rendered, class: wrapping_class) if rendered.present?
42
42
  end
43
43
 
44
44
  ##
@@ -51,21 +51,7 @@ module Blacklight
51
51
  def render_results_collection_tools(options = {})
52
52
  wrapping_class = options.delete(:wrapping_class) || "search-widgets"
53
53
  rendered = render_filtered_partials(blacklight_config.view_config(document_index_view_type).collection_actions, options)
54
- content_tag("div", rendered, class: wrapping_class) unless rendered.blank?
55
- end
56
-
57
- def render_filtered_partials(partials, options={}, &block)
58
- content = []
59
- filter_partials(partials, options).each do |key, config|
60
- config.key ||= key
61
- rendered = render(partial: config.partial || key.to_s, locals: { document_action_config: config }.merge(options))
62
- if block_given?
63
- yield config, rendered
64
- else
65
- content << rendered
66
- end
67
- end
68
- safe_join(content, "\n") unless block_given?
54
+ content_tag("div", rendered, class: wrapping_class) if rendered.present?
69
55
  end
70
56
 
71
57
  ##
@@ -77,7 +63,7 @@ module Blacklight
77
63
  # @param [SolrDocument] document
78
64
  # @param [Hash] options
79
65
  # @return [String]
80
- def render_show_doc_actions(document=@document, options={}, &block)
66
+ def render_show_doc_actions(document = @document, options = {}, &block)
81
67
  render_filtered_partials(blacklight_config.show.document_actions, { document: document }.merge(options), &block)
82
68
  end
83
69
 
@@ -87,6 +73,20 @@ module Blacklight
87
73
 
88
74
  private
89
75
 
76
+ def render_filtered_partials(partials, options = {})
77
+ content = []
78
+ filter_partials(partials, options).each do |key, config|
79
+ config.key ||= key
80
+ rendered = render(partial: config.partial || key.to_s, locals: { document_action_config: config }.merge(options))
81
+ if block_given?
82
+ yield config, rendered
83
+ else
84
+ content << rendered
85
+ end
86
+ end
87
+ safe_join(content, "\n") unless block_given?
88
+ end
89
+
90
90
  def filter_partials(partials, options)
91
91
  partials.select { |_, config| blacklight_configuration_context.evaluate_if_unless_configuration config, options }
92
92
  end
@@ -1,32 +1,24 @@
1
1
  # frozen_string_literal: true
2
2
  module Blacklight::ConfigurationHelperBehavior
3
- extend Deprecation
4
- self.deprecation_horizon = 'blacklight 7.x'
5
-
6
3
  ##
7
4
  # Index fields to display for a type of document
8
- #
5
+ #
9
6
  # @param [SolrDocument] document
10
- # @return [Array<Blacklight::Configuration::Field>]
11
- def index_fields document=nil
7
+ # @return [Array<Blacklight::Configuration::Field>]
8
+ def index_fields _document = nil
9
+ Deprecation.warn(self, "index_fields is deprecated and will be removed in Blacklight 8. Use IndexPresenter#fields instead")
12
10
  blacklight_config.index_fields
13
11
  end
14
12
 
15
- # Used in the document_list partial (search view) for building a select element
16
- def sort_fields
17
- active_sort_fields.map { |_sort_key, field_config| [sort_field_label(field_config.key), field_config.key] }
18
- end
19
- deprecation_deprecate :sort_fields
20
-
21
13
  def active_sort_fields
22
- blacklight_config.sort_fields.select { |sort_key, field_config| should_render_field?(field_config) }
14
+ blacklight_config.sort_fields.select { |_sort_key, field_config| should_render_field?(field_config) }
23
15
  end
24
16
 
25
17
  # Used in the search form partial for building a select tag
26
18
  def search_fields
27
19
  search_field_options_for_select
28
20
  end
29
-
21
+
30
22
  # Returns suitable argument to options_for_select method, to create
31
23
  # an html select based on #search_field_list. Skips search_fields
32
24
  # marked :include_in_simple_select => false
@@ -36,8 +28,9 @@ module Blacklight::ConfigurationHelperBehavior
36
28
  end.compact
37
29
  end
38
30
 
39
- # used in the catalog/_show/_default partial
40
- def document_show_fields document=nil
31
+ # used in the catalog/_show partial
32
+ def document_show_fields _document = nil
33
+ Deprecation.warn(self, "document_show_fields is deprecated and will be removed in Blacklight 8. Use ShowPresenter#fields instead")
41
34
  blacklight_config.show_fields
42
35
  end
43
36
 
@@ -62,38 +55,28 @@ module Blacklight::ConfigurationHelperBehavior
62
55
  ##
63
56
  # Look up the label for the index field
64
57
  def index_field_label document, field
65
- field_config = index_fields(document)[field]
58
+ field_config = blacklight_config.index_fields_for(document)[field]
59
+ field_config ||= Blacklight::Configuration::NullField.new(key: field)
66
60
 
67
- field_label(
68
- :"blacklight.search.fields.index.#{field}",
69
- :"blacklight.search.fields.#{field}",
70
- (field_config.label if field_config),
71
- field.to_s.humanize
72
- )
61
+ field_config.display_label('index')
73
62
  end
74
63
 
75
64
  ##
76
65
  # Look up the label for the show field
77
66
  def document_show_field_label document, field
78
- field_config = document_show_fields(document)[field]
67
+ field_config = blacklight_config.show_fields_for(document)[field]
68
+ field_config ||= Blacklight::Configuration::NullField.new(key: field)
79
69
 
80
- field_label(
81
- :"blacklight.search.fields.show.#{field}",
82
- :"blacklight.search.fields.#{field}",
83
- (field_config.label if field_config),
84
- field.to_s.humanize
85
- )
70
+ field_config.display_label('show')
86
71
  end
87
72
 
88
73
  ##
89
74
  # Look up the label for the facet field
90
75
  def facet_field_label field
91
76
  field_config = blacklight_config.facet_fields[field]
92
- defaults = [:"blacklight.search.fields.facet.#{field}", :"blacklight.search.fields.#{field}"]
93
- defaults << field_config.label if field_config
94
- defaults << field.to_s.humanize
77
+ field_config ||= Blacklight::Configuration::NullField.new(key: field)
95
78
 
96
- field_label(*defaults)
79
+ field_config.display_label('facet')
97
80
  end
98
81
 
99
82
  def view_label view
@@ -114,34 +97,25 @@ module Blacklight::ConfigurationHelperBehavior
114
97
  field_config = blacklight_config.search_fields[key]
115
98
  field_config ||= Blacklight::Configuration::NullField.new(key: key)
116
99
 
117
- field_label(
118
- :"blacklight.search.fields.search.#{field_config.key}",
119
- :"blacklight.search.fields.#{field_config.key}",
120
- (field_config.label if field_config),
121
- key.to_s.humanize
122
- )
100
+ field_config.display_label('search')
123
101
  end
124
102
 
125
103
  def sort_field_label(key)
126
104
  field_config = blacklight_config.sort_fields[key]
127
105
  field_config ||= Blacklight::Configuration::NullField.new(key: key)
128
106
 
129
- field_label(
130
- :"blacklight.search.fields.sort.#{key}",
131
- (field_config.label if field_config),
132
- key.to_s.humanize
133
- )
107
+ field_config.display_label('sort')
134
108
  end
135
109
 
136
110
  ##
137
111
  # Look up the label for a solr field.
138
112
  #
139
113
  # @overload label
140
- # @param [Symbol] an i18n key
114
+ # @param [Symbol] an i18n key
141
115
  #
142
116
  # @overload label, i18n_key, another_i18n_key, and_another_i18n_key
143
117
  # @param [String] default label to display if the i18n look up fails
144
- # @param [Symbol] i18n keys to attempt to look up
118
+ # @param [Symbol] i18n keys to attempt to look up
145
119
  # before falling back to the label
146
120
  # @param [Symbol] any number of additional keys
147
121
  # @param [Symbol] ...
@@ -152,7 +126,7 @@ module Blacklight::ConfigurationHelperBehavior
152
126
  end
153
127
 
154
128
  def document_index_views
155
- blacklight_config.view.select do |k, config|
129
+ blacklight_config.view.select do |_k, config|
156
130
  should_render_field? config
157
131
  end
158
132
  end
@@ -167,7 +141,7 @@ module Blacklight::ConfigurationHelperBehavior
167
141
  ##
168
142
  # Get the default index view type
169
143
  def default_document_index_view_type
170
- document_index_views.select { |k,config| config.respond_to? :default and config.default }.keys.first || document_index_views.keys.first
144
+ document_index_views.select { |_k, config| config.respond_to?(:default) && config.default }.keys.first || document_index_views.keys.first
171
145
  end
172
146
 
173
147
  ##
@@ -183,13 +157,12 @@ module Blacklight::ConfigurationHelperBehavior
183
157
  end
184
158
 
185
159
  # Used in the document list partial (search view) for creating a link to the document show action
186
- def document_show_link_field document=nil
160
+ def document_show_link_field document = nil
187
161
  fields = Array(blacklight_config.view_config(document_index_view_type).title_field)
188
162
 
189
163
  field = fields.first if document.nil?
190
164
  field ||= fields.find { |f| document.has? f }
191
165
  field &&= field.try(:to_sym)
192
- field ||= document.id
193
166
 
194
167
  field
195
168
  end
@@ -197,23 +170,22 @@ module Blacklight::ConfigurationHelperBehavior
197
170
  ##
198
171
  # Default sort field
199
172
  def default_sort_field
200
- (active_sort_fields.find { |k,config| config.respond_to? :default and config.default } || active_sort_fields.first).try(:last)
173
+ (active_sort_fields.find { |_k, config| config.respond_to?(:default) && config.default } || active_sort_fields.first).try(:last)
201
174
  end
202
175
 
203
176
  ##
204
177
  # The default value for search results per page
205
- def default_per_page
206
- blacklight_config.default_per_page || blacklight_config.per_page.first
207
- end
208
-
178
+ delegate :default_per_page, to: :blacklight_config
179
+ deprecation_deprecate default_per_page: "Use blacklight_config.default_per_page instead"
180
+
209
181
  ##
210
182
  # The available options for results per page, in the style of #options_for_select
211
183
  def per_page_options_for_select
212
184
  blacklight_config.per_page.map do |count|
213
- [t(:'blacklight.search.per_page.label', :count => count).html_safe, count]
185
+ [t(:'blacklight.search.per_page.label', count: count).html_safe, count]
214
186
  end
215
187
  end
216
-
188
+
217
189
  ##
218
190
  # Determine whether to render a field by evaluating :if and :unless conditions
219
191
  #
@@ -6,16 +6,15 @@ module Blacklight::FacetsHelperBehavior
6
6
  # Check if any of the given fields have values
7
7
  #
8
8
  # @param [Array<String>] fields
9
- # @param [Hash] options
10
9
  # @return [Boolean]
11
- def has_facet_values? fields = facet_field_names, options = {}
12
- facets_from_request(fields).any? { |display_facet| !display_facet.items.empty? && should_render_facet?(display_facet) }
10
+ def has_facet_values? fields = facet_field_names
11
+ facets_from_request(fields).any? { |display_facet| should_render_facet?(display_facet) }
13
12
  end
14
13
 
15
14
  ##
16
15
  # Render a collection of facet fields.
17
- # @see #render_facet_limit
18
- #
16
+ # @see #render_facet_limit
17
+ #
19
18
  # @param [Array<String>] fields
20
19
  # @param [Hash] options
21
20
  # @return String
@@ -28,41 +27,42 @@ module Blacklight::FacetsHelperBehavior
28
27
  ##
29
28
  # Renders a single section for facet limit with a specified
30
29
  # solr field used for faceting. Can be over-ridden for custom
31
- # display on a per-facet basis.
30
+ # display on a per-facet basis.
32
31
  #
33
- # @param [Blacklight::Solr::Response::Facets::FacetField] display_facet
32
+ # @param [Blacklight::Solr::Response::Facets::FacetField] display_facet
34
33
  # @param [Hash] options parameters to use for rendering the facet limit partial
35
34
  # @option options [String] :partial partial to render
36
35
  # @option options [String] :layout partial layout to render
37
36
  # @option options [Hash] :locals locals to pass to the partial
38
- # @return [String]
37
+ # @return [String]
39
38
  def render_facet_limit(display_facet, options = {})
40
- return unless should_render_facet?(display_facet)
39
+ field_config = facet_configuration_for_field(display_facet.name)
40
+ return unless should_render_facet?(display_facet, field_config)
41
+
41
42
  options = options.dup
42
43
  options[:partial] ||= facet_partial_name(display_facet)
43
44
  options[:layout] ||= "facet_layout" unless options.key?(:layout)
44
45
  options[:locals] ||= {}
45
46
  options[:locals][:field_name] ||= display_facet.name
46
- options[:locals][:solr_field] ||= display_facet.name # deprecated
47
- options[:locals][:facet_field] ||= facet_configuration_for_field(display_facet.name)
48
- options[:locals][:display_facet] ||= display_facet
47
+ options[:locals][:facet_field] ||= field_config
48
+ options[:locals][:display_facet] ||= display_facet
49
49
 
50
50
  render(options)
51
51
  end
52
52
 
53
53
  ##
54
- # Renders the list of values
54
+ # Renders the list of values
55
55
  # removes any elements where render_facet_item returns a nil value. This enables an application
56
56
  # to filter undesireable facet items so they don't appear in the UI
57
- def render_facet_limit_list(paginator, facet_field, wrapping_element=:li)
58
- safe_join(paginator.items.map { |item| render_facet_item(facet_field, item) }.compact.map { |item| content_tag(wrapping_element,item)})
57
+ def render_facet_limit_list(paginator, facet_field, wrapping_element = :li)
58
+ safe_join(paginator.items.map { |item| render_facet_item(facet_field, item) }.compact.map { |item| content_tag(wrapping_element, item) })
59
59
  end
60
60
 
61
61
  ##
62
62
  # Renders a single facet item
63
63
  def render_facet_item(facet_field, item)
64
- if facet_in_params?(facet_field, item.value )
65
- render_selected_facet_value(facet_field, item)
64
+ if facet_in_params?(facet_field, item.value)
65
+ render_selected_facet_value(facet_field, item)
66
66
  else
67
67
  render_facet_value(facet_field, item)
68
68
  end
@@ -74,12 +74,14 @@ module Blacklight::FacetsHelperBehavior
74
74
  # By default, only render facets with items.
75
75
  #
76
76
  # @param [Blacklight::Solr::Response::Facets::FacetField] display_facet
77
- # @return [Boolean]
78
- def should_render_facet? display_facet
77
+ # @param [Blacklight::Configuration::FacetField] facet_config
78
+ # @return [Boolean]
79
+ def should_render_facet? display_facet, facet_config = nil
80
+ return false if display_facet.items.blank?
81
+
79
82
  # display when show is nil or true
80
- facet_config = facet_configuration_for_field(display_facet.name)
81
- display = should_render_field?(facet_config, display_facet)
82
- display && display_facet.items.present?
83
+ facet_config ||= facet_configuration_for_field(display_facet.name)
84
+ should_render_field?(facet_config, display_facet)
83
85
  end
84
86
 
85
87
  ##
@@ -87,7 +89,7 @@ module Blacklight::FacetsHelperBehavior
87
89
  # - if the facet is 'active', don't collapse
88
90
  # - if the facet is configured to collapse (the default), collapse
89
91
  # - if the facet is configured not to collapse, don't collapse
90
- #
92
+ #
91
93
  # @param [Blacklight::Configuration::FacetField] facet_field
92
94
  # @return [Boolean]
93
95
  def should_collapse_facet? facet_field
@@ -97,7 +99,7 @@ module Blacklight::FacetsHelperBehavior
97
99
  ##
98
100
  # The name of the partial to use to render a facet field.
99
101
  # uses the value of the "partial" field if set in the facet configuration
100
- # otherwise uses "facet_pivot" if this facet is a pivot facet
102
+ # otherwise uses "facet_pivot" if this facet is a pivot facet
101
103
  # defaults to 'facet_limit'
102
104
  #
103
105
  # @return [String]
@@ -105,9 +107,9 @@ module Blacklight::FacetsHelperBehavior
105
107
  config = facet_configuration_for_field(display_facet.name)
106
108
  name = config.try(:partial)
107
109
  name ||= "facet_pivot" if config.pivot
108
- name ||= "facet_limit"
110
+ name || "facet_limit"
109
111
  end
110
-
112
+
111
113
  ##
112
114
  # Standard display of a facet value in a list. Used in both _facets sidebar
113
115
  # partial and catalog/facet expanded list. Will output facet value name as
@@ -118,10 +120,13 @@ module Blacklight::FacetsHelperBehavior
118
120
  # @param [Hash] options
119
121
  # @option options [Boolean] :suppress_link display the facet, but don't link to it
120
122
  # @return [String]
121
- def render_facet_value(facet_field, item, options ={})
123
+ def render_facet_value(facet_field, item, options = {})
122
124
  path = path_for_facet(facet_field, item)
123
- content_tag(:span, :class => "facet-label") do
124
- link_to_unless(options[:suppress_link], facet_display_value(facet_field, item), path, :class=>"facet_select")
125
+ content_tag(:span, class: "facet-label") do
126
+ link_to_unless(options[:suppress_link],
127
+ facet_display_value(facet_field, item),
128
+ path,
129
+ class: "facet-select")
125
130
  end + render_facet_count(item.hits)
126
131
  end
127
132
 
@@ -130,12 +135,12 @@ module Blacklight::FacetsHelperBehavior
130
135
  # @param [Blacklight::Solr::Response::Facets::FacetField] facet_field
131
136
  # @param [String] item
132
137
  # @return [String]
133
- def path_for_facet(facet_field, item)
138
+ def path_for_facet(facet_field, item, path_options = {})
134
139
  facet_config = facet_configuration_for_field(facet_field)
135
140
  if facet_config.url_method
136
141
  send(facet_config.url_method, facet_field, item)
137
142
  else
138
- search_action_path(search_state.add_facet_params_and_redirect(facet_field, item))
143
+ search_action_path(search_state.add_facet_params_and_redirect(facet_field, item).merge(path_options))
139
144
  end
140
145
  end
141
146
 
@@ -150,15 +155,15 @@ module Blacklight::FacetsHelperBehavior
150
155
  content_tag(:span, facet_display_value(facet_field, item), class: "selected") +
151
156
  # remove link
152
157
  link_to(remove_href, class: "remove") do
153
- content_tag(:span, '', class: "glyphicon glyphicon-remove") +
158
+ content_tag(:span, '', class: "remove-icon") +
154
159
  content_tag(:span, '[remove]', class: 'sr-only')
155
160
  end
156
- end + render_facet_count(item.hits, :classes => ["selected"])
161
+ end + render_facet_count(item.hits, classes: ["selected"])
157
162
  end
158
163
 
159
164
  ##
160
165
  # Renders a count value for facet limits. Can be over-ridden locally
161
- # to change style. And can be called by plugins to get consistent display.
166
+ # to change style. And can be called by plugins to get consistent display.
162
167
  #
163
168
  # @param [Integer] num number of facet results
164
169
  # @param [Hash] options
@@ -166,24 +171,24 @@ module Blacklight::FacetsHelperBehavior
166
171
  # @return [String]
167
172
  def render_facet_count(num, options = {})
168
173
  classes = (options[:classes] || []) << "facet-count"
169
- content_tag("span", t('blacklight.search.facets.count', :number => number_with_delimiter(num)), :class => classes)
174
+ content_tag("span", t('blacklight.search.facets.count', number: number_with_delimiter(num)), class: classes)
170
175
  end
171
-
176
+
172
177
  ##
173
178
  # Are any facet restrictions for a field in the query parameters?
174
- #
179
+ #
175
180
  # @param [String] field
176
181
  # @return [Boolean]
177
182
  def facet_field_in_params? field
178
- !facet_params(field).blank?
183
+ facet_params(field).present?
179
184
  end
180
-
185
+
181
186
  ##
182
- # Check if the query parameters have the given facet field with the
187
+ # Check if the query parameters have the given facet field with the
183
188
  # given value.
184
- #
185
- # @param [Object] field
186
- # @param [Object] item facet value
189
+ #
190
+ # @param [String] field
191
+ # @param [String] item facet value
187
192
  # @return [Boolean]
188
193
  def facet_in_params?(field, item)
189
194
  value = facet_value_for_facet_item(item)
@@ -201,18 +206,18 @@ module Blacklight::FacetsHelperBehavior
201
206
 
202
207
  ##
203
208
  # Get the displayable version of a facet's value
204
- #
209
+ #
205
210
  # @param [Object] field
206
211
  # @param [String] item value
207
- # @return [String]
212
+ # @return [String]
208
213
  def facet_display_value field, item
209
214
  facet_config = facet_configuration_for_field(field)
210
-
215
+
211
216
  value = if item.respond_to? :label
212
- item.label
213
- else
214
- facet_value_for_facet_item(item)
215
- end
217
+ item.label
218
+ else
219
+ facet_value_for_facet_item(item)
220
+ end
216
221
 
217
222
  if facet_config.helper_method
218
223
  send facet_config.helper_method, value
@@ -220,8 +225,7 @@ module Blacklight::FacetsHelperBehavior
220
225
  facet_config.query[value][:label]
221
226
  elsif facet_config.date
222
227
  localization_options = facet_config.date == true ? {} : facet_config.date
223
-
224
- l(value.to_datetime, localization_options)
228
+ l(Time.zone.parse(value), localization_options)
225
229
  else
226
230
  value
227
231
  end