blacklight 7.41.0 → 8.0.0.beta1
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.
- checksums.yaml +4 -4
- data/.env +2 -3
- data/.github/workflows/ruby.yml +81 -0
- data/.rubocop.yml +243 -14
- data/.rubocop_todo.yml +137 -429
- data/Gemfile +11 -6
- data/README.md +11 -3
- data/VERSION +1 -1
- data/app/assets/javascripts/blacklight/blacklight.esm.js +384 -0
- data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -0
- data/app/assets/javascripts/blacklight/blacklight.js +374 -493
- data/app/assets/javascripts/blacklight/blacklight.js.map +1 -0
- data/app/assets/stylesheets/blacklight/_autocomplete.scss +25 -0
- data/app/assets/stylesheets/blacklight/_blacklight_base.scss +1 -1
- data/app/assets/stylesheets/blacklight/_bookmark.scss +16 -0
- data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +8 -0
- data/app/assets/stylesheets/blacklight/_constraints.scss +4 -4
- data/app/assets/stylesheets/blacklight/_facets.scss +72 -44
- data/app/assets/stylesheets/blacklight/_header.scss +0 -15
- data/app/assets/stylesheets/blacklight/_icons.scss +0 -14
- data/app/assets/stylesheets/blacklight/_mixins.scss +20 -0
- data/app/assets/stylesheets/blacklight/_modal.scss +8 -2
- data/app/assets/stylesheets/blacklight/_search_form.scss +30 -3
- data/app/assets/stylesheets/blacklight/_search_history.scss +10 -1
- data/app/assets/stylesheets/blacklight/_search_results.scss +6 -2
- data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +4 -1
- data/app/builders/blacklight/action_builder.rb +18 -9
- data/app/components/blacklight/advanced_search_form_component.html.erb +3 -3
- data/app/components/blacklight/advanced_search_form_component.rb +8 -10
- data/app/components/blacklight/constraints_component.rb +27 -37
- data/app/components/blacklight/document/action_component.rb +12 -10
- data/app/components/blacklight/document/actions_component.rb +2 -2
- data/app/components/blacklight/document/bookmark_component.html.erb +9 -0
- data/app/components/blacklight/document/bookmark_component.rb +4 -2
- data/app/components/blacklight/document/citation_component.rb +5 -3
- data/app/components/blacklight/document/group_component.rb +7 -3
- data/app/components/blacklight/document/sidebar_component.html.erb +2 -0
- data/app/components/blacklight/document/sidebar_component.rb +16 -0
- data/app/components/blacklight/document/thumbnail_component.html.erb +2 -7
- data/app/components/blacklight/document/thumbnail_component.rb +1 -9
- data/app/components/blacklight/document_component.html.erb +1 -1
- data/app/components/blacklight/document_component.rb +16 -78
- data/app/components/blacklight/document_metadata_component.html.erb +2 -4
- data/app/components/blacklight/document_metadata_component.rb +5 -10
- data/app/components/blacklight/facet_component.rb +3 -3
- data/app/components/blacklight/facet_field_checkboxes_component.html.erb +4 -4
- data/app/components/blacklight/facet_field_checkboxes_component.rb +1 -1
- data/app/components/blacklight/facet_field_component.html.erb +4 -5
- data/app/components/blacklight/facet_field_component.rb +9 -2
- data/app/components/blacklight/facet_field_list_component.html.erb +3 -3
- data/app/components/blacklight/facet_field_list_component.rb +37 -5
- data/app/components/blacklight/facet_field_no_layout_component.rb +0 -2
- data/app/components/blacklight/facet_item_component.rb +1 -43
- data/app/components/blacklight/facet_item_pivot_component.rb +21 -23
- data/app/components/blacklight/header_component.rb +1 -1
- data/app/components/blacklight/hidden_search_state_component.rb +1 -2
- data/app/components/blacklight/icons/icon_component.rb +4 -9
- data/app/components/blacklight/icons/legacy_icon_component.rb +30 -0
- data/app/components/blacklight/icons/list_component.rb +16 -0
- data/app/components/blacklight/icons/search_component.rb +16 -0
- data/app/components/blacklight/metadata_field_component.html.erb +2 -2
- data/app/components/blacklight/metadata_field_component.rb +24 -8
- data/app/components/blacklight/metadata_field_layout_component.rb +4 -25
- data/app/components/blacklight/response/facet_group_component.html.erb +3 -5
- data/app/components/blacklight/response/facet_group_component.rb +29 -8
- data/app/components/blacklight/response/pagination_component.html.erb +1 -1
- data/app/components/blacklight/response/pagination_component.rb +2 -11
- data/app/components/blacklight/response/sort_component.html.erb +6 -1
- data/app/components/blacklight/response/sort_component.rb +1 -16
- data/app/components/blacklight/response/spellcheck_component.rb +18 -7
- data/app/components/blacklight/response/view_type_button_component.rb +3 -7
- data/app/components/blacklight/response/view_type_component.rb +4 -6
- data/app/components/blacklight/search/sidebar_component.html.erb +8 -0
- data/app/components/blacklight/search/sidebar_component.rb +17 -0
- data/app/components/blacklight/search_bar_component.html.erb +20 -15
- data/app/components/blacklight/search_bar_component.rb +2 -16
- data/app/components/blacklight/search_button_component.rb +3 -3
- data/app/components/blacklight/search_context_component.rb +43 -10
- data/app/components/blacklight/search_header_component.html.erb +2 -0
- data/app/components/blacklight/search_header_component.rb +6 -0
- data/app/components/blacklight/start_over_button_component.rb +5 -3
- data/app/components/blacklight/system/dropdown_component.rb +8 -5
- data/app/components/blacklight/system/flash_message_component.html.erb +4 -2
- data/app/components/blacklight/system/flash_message_component.rb +12 -3
- data/app/components/blacklight/system/modal_component.html.erb +1 -1
- data/app/components/blacklight/system/modal_component.rb +1 -3
- data/app/components/blacklight/top_navbar_component.html.erb +1 -1
- data/app/components/blacklight/top_navbar_component.rb +0 -4
- data/app/controllers/bookmarks_controller.rb +1 -0
- data/app/controllers/catalog_controller.rb +1 -0
- data/app/controllers/concerns/blacklight/bookmarks.rb +10 -9
- data/app/controllers/concerns/blacklight/catalog.rb +21 -83
- data/app/controllers/concerns/blacklight/controller.rb +3 -41
- data/app/controllers/concerns/blacklight/search_context.rb +25 -7
- data/app/controllers/concerns/blacklight/search_history.rb +2 -0
- data/app/controllers/concerns/blacklight/searchable.rb +12 -1
- data/app/controllers/concerns/blacklight/token_based_user.rb +13 -1
- data/app/controllers/search_history_controller.rb +1 -0
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +12 -310
- data/app/helpers/blacklight/catalog_helper_behavior.rb +22 -139
- data/app/helpers/blacklight/component_helper_behavior.rb +2 -53
- data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -119
- data/app/helpers/blacklight/facets_helper_behavior.rb +4 -321
- data/app/helpers/blacklight/icon_helper_behavior.rb +5 -7
- data/app/helpers/blacklight/layout_helper_behavior.rb +4 -3
- data/app/helpers/blacklight/render_partials_helper_behavior.rb +11 -31
- data/app/helpers/blacklight/url_helper_behavior.rb +12 -97
- data/app/helpers/blacklight_helper.rb +1 -0
- data/app/helpers/catalog_helper.rb +1 -0
- data/app/javascript/blacklight/bookmark_toggle.js +13 -19
- data/app/javascript/blacklight/button_focus.js +12 -10
- data/app/javascript/blacklight/checkbox_submit.js +68 -123
- data/app/javascript/blacklight/core.js +5 -7
- data/app/javascript/blacklight/index.js +13 -0
- data/app/javascript/blacklight/modal.js +99 -164
- data/app/javascript/blacklight/modalForm.js +60 -0
- data/app/javascript/blacklight/search_context.js +46 -54
- data/app/models/blacklight/facet_paginator.rb +3 -2
- data/app/models/blacklight/icon.rb +4 -2
- data/app/models/bookmark.rb +0 -2
- data/app/models/concerns/blacklight/configurable.rb +5 -4
- data/app/models/concerns/blacklight/document/active_model_shim.rb +1 -10
- data/app/models/concerns/blacklight/document/cache_key.rb +1 -0
- data/app/models/concerns/blacklight/document/dublin_core.rb +2 -1
- data/app/models/concerns/blacklight/document/email.rb +1 -0
- data/app/models/concerns/blacklight/document/export.rb +2 -1
- data/app/models/concerns/blacklight/document/extensions.rb +1 -0
- data/app/models/concerns/blacklight/document/schema_org.rb +1 -0
- data/app/models/concerns/blacklight/document/semantic_fields.rb +2 -1
- data/app/models/concerns/blacklight/document/sms.rb +1 -0
- data/app/models/concerns/blacklight/suggest/response.rb +1 -0
- data/app/models/concerns/blacklight/user.rb +17 -8
- data/app/models/record_mailer.rb +13 -12
- data/app/models/search.rb +1 -7
- data/app/models/solr_document.rb +1 -0
- data/app/presenters/blacklight/clause_presenter.rb +1 -1
- data/app/presenters/blacklight/document_presenter.rb +23 -50
- data/app/presenters/blacklight/facet_field_presenter.rb +39 -14
- data/app/presenters/blacklight/facet_grouped_item_presenter.rb +1 -5
- data/app/presenters/blacklight/facet_item_pivot_presenter.rb +60 -0
- data/app/presenters/blacklight/facet_item_presenter.rb +3 -9
- data/app/presenters/blacklight/field_presenter.rb +1 -0
- data/app/presenters/blacklight/index_presenter.rb +2 -40
- data/app/presenters/blacklight/json_presenter.rb +10 -6
- data/app/presenters/blacklight/rendering/link_to_facet.rb +2 -5
- data/app/presenters/blacklight/show_presenter.rb +1 -9
- data/app/presenters/blacklight/thumbnail_presenter.rb +1 -1
- data/app/services/blacklight/bookmarks_search_builder.rb +22 -0
- data/app/services/blacklight/field_retriever.rb +12 -21
- data/app/services/blacklight/search_service.rb +10 -17
- data/app/values/blacklight/types.rb +0 -18
- data/app/views/bookmarks/_clear_bookmarks_widget.html.erb +8 -1
- data/app/views/bookmarks/_tools.html.erb +7 -12
- data/app/views/catalog/_advanced_search_form.html.erb +0 -1
- data/app/views/catalog/_bookmark_control.html.erb +1 -1
- data/app/views/catalog/_citation.html.erb +1 -1
- data/app/views/catalog/_constraints.html.erb +1 -14
- data/app/views/catalog/_document.atom.builder +12 -14
- data/app/views/catalog/_document.html.erb +5 -3
- data/app/views/catalog/_document.rss.builder +2 -4
- data/app/views/catalog/_facet_layout.html.erb +2 -2
- data/app/views/catalog/_facets.html.erb +5 -4
- data/app/views/catalog/_home_text.html.erb +2 -14
- data/app/views/catalog/_per_page_widget.html.erb +10 -1
- data/app/views/catalog/_search_form.html.erb +2 -2
- data/app/views/catalog/_search_header.html.erb +1 -2
- data/app/views/catalog/_search_results.html.erb +2 -2
- data/app/views/catalog/_search_sidebar.html.erb +5 -1
- data/app/views/catalog/_show_main_content.html.erb +11 -16
- data/app/views/catalog/_show_sidebar.html.erb +2 -2
- data/app/views/catalog/_show_tools.html.erb +8 -14
- data/app/views/catalog/_view_type_group.html.erb +1 -1
- data/app/views/catalog/email.html.erb +2 -2
- data/app/views/catalog/email_success.html.erb +5 -6
- data/app/views/catalog/facet.html.erb +7 -5
- data/app/views/catalog/index.atom.builder +12 -14
- data/app/views/catalog/index.html.erb +4 -1
- data/app/views/catalog/index.json.jbuilder +19 -19
- data/app/views/catalog/index.rss.builder +1 -1
- data/app/views/catalog/opensearch.xml.builder +1 -1
- data/app/views/catalog/sms.html.erb +2 -2
- data/app/views/catalog/sms_success.html.erb +5 -6
- data/app/views/catalog/suggest.html.erb +3 -0
- data/app/views/kaminari/blacklight/_page.html.erb +2 -1
- data/app/views/layouts/blacklight/base.html.erb +13 -2
- data/app/views/search_history/index.html.erb +6 -2
- data/app/views/shared/_flash_messages.html.erb +1 -1
- data/app/views/shared/_modal.html.erb +3 -3
- data/blacklight.gemspec +7 -11
- data/config/importmap.rb +3 -0
- data/config/locales/blacklight.ar.yml +0 -1
- data/config/locales/blacklight.ca.yml +0 -1
- data/config/locales/blacklight.de.yml +0 -1
- data/config/locales/blacklight.en.yml +0 -2
- data/config/locales/blacklight.es.yml +0 -1
- data/config/locales/blacklight.fr.yml +0 -1
- data/config/locales/blacklight.hu.yml +0 -1
- data/config/locales/blacklight.it.yml +0 -1
- data/config/locales/blacklight.nl.yml +0 -1
- data/config/locales/blacklight.pt-BR.yml +0 -1
- data/config/locales/blacklight.sq.yml +0 -1
- data/config/locales/blacklight.zh.yml +0 -1
- data/config/routes.rb +3 -2
- data/db/migrate/20140202020201_create_searches.rb +1 -0
- data/db/migrate/20140202020202_create_bookmarks.rb +1 -0
- data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -0
- data/docker-compose.yml +3 -3
- data/lib/blacklight/abstract_repository.rb +1 -6
- data/lib/blacklight/component.rb +47 -10
- data/lib/blacklight/configuration/context.rb +4 -4
- data/lib/blacklight/configuration/display_field.rb +7 -9
- data/lib/blacklight/configuration/facet_field.rb +17 -11
- data/lib/blacklight/configuration/field.rb +1 -0
- data/lib/blacklight/configuration/fields.rb +12 -15
- data/lib/blacklight/configuration/index_field.rb +1 -0
- data/lib/blacklight/configuration/null_display_field.rb +17 -0
- data/lib/blacklight/configuration/search_field.rb +1 -0
- data/lib/blacklight/configuration/show_field.rb +1 -0
- data/lib/blacklight/configuration/sort_field.rb +1 -0
- data/lib/blacklight/configuration/tool_config.rb +1 -0
- data/lib/blacklight/configuration/view_config.rb +14 -10
- data/lib/blacklight/configuration.rb +310 -365
- data/lib/blacklight/engine.rb +8 -24
- data/lib/blacklight/exceptions.rb +2 -2
- data/lib/blacklight/nested_open_struct_with_hash_access.rb +7 -13
- data/lib/blacklight/open_struct_with_hash_access.rb +23 -6
- data/lib/blacklight/parameters.rb +7 -21
- data/lib/blacklight/routes/exportable.rb +1 -0
- data/lib/blacklight/routes/searchable.rb +2 -1
- data/lib/blacklight/routes.rb +1 -0
- data/lib/blacklight/search_builder.rb +10 -10
- data/lib/blacklight/search_state/filter_field.rb +8 -25
- data/lib/blacklight/search_state/pivot_filter_field.rb +144 -0
- data/lib/blacklight/search_state.rb +23 -79
- data/lib/blacklight/solr/document.rb +1 -0
- data/lib/blacklight/solr/facet_paginator.rb +1 -0
- data/lib/blacklight/solr/repository.rb +4 -24
- data/lib/blacklight/solr/request.rb +1 -0
- data/lib/blacklight/solr/response/facets.rb +21 -5
- data/lib/blacklight/solr/response/group.rb +1 -0
- data/lib/blacklight/solr/response/group_response.rb +1 -0
- data/lib/blacklight/solr/response/more_like_this.rb +1 -0
- data/lib/blacklight/solr/response/pagination_methods.rb +4 -3
- data/lib/blacklight/solr/response/params.rb +5 -4
- data/lib/blacklight/solr/response/response.rb +1 -0
- data/lib/blacklight/solr/response/spelling.rb +1 -0
- data/lib/blacklight/solr/response.rb +16 -3
- data/lib/blacklight/solr/search_builder_behavior.rb +16 -35
- data/lib/blacklight/solr.rb +7 -0
- data/lib/blacklight/version.rb +1 -0
- data/lib/blacklight.rb +26 -14
- data/lib/generators/blacklight/assets/importmap_generator.rb +55 -0
- data/lib/generators/blacklight/assets/propshaft_generator.rb +25 -0
- data/lib/generators/blacklight/assets/sprockets_generator.rb +66 -0
- data/lib/generators/blacklight/assets_generator.rb +13 -86
- data/lib/generators/blacklight/controller_generator.rb +4 -3
- data/lib/generators/blacklight/document_generator.rb +1 -0
- data/lib/generators/blacklight/install_generator.rb +4 -3
- data/lib/generators/blacklight/models_generator.rb +1 -0
- data/lib/generators/blacklight/search_builder_generator.rb +1 -0
- data/lib/generators/blacklight/solr_generator.rb +1 -1
- data/lib/generators/blacklight/templates/catalog_controller.rb +34 -8
- data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +1 -70
- data/lib/generators/blacklight/test_support_generator.rb +5 -3
- data/lib/generators/blacklight/user_generator.rb +7 -9
- data/lib/railties/blacklight.rake +6 -7
- data/package.json +10 -13
- data/rollup.config.js +27 -0
- data/spec/components/blacklight/constraints_component_spec.rb +17 -13
- data/spec/components/blacklight/document/action_component_spec.rb +6 -1
- data/spec/components/blacklight/document_component_spec.rb +22 -131
- data/spec/components/blacklight/facet_component_spec.rb +3 -18
- data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +1 -2
- data/spec/components/blacklight/facet_field_list_component_spec.rb +7 -6
- data/spec/components/blacklight/facet_item_pivot_component_spec.rb +10 -9
- data/spec/components/blacklight/response/view_type_component_spec.rb +66 -0
- data/spec/components/blacklight/search_bar_component_spec.rb +1 -1
- data/spec/components/blacklight/search_context_component_spec.rb +17 -8
- data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +1 -6
- data/spec/controllers/blacklight/{base_spec.rb → catalog_spec.rb} +2 -2
- data/spec/controllers/bookmarks_controller_spec.rb +2 -3
- data/spec/controllers/catalog_controller_spec.rb +13 -135
- data/spec/features/advanced_search_spec.rb +0 -56
- data/spec/features/autocomplete_spec.rb +1 -1
- data/spec/features/axe_spec.rb +1 -6
- data/spec/features/bookmarks_spec.rb +1 -1
- data/spec/features/facets_spec.rb +6 -4
- data/spec/features/search_context_spec.rb +5 -11
- data/spec/features/search_results_spec.rb +0 -33
- data/spec/features/sitelinks_search_box.rb +13 -0
- data/spec/helpers/blacklight/configuration_helper_behavior_spec.rb +2 -138
- data/spec/helpers/blacklight/facets_helper_behavior_spec.rb +0 -387
- data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +8 -0
- data/spec/helpers/blacklight/layout_helper_behavior_spec.rb +3 -20
- data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +5 -7
- data/spec/helpers/blacklight/url_helper_behavior_spec.rb +9 -131
- data/spec/helpers/blacklight_helper_spec.rb +8 -252
- data/spec/helpers/catalog_helper_spec.rb +7 -118
- data/spec/i18n_spec.rb +1 -0
- data/spec/integration/generators/blacklight/solr_generator_spec.rb +1 -1
- data/spec/lib/blacklight/component_spec.rb +27 -32
- data/spec/lib/blacklight/configuration/facet_field_spec.rb +27 -16
- data/spec/lib/blacklight/configuration/field_spec.rb +1 -1
- data/spec/lib/blacklight/configuration/view_config_spec.rb +1 -1
- data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +2 -2
- data/spec/lib/blacklight/parameters_spec.rb +1 -4
- data/spec/lib/blacklight/search_state/filter_field_spec.rb +4 -4
- data/spec/lib/blacklight/search_state/pivot_filter_field_spec.rb +117 -0
- data/spec/lib/blacklight/search_state_spec.rb +80 -198
- data/spec/lib/tasks/blacklight_task_spec.rb +1 -0
- data/spec/models/blacklight/configuration_spec.rb +17 -51
- data/spec/models/blacklight/document/active_model_shim_spec.rb +2 -2
- data/spec/models/blacklight/icon_spec.rb +31 -15
- data/spec/models/blacklight/search_builder_spec.rb +9 -9
- data/spec/models/blacklight/solr/document_spec.rb +3 -3
- data/spec/models/blacklight/solr/repository_spec.rb +0 -45
- data/spec/models/blacklight/solr/response/facets_spec.rb +27 -27
- data/spec/models/blacklight/solr/response/group_response_spec.rb +1 -0
- data/spec/models/blacklight/solr/response/group_spec.rb +1 -0
- data/spec/models/blacklight/solr/response_spec.rb +9 -2
- data/spec/models/blacklight/solr/search_builder_spec.rb +24 -44
- data/spec/models/blacklight/user_spec.rb +22 -0
- data/spec/models/solr_document_spec.rb +3 -9
- data/spec/presenters/blacklight/clause_presenter_spec.rb +1 -0
- data/spec/presenters/blacklight/document_presenter_spec.rb +2 -3
- data/spec/presenters/blacklight/facet_field_presenter_spec.rb +85 -12
- data/spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb +1 -0
- data/spec/presenters/blacklight/facet_item_presenter_spec.rb +14 -13
- data/spec/presenters/blacklight/field_presenter_spec.rb +0 -14
- data/spec/presenters/blacklight/index_presenter_spec.rb +2 -5
- data/spec/presenters/blacklight/json_presenter_spec.rb +1 -0
- data/spec/presenters/blacklight/link_alternate_presenter_spec.rb +3 -2
- data/spec/presenters/blacklight/show_presenter_spec.rb +20 -30
- data/spec/presenters/thumbnail_presenter_spec.rb +1 -1
- data/spec/requests/load_suggestions_spec.rb +16 -0
- data/spec/routing/catalog_routing_spec.rb +2 -1
- data/spec/services/blacklight/search_service_spec.rb +39 -76
- data/spec/spec_helper.rb +8 -9
- data/spec/support/controller_level_helpers.rb +1 -2
- data/spec/support/features/search_helpers.rb +39 -0
- data/spec/support/features/session_helpers.rb +1 -0
- data/spec/support/features.rb +3 -0
- data/spec/support/view_component_capybara_test_helpers.rb +8 -0
- data/spec/test_app_templates/Gemfile.extra +1 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +9 -2
- data/spec/views/catalog/_document.html.erb_spec.rb +3 -34
- data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +1 -1
- data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +0 -2
- data/spec/views/catalog/_search_header.erb_spec.rb +1 -0
- data/spec/views/catalog/_show_sidebar.erb_spec.rb +1 -0
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +5 -66
- data/spec/views/catalog/_view_type_group.html.erb_spec.rb +17 -9
- data/spec/views/catalog/email_success.html.erb_spec.rb +2 -2
- data/spec/views/catalog/facet.html.erb_spec.rb +6 -3
- data/spec/views/catalog/index.atom.builder_spec.rb +17 -11
- data/spec/views/catalog/index.html.erb_spec.rb +5 -6
- data/spec/views/catalog/index.json.jbuilder_spec.rb +2 -2
- data/spec/views/catalog/show.html.erb_spec.rb +3 -25
- data/spec/views/catalog/sms_success.html.erb_spec.rb +2 -2
- data/tasks/blacklight.rake +11 -9
- data/template.demo.rb +7 -7
- metadata +77 -189
- data/.babelrc +0 -11
- data/.github/matrix.json +0 -62
- data/.github/workflows/build.yml +0 -16
- data/.github/workflows/lint.yml +0 -23
- data/.github/workflows/main.yml +0 -23
- data/.github/workflows/test.yml +0 -53
- data/app/assets/images/blacklight/list.svg +0 -1
- data/app/assets/images/blacklight/search.svg +0 -1
- data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +0 -37
- data/app/components/blacklight/content_areas_shim.rb +0 -13
- data/app/components/blacklight/search/per_page_component.html.erb +0 -2
- data/app/components/blacklight/search/per_page_component.rb +0 -50
- data/app/components/blacklight/search_context/server_item_pagination_component.html.erb +0 -10
- data/app/components/blacklight/search_context/server_item_pagination_component.rb +0 -15
- data/app/components/blacklight/system/dropdown_button_component.rb +0 -18
- data/app/controllers/concerns/blacklight/base.rb +0 -12
- data/app/controllers/concerns/blacklight/default_component_configuration.rb +0 -64
- data/app/controllers/concerns/blacklight/facet.rb +0 -69
- data/app/controllers/concerns/blacklight/search_fields.rb +0 -46
- data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +0 -27
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +0 -188
- data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +0 -97
- data/app/helpers/blacklight/suggest_helper_behavior.rb +0 -13
- data/app/javascript/blacklight/autocomplete.js +0 -36
- data/app/javascript/blacklight/facet_load.js +0 -22
- data/app/presenters/blacklight/search_bar_presenter.rb +0 -47
- data/app/views/catalog/_constraints_element.html.erb +0 -14
- data/app/views/catalog/_document_action.html.erb +0 -5
- data/app/views/catalog/_facet_group.html.erb +0 -5
- data/app/views/catalog/_facet_limit.html.erb +0 -3
- data/app/views/catalog/_index.html.erb +0 -1
- data/app/views/catalog/_index_header.html.erb +0 -22
- data/app/views/catalog/_previous_next_doc.html.erb +0 -2
- data/app/views/catalog/_show.html.erb +0 -6
- data/app/views/catalog/_show_header.html.erb +0 -2
- data/app/views/catalog/_thumbnail.html.erb +0 -1
- data/lib/blacklight/deprecations/engine_configuration.rb +0 -66
- data/lib/blacklight/deprecations/search_state_normalization.rb +0 -52
- data/spec/components/blacklight/header_component_spec.rb +0 -20
- data/spec/components/blacklight/icons/icon_component_spec.rb +0 -42
- data/spec/components/blacklight/response/pagination_component_spec.rb +0 -53
- data/spec/components/blacklight/search_context/server_item_pagination_component_spec.rb +0 -35
- data/spec/controllers/blacklight/facet_spec.rb +0 -33
- data/spec/controllers/blacklight/search_fields_spec.rb +0 -62
- data/spec/features/citation_spec.rb +0 -10
- data/spec/features/sitelinks_search_box_spec.rb +0 -13
- data/spec/features/sms_spec.rb +0 -12
- data/spec/helpers/blacklight/hash_as_hidden_fields_behavior_spec.rb +0 -26
- data/spec/helpers/blacklight/render_constraints_helper_behavior_spec.rb +0 -92
- data/spec/helpers/blacklight/search_history_constraints_helper_behavior_spec.rb +0 -101
- data/spec/helpers/blacklight/suggest_helper_behavior_spec.rb +0 -48
- data/spec/lib/blacklight/engine_spec.rb +0 -41
- data/spec/presenters/blacklight/search_bar_presenter_spec.rb +0 -94
- data/spec/services/blacklight/field_retriever_spec.rb +0 -17
- data/spec/support/view_component_test_helpers.rb +0 -35
- data/spec/views/catalog/_constraints.html.erb_spec.rb +0 -33
- data/spec/views/catalog/_facet_group.html.erb_spec.rb +0 -84
- data/spec/views/catalog/_facets.html.erb_spec.rb +0 -15
- data/spec/views/catalog/_index.html.erb_spec.rb +0 -62
- data/spec/views/catalog/_index_header.html.erb_spec.rb +0 -35
- data/spec/views/catalog/_previous_next_doc.html.erb_spec.rb +0 -22
- data/spec/views/catalog/_show.html.erb_spec.rb +0 -62
- data/spec/views/catalog/_thumbnail.html.erb_spec.rb +0 -38
@@ -1,10 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
# Methods added to this helper will be available to all templates in the hosting application
|
3
4
|
module Blacklight::BlacklightHelperBehavior
|
4
|
-
extend Deprecation
|
5
|
-
|
6
5
|
include Blacklight::UrlHelperBehavior
|
7
|
-
include Blacklight::HashAsHiddenFieldsHelperBehavior
|
8
6
|
include Blacklight::LayoutHelperBehavior
|
9
7
|
include Blacklight::IconHelperBehavior
|
10
8
|
|
@@ -51,15 +49,6 @@ module Blacklight::BlacklightHelperBehavior
|
|
51
49
|
document_presenter(document).link_rel_alternates(options)
|
52
50
|
end
|
53
51
|
|
54
|
-
##
|
55
|
-
# Render OpenSearch headers for this search
|
56
|
-
# @deprecated
|
57
|
-
# @return [String]
|
58
|
-
def render_opensearch_response_metadata
|
59
|
-
render partial: 'catalog/opensearch_response_metadata', locals: { response: @response }
|
60
|
-
end
|
61
|
-
deprecation_deprecate render_opensearch_response_metadata: 'Use `render "catalog/opensearch_response_metadata"\' instead'
|
62
|
-
|
63
52
|
##
|
64
53
|
# Render classes for the <body> element
|
65
54
|
# @return [String]
|
@@ -72,207 +61,17 @@ module Blacklight::BlacklightHelperBehavior
|
|
72
61
|
# @see render_body_class
|
73
62
|
# @return [Array<String>]
|
74
63
|
def extra_body_classes
|
75
|
-
@extra_body_classes ||= [
|
76
|
-
end
|
77
|
-
|
78
|
-
##
|
79
|
-
# Render the search navbar
|
80
|
-
# @return [String]
|
81
|
-
def render_search_bar
|
82
|
-
if search_bar_presenter_class == Blacklight::SearchBarPresenter && partial_from_blacklight?(Blacklight::SearchBarPresenter.partial)
|
83
|
-
component_class = blacklight_config&.view_config(document_index_view_type)&.search_bar_component || Blacklight::SearchBarComponent
|
84
|
-
render component_class.new(
|
85
|
-
url: search_action_url,
|
86
|
-
advanced_search_url: search_action_url(action: 'advanced_search'),
|
87
|
-
params: search_state.params_for_search.except(:qt),
|
88
|
-
search_fields: Deprecation.silence(Blacklight::ConfigurationHelperBehavior) { search_fields },
|
89
|
-
autocomplete_path: search_action_path(action: :suggest)
|
90
|
-
)
|
91
|
-
else
|
92
|
-
search_bar_presenter.render
|
93
|
-
end
|
94
|
-
end
|
95
|
-
deprecation_deprecate render_search_bar: "Call `render Blacklight::SearchBarComponent.new' instead"
|
96
|
-
|
97
|
-
# @!group Presenter extension helpers
|
98
|
-
##
|
99
|
-
# @return [Blacklight::SearchBarPresenter]
|
100
|
-
def search_bar_presenter
|
101
|
-
@search_bar ||= search_bar_presenter_class.new(controller, blacklight_config)
|
102
|
-
end
|
103
|
-
deprecation_deprecate :search_bar_presenter
|
104
|
-
|
105
|
-
# @!group Document helpers
|
106
|
-
##
|
107
|
-
# Determine whether to render a given field in the index view.
|
108
|
-
#
|
109
|
-
# @deprecated
|
110
|
-
# @param [SolrDocument] document
|
111
|
-
# @param [Blacklight::Configuration::Field] field_config
|
112
|
-
# @return [Boolean]
|
113
|
-
def should_render_index_field? document, field_config
|
114
|
-
Deprecation.warn self, "should_render_index_field? is deprecated and will be removed in Blacklight 8. Use IndexPresenter#render_field? instead."
|
115
|
-
should_render_field?(field_config, document) && document_has_value?(document, field_config)
|
116
|
-
end
|
117
|
-
|
118
|
-
##
|
119
|
-
# Determine whether to render a given field in the show view
|
120
|
-
#
|
121
|
-
# @deprecated
|
122
|
-
# @param [SolrDocument] document
|
123
|
-
# @param [Blacklight::Configuration::Field] field_config
|
124
|
-
# @return [Boolean]
|
125
|
-
def should_render_show_field? document, field_config
|
126
|
-
Deprecation.warn self, "should_render_show_field? is deprecated and will be removed in Blacklight 8. Use ShowPresenter#render_field? instead."
|
127
|
-
should_render_field?(field_config, document) && document_has_value?(document, field_config)
|
128
|
-
end
|
129
|
-
|
130
|
-
##
|
131
|
-
# Check if a document has (or, might have, in the case of accessor methods) a value for
|
132
|
-
# the given solr
|
133
|
-
# @deprecated
|
134
|
-
# @param [SolrDocument] document
|
135
|
-
# @param [Blacklight::Configuration::Field] field_config
|
136
|
-
# @return [Boolean]
|
137
|
-
def document_has_value? document, field_config
|
138
|
-
Deprecation.warn self, "document_has_value? is deprecated and will be removed in Blacklight 8. Use DocumentPresenter#has_value? instead."
|
139
|
-
document.has?(field_config.field) ||
|
140
|
-
(document.has_highlight_field? field_config.field if field_config.highlight) ||
|
141
|
-
field_config.accessor
|
142
|
-
end
|
143
|
-
|
144
|
-
# @!group Search result helpers
|
145
|
-
##
|
146
|
-
# Determine whether to display spellcheck suggestions
|
147
|
-
#
|
148
|
-
# @deprecated
|
149
|
-
# @param [Blacklight::Solr::Response] response
|
150
|
-
# @return [Boolean]
|
151
|
-
def should_show_spellcheck_suggestions? response
|
152
|
-
Deprecation.silence(Blacklight::ConfigurationHelperBehavior) do
|
153
|
-
# The spelling response field may be missing from non solr repositories.
|
154
|
-
response.total <= spell_check_max &&
|
155
|
-
(response.spelling&.words&.any? || response.spelling&.collation&.present? || false)
|
156
|
-
end
|
157
|
-
end
|
158
|
-
deprecation_deprecate should_show_spellcheck_suggestions?: 'moving into a private method of Blacklight::Response::SpellcheckComponent'
|
159
|
-
|
160
|
-
# @!group Document helpers
|
161
|
-
##
|
162
|
-
# Render the index field label for a document
|
163
|
-
#
|
164
|
-
# Translations for index field labels should go under blacklight.search.fields
|
165
|
-
# They are picked up from there by a value "%{label}" in blacklight.search.index.label
|
166
|
-
#
|
167
|
-
# @deprecated
|
168
|
-
# @overload render_index_field_label(options)
|
169
|
-
# Use the default, document-agnostic configuration
|
170
|
-
# @param [Hash] opts
|
171
|
-
# @option opts [String] :field
|
172
|
-
# @overload render_index_field_label(document, options)
|
173
|
-
# Allow an extention point where information in the document
|
174
|
-
# may drive the value of the field
|
175
|
-
# @param [SolrDocument] doc
|
176
|
-
# @param [Hash] opts
|
177
|
-
# @option opts [String] :field
|
178
|
-
# @return [String]
|
179
|
-
def render_index_field_label *args
|
180
|
-
options = args.extract_options!
|
181
|
-
document = args.first
|
182
|
-
|
183
|
-
field = options[:field]
|
184
|
-
label = Deprecation.silence(Blacklight::ConfigurationHelperBehavior) do
|
185
|
-
options[:label] || index_field_label(document, field)
|
186
|
-
end
|
187
|
-
html_escape t(:"blacklight.search.index.#{document_index_view_type}.label", default: :'blacklight.search.index.label', label: label)
|
188
|
-
end
|
189
|
-
deprecation_deprecate render_index_field_label: 'Use Blacklight::MetadataFieldComponent instead'
|
190
|
-
|
191
|
-
##
|
192
|
-
# Render the show field label for a document
|
193
|
-
#
|
194
|
-
# @deprecated
|
195
|
-
# @overload render_document_show_field_label(options)
|
196
|
-
# Use the default, document-agnostic configuration
|
197
|
-
# @param [Hash] opts
|
198
|
-
# @option opts [String] :field
|
199
|
-
# @overload render_document_show_field_label(document, options)
|
200
|
-
# Allow an extention point where information in the document
|
201
|
-
# may drive the value of the field
|
202
|
-
# @param [SolrDocument] doc
|
203
|
-
# @param [Hash] opts
|
204
|
-
# @option opts [String] :field
|
205
|
-
# @return [String]
|
206
|
-
def render_document_show_field_label *args
|
207
|
-
options = args.extract_options!
|
208
|
-
document = args.first
|
209
|
-
|
210
|
-
field = options[:field]
|
211
|
-
label = Deprecation.silence(Blacklight::ConfigurationHelperBehavior) do
|
212
|
-
options[:label] || document_show_field_label(document, field)
|
213
|
-
end
|
214
|
-
|
215
|
-
t(:'blacklight.search.show.label', label: label)
|
64
|
+
@extra_body_classes ||= ["blacklight-#{controller.controller_name}", "blacklight-#{[controller.controller_name, controller.action_name].join('-')}"]
|
216
65
|
end
|
217
|
-
deprecation_deprecate render_document_show_field_label: 'Use Blacklight::MetadataFieldComponent instead'
|
218
|
-
|
219
|
-
##
|
220
|
-
# Get the value of the document's "title" field, or a placeholder
|
221
|
-
# value (if empty)
|
222
|
-
#
|
223
|
-
# @deprecated
|
224
|
-
# @param [SolrDocument] document
|
225
|
-
# @return [String]
|
226
|
-
def document_heading document = nil
|
227
|
-
document ||= @document
|
228
|
-
document_presenter(document).heading
|
229
|
-
end
|
230
|
-
deprecation_deprecate document_heading: 'Use Blacklight::DocumentPresenter#heading instead'
|
231
|
-
|
232
|
-
##
|
233
|
-
# Get the document's "title" to display in the <title> element.
|
234
|
-
# (by default, use the #document_heading)
|
235
|
-
#
|
236
|
-
# @deprecated
|
237
|
-
# @see #document_heading
|
238
|
-
# @param [SolrDocument] document
|
239
|
-
# @return [String]
|
240
|
-
def document_show_html_title document = nil
|
241
|
-
document ||= @document
|
242
|
-
|
243
|
-
document_presenter(document).html_title
|
244
|
-
end
|
245
|
-
deprecation_deprecate document_show_html_title: 'Use Blacklight::DocumentPresenter#html_title instead'
|
246
|
-
|
247
|
-
##
|
248
|
-
# Render the document "heading" (title) in a content tag
|
249
|
-
# @deprecated
|
250
|
-
# @overload render_document_heading(document, options)
|
251
|
-
# @param [SolrDocument] document
|
252
|
-
# @param [Hash] options
|
253
|
-
# @option options [Symbol] :tag
|
254
|
-
# @overload render_document_heading(options)
|
255
|
-
# @param [Hash] options
|
256
|
-
# @option options [Symbol] :tag
|
257
|
-
# @return [String]
|
258
|
-
def render_document_heading(*args)
|
259
|
-
options = args.extract_options!
|
260
|
-
document = args.first
|
261
|
-
tag = options.fetch(:tag, :h4)
|
262
|
-
document ||= @document
|
263
|
-
|
264
|
-
content_tag(tag, document_presenter(document).heading, itemprop: "name")
|
265
|
-
end
|
266
|
-
deprecation_deprecate render_document_heading: 'Removed without replacement'
|
267
66
|
|
268
67
|
##
|
269
68
|
# Get the current "view type" (and ensure it is a valid type)
|
270
69
|
#
|
271
70
|
# @param [Hash] query_params the query parameters to check
|
272
71
|
# @return [Symbol]
|
273
|
-
def document_index_view_type query_params = params
|
72
|
+
def document_index_view_type query_params = params
|
274
73
|
view_param = query_params[:view]
|
275
|
-
view_param ||= session[:preferred_view]
|
74
|
+
view_param ||= session[:preferred_view]
|
276
75
|
if view_param && document_index_views.key?(view_param.to_sym)
|
277
76
|
view_param.to_sym
|
278
77
|
else
|
@@ -309,101 +108,24 @@ module Blacklight::BlacklightHelperBehavior
|
|
309
108
|
response&.grouped?
|
310
109
|
end
|
311
110
|
|
312
|
-
# @!group Presenter extension helpers
|
313
|
-
##
|
314
|
-
# Returns a document presenter for the given document
|
315
|
-
# TODO: Move this to the controller. It can just pass a presenter or set of presenters.
|
316
|
-
# @deprecated
|
317
|
-
# @return [Blacklight::DocumentPresenter]
|
318
|
-
def presenter(document)
|
319
|
-
Deprecation.warn(Blacklight::BlacklightHelperBehavior, '#presenter is deprecated; use #document_presenter instead')
|
320
|
-
|
321
|
-
# As long as the presenter methods haven't been overridden, we can use the new behavior
|
322
|
-
if method(:show_presenter).owner == Blacklight::BlacklightHelperBehavior &&
|
323
|
-
method(:index_presenter).owner == Blacklight::BlacklightHelperBehavior
|
324
|
-
return document_presenter_class(document).new(document, self)
|
325
|
-
end
|
326
|
-
|
327
|
-
Deprecation.warn(Blacklight::BlacklightHelperBehavior, '#show_presenter and/or #index_presenter have been overridden; please override #document_presenter instead')
|
328
|
-
|
329
|
-
Deprecation.silence(Blacklight::BlacklightHelperBehavior) do
|
330
|
-
case action_name
|
331
|
-
when 'show', 'citation'
|
332
|
-
show_presenter(document)
|
333
|
-
else
|
334
|
-
index_presenter(document)
|
335
|
-
end
|
336
|
-
end
|
337
|
-
end
|
338
|
-
|
339
111
|
##
|
340
112
|
# Returns a document presenter for the given document
|
341
113
|
def document_presenter(document)
|
342
|
-
|
343
|
-
presenter(document)
|
344
|
-
end
|
345
|
-
end
|
346
|
-
|
347
|
-
# @deprecated
|
348
|
-
# @return [Blacklight::ShowPresenter]
|
349
|
-
def show_presenter(document)
|
350
|
-
Deprecation.warn(Blacklight::BlacklightHelperBehavior, '#show_presenter is deprecated; use #document_presenter instead')
|
351
|
-
|
352
|
-
if method(:show_presenter_class).owner != Blacklight::BlacklightHelperBehavior
|
353
|
-
Deprecation.warn(Blacklight::BlacklightHelperBehavior, '#show_presenter_class has been overridden; please override #document_presenter_class instead')
|
354
|
-
end
|
355
|
-
|
356
|
-
Deprecation.silence(Blacklight::BlacklightHelperBehavior) do
|
357
|
-
show_presenter_class(document).new(document, self)
|
358
|
-
end
|
359
|
-
end
|
360
|
-
|
361
|
-
# @deprecated
|
362
|
-
# @return [Blacklight::IndexPresenter]
|
363
|
-
def index_presenter(document)
|
364
|
-
Deprecation.warn(Blacklight::BlacklightHelperBehavior, '#index_presenter is deprecated; use #document_presenter instead')
|
365
|
-
|
366
|
-
if method(:index_presenter_class).owner != Blacklight::BlacklightHelperBehavior
|
367
|
-
Deprecation.warn(Blacklight::BlacklightHelperBehavior, '#index_presenter_class has been overridden; please override #document_presenter_class instead')
|
368
|
-
end
|
369
|
-
|
370
|
-
Deprecation.silence(Blacklight::BlacklightHelperBehavior) do
|
371
|
-
index_presenter_class(document).new(document, self)
|
372
|
-
end
|
114
|
+
document_presenter_class(document).new(document, self)
|
373
115
|
end
|
374
116
|
|
375
117
|
##
|
376
118
|
# Override this method if you want to use a differnet presenter for your documents
|
377
|
-
# @param [Blacklight::Document]
|
378
|
-
def document_presenter_class(
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
index_presenter_class(document)
|
385
|
-
end
|
119
|
+
# @param [Blacklight::Document] _document optional, here for extension + backwards compatibility only
|
120
|
+
def document_presenter_class(_document = nil)
|
121
|
+
case action_name
|
122
|
+
when 'show', 'citation'
|
123
|
+
blacklight_config.view_config(:show, action_name: action_name).document_presenter_class
|
124
|
+
else
|
125
|
+
blacklight_config.view_config(document_index_view_type, action_name: action_name).document_presenter_class
|
386
126
|
end
|
387
127
|
end
|
388
128
|
|
389
|
-
##
|
390
|
-
# Override this method if you want to use a different presenter class
|
391
|
-
# @deprecated
|
392
|
-
# @return [Class]
|
393
|
-
def show_presenter_class(_document)
|
394
|
-
Deprecation.warn(Blacklight::BlacklightHelperBehavior, '#show_presenter_class is deprecated; use #document_presenter_class instead')
|
395
|
-
|
396
|
-
blacklight_config.view_config(:show, action_name: action_name).document_presenter_class
|
397
|
-
end
|
398
|
-
|
399
|
-
# @deprecated
|
400
|
-
# @return [Class]
|
401
|
-
def index_presenter_class(_document)
|
402
|
-
Deprecation.warn(Blacklight::BlacklightHelperBehavior, '#index_presenter_class is deprecated; use #document_presenter_class instead')
|
403
|
-
|
404
|
-
blacklight_config.view_config(document_index_view_type, action_name: action_name).document_presenter_class
|
405
|
-
end
|
406
|
-
|
407
129
|
# @return [Class]
|
408
130
|
def search_bar_presenter_class
|
409
131
|
blacklight_config.view_config(action_name: :index).search_bar_presenter_class
|
@@ -416,24 +138,4 @@ module Blacklight::BlacklightHelperBehavior
|
|
416
138
|
def opensearch_description_tag title, href
|
417
139
|
tag :link, href: href, title: title, type: "application/opensearchdescription+xml", rel: "search"
|
418
140
|
end
|
419
|
-
|
420
|
-
# @private
|
421
|
-
|
422
|
-
def self.blacklight_path
|
423
|
-
@blacklight_path ||= Gem.loaded_specs["blacklight"].full_gem_path
|
424
|
-
end
|
425
|
-
|
426
|
-
def partial_from_blacklight?(partial)
|
427
|
-
path = if Rails::VERSION::MAJOR >= 6
|
428
|
-
name = partial.split('/').last
|
429
|
-
prefix = partial.split('/').first if partial.include?('/')
|
430
|
-
logger&.debug "Looking for document index partial #{partial}"
|
431
|
-
prefixes = lookup_context.prefixes + [prefix, ""].compact
|
432
|
-
lookup_context.find_all(name, prefixes, true).first&.identifier
|
433
|
-
else
|
434
|
-
lookup_context.find_all(partial, lookup_context.prefixes + [""], true).first&.identifier
|
435
|
-
end
|
436
|
-
|
437
|
-
path&.starts_with?(Blacklight::BlacklightHelperBehavior.blacklight_path)
|
438
|
-
end
|
439
141
|
end
|
@@ -1,16 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
# Helper methods for catalog-like controllers
|
3
4
|
module Blacklight::CatalogHelperBehavior
|
4
|
-
extend Deprecation
|
5
|
-
self.deprecation_horizon = 'blacklight 8.0'
|
6
|
-
|
7
5
|
include Blacklight::ConfigurationHelperBehavior
|
8
6
|
include Blacklight::ComponentHelperBehavior
|
9
7
|
include Blacklight::FacetsHelperBehavior
|
10
|
-
include Blacklight::RenderConstraintsHelperBehavior
|
11
8
|
include Blacklight::RenderPartialsHelperBehavior
|
12
|
-
include Blacklight::SearchHistoryConstraintsHelperBehavior
|
13
|
-
include Blacklight::SuggestHelperBehavior
|
14
9
|
|
15
10
|
# @param [Hash] options
|
16
11
|
# @option options :route_set the route scope to use when constructing the link
|
@@ -64,18 +59,18 @@ module Blacklight::CatalogHelperBehavior
|
|
64
59
|
end
|
65
60
|
|
66
61
|
case collection.total_count
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
62
|
+
when 0
|
63
|
+
t('blacklight.search.pagination_info.no_items_found', entry_name: entry_name).html_safe
|
64
|
+
when 1
|
65
|
+
t('blacklight.search.pagination_info.single_item_found', entry_name: entry_name).html_safe
|
66
|
+
else
|
67
|
+
t('blacklight.search.pagination_info.pages', entry_name: entry_name,
|
68
|
+
current_page: collection.current_page,
|
69
|
+
num_pages: collection.total_pages,
|
70
|
+
start_num: number_with_delimiter(collection.offset_value + 1),
|
71
|
+
end_num: number_with_delimiter(end_num),
|
72
|
+
total_num: number_with_delimiter(collection.total_count),
|
73
|
+
count: collection.total_pages).html_safe
|
79
74
|
end
|
80
75
|
end
|
81
76
|
|
@@ -94,20 +89,6 @@ module Blacklight::CatalogHelperBehavior
|
|
94
89
|
end
|
95
90
|
end
|
96
91
|
|
97
|
-
##
|
98
|
-
# Like #page_entries_info above, but for an individual
|
99
|
-
# item show page. Displays "showing X of Y items" message.
|
100
|
-
#
|
101
|
-
# @deprecated
|
102
|
-
# @see #page_entries_info
|
103
|
-
# @return [String]
|
104
|
-
def item_page_entry_info
|
105
|
-
t('blacklight.search.entry_pagination_info.other', current: number_with_delimiter(search_session['counter']),
|
106
|
-
total: number_with_delimiter(search_session['total']),
|
107
|
-
count: search_session['total'].to_i).html_safe
|
108
|
-
end
|
109
|
-
deprecation_deprecate item_page_entry_info: 'Use Blacklight::SearchContext::ServerItemPaginationComponent methods instead'
|
110
|
-
|
111
92
|
##
|
112
93
|
# Look up search field user-displayable label
|
113
94
|
# based on params[:qt] and blacklight_configuration.
|
@@ -127,12 +108,10 @@ module Blacklight::CatalogHelperBehavior
|
|
127
108
|
##
|
128
109
|
# Look up the current per page value, or the default if none if set
|
129
110
|
#
|
130
|
-
# @deprecated
|
131
111
|
# @return [Integer]
|
132
112
|
def current_per_page
|
133
113
|
(@response.rows if @response && @response.rows > 0) || params.fetch(:per_page, blacklight_config.default_per_page).to_i
|
134
114
|
end
|
135
|
-
deprecation_deprecate current_per_page: 'has moved to Blacklight::Search::PerPageComponent'
|
136
115
|
|
137
116
|
##
|
138
117
|
# Get the classes to add to a document's div
|
@@ -164,27 +143,10 @@ module Blacklight::CatalogHelperBehavior
|
|
164
143
|
#
|
165
144
|
# @param [SolrDocument] document
|
166
145
|
# @return [String]
|
167
|
-
def render_document_sidebar_partial(document
|
168
|
-
unless document
|
169
|
-
Deprecation.warn(self, 'render_document_sidebar_partial expects one argument ' \
|
170
|
-
'(@document) and you passed none. This behavior will be removed in version 8')
|
171
|
-
document = @document
|
172
|
-
end
|
146
|
+
def render_document_sidebar_partial(document)
|
173
147
|
render 'show_sidebar', document: document
|
174
148
|
end
|
175
149
|
|
176
|
-
##
|
177
|
-
# Render the main content partial for a document
|
178
|
-
# This is widely used as by downstream apps when they override their show view.
|
179
|
-
# See https://github.com/search?q=render_document_main_content_partial&type=Code
|
180
|
-
#
|
181
|
-
# @param [SolrDocument] _document
|
182
|
-
# @return [String]
|
183
|
-
def render_document_main_content_partial(_document = @document)
|
184
|
-
render partial: 'show_main_content'
|
185
|
-
end
|
186
|
-
deprecation_deprecate render_document_main_content_partial: "Use \"render 'show_main_content'\" instead"
|
187
|
-
|
188
150
|
##
|
189
151
|
# Should we display the sort and per page widget?
|
190
152
|
#
|
@@ -206,95 +168,16 @@ module Blacklight::CatalogHelperBehavior
|
|
206
168
|
end
|
207
169
|
|
208
170
|
##
|
209
|
-
#
|
210
|
-
#
|
211
|
-
#
|
212
|
-
# @deprecated
|
213
|
-
# @return [Boolean]
|
214
|
-
def should_autofocus_on_search_box?
|
215
|
-
controller.is_a?(Blacklight::Catalog) &&
|
216
|
-
action_name == "index" &&
|
217
|
-
!has_search_parameters?
|
218
|
-
end
|
219
|
-
deprecation_deprecate should_autofocus_on_search_box?: "use SearchBarPresenter#autofocus?"
|
220
|
-
|
221
|
-
##
|
222
|
-
# Does the document have a thumbnail to render?
|
223
|
-
#
|
224
|
-
# @deprecated
|
225
|
-
# @param [SolrDocument] document
|
226
|
-
# @return [Boolean]
|
227
|
-
def has_thumbnail? document
|
228
|
-
document_presenter(document).thumbnail.exists?
|
229
|
-
end
|
230
|
-
deprecation_deprecate has_thumbnail?: "use IndexPresenter#thumbnail.exists?"
|
231
|
-
|
232
|
-
##
|
233
|
-
# Render the thumbnail, if available, for a document and
|
234
|
-
# link it to the document record.
|
235
|
-
#
|
236
|
-
# @deprecated
|
237
|
-
# @param [SolrDocument] document
|
238
|
-
# @param [Hash] image_options to pass to the image tag
|
239
|
-
# @param [Hash] url_options to pass to #link_to_document
|
240
|
-
# @return [String]
|
241
|
-
def render_thumbnail_tag document, image_options = {}, url_options = {}
|
242
|
-
document_presenter(document).thumbnail.thumbnail_tag(image_options, url_options)
|
243
|
-
end
|
244
|
-
deprecation_deprecate render_thumbnail_tag: "Use IndexPresenter#thumbnail.thumbnail_tag"
|
245
|
-
|
246
|
-
##
|
247
|
-
# Get the URL to a document's thumbnail image
|
248
|
-
#
|
249
|
-
# @deprecated
|
250
|
-
# @param [SolrDocument] document
|
251
|
-
# @return [String]
|
252
|
-
def thumbnail_url document
|
253
|
-
if document.has? blacklight_config.view_config(document_index_view_type).thumbnail_field
|
254
|
-
document.first(blacklight_config.view_config(document_index_view_type).thumbnail_field)
|
255
|
-
end
|
256
|
-
end
|
257
|
-
deprecation_deprecate thumbnail_url: "this method will be removed without replacement"
|
258
|
-
|
259
|
-
##
|
260
|
-
# Render the view type icon for the results view picker
|
261
|
-
#
|
262
|
-
# @deprecated
|
263
|
-
# @param [String] view
|
264
|
-
# @return [String]
|
265
|
-
def render_view_type_group_icon view
|
266
|
-
blacklight_icon(view)
|
267
|
-
end
|
268
|
-
deprecation_deprecate render_view_type_group_icon: 'call blacklight_icon instead'
|
269
|
-
|
270
|
-
##
|
271
|
-
# Get the default view type classes for a view in the results view picker
|
272
|
-
#
|
273
|
-
# @deprecated
|
274
|
-
# @param [String] view
|
275
|
-
# @return [String]
|
276
|
-
def default_view_type_group_icon_classes view
|
277
|
-
Deprecation.warn(Blacklight::CatalogHelperBehavior, 'This method has been deprecated, use blacklight_icons helper instead')
|
278
|
-
"glyphicon-#{view.to_s.parameterize} view-icon-#{view.to_s.parameterize}"
|
279
|
-
end
|
280
|
-
|
281
|
-
##
|
282
|
-
# return the Bookmarks on a set of documents
|
283
|
-
# @param [Enumerable<Blacklight::Document>] documents_or_response
|
171
|
+
# return the Bookmarks on a set of documents (all bookmarks on the page)
|
172
|
+
# @private
|
284
173
|
# @return [Enumerable<Bookmark>]
|
285
|
-
def current_bookmarks
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
documents_or_response
|
291
|
-
end
|
292
|
-
|
293
|
-
documents ||= [@document] if @document.present?
|
294
|
-
documents ||= @response.documents
|
295
|
-
|
296
|
-
@current_bookmarks ||= current_or_guest_user.bookmarks_for_documents(documents).to_a
|
174
|
+
def current_bookmarks
|
175
|
+
@current_bookmarks ||= begin
|
176
|
+
documents = @document.presence || @response.documents
|
177
|
+
current_or_guest_user.bookmarks_for_documents(Array(documents)).to_a
|
178
|
+
end
|
297
179
|
end
|
180
|
+
private :current_bookmarks
|
298
181
|
|
299
182
|
##
|
300
183
|
# Check if the document is in the user's bookmarks
|
@@ -1,31 +1,11 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
module Blacklight
|
3
4
|
module ComponentHelperBehavior
|
4
|
-
extend Deprecation
|
5
|
-
|
6
|
-
# @deprecated
|
7
|
-
def document_action_label action, opts
|
8
|
-
t("blacklight.tools.#{action}", default: opts.label || action.to_s.humanize)
|
9
|
-
end
|
10
|
-
deprecation_deprecate :document_action_label
|
11
|
-
|
12
|
-
# @deprecated
|
13
|
-
def document_action_path action_opts, url_opts = {}
|
14
|
-
if action_opts.path
|
15
|
-
send(action_opts.path, url_opts)
|
16
|
-
elsif url_opts[:id].class.respond_to?(:model_name)
|
17
|
-
url_for([action_opts.key.to_sym, url_opts[:id]])
|
18
|
-
else
|
19
|
-
send("#{action_opts.key}_#{controller_name}_path", url_opts)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
deprecation_deprecate :document_action_path
|
23
|
-
|
24
5
|
##
|
25
6
|
# Render "document actions" area for navigation header
|
26
7
|
# (normally renders "Saved Searches", "History", "Bookmarks")
|
27
|
-
# These things are added by add_nav_action
|
28
|
-
# provided by DefaultComponentConfiguration
|
8
|
+
# These things are added by add_nav_action
|
29
9
|
#
|
30
10
|
# @param [Hash] options
|
31
11
|
# @return [String]
|
@@ -60,37 +40,6 @@ module Blacklight
|
|
60
40
|
render(component.new(actions: actions, classes: wrapping_class))
|
61
41
|
end
|
62
42
|
|
63
|
-
##
|
64
|
-
# Render "document actions" for the item detail 'show' view.
|
65
|
-
# (this normally renders next to title)
|
66
|
-
#
|
67
|
-
# By default includes 'Bookmarks'
|
68
|
-
#
|
69
|
-
# @param [SolrDocument] document
|
70
|
-
# @param [Hash] options
|
71
|
-
# @return [String]
|
72
|
-
def render_show_doc_actions(document = @document, url_opts: {}, **options)
|
73
|
-
document = options[:document] if options.key? :document
|
74
|
-
|
75
|
-
actions = document_actions(document, options: options)
|
76
|
-
|
77
|
-
if block_given?
|
78
|
-
# TODO: Deprecate this behavior and replace it with a separate component?
|
79
|
-
# Deprecation.warn(Blacklight::ComponentHelperBehavior, 'Pass a block to #render_show_doc_actions is deprecated')
|
80
|
-
actions.each do |action|
|
81
|
-
yield action, render((action.component || Blacklight::Document::ActionComponent).new(action: action, document: document, options: options, url_opts: url_opts))
|
82
|
-
end
|
83
|
-
|
84
|
-
nil
|
85
|
-
else
|
86
|
-
render(Blacklight::Document::ActionsComponent.new(document: document, actions: actions, options: options, url_opts: url_opts))
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
def render_show_doc_actions_method_from_blacklight?
|
91
|
-
method(:render_show_doc_actions).owner == Blacklight::ComponentHelperBehavior
|
92
|
-
end
|
93
|
-
|
94
43
|
def show_doc_actions?(document = @document, options = {})
|
95
44
|
filter_partials(blacklight_config.view_config(:show).document_actions, { document: document }.merge(options)).any?
|
96
45
|
end
|