blacklight 9.0.0.beta1 → 9.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 (263) hide show
  1. checksums.yaml +4 -4
  2. data/.docker/app/Dockerfile +2 -1
  3. data/.github/matrix.json +55 -0
  4. data/.github/workflows/build.yml +16 -0
  5. data/.github/workflows/lint.yml +25 -0
  6. data/.github/workflows/main.yml +22 -0
  7. data/.github/workflows/release_7_x_scheduled.yml +39 -0
  8. data/.github/workflows/release_8_x_scheduled.yml +39 -0
  9. data/.github/workflows/test.yml +53 -0
  10. data/.rubocop.yml +81 -3
  11. data/.rubocop_todo.yml +46 -71
  12. data/.solr_wrapper.yml +3 -1
  13. data/README.md +2 -2
  14. data/VERSION +1 -1
  15. data/app/assets/builds/blacklight.css +51 -38
  16. data/app/assets/javascripts/blacklight/blacklight.esm.js +62 -77
  17. data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
  18. data/app/assets/javascripts/blacklight/blacklight.js +62 -77
  19. data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
  20. data/app/assets/stylesheets/blacklight/_blacklight_base.scss +0 -1
  21. data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +4 -0
  22. data/app/assets/stylesheets/blacklight/_facets.scss +37 -29
  23. data/app/assets/stylesheets/blacklight/_header.scss +4 -0
  24. data/app/assets/stylesheets/blacklight/_modal.scss +9 -8
  25. data/app/assets/stylesheets/blacklight/_pagination.scss +1 -3
  26. data/app/assets/stylesheets/blacklight/_search_history.scss +0 -4
  27. data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +3 -0
  28. data/app/components/blacklight/advanced_search_form_component.html.erb +4 -4
  29. data/app/components/blacklight/advanced_search_form_component.rb +6 -5
  30. data/app/components/blacklight/constraint_component.html.erb +1 -5
  31. data/app/components/blacklight/constraint_component.rb +11 -0
  32. data/app/components/blacklight/constraint_layout_component.html.erb +1 -6
  33. data/app/components/blacklight/constraint_layout_component.rb +9 -0
  34. data/app/components/blacklight/constraints_component.html.erb +3 -8
  35. data/app/components/blacklight/constraints_component.rb +59 -14
  36. data/app/components/blacklight/document/action_component.rb +1 -3
  37. data/app/components/blacklight/document/bookmark_component.html.erb +3 -3
  38. data/app/components/blacklight/document/bookmark_component.rb +10 -4
  39. data/app/components/blacklight/document/group_component.html.erb +1 -1
  40. data/app/components/blacklight/document/more_like_this_component.rb +2 -2
  41. data/app/components/blacklight/document/page_header_component.rb +3 -3
  42. data/app/components/blacklight/document/thumbnail_component.html.erb +3 -7
  43. data/app/components/blacklight/document/thumbnail_component.rb +7 -6
  44. data/app/components/blacklight/document_component.html.erb +3 -3
  45. data/app/components/blacklight/document_component.rb +22 -26
  46. data/app/components/blacklight/document_title_component.rb +6 -10
  47. data/app/components/blacklight/facet_field_checkboxes_component.rb +4 -18
  48. data/app/components/blacklight/facet_field_component.rb +4 -15
  49. data/app/components/blacklight/facet_field_filter_component.rb +4 -19
  50. data/app/components/blacklight/facet_field_inclusive_constraint_component.rb +4 -23
  51. data/app/components/blacklight/facet_field_list_component.rb +4 -30
  52. data/app/components/blacklight/facet_field_no_layout_component.rb +4 -8
  53. data/app/components/blacklight/facet_field_pagination_component.html.erb +2 -2
  54. data/app/components/blacklight/facet_item_component.rb +4 -72
  55. data/app/components/blacklight/facet_item_pivot_component.rb +8 -4
  56. data/app/components/blacklight/{facet_field_checkboxes_component.html.erb → facets/checkboxes_component.html.erb} +4 -4
  57. data/app/components/blacklight/facets/checkboxes_component.rb +26 -0
  58. data/app/components/blacklight/facets/count_component.rb +23 -0
  59. data/app/components/blacklight/{facet_field_component.html.erb → facets/field_component.html.erb} +1 -3
  60. data/app/components/blacklight/facets/field_component.rb +23 -0
  61. data/app/components/blacklight/facets/filters_component.html.erb +4 -0
  62. data/app/components/blacklight/facets/filters_component.rb +39 -0
  63. data/app/components/blacklight/{facet_field_inclusive_constraint_component.html.erb → facets/inclusive_constraint_component.html.erb} +1 -1
  64. data/app/components/blacklight/facets/inclusive_constraint_component.rb +31 -0
  65. data/app/components/blacklight/{facet_field_filter_component.html.erb → facets/index_navigation_component.html.erb} +1 -1
  66. data/app/components/blacklight/facets/index_navigation_component.rb +32 -0
  67. data/app/components/blacklight/facets/item_component.rb +76 -0
  68. data/app/components/blacklight/facets/list_component.html.erb +11 -0
  69. data/app/components/blacklight/facets/list_component.rb +46 -0
  70. data/app/components/blacklight/facets/no_layout_component.rb +16 -0
  71. data/app/components/blacklight/facets/pivot_list_component.rb +14 -0
  72. data/app/components/blacklight/facets/selected_value_component.rb +29 -0
  73. data/app/components/blacklight/facets/suggest_component.html.erb +17 -0
  74. data/app/components/blacklight/facets/suggest_component.rb +21 -0
  75. data/app/components/blacklight/header_component.rb +2 -2
  76. data/app/components/blacklight/icons/remove_component.rb +2 -2
  77. data/app/components/blacklight/metadata_field_component.html.erb +2 -2
  78. data/app/components/blacklight/metadata_field_component.rb +2 -1
  79. data/app/components/blacklight/metadata_field_layout_component.rb +9 -4
  80. data/app/components/blacklight/metadata_field_plain_text_layout_component.rb +2 -2
  81. data/app/components/blacklight/response/facet_group_component.html.erb +3 -3
  82. data/app/components/blacklight/response/facet_group_component.rb +9 -1
  83. data/app/components/blacklight/search_bar_component.html.erb +2 -2
  84. data/app/components/blacklight/system/dropdown_component.html.erb +1 -1
  85. data/app/components/blacklight/system/dropdown_component.rb +1 -1
  86. data/app/components/blacklight/system/flash_message_component.html.erb +1 -1
  87. data/app/components/blacklight/system/flash_message_component.rb +0 -9
  88. data/app/components/blacklight/system/modal_component.html.erb +1 -2
  89. data/app/components/blacklight/top_navbar_component.html.erb +2 -2
  90. data/app/controllers/concerns/blacklight/bookmarks.rb +13 -3
  91. data/app/controllers/concerns/blacklight/catalog.rb +27 -30
  92. data/app/controllers/concerns/blacklight/controller.rb +1 -1
  93. data/app/controllers/concerns/blacklight/search_context.rb +1 -1
  94. data/app/controllers/concerns/blacklight/searchable.rb +1 -1
  95. data/app/helpers/blacklight/catalog_helper_behavior.rb +5 -3
  96. data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -2
  97. data/app/helpers/blacklight/document_helper_behavior.rb +3 -1
  98. data/app/helpers/blacklight/facets_helper_behavior.rb +7 -12
  99. data/app/helpers/blacklight/icon_helper_behavior.rb +2 -2
  100. data/app/javascript/blacklight-frontend/bookmark_toggle.js +7 -2
  101. data/app/javascript/blacklight-frontend/button_focus.js +1 -1
  102. data/app/javascript/blacklight-frontend/checkbox_submit.js +9 -2
  103. data/app/javascript/blacklight-frontend/debounce.js +1 -1
  104. data/app/javascript/blacklight-frontend/facet_suggest.js +27 -3
  105. data/app/javascript/blacklight-frontend/index.js +0 -2
  106. data/app/javascript/blacklight-frontend/modal.js +15 -8
  107. data/app/javascript/blacklight-frontend/search_context.js +3 -2
  108. data/app/presenters/blacklight/constraint_presenter.rb +22 -0
  109. data/app/presenters/blacklight/document_presenter.rb +6 -5
  110. data/app/presenters/blacklight/facet_field_presenter.rb +18 -2
  111. data/app/presenters/blacklight/facet_grouped_item_presenter.rb +6 -0
  112. data/app/presenters/blacklight/facet_item_pivot_presenter.rb +1 -5
  113. data/app/presenters/blacklight/facet_item_presenter.rb +5 -18
  114. data/app/presenters/blacklight/field_presenter.rb +4 -2
  115. data/app/presenters/blacklight/json_presenter.rb +8 -4
  116. data/app/presenters/blacklight/rendering/abstract_step.rb +7 -1
  117. data/app/presenters/blacklight/rendering/helper_method.rb +4 -4
  118. data/app/presenters/blacklight/rendering/join.rb +11 -7
  119. data/app/presenters/blacklight/rendering/terminator.rb +1 -1
  120. data/app/services/blacklight/field_retriever.rb +1 -1
  121. data/app/services/blacklight/search_service.rb +10 -8
  122. data/app/values/blacklight/types.rb +2 -2
  123. data/app/views/blacklight/nav/_bookmark.html.erb +1 -1
  124. data/app/views/catalog/_document.atom.builder +1 -1
  125. data/app/views/catalog/_document.html.erb +1 -1
  126. data/app/views/catalog/_email_form.html.erb +4 -4
  127. data/app/views/catalog/_home_text.html.erb +2 -2
  128. data/app/views/catalog/_show_main_content.html.erb +9 -5
  129. data/app/views/catalog/_sms_form.html.erb +4 -4
  130. data/app/views/catalog/_sort_and_per_page.html.erb +1 -1
  131. data/app/views/catalog/advanced_search.html.erb +1 -1
  132. data/app/views/catalog/facet.html.erb +8 -10
  133. data/app/views/catalog/index.html.erb +0 -1
  134. data/app/views/catalog/index.json.jbuilder +5 -3
  135. data/app/views/catalog/show.html.erb +2 -2
  136. data/app/views/layouts/blacklight/base.html.erb +1 -1
  137. data/blacklight.gemspec +1 -1
  138. data/config/locales/blacklight.ar.yml +14 -14
  139. data/config/locales/blacklight.ca.yml +2 -2
  140. data/config/locales/blacklight.de.yml +13 -13
  141. data/config/locales/blacklight.en.yml +3 -3
  142. data/config/locales/blacklight.es.yml +13 -13
  143. data/config/locales/blacklight.fr.yml +14 -14
  144. data/config/locales/blacklight.hu.yml +15 -15
  145. data/config/locales/blacklight.it.yml +16 -16
  146. data/config/locales/blacklight.nl.yml +13 -13
  147. data/config/locales/blacklight.pt-BR.yml +15 -15
  148. data/config/locales/blacklight.sq.yml +14 -14
  149. data/config/locales/blacklight.zh.yml +12 -12
  150. data/lib/blacklight/abstract_repository.rb +2 -2
  151. data/lib/blacklight/component.rb +7 -1
  152. data/lib/blacklight/configuration/context.rb +3 -3
  153. data/lib/blacklight/configuration/facet_field.rb +11 -6
  154. data/lib/blacklight/configuration/field.rb +4 -4
  155. data/lib/blacklight/configuration/fields.rb +0 -1
  156. data/lib/blacklight/configuration/search_field.rb +1 -1
  157. data/lib/blacklight/configuration/view_config.rb +32 -18
  158. data/lib/blacklight/configuration.rb +64 -10
  159. data/lib/blacklight/nested_open_struct_with_hash_access.rb +1 -1
  160. data/lib/blacklight/open_struct_with_hash_access.rb +2 -2
  161. data/lib/blacklight/routes/searchable.rb +1 -1
  162. data/lib/blacklight/search_builder.rb +2 -1
  163. data/lib/blacklight/search_state/filter_field.rb +4 -4
  164. data/lib/blacklight/search_state/pivot_filter_field.rb +5 -5
  165. data/lib/blacklight/search_state.rb +2 -0
  166. data/lib/blacklight/solr/abstract_filter_query_builder.rb +77 -0
  167. data/lib/blacklight/solr/default_filter_query_builder.rb +20 -0
  168. data/lib/blacklight/solr/field_reflection_search_builder.rb +11 -0
  169. data/lib/blacklight/solr/repository.rb +17 -15
  170. data/lib/blacklight/solr/response/facets.rb +2 -2
  171. data/lib/blacklight/solr/response/params.rb +0 -4
  172. data/lib/blacklight/solr/response.rb +5 -1
  173. data/lib/blacklight/solr/search_builder_behavior.rb +48 -97
  174. data/lib/blacklight/solr/single_doc_search_builder.rb +25 -0
  175. data/lib/blacklight.rb +6 -4
  176. data/lib/generators/blacklight/assets/importmap_generator.rb +3 -5
  177. data/lib/generators/blacklight/assets_generator.rb +1 -1
  178. data/lib/generators/blacklight/search_builder_generator.rb +1 -1
  179. data/lib/generators/blacklight/templates/.solr_wrapper.yml +3 -1
  180. data/lib/generators/blacklight/templates/catalog_controller.rb +34 -8
  181. data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +0 -71
  182. data/package.json +3 -3
  183. data/spec/components/blacklight/advanced_search_form_component_spec.rb +18 -22
  184. data/spec/components/blacklight/constraint_layout_component_spec.rb +8 -8
  185. data/spec/components/blacklight/constraints_component_spec.rb +11 -11
  186. data/spec/components/blacklight/document/action_component_spec.rb +23 -15
  187. data/spec/components/blacklight/document/group_component_spec.rb +10 -15
  188. data/spec/components/blacklight/document/page_header_component_spec.rb +35 -28
  189. data/spec/components/blacklight/document/sidebar_component_spec.rb +5 -11
  190. data/spec/components/blacklight/document_component_spec.rb +105 -79
  191. data/spec/components/blacklight/facet_component_spec.rb +12 -8
  192. data/spec/components/blacklight/facet_item_pivot_component_spec.rb +12 -12
  193. data/spec/components/blacklight/{facet_field_checkboxes_component_spec.rb → facets/checkboxes_component_spec.rb} +13 -13
  194. data/spec/components/blacklight/facets/filters_component_spec.rb +36 -0
  195. data/spec/components/blacklight/facets/index_navigation_component_spec.rb +41 -0
  196. data/spec/components/blacklight/{facet_item_component_spec.rb → facets/item_component_spec.rb} +10 -10
  197. data/spec/components/blacklight/{facet_field_list_component_spec.rb → facets/list_component_spec.rb} +34 -23
  198. data/spec/components/blacklight/facets/pivot_list_component_spec.rb +53 -0
  199. data/spec/components/blacklight/facets/suggest_component_spec.rb +82 -0
  200. data/spec/components/blacklight/header_component_spec.rb +2 -4
  201. data/spec/components/blacklight/hidden_search_state_component_spec.rb +7 -7
  202. data/spec/components/blacklight/metadata_field_component_spec.rb +17 -15
  203. data/spec/components/blacklight/response/facet_group_component_spec.rb +37 -0
  204. data/spec/components/blacklight/response/pagination_component_spec.rb +1 -1
  205. data/spec/components/blacklight/response/spellcheck_component_spec.rb +1 -1
  206. data/spec/components/blacklight/search_bar_component_spec.rb +28 -5
  207. data/spec/components/blacklight/search_context/server_applied_params_component_spec.rb +2 -2
  208. data/spec/components/blacklight/search_context/server_item_pagination_component_spec.rb +3 -5
  209. data/spec/components/blacklight/skip_link_component_spec.rb +8 -11
  210. data/spec/components/blacklight/start_over_button_component_spec.rb +4 -4
  211. data/spec/components/blacklight/system/dropdown_component_spec.rb +26 -0
  212. data/spec/components/blacklight/system/flash_message_component_spec.rb +7 -11
  213. data/spec/controllers/blacklight/catalog_spec.rb +1 -1
  214. data/spec/controllers/catalog_controller_spec.rb +12 -20
  215. data/spec/features/advanced_search_spec.rb +42 -21
  216. data/spec/features/facets_spec.rb +84 -12
  217. data/spec/features/modal_spec.rb +1 -1
  218. data/spec/features/search_filters_spec.rb +6 -4
  219. data/spec/features/search_spec.rb +3 -3
  220. data/spec/helpers/blacklight/facets_helper_behavior_spec.rb +10 -0
  221. data/spec/lib/blacklight/configuration/facet_field_spec.rb +2 -2
  222. data/spec/lib/blacklight/parameters_spec.rb +12 -1
  223. data/spec/lib/blacklight/search_state/filter_field_spec.rb +18 -0
  224. data/spec/models/blacklight/configuration_spec.rb +178 -28
  225. data/spec/models/blacklight/solr/default_filter_query_builder_spec.rb +72 -0
  226. data/spec/models/blacklight/solr/document_spec.rb +0 -4
  227. data/spec/models/blacklight/solr/repository_spec.rb +37 -29
  228. data/spec/models/blacklight/solr/response/facets_spec.rb +86 -40
  229. data/spec/models/blacklight/solr/response/group_response_spec.rb +8 -5
  230. data/spec/models/blacklight/solr/response/group_spec.rb +9 -5
  231. data/spec/models/blacklight/solr/response_spec.rb +96 -64
  232. data/spec/models/blacklight/solr/search_builder_behavior_spec.rb +38 -57
  233. data/spec/models/solr_document_spec.rb +5 -1
  234. data/spec/presenters/blacklight/constraint_presenter_spec.rb +32 -0
  235. data/spec/presenters/blacklight/document_presenter_spec.rb +3 -3
  236. data/spec/presenters/blacklight/facet_item_presenter_spec.rb +0 -7
  237. data/spec/presenters/blacklight/field_presenter_spec.rb +103 -22
  238. data/spec/presenters/blacklight/json_presenter_spec.rb +17 -0
  239. data/spec/presenters/blacklight/rendering/pipeline_spec.rb +130 -14
  240. data/spec/services/blacklight/search_service_spec.rb +6 -27
  241. data/spec/spec_helper.rb +0 -1
  242. data/spec/support/presenter_test_helpers.rb +1 -1
  243. data/spec/support/view_component_test_helpers.rb +0 -18
  244. data/spec/views/catalog/facet.html.erb_spec.rb +10 -3
  245. data/spec/views/catalog/index.atom.builder_spec.rb +8 -3
  246. data/spec/views/catalog/index.html.erb_spec.rb +3 -1
  247. metadata +69 -38
  248. data/.github/workflows/ruby.yml +0 -98
  249. data/app/assets/stylesheets/blacklight/_icons.scss +0 -4
  250. data/app/components/blacklight/facet_field_list_component.html.erb +0 -19
  251. data/app/components/blacklight/search/facet_suggest_input.html.erb +0 -9
  252. data/app/components/blacklight/search/facet_suggest_input.rb +0 -16
  253. data/app/javascript/blacklight-frontend/modalForm.js +0 -60
  254. data/app/views/catalog/_facet_index_navigation.html.erb +0 -1
  255. data/app/views/catalog/_facet_layout.html.erb +0 -8
  256. data/app/views/catalog/_facet_pagination.html.erb +0 -1
  257. data/app/views/catalog/_facet_pivot.html.erb +0 -3
  258. data/app/views/shared/_sitelinks_search_box.html.erb +0 -12
  259. data/spec/components/blacklight/document_metadata_component_spec.rb +0 -0
  260. data/spec/components/blacklight/search/facet_suggest_input_spec.rb +0 -33
  261. data/spec/features/sitelinks_search_box_spec.rb +0 -13
  262. data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +0 -43
  263. data/spec/views/catalog/_facet_layout.html.erb_spec.rb +0 -41
