blacklight 6.24.0 → 7.0.0.rc1

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 (393) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.npmignore +23 -0
  4. data/.rubocop.yml +15 -3
  5. data/.rubocop_todo.yml +242 -379
  6. data/.solr_wrapper.yml +1 -1
  7. data/.travis.yml +20 -24
  8. data/Gemfile +1 -4
  9. data/README.md +21 -4
  10. data/Rakefile +1 -2
  11. data/VERSION +1 -1
  12. data/app/assets/images/blacklight/list.svg +1 -0
  13. data/app/assets/images/blacklight/search.svg +1 -0
  14. data/app/assets/javascripts/blacklight/blacklight.js +496 -56
  15. data/app/assets/stylesheets/blacklight/_balanced_list.scss +7 -12
  16. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +3 -1
  17. data/app/assets/stylesheets/blacklight/_bookmark.scss +1 -13
  18. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +27 -0
  19. data/app/assets/stylesheets/blacklight/_constraints.scss +17 -25
  20. data/app/assets/stylesheets/blacklight/_controls.scss +8 -16
  21. data/app/assets/stylesheets/blacklight/_facets.scss +74 -92
  22. data/app/assets/stylesheets/blacklight/_header.scss +35 -48
  23. data/app/assets/stylesheets/blacklight/_icons.scss +29 -0
  24. data/app/assets/stylesheets/blacklight/_layout.scss +0 -10
  25. data/app/assets/stylesheets/blacklight/_mixins.scss +15 -0
  26. data/app/assets/stylesheets/blacklight/_modal.scss +9 -17
  27. data/app/assets/stylesheets/blacklight/_pagination.scss +2 -17
  28. data/app/assets/stylesheets/blacklight/_search_history.scss +5 -13
  29. data/app/assets/stylesheets/blacklight/_search_results.scss +9 -8
  30. data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +1 -2
  31. data/app/builders/blacklight/action_builder.rb +56 -0
  32. data/app/controllers/bookmarks_controller.rb +2 -2
  33. data/app/controllers/catalog_controller.rb +2 -2
  34. data/app/controllers/concerns/blacklight/base.rb +0 -33
  35. data/app/controllers/concerns/blacklight/bookmarks.rb +20 -37
  36. data/app/controllers/concerns/blacklight/catalog.rb +254 -213
  37. data/app/controllers/concerns/blacklight/controller.rb +117 -133
  38. data/app/controllers/concerns/blacklight/default_component_configuration.rb +12 -43
  39. data/app/controllers/concerns/blacklight/search_context.rb +10 -14
  40. data/app/controllers/concerns/blacklight/search_fields.rb +4 -14
  41. data/app/controllers/concerns/blacklight/token_based_user.rb +6 -10
  42. data/app/helpers/blacklight/blacklight_helper_behavior.rb +32 -118
  43. data/app/helpers/blacklight/catalog_helper_behavior.rb +94 -88
  44. data/app/helpers/blacklight/component_helper_behavior.rb +19 -19
  45. data/app/helpers/blacklight/configuration_helper_behavior.rb +25 -54
  46. data/app/helpers/blacklight/facets_helper_behavior.rb +40 -39
  47. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +9 -11
  48. data/app/helpers/blacklight/icon_helper_behavior.rb +16 -0
  49. data/app/helpers/blacklight/layout_helper_behavior.rb +3 -10
  50. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +6 -6
  51. data/app/helpers/blacklight/render_partials_helper_behavior.rb +195 -0
  52. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +18 -11
  53. data/app/helpers/blacklight/suggest_helper_behavior.rb +1 -0
  54. data/app/helpers/blacklight/url_helper_behavior.rb +21 -27
  55. data/app/{assets/javascripts → javascript}/blacklight/autocomplete.js +3 -2
  56. data/app/javascript/blacklight/autofocus.js +20 -0
  57. data/app/javascript/blacklight/bookmark_toggle.js +25 -0
  58. data/app/javascript/blacklight/checkbox_submit.js +133 -0
  59. data/app/{assets/javascripts → javascript}/blacklight/collapsable.js +1 -1
  60. data/app/javascript/blacklight/core.js +39 -0
  61. data/app/{assets/javascripts → javascript}/blacklight/facet_load.js +6 -6
  62. data/app/{assets/javascripts/blacklight/ajax_modal.js → javascript/blacklight/modal.js} +63 -63
  63. data/app/{assets/javascripts → javascript}/blacklight/search_context.js +10 -2
  64. data/app/models/blacklight/facet_paginator.rb +3 -3
  65. data/app/models/blacklight/icon.rb +53 -0
  66. data/app/models/blacklight/solr/facet_paginator.rb +3 -3
  67. data/app/models/blacklight/suggest_search.rb +15 -4
  68. data/app/models/bookmark.rb +4 -9
  69. data/app/models/concerns/blacklight/configurable.rb +13 -13
  70. data/app/models/concerns/blacklight/document.rb +8 -42
  71. data/app/models/concerns/blacklight/document/active_model_shim.rb +8 -11
  72. data/app/models/concerns/blacklight/document/cache_key.rb +1 -1
  73. data/app/models/concerns/blacklight/document/dublin_core.rb +2 -2
  74. data/app/models/concerns/blacklight/document/email.rb +1 -1
  75. data/app/models/concerns/blacklight/document/extensions.rb +5 -5
  76. data/app/models/concerns/blacklight/document/semantic_fields.rb +9 -9
  77. data/app/models/concerns/blacklight/document/sms.rb +1 -1
  78. data/app/models/concerns/blacklight/solr/document.rb +7 -8
  79. data/app/models/concerns/blacklight/suggest/response.rb +3 -5
  80. data/app/models/concerns/blacklight/user.rb +6 -6
  81. data/app/models/record_mailer.rb +5 -6
  82. data/app/models/search.rb +4 -7
  83. data/app/presenters/blacklight/field_presenter.rb +5 -5
  84. data/app/presenters/blacklight/index_presenter.rb +34 -71
  85. data/app/presenters/blacklight/json_presenter.rb +7 -4
  86. data/app/presenters/blacklight/link_alternate_presenter.rb +1 -1
  87. data/app/presenters/blacklight/rendering/abstract_step.rb +5 -5
  88. data/app/presenters/blacklight/rendering/helper_method.rb +8 -8
  89. data/app/presenters/blacklight/rendering/join.rb +3 -3
  90. data/app/presenters/blacklight/rendering/link_to_facet.rb +19 -19
  91. data/app/presenters/blacklight/rendering/microdata.rb +3 -3
  92. data/app/presenters/blacklight/rendering/pipeline.rb +5 -5
  93. data/app/presenters/blacklight/search_bar_presenter.rb +37 -0
  94. data/app/presenters/blacklight/show_presenter.rb +20 -69
  95. data/app/presenters/blacklight/thumbnail_presenter.rb +72 -0
  96. data/app/services/blacklight/document_factory.rb +11 -0
  97. data/app/services/blacklight/field_retriever.rb +24 -24
  98. data/app/services/blacklight/search_service.rb +154 -0
  99. data/app/views/blacklight/nav/_bookmark.html.erb +2 -2
  100. data/app/views/blacklight/nav/_search_history.html.erb +1 -1
  101. data/app/views/bookmarks/_tools.html.erb +2 -2
  102. data/app/views/bookmarks/index.html.erb +2 -2
  103. data/app/views/catalog/_bookmark_control.html.erb +26 -10
  104. data/app/views/catalog/_citation.html.erb +18 -23
  105. data/app/views/catalog/_constraints.html.erb +5 -8
  106. data/app/views/catalog/_constraints_element.html.erb +6 -6
  107. data/app/views/catalog/{_document_default.atom.builder → _document.atom.builder} +2 -2
  108. data/app/views/catalog/_document.html.erb +5 -3
  109. data/app/views/catalog/{_document_default.rss.builder → _document.rss.builder} +0 -0
  110. data/app/views/catalog/_document_action.html.erb +2 -1
  111. data/app/views/catalog/_email_form.html.erb +8 -4
  112. data/app/views/catalog/_facet_index_navigation.html.erb +3 -3
  113. data/app/views/catalog/_facet_layout.html.erb +5 -7
  114. data/app/views/catalog/_facet_limit.html.erb +3 -2
  115. data/app/views/catalog/_facet_pagination.html.erb +10 -10
  116. data/app/views/catalog/_facet_pivot.html.erb +2 -2
  117. data/app/views/catalog/_facets.html.erb +8 -12
  118. data/app/views/catalog/{_group_default.html.erb → _group.html.erb} +0 -0
  119. data/app/views/catalog/_home_text.html.erb +32 -36
  120. data/app/views/catalog/_index.html.erb +12 -0
  121. data/app/views/catalog/{_index_header_default.html.erb → _index_header.html.erb} +2 -2
  122. data/app/views/catalog/_per_page_widget.html.erb +6 -7
  123. data/app/views/catalog/_previous_next_doc.html.erb +6 -14
  124. data/app/views/catalog/_search_form.html.erb +12 -8
  125. data/app/views/catalog/_search_header.html.erb +0 -3
  126. data/app/views/catalog/_search_results.html.erb +4 -0
  127. data/app/views/catalog/_show.html.erb +10 -0
  128. data/app/views/catalog/{_show_header_default.html.erb → _show_header.html.erb} +0 -0
  129. data/app/views/catalog/_show_main_content.html.erb +4 -4
  130. data/app/views/catalog/_show_sidebar.html.erb +3 -3
  131. data/app/views/catalog/_show_tools.html.erb +9 -11
  132. data/app/views/catalog/_sms_form.html.erb +8 -4
  133. data/app/views/catalog/_sort_and_per_page.html.erb +3 -3
  134. data/app/views/catalog/_sort_widget.html.erb +7 -7
  135. data/app/views/catalog/_thumbnail.html.erb +5 -0
  136. data/app/views/catalog/_view_type_group.html.erb +2 -2
  137. data/app/views/catalog/citation.html.erb +1 -1
  138. data/app/views/catalog/citation.js.erb +9 -1
  139. data/app/views/catalog/email.html.erb +5 -5
  140. data/app/views/catalog/email_success.html.erb +11 -9
  141. data/app/views/catalog/facet.html.erb +5 -6
  142. data/app/views/catalog/index.atom.builder +10 -15
  143. data/app/views/catalog/index.html.erb +9 -11
  144. data/app/views/catalog/index.json.jbuilder +65 -3
  145. data/app/views/catalog/index.rss.builder +5 -5
  146. data/app/views/catalog/opensearch.xml.builder +10 -10
  147. data/app/views/catalog/show.html.erb +11 -6
  148. data/app/views/catalog/sms.html.erb +2 -3
  149. data/app/views/catalog/sms_success.html.erb +11 -10
  150. data/app/views/kaminari/blacklight/_first_page.html.erb +2 -2
  151. data/app/views/kaminari/blacklight/_gap.html.erb +2 -2
  152. data/app/views/kaminari/blacklight/_last_page.html.erb +2 -2
  153. data/app/views/kaminari/blacklight/_next_page.html.erb +4 -4
  154. data/app/views/kaminari/blacklight/_page.html.erb +3 -3
  155. data/app/views/kaminari/blacklight/_prev_page.html.erb +4 -4
  156. data/app/views/kaminari/blacklight_compact/_paginator.html.erb +4 -4
  157. data/app/views/layouts/blacklight.html.erb +14 -41
  158. data/app/views/layouts/blacklight/base.html.erb +43 -0
  159. data/app/views/layouts/catalog_result.html.erb +11 -0
  160. data/app/views/search_history/index.html.erb +16 -21
  161. data/app/views/{_flash_msg.html.erb → shared/_flash_msg.html.erb} +0 -0
  162. data/app/views/shared/_header_navbar.html.erb +8 -13
  163. data/app/views/shared/_modal.html.erb +6 -0
  164. data/app/views/shared/_user_util_links.html.erb +22 -0
  165. data/blacklight.gemspec +10 -11
  166. data/config/locales/blacklight.de.yml +0 -30
  167. data/config/locales/blacklight.en.yml +1 -27
  168. data/config/locales/blacklight.es.yml +0 -30
  169. data/config/locales/blacklight.fr.yml +0 -30
  170. data/config/locales/blacklight.hu.yml +210 -0
  171. data/config/locales/blacklight.it.yml +0 -30
  172. data/config/locales/blacklight.nl.yml +210 -0
  173. data/config/locales/blacklight.pt-BR.yml +6 -32
  174. data/config/locales/blacklight.sq.yml +1 -28
  175. data/config/locales/blacklight.zh.yml +0 -25
  176. data/config/routes.rb +3 -10
  177. data/db/migrate/20140202020202_create_bookmarks.rb +0 -1
  178. data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -1
  179. data/lib/blacklight.rb +4 -5
  180. data/lib/blacklight/abstract_repository.rb +9 -21
  181. data/lib/blacklight/configuration.rb +82 -89
  182. data/lib/blacklight/configuration/context.rb +1 -1
  183. data/lib/blacklight/configuration/facet_field.rb +16 -9
  184. data/lib/blacklight/configuration/field.rb +32 -3
  185. data/lib/blacklight/configuration/fields.rb +41 -48
  186. data/lib/blacklight/configuration/search_field.rb +2 -2
  187. data/lib/blacklight/configuration/sort_field.rb +2 -2
  188. data/lib/blacklight/configuration/view_config.rb +4 -0
  189. data/lib/blacklight/engine.rb +6 -10
  190. data/lib/blacklight/exceptions.rb +4 -7
  191. data/lib/blacklight/nested_open_struct_with_hash_access.rb +107 -0
  192. data/lib/blacklight/open_struct_with_hash_access.rb +49 -0
  193. data/lib/blacklight/parameters.rb +1 -1
  194. data/lib/blacklight/routes/searchable.rb +1 -0
  195. data/lib/blacklight/search_builder.rb +26 -35
  196. data/lib/blacklight/search_state.rb +8 -8
  197. data/lib/blacklight/solr/repository.rb +3 -36
  198. data/lib/blacklight/solr/request.rb +1 -1
  199. data/lib/blacklight/solr/response.rb +29 -30
  200. data/lib/blacklight/solr/response/facets.rb +29 -31
  201. data/lib/blacklight/solr/response/group.rb +3 -3
  202. data/lib/blacklight/solr/response/group_response.rb +1 -1
  203. data/lib/blacklight/solr/response/more_like_this.rb +2 -2
  204. data/lib/blacklight/solr/response/response.rb +2 -2
  205. data/lib/blacklight/solr/response/spelling.rb +3 -3
  206. data/lib/blacklight/solr/search_builder_behavior.rb +25 -29
  207. data/lib/blacklight/version.rb +1 -1
  208. data/lib/generators/blacklight/assets_generator.rb +8 -8
  209. data/lib/generators/blacklight/controller_generator.rb +4 -5
  210. data/lib/generators/blacklight/document_generator.rb +1 -1
  211. data/lib/generators/blacklight/install_generator.rb +18 -21
  212. data/lib/generators/blacklight/search_builder_generator.rb +1 -1
  213. data/lib/generators/blacklight/{solr5_generator.rb → solr_generator.rb} +4 -6
  214. data/lib/generators/blacklight/templates/.solr_wrapper.yml +5 -0
  215. data/lib/generators/blacklight/templates/blacklight.scss +0 -2
  216. data/lib/generators/blacklight/templates/catalog_controller.rb +52 -51
  217. data/{solr → lib/generators/blacklight/templates/solr}/conf/_rest_managed.json +0 -0
  218. data/{solr → lib/generators/blacklight/templates/solr}/conf/admin-extra.html +0 -0
  219. data/{solr → lib/generators/blacklight/templates/solr}/conf/elevate.xml +0 -0
  220. data/{solr → lib/generators/blacklight/templates/solr}/conf/mapping-ISOLatin1Accent.txt +0 -0
  221. data/{solr → lib/generators/blacklight/templates/solr}/conf/protwords.txt +0 -0
  222. data/lib/generators/blacklight/templates/solr/conf/schema.xml +390 -0
  223. data/{solr → lib/generators/blacklight/templates/solr}/conf/scripts.conf +0 -0
  224. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +195 -0
  225. data/{solr → lib/generators/blacklight/templates/solr}/conf/spellings.txt +0 -0
  226. data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords.txt +0 -0
  227. data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords_en.txt +0 -0
  228. data/{solr → lib/generators/blacklight/templates/solr}/conf/synonyms.txt +0 -0
  229. data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example.xsl +0 -0
  230. data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_atom.xsl +0 -0
  231. data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_rss.xsl +0 -0
  232. data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/luke.xsl +0 -0
  233. data/lib/generators/blacklight/test_support_generator.rb +10 -10
  234. data/lib/generators/blacklight/user_generator.rb +3 -6
  235. data/lib/railties/blacklight.rake +19 -14
  236. data/package-lock.json +2057 -0
  237. data/package.json +28 -0
  238. data/spec/controllers/alternate_controller_spec.rb +1 -1
  239. data/spec/controllers/application_controller_spec.rb +1 -1
  240. data/spec/controllers/blacklight/base_spec.rb +1 -1
  241. data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +11 -7
  242. data/spec/controllers/blacklight/facet_spec.rb +1 -1
  243. data/spec/controllers/blacklight/search_fields_spec.rb +1 -13
  244. data/spec/controllers/bookmarks_controller_spec.rb +1 -36
  245. data/spec/controllers/catalog_controller_spec.rb +153 -53
  246. data/spec/controllers/search_history_controller_spec.rb +2 -2
  247. data/spec/features/alternate_controller_spec.rb +1 -1
  248. data/spec/features/autocomplete_spec.rb +2 -2
  249. data/spec/features/bookmarks_spec.rb +10 -10
  250. data/spec/features/did_you_mean_spec.rb +3 -9
  251. data/spec/features/facets_spec.rb +11 -11
  252. data/spec/features/record_view_spec.rb +1 -6
  253. data/spec/features/search_context_spec.rb +2 -2
  254. data/spec/features/search_filters_spec.rb +41 -41
  255. data/spec/features/search_formats_spec.rb +1 -1
  256. data/spec/features/search_history_spec.rb +1 -26
  257. data/spec/features/search_pagination_spec.rb +1 -1
  258. data/spec/features/search_results_spec.rb +3 -4
  259. data/spec/features/search_sort_spec.rb +2 -2
  260. data/spec/features/search_spec.rb +5 -10
  261. data/{solr → spec/fixtures}/sample_solr_documents.yml +688 -688
  262. data/spec/helpers/{configuration_helper_spec.rb → blacklight/configuration_helper_behavior_spec.rb} +70 -65
  263. data/spec/helpers/{facets_helper_spec.rb → blacklight/facets_helper_behavior_spec.rb} +7 -8
  264. data/spec/helpers/{hash_as_hidden_fields_spec.rb → blacklight/hash_as_hidden_fields_behavior_spec.rb} +1 -1
  265. data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +8 -0
  266. data/spec/helpers/{layout_helper_spec.rb → blacklight/layout_helper_behavior_spec.rb} +5 -15
  267. data/spec/helpers/{render_constraints_helper_spec.rb → blacklight/render_constraints_helper_behavior_spec.rb} +2 -3
  268. data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +80 -0
  269. data/spec/helpers/{search_history_constraints_helper_spec.rb → blacklight/search_history_constraints_helper_behavior_spec.rb} +9 -9
  270. data/spec/helpers/{suggest_helper_spec.rb → blacklight/suggest_helper_behavior_spec.rb} +4 -2
  271. data/spec/helpers/{url_helper_spec.rb → blacklight/url_helper_behavior_spec.rb} +11 -15
  272. data/spec/helpers/blacklight_helper_spec.rb +36 -141
  273. data/spec/helpers/catalog_helper_spec.rb +37 -56
  274. data/spec/integration/generators/blacklight/{solr5_generator_spec.rb → solr_generator_spec.rb} +3 -3
  275. data/spec/lib/blacklight/configuration/facet_field_spec.rb +11 -0
  276. data/spec/lib/blacklight/configuration/field_spec.rb +12 -0
  277. data/spec/lib/blacklight/nested_open_struct_with_hash_access_spec.rb +17 -0
  278. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +153 -0
  279. data/spec/lib/blacklight/parameters_spec.rb +1 -1
  280. data/spec/lib/blacklight/search_state_spec.rb +2 -2
  281. data/spec/lib/blacklight_spec.rb +1 -1
  282. data/spec/lib/tasks/blacklight_task_spec.rb +1 -1
  283. data/spec/models/blacklight/configurable_spec.rb +15 -16
  284. data/spec/models/blacklight/configuration/context_spec.rb +1 -1
  285. data/spec/models/blacklight/configuration_spec.rb +146 -135
  286. data/spec/models/blacklight/document/active_model_shim_spec.rb +11 -1
  287. data/spec/models/blacklight/document/cache_key_spec.rb +1 -1
  288. data/spec/models/blacklight/document/dublin_core_spec.rb +5 -5
  289. data/spec/models/blacklight/document/email_spec.rb +3 -3
  290. data/spec/models/blacklight/document/sms_spec.rb +3 -3
  291. data/spec/models/blacklight/document_spec.rb +3 -16
  292. data/spec/models/blacklight/facet_paginator_spec.rb +1 -1
  293. data/spec/models/blacklight/icon_spec.rb +34 -0
  294. data/spec/models/blacklight/search_builder_spec.rb +33 -27
  295. data/spec/models/blacklight/solr/document_spec.rb +18 -7
  296. data/spec/models/blacklight/solr/facet_paginator_spec.rb +1 -1
  297. data/spec/models/blacklight/solr/repository_spec.rb +32 -27
  298. data/spec/models/blacklight/solr/request_spec.rb +1 -1
  299. data/spec/models/blacklight/solr/response/facets_spec.rb +1 -1
  300. data/spec/models/blacklight/solr/response/group_response_spec.rb +1 -1
  301. data/spec/models/blacklight/solr/response/group_spec.rb +1 -1
  302. data/spec/models/blacklight/solr/response_spec.rb +9 -6
  303. data/spec/models/blacklight/solr/search_builder_spec.rb +35 -48
  304. data/spec/models/blacklight/suggest/response_spec.rb +4 -5
  305. data/spec/models/blacklight/suggest_search_spec.rb +14 -7
  306. data/spec/models/blacklight/user_spec.rb +1 -1
  307. data/spec/models/bookmark_spec.rb +1 -1
  308. data/spec/models/record_mailer_spec.rb +2 -2
  309. data/spec/models/search_spec.rb +1 -1
  310. data/spec/models/solr_document_spec.rb +3 -3
  311. data/spec/presenters/blacklight/search_bar_presenter_spec.rb +72 -0
  312. data/spec/presenters/index_presenter_spec.rb +70 -143
  313. data/spec/presenters/pipeline_spec.rb +4 -4
  314. data/spec/presenters/show_presenter_spec.rb +83 -145
  315. data/spec/presenters/thumbnail_presenter_spec.rb +171 -0
  316. data/spec/routing/catalog_routing_spec.rb +1 -17
  317. data/spec/services/blacklight/search_service_spec.rb +446 -0
  318. data/spec/spec_helper.rb +22 -9
  319. data/spec/test_app_templates/Gemfile.extra +2 -5
  320. data/spec/test_app_templates/lib/generators/test_app_generator.rb +1 -1
  321. data/spec/views/catalog/_constraints.html.erb_spec.rb +1 -3
  322. data/spec/views/catalog/_constraints_element.html.erb_spec.rb +8 -8
  323. data/spec/views/catalog/_document.html.erb_spec.rb +7 -7
  324. data/spec/views/catalog/_document_list.html.erb_spec.rb +1 -1
  325. data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +1 -1
  326. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +6 -6
  327. data/spec/views/catalog/_facets.html.erb_spec.rb +2 -2
  328. data/spec/views/catalog/{_index_default.erb_spec.rb → _index.html.erb_spec.rb} +1 -1
  329. data/spec/views/catalog/{_index_header_default.html.erb_spec.rb → _index_header.html.erb_spec.rb} +4 -4
  330. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +4 -27
  331. data/spec/views/catalog/_search_header.erb_spec.rb +1 -3
  332. data/spec/views/catalog/{_show_default.erb_spec.rb → _show.html.erb_spec.rb} +1 -1
  333. data/spec/views/catalog/_show_sidebar.erb_spec.rb +3 -3
  334. data/spec/views/catalog/_show_tools.html.erb_spec.rb +3 -3
  335. data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +1 -1
  336. data/spec/views/catalog/{_thumbnail_default.erb_spec.rb → _thumbnail.html.erb_spec.rb} +3 -3
  337. data/spec/views/catalog/_view_type_group.html.erb_spec.rb +5 -1
  338. data/spec/views/catalog/email_success.html.erb_spec.rb +9 -0
  339. data/spec/views/catalog/facet.html.erb_spec.rb +1 -1
  340. data/spec/views/catalog/facet.json.jbuilder_spec.rb +1 -1
  341. data/spec/views/catalog/index.atom.builder_spec.rb +2 -2
  342. data/spec/views/catalog/index.html.erb_spec.rb +4 -7
  343. data/spec/views/catalog/index.json.jbuilder_spec.rb +66 -21
  344. data/spec/views/catalog/opensearch.xml.builder_spec.rb +1 -1
  345. data/spec/views/catalog/show.html.erb_spec.rb +2 -2
  346. data/spec/views/catalog/sms_success.html.erb_spec.rb +9 -0
  347. data/spec/views/{_user_util_links.html.erb_spec.rb → shared/_user_util_links.html.erb_spec.rb} +4 -4
  348. data/tasks/blacklight.rake +10 -8
  349. data/template.demo.rb +1 -11
  350. metadata +171 -189
  351. data/app/assets/javascripts/blacklight/autofocus.js +0 -16
  352. data/app/assets/javascripts/blacklight/bookmark_toggle.js +0 -23
  353. data/app/assets/javascripts/blacklight/checkbox_submit.js +0 -139
  354. data/app/assets/javascripts/blacklight/core.js +0 -30
  355. data/app/controllers/concerns/blacklight/request_builders.rb +0 -77
  356. data/app/controllers/concerns/blacklight/saved_searches.rb +0 -70
  357. data/app/controllers/concerns/blacklight/search_helper.rb +0 -161
  358. data/app/controllers/concerns/blacklight/suggest.rb +0 -25
  359. data/app/controllers/saved_searches_controller.rb +0 -4
  360. data/app/controllers/suggest_controller.rb +0 -4
  361. data/app/helpers/blacklight/deprecated_url_helper_behavior.rb +0 -57
  362. data/app/helpers/blacklight/render_partials_helper.rb +0 -205
  363. data/app/helpers/blacklight_configuration_helper.rb +0 -4
  364. data/app/helpers/blacklight_url_helper.rb +0 -4
  365. data/app/helpers/component_helper.rb +0 -4
  366. data/app/helpers/facets_helper.rb +0 -4
  367. data/app/helpers/hash_as_hidden_fields_helper.rb +0 -4
  368. data/app/helpers/layout_helper.rb +0 -4
  369. data/app/helpers/render_constraints_helper.rb +0 -4
  370. data/app/helpers/search_history_constraints_helper.rb +0 -4
  371. data/app/helpers/suggest_helper.rb +0 -4
  372. data/app/models/concerns/blacklight/solr/document/more_like_this.rb +0 -6
  373. data/app/presenters/blacklight/document_presenter.rb +0 -153
  374. data/app/views/_user_util_links.html.erb +0 -26
  375. data/app/views/blacklight/nav/_saved_searches.html.erb +0 -1
  376. data/app/views/catalog/_index_default.html.erb +0 -12
  377. data/app/views/catalog/_show_default.html.erb +0 -10
  378. data/app/views/catalog/_thumbnail_default.html.erb +0 -5
  379. data/app/views/saved_searches/index.html.erb +0 -32
  380. data/app/views/shared/_ajax_modal.html.erb +0 -6
  381. data/lib/blacklight/utils.rb +0 -183
  382. data/lib/generators/blacklight/solr4_generator.rb +0 -31
  383. data/solr/conf/schema.xml +0 -627
  384. data/solr/conf/solrconfig.xml +0 -411
  385. data/spec/controllers/blacklight/search_helper_spec.rb +0 -489
  386. data/spec/controllers/saved_searches_controller_spec.rb +0 -32
  387. data/spec/controllers/suggest_controller_spec.rb +0 -17
  388. data/spec/features/saved_searches_spec.rb +0 -47
  389. data/spec/helpers/deprecated_url_helper_behavior_spec.rb +0 -101
  390. data/spec/lib/blacklight/utils_spec.rb +0 -167
  391. data/spec/models/blacklight/solr/document/more_like_this_spec.rb +0 -18
  392. data/spec/presenters/document_presenter_spec.rb +0 -438
  393. data/spec/support/backport_test.rb +0 -14
