blacklight 6.14.0 → 7.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (422) hide show
  1. checksums.yaml +5 -5
  2. data/.gitignore +1 -0
  3. data/.npmignore +23 -0
  4. data/.rubocop.yml +40 -16
  5. data/.rubocop_todo.yml +479 -375
  6. data/.solr_wrapper.yml +9 -2
  7. data/.travis.yml +27 -20
  8. data/Gemfile +3 -1
  9. data/README.md +22 -5
  10. data/Rakefile +3 -2
  11. data/VERSION +1 -1
  12. data/Vagrantfile +2 -0
  13. data/app/assets/images/blacklight/list.svg +1 -0
  14. data/app/assets/images/blacklight/search.svg +1 -0
  15. data/app/assets/javascripts/blacklight/blacklight.js +497 -57
  16. data/app/assets/stylesheets/blacklight/_balanced_list.scss +7 -12
  17. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +18 -15
  18. data/app/assets/stylesheets/blacklight/_bookmark.scss +1 -13
  19. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +27 -0
  20. data/app/assets/stylesheets/blacklight/_constraints.scss +17 -25
  21. data/app/assets/stylesheets/blacklight/_controls.scss +8 -16
  22. data/app/assets/stylesheets/blacklight/_facets.scss +64 -93
  23. data/app/assets/stylesheets/blacklight/_header.scss +35 -48
  24. data/app/assets/stylesheets/blacklight/_icons.scss +35 -0
  25. data/app/assets/stylesheets/blacklight/_layout.scss +0 -10
  26. data/app/assets/stylesheets/blacklight/_mixins.scss +15 -0
  27. data/app/assets/stylesheets/blacklight/_modal.scss +9 -17
  28. data/app/assets/stylesheets/blacklight/_pagination.scss +2 -17
  29. data/app/assets/stylesheets/blacklight/_search_form.scss +7 -0
  30. data/app/assets/stylesheets/blacklight/_search_history.scss +5 -13
  31. data/app/assets/stylesheets/blacklight/_search_results.scss +9 -8
  32. data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +1 -2
  33. data/app/assets/stylesheets/blacklight/blacklight.scss +1 -1
  34. data/app/builders/blacklight/action_builder.rb +57 -0
  35. data/app/controllers/bookmarks_controller.rb +2 -2
  36. data/app/controllers/catalog_controller.rb +2 -2
  37. data/app/controllers/concerns/blacklight/base.rb +0 -33
  38. data/app/controllers/concerns/blacklight/bookmarks.rb +36 -33
  39. data/app/controllers/concerns/blacklight/catalog.rb +266 -210
  40. data/app/controllers/concerns/blacklight/controller.rb +111 -126
  41. data/app/controllers/concerns/blacklight/default_component_configuration.rb +12 -43
  42. data/app/controllers/concerns/blacklight/facet.rb +3 -0
  43. data/app/controllers/concerns/blacklight/search_context.rb +16 -14
  44. data/app/controllers/concerns/blacklight/search_fields.rb +4 -14
  45. data/app/controllers/concerns/blacklight/search_history.rb +1 -6
  46. data/app/controllers/concerns/blacklight/token_based_user.rb +24 -9
  47. data/app/helpers/blacklight/blacklight_helper_behavior.rb +39 -119
  48. data/app/helpers/blacklight/catalog_helper_behavior.rb +94 -88
  49. data/app/helpers/blacklight/component_helper_behavior.rb +21 -19
  50. data/app/helpers/blacklight/configuration_helper_behavior.rb +30 -57
  51. data/app/helpers/blacklight/facets_helper_behavior.rb +55 -51
  52. data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +9 -11
  53. data/app/helpers/blacklight/icon_helper_behavior.rb +18 -0
  54. data/app/helpers/blacklight/layout_helper_behavior.rb +3 -3
  55. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +8 -6
  56. data/app/helpers/blacklight/render_partials_helper_behavior.rb +195 -0
  57. data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +19 -11
  58. data/app/helpers/blacklight/suggest_helper_behavior.rb +1 -0
  59. data/app/helpers/blacklight/url_helper_behavior.rb +50 -41
  60. data/app/{assets/javascripts → javascript}/blacklight/autocomplete.js +3 -2
  61. data/app/javascript/blacklight/bookmark_toggle.js +25 -0
  62. data/app/javascript/blacklight/checkbox_submit.js +134 -0
  63. data/app/{assets/javascripts → javascript}/blacklight/collapsable.js +1 -1
  64. data/app/{assets/javascripts → javascript}/blacklight/core.js +10 -8
  65. data/app/{assets/javascripts → javascript}/blacklight/facet_load.js +6 -6
  66. data/app/{assets/javascripts/blacklight/ajax_modal.js → javascript/blacklight/modal.js} +62 -64
  67. data/app/{assets/javascripts → javascript}/blacklight/search_context.js +10 -3
  68. data/app/models/blacklight/facet_paginator.rb +3 -3
  69. data/app/models/blacklight/icon.rb +56 -0
  70. data/app/models/blacklight/solr/facet_paginator.rb +3 -3
  71. data/app/models/blacklight/suggest_search.rb +4 -15
  72. data/app/models/bookmark.rb +5 -10
  73. data/app/models/concerns/blacklight/configurable.rb +13 -13
  74. data/app/models/concerns/blacklight/document/active_model_shim.rb +13 -11
  75. data/app/models/concerns/blacklight/document/cache_key.rb +1 -1
  76. data/app/models/concerns/blacklight/document/dublin_core.rb +2 -2
  77. data/app/models/concerns/blacklight/document/email.rb +1 -1
  78. data/app/models/concerns/blacklight/document/extensions.rb +5 -5
  79. data/app/models/concerns/blacklight/document/semantic_fields.rb +9 -9
  80. data/app/models/concerns/blacklight/document/sms.rb +1 -1
  81. data/app/models/concerns/blacklight/document.rb +26 -40
  82. data/app/models/concerns/blacklight/solr/document.rb +8 -8
  83. data/app/models/concerns/blacklight/suggest/response.rb +5 -3
  84. data/app/models/concerns/blacklight/user.rb +7 -6
  85. data/app/models/record_mailer.rb +5 -6
  86. data/app/models/search.rb +5 -7
  87. data/app/presenters/blacklight/document_presenter.rb +25 -140
  88. data/app/presenters/blacklight/field_presenter.rb +7 -5
  89. data/app/presenters/blacklight/index_presenter.rb +41 -58
  90. data/app/presenters/blacklight/json_presenter.rb +10 -14
  91. data/app/presenters/blacklight/link_alternate_presenter.rb +3 -1
  92. data/app/presenters/blacklight/rendering/abstract_step.rb +7 -5
  93. data/app/presenters/blacklight/rendering/helper_method.rb +10 -8
  94. data/app/presenters/blacklight/rendering/join.rb +5 -3
  95. data/app/presenters/blacklight/rendering/link_to_facet.rb +23 -19
  96. data/app/presenters/blacklight/rendering/microdata.rb +6 -3
  97. data/app/presenters/blacklight/rendering/pipeline.rb +7 -5
  98. data/app/presenters/blacklight/rendering/terminator.rb +2 -0
  99. data/app/presenters/blacklight/search_bar_presenter.rb +39 -0
  100. data/app/presenters/blacklight/show_presenter.rb +26 -63
  101. data/app/presenters/blacklight/thumbnail_presenter.rb +74 -0
  102. data/app/services/blacklight/document_factory.rb +13 -0
  103. data/app/services/blacklight/field_retriever.rb +26 -24
  104. data/app/services/blacklight/search_service.rb +152 -0
  105. data/app/values/blacklight/types.rb +31 -0
  106. data/app/views/blacklight/nav/_bookmark.html.erb +2 -2
  107. data/app/views/blacklight/nav/_search_history.html.erb +1 -1
  108. data/app/views/bookmarks/_tools.html.erb +2 -2
  109. data/app/views/bookmarks/index.html.erb +12 -13
  110. data/app/views/catalog/_bookmark_control.html.erb +26 -10
  111. data/app/views/catalog/_citation.html.erb +4 -4
  112. data/app/views/catalog/_constraints.html.erb +6 -7
  113. data/app/views/catalog/_constraints_element.html.erb +6 -6
  114. data/app/views/catalog/_did_you_mean.html.erb +1 -1
  115. data/app/views/catalog/{_document_default.atom.builder → _document.atom.builder} +19 -18
  116. data/app/views/catalog/_document.html.erb +5 -3
  117. data/app/views/catalog/{_document_default.rss.builder → _document.rss.builder} +2 -0
  118. data/app/views/catalog/_document_action.html.erb +2 -1
  119. data/app/views/catalog/_email_form.html.erb +8 -4
  120. data/app/views/catalog/_facet_index_navigation.html.erb +5 -4
  121. data/app/views/catalog/_facet_layout.html.erb +6 -10
  122. data/app/views/catalog/_facet_limit.html.erb +3 -2
  123. data/app/views/catalog/_facet_pagination.html.erb +8 -8
  124. data/app/views/catalog/_facet_pivot.html.erb +2 -2
  125. data/app/views/catalog/_facets.html.erb +9 -12
  126. data/app/views/catalog/_field.json.jbuilder +10 -0
  127. data/app/views/catalog/{_group_default.html.erb → _group.html.erb} +1 -1
  128. data/app/views/catalog/_home_text.html.erb +32 -36
  129. data/app/views/catalog/_index.html.erb +10 -0
  130. data/app/views/catalog/{_index_header_default.html.erb → _index_header.html.erb} +3 -3
  131. data/app/views/catalog/_per_page_widget.html.erb +6 -7
  132. data/app/views/catalog/_previous_next_doc.html.erb +6 -14
  133. data/app/views/catalog/_results_pagination.html.erb +2 -2
  134. data/app/views/catalog/_search_form.html.erb +12 -8
  135. data/app/views/catalog/_search_header.html.erb +0 -3
  136. data/app/views/catalog/_search_results.html.erb +6 -2
  137. data/app/views/catalog/_show.html.erb +8 -0
  138. data/app/views/catalog/_show_main_content.html.erb +4 -4
  139. data/app/views/catalog/_show_more_like_this.html.erb +1 -1
  140. data/app/views/catalog/_show_sidebar.html.erb +3 -3
  141. data/app/views/catalog/_show_tools.html.erb +10 -12
  142. data/app/views/catalog/_sms_form.html.erb +8 -4
  143. data/app/views/catalog/_sort_and_per_page.html.erb +3 -3
  144. data/app/views/catalog/_sort_widget.html.erb +7 -7
  145. data/app/views/catalog/_thumbnail.html.erb +5 -0
  146. data/app/views/catalog/_view_type_group.html.erb +2 -2
  147. data/app/views/catalog/_zero_results.html.erb +1 -1
  148. data/app/views/catalog/citation.js.erb +4 -2
  149. data/app/views/catalog/email.html.erb +5 -3
  150. data/app/views/catalog/email_success.html.erb +12 -8
  151. data/app/views/catalog/facet.html.erb +10 -8
  152. data/app/views/catalog/facet.json.jbuilder +2 -0
  153. data/app/views/catalog/index.atom.builder +13 -16
  154. data/app/views/catalog/index.html.erb +9 -11
  155. data/app/views/catalog/index.json.jbuilder +84 -3
  156. data/app/views/catalog/index.rss.builder +7 -5
  157. data/app/views/catalog/opensearch.xml.builder +12 -10
  158. data/app/views/catalog/show.html.erb +11 -6
  159. data/app/views/catalog/show.json.jbuilder +21 -0
  160. data/app/views/catalog/sms.html.erb +3 -1
  161. data/app/views/catalog/sms_success.html.erb +12 -8
  162. data/app/views/kaminari/blacklight/_first_page.html.erb +2 -2
  163. data/app/views/kaminari/blacklight/_gap.html.erb +2 -2
  164. data/app/views/kaminari/blacklight/_last_page.html.erb +2 -2
  165. data/app/views/kaminari/blacklight/_next_page.html.erb +5 -5
  166. data/app/views/kaminari/blacklight/_page.html.erb +5 -3
  167. data/app/views/kaminari/blacklight/_prev_page.html.erb +4 -4
  168. data/app/views/kaminari/blacklight_compact/_paginator.html.erb +4 -4
  169. data/app/views/layouts/blacklight/base.html.erb +35 -0
  170. data/app/views/layouts/blacklight.html.erb +14 -41
  171. data/app/views/layouts/catalog_result.html.erb +11 -0
  172. data/app/views/search_history/index.html.erb +16 -21
  173. data/app/views/shared/_header_navbar.html.erb +8 -13
  174. data/app/views/shared/_modal.html.erb +6 -0
  175. data/app/views/shared/_user_util_links.html.erb +22 -0
  176. data/blacklight.gemspec +10 -11
  177. data/config/i18n-tasks.yml +17 -0
  178. data/config/locales/blacklight.de.yml +71 -82
  179. data/config/locales/blacklight.en.yml +15 -27
  180. data/config/locales/blacklight.es.yml +14 -26
  181. data/config/locales/blacklight.fr.yml +16 -33
  182. data/config/locales/blacklight.hu.yml +212 -0
  183. data/config/locales/blacklight.it.yml +15 -26
  184. data/config/locales/blacklight.nl.yml +212 -0
  185. data/config/locales/blacklight.pt-BR.yml +24 -29
  186. data/config/locales/blacklight.sq.yml +4 -28
  187. data/config/locales/blacklight.zh.yml +3 -25
  188. data/config/routes.rb +2 -10
  189. data/db/migrate/20140202020202_create_bookmarks.rb +0 -1
  190. data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -1
  191. data/lib/blacklight/abstract_repository.rb +22 -10
  192. data/lib/blacklight/configuration/context.rb +12 -1
  193. data/lib/blacklight/configuration/facet_field.rb +16 -9
  194. data/lib/blacklight/configuration/field.rb +32 -3
  195. data/lib/blacklight/configuration/fields.rb +61 -58
  196. data/lib/blacklight/configuration/null_field.rb +2 -0
  197. data/lib/blacklight/configuration/search_field.rb +2 -2
  198. data/lib/blacklight/configuration/sort_field.rb +2 -2
  199. data/lib/blacklight/configuration/view_config.rb +4 -0
  200. data/lib/blacklight/configuration.rb +101 -88
  201. data/lib/blacklight/engine.rb +11 -7
  202. data/lib/blacklight/exceptions.rb +4 -7
  203. data/lib/blacklight/{utils.rb → nested_open_struct_with_hash_access.rb} +9 -81
  204. data/lib/blacklight/open_struct_with_hash_access.rb +49 -0
  205. data/lib/blacklight/parameters.rb +1 -1
  206. data/lib/blacklight/routes/exportable.rb +1 -3
  207. data/lib/blacklight/routes/searchable.rb +3 -3
  208. data/lib/blacklight/runtime_registry.rb +2 -0
  209. data/lib/blacklight/search_builder.rb +28 -35
  210. data/lib/blacklight/search_state.rb +10 -8
  211. data/lib/blacklight/solr/repository.rb +40 -6
  212. data/lib/blacklight/solr/request.rb +1 -1
  213. data/lib/blacklight/solr/response/facets.rb +29 -31
  214. data/lib/blacklight/solr/response/group.rb +3 -3
  215. data/lib/blacklight/solr/response/group_response.rb +1 -1
  216. data/lib/blacklight/solr/response/more_like_this.rb +2 -2
  217. data/lib/blacklight/solr/response/response.rb +2 -2
  218. data/lib/blacklight/solr/response/spelling.rb +4 -3
  219. data/lib/blacklight/solr/response.rb +29 -30
  220. data/lib/blacklight/solr/search_builder_behavior.rb +25 -29
  221. data/lib/blacklight/version.rb +1 -1
  222. data/lib/blacklight.rb +10 -8
  223. data/lib/generators/blacklight/assets_generator.rb +18 -12
  224. data/lib/generators/blacklight/controller_generator.rb +4 -5
  225. data/lib/generators/blacklight/document_generator.rb +1 -1
  226. data/lib/generators/blacklight/install_generator.rb +18 -28
  227. data/lib/generators/blacklight/search_builder_generator.rb +1 -1
  228. data/lib/generators/blacklight/{solr5_generator.rb → solr_generator.rb} +12 -6
  229. data/lib/generators/blacklight/templates/.solr_wrapper.yml +5 -0
  230. data/lib/generators/blacklight/templates/alternate_controller.rb +4 -4
  231. data/lib/generators/blacklight/templates/blacklight.scss +0 -2
  232. data/lib/generators/blacklight/templates/catalog_controller.rb +59 -49
  233. data/lib/generators/blacklight/templates/config/blacklight.yml +1 -13
  234. data/lib/generators/blacklight/templates/solr/conf/schema.xml +388 -0
  235. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +195 -0
  236. data/lib/generators/blacklight/test_support_generator.rb +10 -10
  237. data/lib/generators/blacklight/user_generator.rb +5 -6
  238. data/lib/railties/blacklight.rake +17 -21
  239. data/package-lock.json +2195 -0
  240. data/package.json +29 -0
  241. data/spec/controllers/alternate_controller_spec.rb +5 -4
  242. data/spec/controllers/application_controller_spec.rb +1 -5
  243. data/spec/controllers/blacklight/base_spec.rb +6 -3
  244. data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +11 -7
  245. data/spec/controllers/blacklight/facet_spec.rb +1 -2
  246. data/spec/controllers/blacklight/search_fields_spec.rb +25 -34
  247. data/spec/controllers/bookmarks_controller_spec.rb +46 -11
  248. data/spec/controllers/catalog_controller_spec.rb +334 -161
  249. data/spec/controllers/search_history_controller_spec.rb +6 -6
  250. data/spec/features/alternate_controller_spec.rb +4 -4
  251. data/spec/features/autocomplete_spec.rb +4 -2
  252. data/spec/features/bookmarks_spec.rb +10 -10
  253. data/spec/features/did_you_mean_spec.rb +7 -12
  254. data/spec/features/facets_spec.rb +29 -17
  255. data/spec/features/record_view_spec.rb +12 -18
  256. data/spec/features/search_context_spec.rb +6 -7
  257. data/spec/features/search_crawler_spec.rb +3 -5
  258. data/spec/features/search_filters_spec.rb +80 -80
  259. data/spec/features/search_formats_spec.rb +1 -1
  260. data/spec/features/search_history_spec.rb +6 -29
  261. data/spec/features/search_pagination_spec.rb +4 -2
  262. data/spec/features/search_results_spec.rb +14 -12
  263. data/spec/features/search_sort_spec.rb +2 -2
  264. data/spec/features/search_spec.rb +8 -9
  265. data/spec/features/sitelinks_search_box.rb +4 -4
  266. data/{solr → spec/fixtures}/sample_solr_documents.yml +688 -688
  267. data/spec/helpers/{configuration_helper_spec.rb → blacklight/configuration_helper_behavior_spec.rb} +97 -92
  268. data/spec/helpers/{facets_helper_spec.rb → blacklight/facets_helper_behavior_spec.rb} +72 -67
  269. data/spec/helpers/{hash_as_hidden_fields_spec.rb → blacklight/hash_as_hidden_fields_behavior_spec.rb} +2 -2
  270. data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +10 -0
  271. data/spec/helpers/{layout_helper_spec.rb → blacklight/layout_helper_behavior_spec.rb} +5 -5
  272. data/spec/helpers/{render_constraints_helper_spec.rb → blacklight/render_constraints_helper_behavior_spec.rb} +10 -6
  273. data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +92 -0
  274. data/spec/helpers/{search_history_constraints_helper_spec.rb → blacklight/search_history_constraints_helper_behavior_spec.rb} +29 -30
  275. data/spec/helpers/{suggest_helper_spec.rb → blacklight/suggest_helper_behavior_spec.rb} +9 -2
  276. data/spec/helpers/{url_helper_spec.rb → blacklight/url_helper_behavior_spec.rb} +56 -54
  277. data/spec/helpers/blacklight_helper_spec.rb +65 -150
  278. data/spec/helpers/catalog_helper_spec.rb +80 -96
  279. data/spec/i18n_spec.rb +18 -0
  280. data/spec/integration/generators/blacklight/{solr5_generator_spec.rb → solr_generator_spec.rb} +21 -13
  281. data/spec/lib/blacklight/configuration/facet_field_spec.rb +13 -0
  282. data/spec/lib/blacklight/configuration/field_spec.rb +15 -0
  283. data/spec/lib/blacklight/nested_open_struct_with_hash_access_spec.rb +17 -0
  284. data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +148 -0
  285. data/spec/lib/blacklight/parameters_spec.rb +4 -2
  286. data/spec/lib/blacklight/search_state_spec.rb +53 -36
  287. data/spec/lib/blacklight_spec.rb +14 -15
  288. data/spec/lib/tasks/blacklight_task_spec.rb +4 -6
  289. data/spec/models/blacklight/configurable_spec.rb +24 -27
  290. data/spec/models/blacklight/configuration/context_spec.rb +9 -10
  291. data/spec/models/blacklight/configuration_spec.rb +248 -223
  292. data/spec/models/blacklight/document/active_model_shim_spec.rb +15 -6
  293. data/spec/models/blacklight/document/cache_key_spec.rb +9 -2
  294. data/spec/models/blacklight/document/dublin_core_spec.rb +17 -20
  295. data/spec/models/blacklight/document/email_spec.rb +10 -10
  296. data/spec/models/blacklight/document/sms_spec.rb +10 -10
  297. data/spec/models/blacklight/document_spec.rb +10 -22
  298. data/spec/models/blacklight/facet_paginator_spec.rb +40 -30
  299. data/spec/models/blacklight/icon_spec.rb +44 -0
  300. data/spec/models/blacklight/search_builder_spec.rb +41 -26
  301. data/spec/models/blacklight/solr/document_spec.rb +224 -216
  302. data/spec/models/blacklight/solr/facet_paginator_spec.rb +6 -4
  303. data/spec/models/blacklight/solr/repository_spec.rb +61 -46
  304. data/spec/models/blacklight/solr/request_spec.rb +17 -18
  305. data/spec/models/blacklight/solr/response/facets_spec.rb +58 -58
  306. data/spec/models/blacklight/solr/response/group_response_spec.rb +16 -22
  307. data/spec/models/blacklight/solr/response/group_spec.rb +18 -25
  308. data/spec/models/blacklight/solr/response_spec.rb +56 -55
  309. data/spec/models/blacklight/solr/search_builder_spec.rb +150 -164
  310. data/spec/models/blacklight/suggest/response_spec.rb +6 -4
  311. data/spec/models/blacklight/suggest_search_spec.rb +9 -16
  312. data/spec/models/blacklight/user_spec.rb +9 -11
  313. data/spec/models/bookmark_spec.rb +7 -6
  314. data/spec/models/record_mailer_spec.rb +23 -21
  315. data/spec/models/search_spec.rb +19 -18
  316. data/spec/models/solr_document_spec.rb +33 -5
  317. data/spec/presenters/blacklight/document_presenter_spec.rb +86 -0
  318. data/spec/presenters/blacklight/index_presenter_spec.rb +186 -0
  319. data/spec/presenters/blacklight/json_presenter_spec.rb +59 -0
  320. data/spec/presenters/blacklight/link_alternate_presenter_spec.rb +3 -0
  321. data/spec/presenters/blacklight/search_bar_presenter_spec.rb +79 -0
  322. data/spec/presenters/blacklight/show_presenter_spec.rb +333 -0
  323. data/spec/presenters/pipeline_spec.rb +18 -11
  324. data/spec/presenters/thumbnail_presenter_spec.rb +174 -0
  325. data/spec/routing/catalog_routing_spec.rb +13 -15
  326. data/spec/services/blacklight/search_service_spec.rb +488 -0
  327. data/spec/spec_helper.rb +20 -19
  328. data/spec/support/features/session_helpers.rb +4 -4
  329. data/spec/support/features.rb +1 -1
  330. data/spec/test_app_templates/Gemfile.extra +2 -4
  331. data/spec/test_app_templates/lib/generators/test_app_generator.rb +12 -13
  332. data/spec/views/catalog/_constraints.html.erb_spec.rb +3 -6
  333. data/spec/views/catalog/_constraints_element.html.erb_spec.rb +17 -13
  334. data/spec/views/catalog/_document.html.erb_spec.rb +11 -11
  335. data/spec/views/catalog/_document_list.html.erb_spec.rb +2 -1
  336. data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +5 -5
  337. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +6 -6
  338. data/spec/views/catalog/_facets.html.erb_spec.rb +10 -12
  339. data/spec/views/catalog/{_index_default.erb_spec.rb → _index.html.erb_spec.rb} +14 -15
  340. data/spec/views/catalog/{_index_header_default.html.erb_spec.rb → _index_header.html.erb_spec.rb} +6 -9
  341. data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +7 -30
  342. data/spec/views/catalog/_search_header.erb_spec.rb +1 -3
  343. data/spec/views/catalog/{_show_default.erb_spec.rb → _show.html.erb_spec.rb} +13 -14
  344. data/spec/views/catalog/_show_sidebar.erb_spec.rb +6 -9
  345. data/spec/views/catalog/_show_tools.html.erb_spec.rb +5 -5
  346. data/spec/views/catalog/_sort_and_per_page.html.erb_spec.rb +1 -2
  347. data/spec/views/catalog/_sort_widget.html.erb_spec.rb +3 -1
  348. data/spec/views/catalog/{_thumbnail_default.erb_spec.rb → _thumbnail.html.erb_spec.rb} +7 -9
  349. data/spec/views/catalog/_view_type_group.html.erb_spec.rb +12 -10
  350. data/spec/views/catalog/email_success.html.erb_spec.rb +8 -0
  351. data/spec/views/catalog/facet.html.erb_spec.rb +4 -3
  352. data/spec/views/catalog/facet.json.jbuilder_spec.rb +3 -2
  353. data/spec/views/catalog/index.atom.builder_spec.rb +11 -6
  354. data/spec/views/catalog/index.html.erb_spec.rb +6 -8
  355. data/spec/views/catalog/index.json.jbuilder_spec.rb +119 -26
  356. data/spec/views/catalog/opensearch.xml.builder_spec.rb +1 -1
  357. data/spec/views/catalog/show.html.erb_spec.rb +8 -8
  358. data/spec/views/catalog/show.json.jbuilder_spec.rb +40 -0
  359. data/spec/views/catalog/sms_success.html.erb_spec.rb +8 -0
  360. data/spec/views/{_user_util_links.html.erb_spec.rb → shared/_user_util_links.html.erb_spec.rb} +4 -7
  361. data/tasks/blacklight.rake +10 -8
  362. data/template.demo.rb +3 -11
  363. metadata +188 -189
  364. data/app/assets/javascripts/blacklight/autofocus.js +0 -16
  365. data/app/assets/javascripts/blacklight/bookmark_toggle.js +0 -23
  366. data/app/assets/javascripts/blacklight/checkbox_submit.js +0 -135
  367. data/app/controllers/concerns/blacklight/request_builders.rb +0 -77
  368. data/app/controllers/concerns/blacklight/saved_searches.rb +0 -70
  369. data/app/controllers/concerns/blacklight/search_helper.rb +0 -155
  370. data/app/controllers/concerns/blacklight/suggest.rb +0 -25
  371. data/app/controllers/saved_searches_controller.rb +0 -4
  372. data/app/controllers/suggest_controller.rb +0 -4
  373. data/app/helpers/blacklight/deprecated_url_helper_behavior.rb +0 -57
  374. data/app/helpers/blacklight/render_partials_helper.rb +0 -205
  375. data/app/helpers/blacklight_configuration_helper.rb +0 -4
  376. data/app/helpers/blacklight_url_helper.rb +0 -4
  377. data/app/helpers/component_helper.rb +0 -4
  378. data/app/helpers/facets_helper.rb +0 -4
  379. data/app/helpers/hash_as_hidden_fields_helper.rb +0 -4
  380. data/app/helpers/layout_helper.rb +0 -4
  381. data/app/helpers/render_constraints_helper.rb +0 -4
  382. data/app/helpers/search_history_constraints_helper.rb +0 -4
  383. data/app/helpers/suggest_helper.rb +0 -4
  384. data/app/models/concerns/blacklight/solr/document/more_like_this.rb +0 -6
  385. data/app/views/_user_util_links.html.erb +0 -26
  386. data/app/views/blacklight/nav/_saved_searches.html.erb +0 -1
  387. data/app/views/catalog/_index_default.html.erb +0 -12
  388. data/app/views/catalog/_show_default.html.erb +0 -10
  389. data/app/views/catalog/_thumbnail_default.html.erb +0 -5
  390. data/app/views/saved_searches/index.html.erb +0 -32
  391. data/app/views/shared/_ajax_modal.html.erb +0 -6
  392. data/lib/generators/blacklight/solr4_generator.rb +0 -31
  393. data/lib/generators/blacklight/templates/config/jetty.yml +0 -13
  394. data/solr/conf/schema.xml +0 -629
  395. data/solr/conf/solrconfig.xml +0 -411
  396. data/spec/controllers/blacklight/search_helper_spec.rb +0 -470
  397. data/spec/controllers/saved_searches_controller_spec.rb +0 -32
  398. data/spec/controllers/suggest_controller_spec.rb +0 -17
  399. data/spec/features/saved_searches_spec.rb +0 -47
  400. data/spec/helpers/deprecated_url_helper_behavior_spec.rb +0 -101
  401. data/spec/lib/blacklight/utils_spec.rb +0 -167
  402. data/spec/models/blacklight/solr/document/more_like_this_spec.rb +0 -18
  403. data/spec/presenters/document_presenter_spec.rb +0 -438
  404. data/spec/presenters/index_presenter_spec.rb +0 -173
  405. data/spec/presenters/show_presenter_spec.rb +0 -313
  406. data/spec/support/backport_test.rb +0 -14
  407. /data/app/views/catalog/{_show_header_default.html.erb → _show_header.html.erb} +0 -0
  408. /data/app/views/{_flash_msg.html.erb → shared/_flash_msg.html.erb} +0 -0
  409. /data/{solr → lib/generators/blacklight/templates/solr}/conf/_rest_managed.json +0 -0
  410. /data/{solr → lib/generators/blacklight/templates/solr}/conf/admin-extra.html +0 -0
  411. /data/{solr → lib/generators/blacklight/templates/solr}/conf/elevate.xml +0 -0
  412. /data/{solr → lib/generators/blacklight/templates/solr}/conf/mapping-ISOLatin1Accent.txt +0 -0
  413. /data/{solr → lib/generators/blacklight/templates/solr}/conf/protwords.txt +0 -0
  414. /data/{solr → lib/generators/blacklight/templates/solr}/conf/scripts.conf +0 -0
  415. /data/{solr → lib/generators/blacklight/templates/solr}/conf/spellings.txt +0 -0
  416. /data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords.txt +0 -0
  417. /data/{solr → lib/generators/blacklight/templates/solr}/conf/stopwords_en.txt +0 -0
  418. /data/{solr → lib/generators/blacklight/templates/solr}/conf/synonyms.txt +0 -0
  419. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example.xsl +0 -0
  420. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_atom.xsl +0 -0
  421. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/example_rss.xsl +0 -0
  422. /data/{solr → lib/generators/blacklight/templates/solr}/conf/xslt/luke.xsl +0 -0