@@ -5,16 +5,16 @@
5
5
  method: :post do %>
6
6
  <div class="modal-body">
7
7
  <%= render '/shared/flash_msg' %>
8
- <div class="form-group row">
9
- <label class="control-label col-sm-2" for="to">
8
+ <div class="row">
9
+ <label class="col-form-label col-sm-2" for="to">
10
10
  <%= t('blacklight.sms.form.to') %>
11
11
  </label>
12
12
  <div class="col-sm-10">
13
13
  <%= telephone_field_tag :to, params[:to], class: 'form-control', required: true %>
14
14
  </div>
15
15
  </div>
16
- <div class="form-group row">
17
- <label class="control-label col-sm-2" for="carrier">
16
+ <div class="row">
17
+ <label class="col-form-label col-sm-2" for="carrier">
18
18
  <%= t('blacklight.sms.form.carrier') %>
19
19
  </label>
20
20
  <div class="col-sm-10">
@@ -1,4 +1,4 @@
1
- <div id="sortAndPerPage" class="sort-pagination pb-3 d-md-flex justify-content-between" role="navigation" aria-label="<%= t('blacklight.search.per_page.aria_label')%>">
1
+ <div id="sortAndPerPage" class="sort-pagination pb-3 mb-3 d-md-flex justify-content-between" role="navigation" aria-label="<%= t('blacklight.search.per_page.aria_label')%>">
2
2
  <%= render partial: "paginate_compact", object: @response if show_pagination? %>