@@ -3,7 +3,7 @@
3
3
  # fields, works with hash nested with other hashes and arrays, standard rails
4
4
  # serialization style. Oddly while Hash#to_query will do this for a URL
5
5
  # query parameters, there seems to be no built in way to do it to create
6
- # hidden form fields instead.
6
+ # hidden form fields instead.
7
7
  #
8
8
  # Code taken from http://marklunds.com/articles/one/314
9
9
  #
@@ -15,22 +15,21 @@ module Blacklight::HashAsHiddenFieldsHelperBehavior
15
15
  # representing a hash passed in using Rails-style request parameters
16
16
  # for hashes nested with arrays and other hashes.
17
17
  # @param [Hash] hash
18
- # @return [String]
18
+ # @return [String]
19
19
  def render_hash_as_hidden_fields(hash)
20
-
21
20
  hidden_fields = []
22
21
  flatten_hash(hash).each do |name, value|
23
22
  value = Array.wrap(value)
24
23
  value.each do |v|
25
- hidden_fields << hidden_field_tag(name, v.to_s, :id => nil)
24
+ hidden_fields << hidden_field_tag(name, v.to_s, id: nil)
26
25
  end
27
26
  end
28
-
27
+
29
28
  safe_join(hidden_fields, "\n")
30
29
  end