@@ -1,205 +0,0 @@
1
- # frozen_string_literal: true
2
- module Blacklight::RenderPartialsHelper
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 ||= @document_list
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_default'
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
- protected
100
-
101
- ##
102
- # Return a partial name for rendering a document
103
- # this method can be overridden in order to transform the value
104
- # (e.g. 'PdfBook' => 'pdf_book')
105
- #
106
- # @param [SolrDocument] document
107
- # @param [String, Array] display_type a value suggestive of a partial
108
- # @return [String] the name of the partial to render
109
- # @example
110
- # type_field_to_partial_name(['a book-article'])
111
- # => 'a_book_article'
112
- if Rails.version >= '5.0.0'
113
- def type_field_to_partial_name(document, display_type)
114
- # using "_" as sep. to more closely follow the views file naming conventions
115
- # parameterize uses "-" as the default sep. which throws errors
116
- underscore = '_'.freeze
117
- Array(display_type).join(' '.freeze).tr('-'.freeze, underscore).parameterize(separator: underscore)
118
- end
119
- else
120
- def type_field_to_partial_name(document, display_type)
121
- # using "_" as sep. to more closely follow the views file naming conventions
122
- # parameterize uses "-" as the default sep. which throws errors
123
- underscore = '_'.freeze
124
- Array(display_type).join(' '.freeze).tr('-'.freeze, underscore).parameterize(underscore)
125
- end
126
- end
127
-
128
- ##
129
- # Return a normalized partial name for rendering a single document
130
- #
131
- # @param [SolrDocument] document
132
- # @param [Symbol] base_name base name for the partial
133
- # @return [String]
134
- def document_partial_name(document, base_name = nil)
135
- view_config = blacklight_config.view_config(:show)
136
-
137
- display_type = if base_name and view_config.key? :"#{base_name}_display_type_field"
138
- document[view_config[:"#{base_name}_display_type_field"]]
139
- end
140
-
141
- display_type ||= document[view_config.display_type_field]
142
-
143
- display_type ||= 'default'
144
-
145
- type_field_to_partial_name(document, display_type)
146
- end
147
-
148
- ##
149
- # A list of document partial templates to try to render for a document
150
- #
151
- # The partial names will be interpolated with the following variables:
152
- # - action_name: (e.g. index, show)
153
- # - index_view_type: (the current view type, e.g. list, gallery)
154
- # - format: the document's format (e.g. book)
155
- #
156
- # @see #render_document_partial
157
- def document_partial_path_templates
158
- # first, the legacy template names for backwards compatbility
159
- # followed by the new, inheritable style
160
- # finally, a controller-specific path for non-catalog subclasses
161
- @partial_path_templates ||= [
162
- "%{action_name}_%{index_view_type}_%{format}",
163
- "%{action_name}_%{index_view_type}_default",
164
- "%{action_name}_%{format}",
165
- "%{action_name}_default",
166
- "catalog/%{action_name}_%{format}",
167
- "catalog/_%{action_name}_partials/%{format}",
168
- "catalog/_%{action_name}_partials/default"
169
- ]
170
- end
171
-
172
- private
173
-
174
- def find_document_show_template_with_view view_type, base_name, format, locals
175
- document_partial_path_templates.each do |str|
176
- partial = str % { action_name: base_name, format: format, index_view_type: view_type }
177
- logger.debug "Looking for document partial #{partial}"
178
- template = lookup_context.find_all(partial, lookup_context.prefixes + [""], true, locals.keys + [:document], {}).first
179
- return template if template
180
- end
181
- nil
182
- end
183
-
184
- def find_document_index_template_with_view view, locals
185
- document_index_path_templates.each do |str|
186
- partial = str % { index_view_type: view }
187
- logger.debug "Looking for document index partial #{partial}"
188
- template = lookup_context.find_all(partial, lookup_context.prefixes + [""], true, locals.keys + [:documents], {}).first
189
- return template if template
190
- end
191
- nil
192
- end
193
-
194
- ##
195
- # @param key fetches or writes data to a cache, using the given key.
196
- # @yield the block to evaluate (and cache) if there is a cache miss
197
- def cached_view key
198
- @view_cache ||= {}
199
- if @view_cache.key?(key)
200
- @view_cache[key]
201
- else
202
- @view_cache[key] = yield
203
- end
204
- end
205
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
- module BlacklightConfigurationHelper
3
- include Blacklight::ConfigurationHelperBehavior
4
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
- module BlacklightUrlHelper
3
- include Blacklight::UrlHelperBehavior
4
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
- module ComponentHelper
3
- include Blacklight::ComponentHelperBehavior
4
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
- module FacetsHelper
3
- include Blacklight::FacetsHelperBehavior
4
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
- module HashAsHiddenFieldsHelper
3
- include Blacklight::HashAsHiddenFieldsHelperBehavior
4
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
- module LayoutHelper
3
- include Blacklight::LayoutHelperBehavior
4
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
- module RenderConstraintsHelper
3
- include Blacklight::RenderConstraintsHelperBehavior
4
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
- module SearchHistoryConstraintsHelper
3
- include Blacklight::SearchHistoryConstraintsHelperBehavior
4
- end
@@ -1,4 +0,0 @@
1
- # frozen_string_literal: true
2
- module SuggestHelper
3
- include Blacklight::SuggestHelperBehavior
4
- end
@@ -1,6 +0,0 @@
1
- # frozen_string_literal: true
2
- module Blacklight::Solr::Document::MoreLikeThis
3
- def more_like_this
4
- response.more_like(self).map { |doc| self.class.new(doc, response) }
5
- end
6
- end
@@ -1,26 +0,0 @@
1
- <div class="navbar-right">
2
- <ul class="nav navbar-nav">
3
- <%= render_nav_actions do |config, action|%>
4
- <li><%= action %></li>
5
- <% end %>
6
- </ul>
7
-
8
- <% if has_user_authentication_provider? %>
9
- <ul class="nav navbar-nav">
10
- <% if current_user %>
11
- <li>
12
- <%= link_to t('blacklight.header_links.logout'), destroy_user_session_path %>
13
- </li>
14
- <% unless current_user.to_s.blank? -%>
15
- <li>
16
- <%= link_to current_user, edit_user_registration_path %>
17
- </li>
18
- <% end %>
19
- <% else %>
20
- <li>
21
- <%= link_to t('blacklight.header_links.login'), new_user_session_path %>
22
- </li>
23
- <% end %>
24
- </ul>
25
- <% end %>
26
- </div>
@@ -1 +0,0 @@
1
- <%= link_to t('blacklight.header_links.saved_searches'), blacklight.saved_searches_path %>
@@ -1,12 +0,0 @@
1
- <% doc_presenter = index_presenter(document) %>
2
- <%# default partial to display solr document fields in catalog index view -%>
3
- <dl class="document-metadata dl-horizontal dl-invert">
4
-
5
- <% index_fields(document).each do |field_name, field| -%>
6
- <% if should_render_index_field? document, field %>
7
- <dt class="blacklight-<%= field_name.parameterize %>"><%= render_index_field_label document, field: field_name %></dt>
8
- <dd class="blacklight-<%= field_name.parameterize %>"><%= doc_presenter.field_value field_name %></dd>
9
- <% end -%>
10
- <% end -%>
11
-
12
- </dl>
@@ -1,10 +0,0 @@
1
- <% doc_presenter = show_presenter(document) %>
2
- <%# default partial to display solr document fields in catalog show view -%>
3
- <dl class="dl-horizontal dl-invert">
4
- <% document_show_fields(document).each do |field_name, field| -%>
5
- <% if should_render_show_field? document, field %>
6
- <dt class="blacklight-<%= field_name.parameterize %>"><%= render_document_show_field_label document, field: field_name %></dt>
7
- <dd class="blacklight-<%= field_name.parameterize %>"><%= doc_presenter.field_value field_name %></dd>
8
- <% end -%>
9
- <% end -%>
10
- </dl>
@@ -1,5 +0,0 @@
1
- <%- if has_thumbnail?(document) && tn = render_thumbnail_tag(document, {}, :counter => document_counter_with_offset(document_counter)) %>
2
- <div class="document-thumbnail">
3
- <%= tn %>
4
- </div>
5
- <%- end %>
@@ -1,32 +0,0 @@
1
- <% @page_title = t('blacklight.saved_searches.page_title', :application_name => application_name) %>
2
-
3
- <div id="content" class="col-md-9">
4
-
5
- <h2 class='page-heading'><%= t('blacklight.saved_searches.title') %></h2>
6
-
7
- <%- if current_or_guest_user.blank? -%>
8
-
9
- <h3 class='section-heading'><%= t('blacklight.saved_searches.need_login') %></h3>
10
-
11
- <%- elsif @searches.blank? -%>
12
-
13
- <h3 class='section-heading'><%= t('blacklight.saved_searches.no_searches') %></h3>
14
-
15
- <%- else -%>
16
- <p>
17
- <%= link_to t('blacklight.saved_searches.clear.action_title'), blacklight.clear_saved_searches_path, :method => :delete, :data => { :confirm => t('blacklight.saved_searches.clear.action_confirm') } %>
18
- </p>
19
-
20
- <h3 class='section-heading'><%= t('blacklight.saved_searches.list_title') %></h3>
21
- <table class="table table-striped">
22
- <%- @searches.each do |search| -%>
23
- <tr>
24
- <td><%= link_to_previous_search(search.query_params) %></td>
25
- <td><%= button_to t('blacklight.saved_searches.delete'), blacklight.forget_search_path(search.id), :class => 'btn btn-danger' %></td>
26
- </tr>
27
- <%- end -%>
28
- </table>
29
-
30
- <%- end -%>
31
-
32
- </div>
@@ -1,6 +0,0 @@
1
- <div id="ajax-modal" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="modal menu" aria-hidden="true">
2
- <div class="modal-dialog">
3
- <div class="modal-content">
4
- </div>
5
- </div>
6
- </div>
@@ -1,31 +0,0 @@
1
- # frozen_string_literal: true
2
- require 'rails/generators'
3
-
4
- module Blacklight
5
- class Solr4Generator < Rails::Generators::Base
6
- source_root File.expand_path('../templates', __FILE__)
7
-
8
- class_option :jettywrapper, type: :boolean, default: false, desc: "Use jettywrapper to download and control Jetty"
9
-
10
- desc <<-EOS
11
- This generator makes the following changes to your application:
12
- 1. Installs jettywrapper into your application
13
- 2. Adds rsolr to your Gemfile
14
- EOS
15
-
16
- def install_jettywrapper
17
- return unless options[:jettywrapper]
18
-
19
- gem "jettywrapper".dup, ">= 2.0"
20
- copy_file "config/jetty.yml", "config/jetty.yml"
21
-
22
- append_to_file "Rakefile",
23
- "\nZIP_URL = \"https://github.com/projectblacklight/blacklight-jetty/archive/v4.10.4.zip\"\n" \
24
- "require 'jettywrapper'\n"
25
- end
26
-
27
- def add_rsolr_gem
28
- gem "rsolr".dup, '>= 1.0', '< 3'
29
- end
30
- end
31
- end
@@ -1,13 +0,0 @@
1
- development:
2
- startup_wait: 15
3
- jetty_port: 8983
4
- java_version: ">= 1.7"
5
- test:
6
- startup_wait: 60
7
- jetty_port: <%= ENV['TEST_JETTY_PORT'] || 8983 %>
8
- <%= ENV['TEST_JETTY_PATH'] ? "jetty_home: " + ENV['TEST_JETTY_PATH'] : '' %>
9
- java_version: ">= 1.7"
10
- production:
11
- startup_wait: 15
12
- jetty_port: 8983
13
- java_version: ">= 1.7"