3
3
  <%= render_results_collection_tools wrapping_class: "search-widgets" %>
4
4
  </div>
@@ -1,7 +1,7 @@
1
1
  <% @page_title = t('blacklight.advanced_search.page_title', application_name: application_name) %>
2
2
 
3
3
  <div class="advanced-search-form col-sm-12">
4
- <h1 class="advanced page-header">
4
+ <h1>
5
5
  <%= t('blacklight.advanced_search.form.title') %>
6
6
  </h1>
7
7
 
@@ -1,14 +1,12 @@
1
1
  <%= render Blacklight::System::ModalComponent.new do |component| %>
2
- <% component.with_prefix do %>
3
- <div class="facet-pagination top d-flex w-100 justify-content-between">
4
- <%= render :partial=>'facet_pagination' %>
5
- </div>
6
- <% end %>
7
-
8
2
  <% component.with_title { facet_field_label(@facet.key) } %>
9
- <%= render Blacklight::Search::FacetSuggestInput.new(facet: @facet, presenter: @presenter) %>
3
+ <% view_config = blacklight_config.view_config(document_index_view_type) %>
10
4
 
11
- <%= render partial: 'facet_index_navigation' if @facet.index_range && @display_facet.index? %>
5
+ <%= render view_config.facet_filters_component.new(presenter: @presenter) %>
6
+
7
+ <div class="facet-pagination top d-flex flex-wrap w-100 justify-content-between border-bottom pb-3 mb-3">
8
+ <%= render view_config.facet_pagination_component.new(facet_field: @presenter) %>
9
+ </div>
12
10
 