31
30
 
32
- protected
33
-
31
+ private
32
+
34
33
  def flatten_hash(hash = params, ancestor_names = [])
35
34
  flat_hash = {}
36
35
  hash.each do |k, v|
@@ -44,17 +43,16 @@ module Blacklight::HashAsHiddenFieldsHelperBehavior
44
43
  flat_hash[key] = v
45
44
  end
46
45
  end
47
-
46
+
48
47
  flat_hash
49
48
  end
50
-
49
+
51
50
  def flat_hash_key(names)
52
51
  names = Array.new(names)
53
- name = names.shift.to_s.dup
52
+ name = names.shift.to_s.dup
54
53
  names.each do |n|
55
54
  name << "[#{n}]"
56
55
  end
57
56
  name
58
57
  end
59
-
60
58
  end
@@ -0,0 +1,16 @@
1
+ ##
2
+ # Module to help generate icon helpers for SVG images
3
+ module Blacklight::IconHelperBehavior
4
+ ##
5
+ # Returns the raw SVG (String) for a Blacklight Icon located in
6
+ # app/assets/images/blacklight/*.svg. Caches them so we don't have to look up
7
+ # the svg everytime.
8
+ # @param [String, Symbol] icon_name
9
+ # @return [String]
10
+ def blacklight_icon(icon_name, options = {})
11
+ Rails.cache.fetch([:blacklight_icons, icon_name, options]) do
12
+ icon = Blacklight::Icon.new(icon_name, options)
13
+ content_tag(:span, icon.svg.html_safe, icon.options)
14
+ end
15
+ end
16
+ end
@@ -11,13 +11,6 @@ module Blacklight
11
11
  "#{main_content_classes} show-document"
12
12
  end
13
13
 
14
- ##
15
- # Attributes to add to the <html> tag (e.g. lang and dir)
16
- # @return [Hash]
17
- def html_tag_attributes
18
- { lang: I18n.locale }
19
- end
20
-
21
14
  ##
22
15
  # Classes added to a document's sidebar div
23
16
  # @return [String]
@@ -29,20 +22,20 @@ module Blacklight
29
22
  # Classes used for sizing the main content of a Blacklight page
30
23
  # @return [String]
31
24
  def main_content_classes
32
- 'col-md-9 col-sm-8'
25
+ 'col-md-9'
33
26
  end
34
27
 
35
28
  ##
36
29
  # Classes used for sizing the sidebar content of a Blacklight page
37
30
  # @return [String]
38
31
  def sidebar_classes
39
- 'col-md-3 col-sm-4'
32
+ 'page-sidebar col-md-3'
40
33
  end
41
34
 
42
35
  ##
43
36
  # Class used for specifying main layout container classes. Can be
44
37
  # overwritten to return 'container-fluid' for Bootstrap full-width layout
45
- # @return [String]
38
+ # @return [String]
46
39
  def container_classes
47
40
  'container'
48
41
  end
@@ -12,7 +12,7 @@ module Blacklight::RenderConstraintsHelperBehavior
12
12
  # @param [Hash] localized_params query parameters