13
11
  <div class="facet-extended-list">
14
12
  <%= render Blacklight::FacetComponent.new(display_facet: @display_facet,
@@ -17,8 +15,8 @@
17
15
  </div>
18
16
 
19
17
  <% component.with_footer do %>
20
- <div class="facet-pagination bottom flex-row justify-content-between">
21
- <%= render :partial=>'facet_pagination' %>
18
+ <div class="facet-pagination bottom d-flex flex-wrap w-100 justify-content-between">
19
+ <%= render view_config.facet_pagination_component.new(facet_field: @presenter) %>
22
20
  </div>
23
21
  <% end %>
24
22
  <% end %>
@@ -11,7 +11,6 @@
11
11
  <% unless has_search_parameters? %>
12
12
  <%# if there are no input/search related params, display the "home" partial -%>
13
13
  <%= render 'home' %>
14
- <%= render 'shared/sitelinks_search_box' %>
15
14
  <% else %>
16
15
  <%= render 'search_results' %>
17
16
  <% end %>
@@ -42,9 +42,11 @@ json.included do
42
42
  json.id facet.name
43
43
  json.attributes do
44
44
  facet_config = facet_configuration_for_field(facet.name)
45
- json.label facet_field_label(facet_config.key)
45
+ facet_presenter = facet_field_presenter(facet_config, facet)
46
+ json.label facet_presenter.label
46
47
  json.items do
47
48
  json.array! facet.items do |item|
49
+ item_presenter = facet_presenter.item_presenter(item)
48
50
  json.id
49
51
  json.attributes do
50
52
  json.label item.label
@@ -52,10 +54,10 @@ json.included do
52
54
  json.hits item.hits
53
55
  end
54
56
  json.links do
55
- if search_state.filter(facet_config).include?(facet_value_for_facet_item(item.value))
57
+ if search_state.filter(facet_config).include?(item.value)
56
58
  json.remove search_action_path(search_state.filter(facet.name).remove(item.value))
57
59
  else
58
- json.self facet_item_presenter(facet_config, item.value, facet.name).href(only_path: false)
60
+ json.self item_presenter.href(only_path: false)
59
61
  end
60
62
  end
61
63
  end
@@ -1,6 +1,6 @@
1
- <%= render 'show_main_content' %>
1
+ <% presenter = document_presenter(@document) %>
2
+ <%= render 'show_main_content', presenter: presenter %>
2
3
 
3
4
  <% content_for(:sidebar) do %>
4
- <% presenter = document_presenter(@document) %>
5
5
  <%= render presenter.view_config.sidebar_component.new(presenter: presenter) %>
6
6
  <% end %>
@@ -32,7 +32,7 @@
32
32
  <main id="main-container" class="<%= container_classes %>" aria-label="<%= t('blacklight.main.aria.main_container') %>">
33
33
  <%= content_for(:container_header) %>
34
34
 
35
- <%= render partial: 'shared/flash_msg', layout: 'shared/flash_messages' %>
35
+ <%= render 'shared/flash_msg', layout: 'shared/flash_messages' if flash.any? %>
36
36
 
37
37
  <div class="row">
38
38
  <%= content_for?(:content) ? yield(:content) : yield %>
data/blacklight.gemspec CHANGED
@@ -31,7 +31,7 @@ Gem::Specification.new do |s|
31
31
  s.add_dependency "kaminari", ">= 0.15" # the pagination (page 1,2,3, etc..) of our search results
32
32
  s.add_dependency "i18n", '>= 1.7.0' # added named parameters
33
33
  s.add_dependency "ostruct", '>= 0.3.2'
34
- s.add_dependency "view_component", '~> 3.9'
34
+ s.add_dependency "view_component", '>= 3.0', '< 5.0'
35
35
  s.add_dependency "zeitwerk"
36
36
 
37
37
  s.add_development_dependency "rsolr", ">= 1.0.6", "< 3" # Library for interacting with rSolr.
@@ -36,29 +36,29 @@ ar:
36
36
  apa: الجمعية الأمريكية لعلم النفس APA
37
37
  chicago: شيكاغو
38
38
  mla: جمعية اللغة الحديثة MLA
39
- did_you_mean: 'هل كنت تقصد كتابة: %{options}؟'
39
+ did_you_mean: "هل كنت تقصد كتابة: %{options}؟"
40
40
  email:
41
41
  errors:
42
42
  to:
43
43
  blank: يجب إدخال مُستلم من أجل إرسال هذه الرسالة
44
44
  invalid: يجب إدخال عنوان بريد إلكتروني صحيح
45
45
  form:
46
- message: 'الرسالة:'
46
+ message: "الرسالة:"
47
47
  submit: إرسال
48
48
  title: إرسله عبرالبريد الإلكتروني
49
- to: 'بريد إلكتروني:'
49
+ to: "بريد إلكتروني:"
50
50
  success: تم إرسال البريد الإلكتروني
51
51
  text:
52
52
  default_title: لا يوجد
53
- message: 'الرسالة: %{message}'
53
+ message: "الرسالة: %{message}"
54
54
  subject:
55
55
  few: سجلات المادة
56
56
  many: سجلات المادة
57
- one: 'سجل المادة: %{title}'
57
+ one: "سجل المادة: %{title}"
58
58
  other: سجلات المادة
59
59
  two: سجلان للمادة
60
60
  zero: لا يوجد سجل للمادة
61
- url: 'الرابط: %{url}'
61
+ url: "الرابط: %{url}"
62
62
  entry_name:
63
63
  default: إدخال
64
64
  grouped:
@@ -112,15 +112,15 @@ ar:
112
112
  count: ترتيب رقمي
113
113
  index: ترتيب أبجدي
114
114
  suggest:
115
- label: Filter %{field_label}
116
- placeholder: Filter...
115
+ label: الفلتر %{field_label}
116
+ placeholder: فلتر...
117
117
  title: تحديد نطاق البحث
118
118
  filters:
119
119
  label: "%{label}:"
120
120
  remove:
121
- label_value: 'إزالة القيد %{label}: %{value}'
121
+ label_value: "إزالة القيد %{label}: %{value}"
122
122
  value: إزالة القيد %{value}
123
- title: 'لقد بحثت عن:'
123
+ title: "اختياراتك:"
124
124
  form:
125
125
  search:
126
126
  label: ابحث عن
@@ -139,6 +139,7 @@ ar:
139
139
  constraint: "%{label}: %{value}"
140
140
  many_constraint_values: تم تحديد %{values}
141
141
  title: "%{constraints} - %{application_name} نتائج البحث"
142
+ joiner: " / "
142
143
  pagination:
143
144
  title: تصفح النتائج
144
145
  pagination_info:
@@ -159,7 +160,6 @@ ar:
159
160
  submit: تحديث
160
161
  title: عدد النتائج المعروضة في الصفحة
161
162
  rss_feed: خلاصات RSS للنتائج
162
- search_constraints_header: قيود البحث
163
163
  search_results: نتائج البحث
164
164
  show:
165
165
  label: "%{label}:"
@@ -171,7 +171,7 @@ ar:
171
171
  start_over: البدء من جديد
172
172
  view:
173
173
  list: قائمة
174
- view_title: 'عرض النتائج ك: '
174
+ view_title: "عرض النتائج ك: "
175
175
  zero_results:
176
176
  modify_search: حاول تعديل معايير البحث
177
177
  search_everything: حاول البحث عن كل شيء
@@ -208,10 +208,10 @@ ar:
208
208
  carrier_prompt: يرجى تحديد شركة الاتصالات
209
209
  submit: إرسال
210
210
  title: إرسله كرسالة نصية قصيرة
211
- to: 'رقم الهاتف:'
211
+ to: "رقم الهاتف:"
212
212
  success: تم الإرسال كرسالة نصية قصيرة
213
213
  text:
214
- url: 'الرابط: %{url}'
214
+ url: "الرابط: %{url}"
215
215
  tools:
216
216
  citation: استشهاد مرجعي
217
217
  clear: مسح
@@ -134,8 +134,8 @@ ca:
134
134
  title: "%{constraints} - %{application_name} Resultats de la cerca"
135
135
  constraint: "%{label}: %{value}"
136
136
  many_constraint_values: "%{values} seleccionat"
137
+ joiner: " / "
137
138
  header: "Cerca"
138
- search_constraints_header: "Filtres de la cerca"
139
139
  search_results: "Resultats de la cerca"
140
140
  errors:
141
141
  invalid_solr_id: "El registre que heu sol·licitat no existeix."
@@ -193,7 +193,7 @@ ca:
193
193
  group:
194
194
  more: "més »"
195
195
  filters:
196
- title: "Heu cercat per:"
196
+ title: "Les teves seleccions:"
197
197
  label: "%{label}:"
198
198
  remove:
199
199
  value: "Eliminar el filtre %{value}"
@@ -32,25 +32,25 @@ de:
32
32
  apa: APA
33
33
  chicago: Chicago
34
34
  mla: MLA
35
- did_you_mean: 'Meinten Sie: %{options}?'
35
+ did_you_mean: "Meinten Sie: %{options}?"
36
36
  email:
37
37
  errors:
38
38
  to:
39
39
  blank: Sie müssen einen Empfänger eingeben, um diese Mitteilung zu schicken
40
40
  invalid: Sie müssen eine gültige E-Mail-Addresse eingeben
41
41
  form:
42
- message: 'Nachricht:'
42
+ message: "Nachricht:"
43
43
  submit: Senden
44
44
  title: E-Mail
45
- to: 'E-Mail-Adresse:'
45
+ to: "E-Mail-Adresse:"
46
46
  success: E-Mail verschickt
47
47
  text:
48
48
  default_title: N/A
49
- message: 'Mitteilung: %{message}'
49
+ message: "Mitteilung: %{message}"
50
50
  subject:
51
- one: 'Artikeldatensatz: %{title}'
51
+ one: "Artikeldatensatz: %{title}"
52
52
  other: Artikeldatensätze
53
- url: 'URL: %{url}'
53
+ url: "URL: %{url}"
54
54
  entry_name:
55
55
  default:
56
56
  one: Eintrag
@@ -92,7 +92,7 @@ de:
92
92
  close: Facetten ausblenden
93
93
  open: Facetten zeigen
94
94
  missing:
95
- - fehlt
95
+ - fehlt
96
96
  more_html: mehr <span class="visually-hidden">%{field_name}</span> »
97
97
  pivot:
98
98
  hide: Schließen
@@ -109,9 +109,9 @@ de:
109
109
  filters:
110
110
  label: "%{label}:"
111
111
  remove:
112
- label_value: 'Filter %{label}: %{value} entfernen'
112
+ label_value: "Filter %{label}: %{value} entfernen"
113
113
  value: Filter %{value} entfernen
114
- title: 'Sie suchten nach:'
114
+ title: "Ihre Auswahl:"
115
115
  form:
116
116
  search:
117
117
  label: suchen nach
@@ -130,6 +130,7 @@ de:
130
130
  constraint: "%{label}: %{value}"
131
131
  many_constraint_values: "%{values} ausgewählt"
132
132
  title: "%{constraints} - %{application_name} Suchergebnisse"
133
+ joiner: " / "
133
134
  pagination:
134
135
  title: Ergebnisse Navigation
135
136
  pagination_info:
@@ -146,7 +147,6 @@ de:
146
147
  submit: Aktualisieren
147
148
  title: Anzahl der Ergebnisse, die pro Seite angezeigt werden
148
149
  rss_feed: RSS für Ergebnisse
149
- search_constraints_header: Suchen
150
150
  search_results: Suchergebnisse
151
151
  show:
152
152
  label: "%{label}:"
@@ -158,7 +158,7 @@ de:
158
158
  start_over: Neu anfangen
159
159
  view:
160
160
  list: Liste
161
- view_title: 'Ergebnisse ansehen als: '
161
+ view_title: "Ergebnisse ansehen als: "
162
162
  zero_results:
163
163
  modify_search: Ändern Sie Ihre Suche
164
164
  search_everything: Suchen Sie nach allem
@@ -195,10 +195,10 @@ de:
195
195
  carrier_prompt: Bitte wählen Sie Ihren Netzbetreiber aus
196
196
  submit: Schicken
197
197
  title: SMS
198
- to: 'Telefonnummer:'
198
+ to: "Telefonnummer:"
199
199
  success: SMS verschickt
200
200
  text:
201
- url: 'Link: %{url}'
201
+ url: "Link: %{url}"
202
202
  tools:
203
203
  citation: Zitieren
204
204
  clear: Löschen
@@ -11,7 +11,7 @@ en:
11
11
  sort_label: Sort results by
12
12
  start_over_html: Start over
13
13
  title: Advanced search
14
- more_options: More options
14
+ more_options: Advanced search
15
15
  op:
16
16
  label: search operator
17
17
  must: all
@@ -129,7 +129,7 @@ en:
129
129
  remove:
130
130
  label_value: "Remove constraint %{label}: %{value}"
131
131
  value: Remove constraint %{value}
132
- title: "You searched for:"
132
+ title: "Your selections:"
133
133
  form:
134
134
  search:
135
135
  label: search for
@@ -148,6 +148,7 @@ en:
148
148
  constraint: "%{label}: %{value}"
149
149
  many_constraint_values: "%{values} selected"
150
150
  title: "%{constraints} - %{application_name} Search Results"
151
+ joiner: " / "
151
152
  pagination:
152
153
  title: Results navigation
153
154
  pagination_info:
@@ -164,7 +165,6 @@ en:
164
165
  submit: Update
165
166
  title: Number of results to display per page
166
167
  rss_feed: RSS for results
167
- search_constraints_header: Search Constraints
168
168
  search_results: Search Results
169
169
  show:
170
170
  label: "%{label}:"
@@ -39,18 +39,18 @@ es:
39
39
  blank: Debe introducir un destinatario para enviar este mensaje
40
40
  invalid: Debe entrar un email válido
41
41
  form:
42
- message: 'Mensaje:'
42
+ message: "Mensaje:"
43
43
  submit: Enviar
44
44
  title: Enviar
45
- to: 'Email:'
45
+ to: "Email:"
46
46
  success: Email enviado
47
47
  text:
48
48
  default_title: N/A
49
- message: 'Mensaje: %{message}'
49
+ message: "Mensaje: %{message}"
50
50
  subject:
51
- one: 'Ficha artículo: %{title}'
51
+ one: "Ficha artículo: %{title}"
52
52
  other: Ficha artículos
53
- url: 'URL: %{url}'
53
+ url: "URL: %{url}"
54
54
  entry_name:
55
55
  default:
56
56
  one: entrada
@@ -102,15 +102,15 @@ es:
102
102
  count: Ordenación numérica
103
103
  index: Ordenación A-Z
104
104
  suggest:
105
- label: Filter %{field_label}
106
- placeholder: Filter...
105
+ label: Filtro %{field_label}
106
+ placeholder: Filtrar...
107
107
  title: Limite su búsqueda
108
108
  filters:
109
109
  label: "%{label}:"
110
110
  remove:
111
- label_value: 'Eliminar la restricción%{label}: %{value}'
111
+ label_value: "Eliminar la restricción%{label}: %{value}"
112
112
  value: Eliminar la restricción %{value}
113
- title: 'Usted ha buscado:'
113
+ title: "Tus selecciones:"
114
114
  form:
115
115
  search:
116
116
  label: buscar
@@ -129,6 +129,7 @@ es:
129
129
  constraint: "%{label}: %{value}"
130
130
  many_constraint_values: "%{values} seleccionado"
131
131
  title: "%{constraints} - %{application_name} Resultados de la búsqueda"
132
+ joiner: " / "
132
133
  pagination:
133
134
  title: Resultados de navegación
134
135
  pagination_info:
@@ -145,7 +146,6 @@ es:
145
146
  submit: Actualización
146
147
  title: El número de resultados a mostrar por página
147
148
  rss_feed: RSS de los resultados
148
- search_constraints_header: Buscar
149
149
  search_results: Resultados de la búsqueda
150
150
  show:
151
151
  label: "%{label}:"
@@ -157,7 +157,7 @@ es:
157
157
  start_over: Volver a empezar
158
158
  view:
159
159
  list: Lista
160
- view_title: 'Ver Resultados por: '
160
+ view_title: "Ver Resultados por: "
161
161
  zero_results:
162
162
  modify_search: Intente modificar su búsqueda
163
163
  search_everything: Pruebe a buscar de todo
@@ -194,10 +194,10 @@ es:
194
194
  carrier_prompt: Por favor, seleccione su compañía telefónica
195
195
  submit: Enviar
196
196
  title: Enviar SMS
197
- to: 'Número de teléfono:'
197
+ to: "Número de teléfono:"
198
198
  success: SMS enviado
199
199
  text:
200
- url: 'Link: %{url}'
200
+ url: "Link: %{url}"
201
201
  tools:
202
202
  citation: Cité
203
203
  clear: Borrar
@@ -32,25 +32,25 @@ fr:
32
32
  apa: APA
33
33
  chicago: Chicago
34
34
  mla: MLA
35
- did_you_mean: 'Essayez peut-être avec : %{options}'
35
+ did_you_mean: "Essayez peut-être avec : %{options}"
36
36
  email:
37
37
  errors:
38
38
  to:
39
39
  blank: Vous devez saisir l'adresse de votre destinataire.
40
40
  invalid: Vous devez saisir une adresse correcte.
41
41
  form:
42
- message: 'Message :'
42
+ message: "Message :"
43
43
  submit: Envoyer
44
44
  title: Envoyer par courriel
45
- to: 'Courriel :'
45
+ to: "Courriel :"
46
46
  success: Message envoyé
47
47
  text:
48
48
  default_title: N/A
49
- message: 'Message : %{message}'
49
+ message: "Message : %{message}"
50
50
  subject:
51
- one: 'Une référence : %{title}'
51
+ one: "Une référence : %{title}"
52
52
  other: Des références bibliographiques
53
- url: 'URL : %{url}'
53
+ url: "URL : %{url}"
54
54
  entry_name:
55
55
  default:
56
56
  one: résultat
@@ -102,15 +102,15 @@ fr:
102
102
  count: Du + au - fréquent
103
103
  index: Tri de A à Z
104
104
  suggest:
105
- label: Filter %{field_label}
106
- placeholder: Filter...
105
+ label: Filtre %{field_label}
106
+ placeholder: Filtre...
107
107
  title: Limiter votre recherche
108
108
  filters:
109
109
  label: "%{label}:"
110
110
  remove:
111
- label_value: 'Supprimer la restriction %{label}: %{value}'
111
+ label_value: "Supprimer la restriction %{label}: %{value}"
112
112
  value: Supprimer la restriction %{value}
113
- title: 'Vous avez demandé :'
113
+ title: "Vos sélections:"
114
114
  form:
115
115
  search:
116
116
  label: Rechercher
@@ -129,6 +129,7 @@ fr:
129
129
  constraint: "%{label}: %{value}"
130
130
  many_constraint_values: "%{values} sélectionné"
131
131
  title: "%{constraints} - %{application_name} Résultats de recherche"
132
+ joiner: " / "
132
133
  pagination:
133
134
  title: Navigation dans les résultats
134
135
  pagination_info:
@@ -145,7 +146,6 @@ fr:
145
146
  submit: mettre à jour
146
147
  title: Nombre de résultats à afficher par page
147
148
  rss_feed: RSS pour les résultats
148
- search_constraints_header: Recherche
149
149
  search_results: Résultats de recherche
150
150
  show:
151
151
  label: "%{label}:"
@@ -157,7 +157,7 @@ fr:
157
157
  start_over: Accueil
158
158
  view:
159
159
  list: Liste
160
- view_title: 'Affichage: '
160
+ view_title: "Affichage: "
161
161
  zero_results:
162
162
  modify_search: Essayez de modifier votre requête de recherche
163
163
  search_everything: essayez de rechercher tout
@@ -194,10 +194,10 @@ fr:
194
194
  carrier_prompt: Veuillez choisir votre opérateur
195
195
  submit: Envoyer
196
196
  title: Envoyer par SMS
197
- to: 'Numéro de téléphone :'
197
+ to: "Numéro de téléphone :"
198
198
  success: SMS envoyé
199
199
  text:
200
- url: 'Lien : %{url}'
200
+ url: "Lien : %{url}"
201
201
  tools:
202
202
  citation: Citer
203
203
  clear: Effacer
@@ -32,25 +32,25 @@ hu:
32
32
  apa: APA
33
33
  chicago: Chicago
34
34
  mla: MLA
35
- did_you_mean: 'Arra gondolt, hogy: %{options}?'
35
+ did_you_mean: "Arra gondolt, hogy: %{options}?"
36
36
  email:
37
37
  errors:
38
38
  to:
39
39
  blank: Kérjük az üzenet elküldéséhez adja meg a címzettet
40
40
  invalid: Kérjük érvényes email címet adjon meg
41
41
  form:
42
- message: 'Üzenet:'
42
+ message: "Üzenet:"
43
43
  submit: Küldés
44
44
  title: Email küldése
45
- to: 'Email:'
45
+ to: "Email:"
46
46
  success: Email elküldve
47
47
  text:
48
48
  default_title: N/A
49
- message: 'Üzenet: %{message}'
49
+ message: "Üzenet: %{message}"
50
50
  subject:
51
- one: 'Adatrekord: %{title}'
51
+ one: "Adatrekord: %{title}"
52
52
  other: Adatrekordok
53
- url: 'URL: %{url}'
53
+ url: "URL: %{url}"
54
54
  entry_name:
55
55
  default: bejegyzés
56
56
  grouped:
@@ -100,15 +100,15 @@ hu:
100
100
  count: Numerikus rendezés
101
101
  index: A-Z rendezés
102
102
  suggest:
103
- label: Filter %{field_label}
104
- placeholder: Filter...
103
+ label: Szűrő %{field_label}
104
+ placeholder: Szűrő...
105
105
  title: Szűrje tovább a keresését
106
106
  filters:
107
107
  label: "%{label}:"
108
108
  remove:
109
- label_value: 'Feltétel eltávolítása %{label}: %{value}'
109
+ label_value: "Feltétel eltávolítása %{label}: %{value}"
110
110
  value: Feltételek eltávolítása %{value}
111
- title: 'Ön ezt kereste:'
111
+ title: "Az Ön választása:"
112
112
  form:
113
113
  search:
114
114
  label: keresés
@@ -127,6 +127,7 @@ hu:
127
127
  constraint: "%{label}: %{value}"
128
128
  many_constraint_values: "%{values} kiválasztva"
129
129
  title: "%{constraints} - %{application_name} Keresés eredményei"
130
+ joiner: " / "
130
131
  pagination:
131
132
  title: Eredmény navigáció
132
133
  pagination_info:
@@ -143,7 +144,6 @@ hu:
143
144
  submit: Frissítés
144
145
  title: Az eredmények száma oldalanként
145
146
  rss_feed: Eredmények RSS-ként
146
- search_constraints_header: Keresés feltételei
147
147
  search_results: Keresés eredményei
148
148
  show:
149
149
  label: "%{label}:"
@@ -155,11 +155,11 @@ hu:
155
155
  start_over: Újrakezdés
156
156
  view:
157
157
  list: Lista
158
- view_title: 'Eredmények megtekintése mint: '
158
+ view_title: "Eredmények megtekintése mint: "
159
159
  zero_results:
160
160
  modify_search: Próbálja módosítani keresését
161
161
  search_everything: Próbálja meg a keresést az összes mezőben
162
- search_fields: 'Ön a következő mező alapján keresett: %{search_fields}'
162
+ search_fields: "Ön a következő mező alapján keresett: %{search_fields}"
163
163
  title: Az Ön keresése nem hozott eredményt
164
164
  use_fewer_keywords: Kezdetben használjon kevesebb kulcsszavat, majd finomítsa keresését a bal oldali szűrőlinkekkel.
165
165
  search_history:
@@ -192,10 +192,10 @@ hu:
192
192
  carrier_prompt: Kérjük válassza ki a szolgáltatót
193
193
  submit: Küldés
194
194
  title: Küldés SMS-ben
195
- to: 'Telefonszám:'
195
+ to: "Telefonszám:"
196
196
  success: SMS elküldve
197
197
  text:
198
- url: 'Link: %{url}'
198
+ url: "Link: %{url}"
199
199
  tools:
200
200
  citation: Hivatkozás
201
201
  clear: Eltávolítás