13
13
  # @return [Boolean]
14
14
  def query_has_constraints?(localized_params = params)
15
- !(localized_params[:q].blank? and localized_params[:f].blank?)
15
+ !(localized_params[:q].blank? && localized_params[:f].blank?)
16
16
  end
17
17
 
18
18
  ##
@@ -35,9 +35,9 @@ module Blacklight::RenderConstraintsHelperBehavior
35
35
  return "".html_safe if localized_params[:q].blank?
36
36
 
37
37
  render_constraint_element(constraint_query_label(localized_params),
38
- localized_params[:q],
39
- classes: ["query"],
40
- remove: remove_constraint_url(localized_params))
38
+ localized_params[:q],
39
+ classes: ["query"],
40
+ remove: remove_constraint_url(localized_params))
41
41
  end
42
42
 
43
43
  ##
@@ -67,7 +67,7 @@ module Blacklight::RenderConstraintsHelperBehavior
67
67
  return "".html_safe unless localized_params[:f]
68
68
  path = controller.search_state_class.new(localized_params, blacklight_config, controller)
69
69
  content = []
70
- localized_params[:f].each_pair do |facet,values|
70
+ localized_params[:f].each_pair do |facet, values|
71
71
  content << render_filter_element(facet, values, path)
72
72
  end
73
73
 
@@ -107,6 +107,6 @@ module Blacklight::RenderConstraintsHelperBehavior
107
107
  # @option options [Array<String>] :classes an array of classes to add to container span for constraint.
108
108
  # @return [String]
109
109
  def render_constraint_element(label, value, options = {})
110
- render(:partial => "catalog/constraints_element", :locals => {:label => label, :value => value, :options => options})
110
+ render(partial: "catalog/constraints_element", locals: { label: label, value: value, options: options })
111
111
  end
112
112
  end
@@ -0,0 +1,195 @@
1
+ # frozen_string_literal: true
2
+ module Blacklight::RenderPartialsHelperBehavior
3
+ ##
4
+ # Render the document index view
5
+ #
6
+ # @param [Array<SolrDocument>] documents list of documents to render
7
+ # @param [Hash] locals to pass to the render call
8
+ # @return [String]
9
+ def render_document_index documents = nil, locals = {}
10
+ documents ||= @response.documents
11
+ render_document_index_with_view(document_index_view_type, documents, locals)
12
+ end
13
+
14
+ ##
15
+ # Render the document index for a grouped response
16
+ def render_grouped_document_index
17
+ render 'catalog/group'
18
+ end
19
+
20
+ ##
21
+ # Return the list of partials for a given solr document
22
+ # @param [SolrDocument] doc solr document to render partials for
23
+ # @param [Array<String>] partials list of partials to render
24
+ # @param [Hash] locals local variables to pass to the render call
25
+ # @return [String]
26
+ def render_document_partials(doc, partials = [], locals = {})
27
+ safe_join(partials.map do |action_name|
28
+ render_document_partial(doc, action_name, locals)
29
+ end, "\n")
30
+ end
31
+
32
+ ##
33
+ # Given a doc and a base name for a partial, this method will attempt to render
34
+ # an appropriate partial based on the document format and view type.
35
+ #
36
+ # If a partial that matches the document format is not found,
37
+ # render a default partial for the base name.
38
+ #
39
+ # @see #document_partial_path_templates
40
+ #
41
+ # @param [SolrDocument] doc
42
+ # @param [String] base_name base name for the partial
43
+ # @param [Hash] locals local variables to pass through to the partials
44
+ def render_document_partial(doc, base_name, locals = {})
45
+ format = document_partial_name(doc, base_name)
46
+
47
+ view_type = document_index_view_type
48
+ template = cached_view ['show', view_type, base_name, format].join('_') do
49
+ find_document_show_template_with_view(view_type, base_name, format, locals)
50
+ end
51
+ if template
52
+ template.render(self, locals.merge(document: doc))
53
+ else
54
+ ''
55
+ end
56
+ end
57
+
58
+ ##
59
+ # Render the document index for the given view type with the
60
+ # list of documents.
61
+ #
62
+ # This method will interpolate the list of templates with
63
+ # the current view, and gracefully handles missing templates.
64
+ #
65
+ # @see #document_index_path_templates
66
+ #
67
+ # @param [String] view type
68
+ # @param [Array<SolrDocument>] documents list of documents to render
69
+ # @param [Hash] locals to pass to the render call
70
+ # @return [String]
71
+ def render_document_index_with_view view, documents, locals = {}
72
+ template = cached_view ['index', view].join('_') do
73
+ find_document_index_template_with_view(view, locals)
74
+ end
75
+
76
+ if template
77
+ template.render(self, locals.merge(documents: documents))
78
+ else
79
+ ''
80
+ end
81
+ end
82
+
83
+ ##
84
+ # A list of document partial templates to attempt to render
85
+ #
86
+ # @see #render_document_index_with_view
87
+ # @return [Array<String>]
88
+ def document_index_path_templates
89
+ # first, the legacy template names for backwards compatbility
90
+ # followed by the new, inheritable style
91
+ # finally, a controller-specific path for non-catalog subclasses
92
+ @document_index_path_templates ||= [
93
+ "document_%{index_view_type}",
94
+ "catalog/document_%{index_view_type}",
95
+ "catalog/document_list"
96
+ ]
97
+ end
98
+
99
+ ##
100
+ # Return a normalized partial name for rendering a single document
101
+ #
102
+ # @param [SolrDocument] document
103
+ # @param [Symbol] base_name base name for the partial
104
+ # @return [String]
105
+ def document_partial_name(document, base_name = nil)
106
+ view_config = blacklight_config.view_config(:show)
107
+
108
+ display_type = if base_name && view_config.key?(:"#{base_name}_display_type_field")
109
+ document[view_config[:"#{base_name}_display_type_field"]]
110
+ end
111
+
112
+ display_type ||= document[view_config.display_type_field]
113
+
114
+ display_type ||= 'default'
115
+
116
+ type_field_to_partial_name(document, display_type)
117
+ end
118
+
119
+ private
120
+
121
+ ##
122
+ # Return a partial name for rendering a document
123
+ # this method can be overridden in order to transform the value
124
+ # (e.g. 'PdfBook' => 'pdf_book')
125
+ #
126
+ # @param [SolrDocument] document
127
+ # @param [String, Array] display_type a value suggestive of a partial
128
+ # @return [String] the name of the partial to render
129
+ # @example
130
+ # type_field_to_partial_name(['a book-article'])
131
+ # => 'a_book_article'
132
+ def type_field_to_partial_name(_document, display_type)
133
+ # using "_" as sep. to more closely follow the views file naming conventions
134
+ # parameterize uses "-" as the default sep. which throws errors
135
+ underscore = '_'.freeze
136
+ Array(display_type).join(' '.freeze).tr('-'.freeze, underscore).parameterize(separator: underscore)
137
+ end
138
+
139
+ ##
140
+ # A list of document partial templates to try to render for a document
141
+ #
142
+ # The partial names will be interpolated with the following variables:
143
+ # - action_name: (e.g. index, show)
144
+ # - index_view_type: (the current view type, e.g. list, gallery)
145
+ # - format: the document's format (e.g. book)
146
+ #
147
+ # @see #render_document_partial
148
+ def document_partial_path_templates
149
+ # first, the legacy template names for backwards compatbility
150
+ # followed by the new, inheritable style
151
+ # finally, a controller-specific path for non-catalog subclasses
152
+ @partial_path_templates ||= [
153
+ "%{action_name}_%{index_view_type}_%{format}",
154
+ "%{action_name}_%{index_view_type}_default",
155
+ "%{action_name}_%{format}",
156
+ "%{action_name}_default",
157
+ "%{action_name}",
158
+ "catalog/%{action_name}_%{format}",
159
+ "catalog/_%{action_name}_partials/%{format}",
160
+ "catalog/_%{action_name}_partials/default"
161
+ ]
162
+ end
163
+
164
+ def find_document_show_template_with_view view_type, base_name, format, locals
165
+ document_partial_path_templates.each do |str|
166
+ partial = format(str, action_name: base_name, format: format, index_view_type: view_type)
167
+ logger.debug "Looking for document partial #{partial}"
168
+ template = lookup_context.find_all(partial, lookup_context.prefixes + [""], true, locals.keys + [:document], {}).first
169
+ return template if template
170
+ end
171
+ nil
172
+ end
173
+
174
+ def find_document_index_template_with_view view_type, locals
175
+ document_index_path_templates.each do |str|
176
+ partial = format(str, index_view_type: view_type)
177
+ logger.debug "Looking for document index partial #{partial}"
178
+ template = lookup_context.find_all(partial, lookup_context.prefixes + [""], true, locals.keys + [:documents], {}).first
179
+ return template if template
180
+ end
181
+ nil
182
+ end
183
+
184
+ ##
185
+ # @param key fetches or writes data to a cache, using the given key.
186
+ # @yield the block to evaluate (and cache) if there is a cache miss
187
+ def cached_view key
188
+ @view_cache ||= {}
189
+ if @view_cache.key?(key)
190
+ @view_cache[key]
191
+ else
192
+ @view_cache[key] = yield
193
+ end
194
+ end
195
+ end
@@ -8,8 +8,8 @@
8
8
  module Blacklight::SearchHistoryConstraintsHelperBehavior
9
9
  # Simpler textual version of constraints, used on Search History page.
10
10
  # Theoretically can may be DRY'd up with results page render_constraints,
11
- # maybe even using the very same HTML with different CSS?
12
- # But too tricky for now, too many changes to existing CSS. TODO.
11
+ # maybe even using the very same HTML with different CSS?
12
+ # But too tricky for now, too many changes to existing CSS. TODO.
13
13
  def render_search_to_s(params)
14
14
  render_search_to_s_q(params) +
15
15
  render_search_to_s_filters(params)
@@ -22,7 +22,7 @@ module Blacklight::SearchHistoryConstraintsHelperBehavior
22
22
 
23
23
  label = label_for_search_field(params[:search_field]) unless default_search_field && params[:search_field] == default_search_field[:key]
24
24
 
25
- render_search_to_s_element(label , render_filter_value(params['q']) )
25
+ render_search_to_s_element(label, render_filter_value(params['q']))
26
26
  end
27
27
 
28
28
  ##
@@ -32,24 +32,29 @@ module Blacklight::SearchHistoryConstraintsHelperBehavior
32
32
 
33
33
  safe_join(params[:f].collect do |facet_field, value_list|
34
34
  render_search_to_s_element(facet_field_label(facet_field),
35
- safe_join(value_list.collect do |value|
36
- render_filter_value(value, facet_field)
37
- end, content_tag(:span, " #{t('blacklight.and')} ", :class =>'filterSeparator')))
35
+ safe_join(value_list.collect do |value|
36
+ render_filter_value(value, facet_field)
37
+ end,
38
+ content_tag(:span, " #{t('blacklight.and')} ", class: 'filter-separator')))
38
39
  end, " \n ")
39
40
  end
40
41
 
41
42
  # value can be Array, in which case elements are joined with
42
43
  # 'and'. Pass in option :escape_value => false to pass in pre-rendered
43
- # html for value. key with escape_key if needed.
44
- def render_search_to_s_element(key, value, options = {})
45
- content_tag(:span, render_filter_name(key) + content_tag(:span, value, :class => 'filterValues'), :class => 'constraint')
44
+ # html for value. key with escape_key if needed.
45
+ def render_search_to_s_element(key, value, _options = {})
46
+ content_tag(:span,
47
+ render_filter_name(key) + content_tag(:span, value, class: 'filter-values'),
48
+ class: 'constraint')
46
49
  end
47
50
 
48
51
  ##
49
52
  # Render the name of the facet
50
53
  def render_filter_name name
51
54
  return "".html_safe if name.blank?
52
- content_tag(:span, t('blacklight.search.filters.label', :label => name), :class => 'filterName')
55
+ content_tag(:span,
56
+ t('blacklight.search.filters.label', label: name),
57
+ class: 'filter-name')
53
58
  end
54
59
 
55
60
  ##
@@ -57,6 +62,8 @@ module Blacklight::SearchHistoryConstraintsHelperBehavior
57
62
  def render_filter_value value, key = nil
58
63
  display_value = value
59
64
  display_value = facet_display_value(key, value) if key
60
- content_tag(:span, h(display_value), :class => 'filterValue')
65
+ content_tag(:span,
66
+ h(display_value),
67
+ class: 'filter-value')
61
68
  end
62
69
  end
@@ -7,5 +7,6 @@ module Blacklight
7
7
  blacklight_config.autocomplete_enabled.present? &&
8
8
  blacklight_config.autocomplete_path.present?
9
9
  end
10
+ deprecation_deprecate autocomplete_enabled?: "use SearchBarPresenter#autocomplete_enabled?"
10
11
  end
11
12
  end
@@ -2,12 +2,6 @@
2
2
  ##
3
3
  # URL helper methods
4
4
  module Blacklight::UrlHelperBehavior
5
- include Blacklight::DeprecatedUrlHelperBehavior
6
-
7
- ##
8
- # Extension point for downstream applications
9
- # to provide more interesting routing to
10
- # documents
11
5
  def url_for_document(doc, options = {})
12
6
  search_state.url_for_document(doc, options)
13
7
  end
@@ -17,7 +11,7 @@ module Blacklight::UrlHelperBehavior
17
11
  # catalog_path accepts a hash. The solr query params are stored in the session,
18
12
  # so we only need the +counter+ param here. We also need to know if we are viewing to document as part of search results.
19
13
  # TODO: move this to the IndexPresenter
20
- def link_to_document(doc, field_or_opts = nil, opts={:counter => nil})
14
+ def link_to_document(doc, field_or_opts = nil, opts = { counter: nil })
21
15
  if field_or_opts.is_a? Hash
22
16
  opts = field_or_opts
23
17
  else
@@ -32,23 +26,23 @@ module Blacklight::UrlHelperBehavior
32
26
  def document_link_params(doc, opts)
33
27
  session_tracking_params(doc, opts[:counter]).deep_merge(opts.except(:label, :counter))
34
28
  end
35
- protected :document_link_params
29
+ private :document_link_params
36
30
 
37
31
  ##
38
32
  # Link to the previous document in the current search context
39
33
  def link_to_previous_document(previous_document)
40
- link_opts = session_tracking_params(previous_document, search_session['counter'].to_i - 1).merge(:class => "previous", :rel => 'prev')
34
+ link_opts = session_tracking_params(previous_document, search_session['counter'].to_i - 1).merge(class: "previous", rel: 'prev')
41
35
  link_to_unless previous_document.nil?, raw(t('views.pagination.previous')), url_for_document(previous_document), link_opts do
42
- content_tag :span, raw(t('views.pagination.previous')), :class => 'previous'
36
+ content_tag :span, raw(t('views.pagination.previous')), class: 'previous'
43
37
  end
44
38
  end
45
39
 
46
40
  ##
47
41
  # Link to the next document in the current search context
48
42
  def link_to_next_document(next_document)
49
- link_opts = session_tracking_params(next_document, search_session['counter'].to_i + 1).merge(:class => "next", :rel => 'next')
43
+ link_opts = session_tracking_params(next_document, search_session['counter'].to_i + 1).merge(class: "next", rel: 'next')
50
44
  link_to_unless next_document.nil?, raw(t('views.pagination.next')), url_for_document(next_document), link_opts do
51
- content_tag :span, raw(t('views.pagination.next')), :class => 'next'
45
+ content_tag :span, raw(t('views.pagination.next')), class: 'next'
52
46
  end
53
47
  end
54
48
 
@@ -66,9 +60,9 @@ module Blacklight::UrlHelperBehavior
66
60
  return {}
67
61
  end
68
62
 
69
- { data: {:'context-href' => path } }
63
+ { data: { :'context-href' => path } }
70
64
  end
71
- protected :session_tracking_params
65
+ private :session_tracking_params
72
66
 
73
67
  ##
74
68
  # Get the URL for tracking search sessions across pages using polymorphic routing
@@ -101,7 +95,7 @@ module Blacklight::UrlHelperBehavior
101
95
  # Get the path to the search action with any parameters (e.g. view type)
102
96
  # that should be persisted across search sessions.
103
97
  def start_over_path query_params = params
104
- h = { }
98
+ h = {}
105
99
  current_index_view_type = document_index_view_type(query_params)
106
100
  h[:view] = current_index_view_type unless current_index_view_type == default_document_index_view_type
107
101
 
@@ -112,23 +106,23 @@ module Blacklight::UrlHelperBehavior
112
106
  # @example
113
107
  # link_back_to_catalog(label: 'Back to Search')
114
108
  # link_back_to_catalog(label: 'Back to Search', route_set: my_engine)
115
- def link_back_to_catalog(opts={:label=>nil})
109
+ def link_back_to_catalog(opts = { label: nil })
116
110
  scope = opts.delete(:route_set) || self
117
111
  query_params = search_state.reset(current_search_session.try(:query_params)).to_hash
118
112
 
119
113
  if search_session['counter']
120
- per_page = (search_session['per_page'] || default_per_page).to_i
114
+ per_page = (search_session['per_page'] || blacklight_config.default_per_page).to_i
121
115
  counter = search_session['counter'].to_i
122
116
 
123
- query_params[:per_page] = per_page unless search_session['per_page'].to_i == default_per_page
124
- query_params[:page] = ((counter - 1)/ per_page) + 1
117
+ query_params[:per_page] = per_page unless search_session['per_page'].to_i == blacklight_config.default_per_page
118
+ query_params[:page] = ((counter - 1) / per_page) + 1
125
119
  end
126
120
 
127
121
  link_url = if query_params.empty?
128
- search_action_path(only_path: true)
129
- else
130
- scope.url_for(query_params)
131
- end
122
+ search_action_path(only_path: true)
123
+ else
124
+ scope.url_for(query_params)
125
+ end
132
126
  label = opts.delete(:label)
133
127
 
134
128
  if link_url =~ /bookmarks/
@@ -153,11 +147,11 @@ module Blacklight::UrlHelperBehavior
153
147
  search_state.add_facet_params_and_redirect(group.field, group.key)
154
148
  end
155
149
 
156
- # A URL to refworks export, with an embedded callback URL to this app.
157
- # the callback URL is to bookmarks#export, which delivers a list of
150
+ # A URL to refworks export, with an embedded callback URL to this app.
151
+ # the callback URL is to bookmarks#export, which delivers a list of
158
152
  # user's bookmarks in 'refworks marc txt' format -- we tell refworks
159
- # to expect that format.
153
+ # to expect that format.
160
154
  def bookmarks_export_url(format, params = {})
161
- bookmarks_url(params.merge(format: format, encrypted_user_id: encrypt_user_id(current_or_guest_user.id) ))
155
+ bookmarks_url(params.merge(format: format, encrypted_user_id: encrypt_user_id(current_or_guest_user.id)))
162
156
  end
163
157
  end