blacklight 7.32.0 → 8.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.env +2 -2
- data/.github/workflows/ruby.yml +32 -107
- data/.rubocop.yml +243 -2
- data/.rubocop_todo.yml +214 -270
- data/Gemfile +7 -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 +351 -496
- 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/_controls.scss +5 -12
- data/app/assets/stylesheets/blacklight/_facets.scss +96 -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 +1 -1
- data/app/components/blacklight/advanced_search_form_component.rb +4 -6
- data/app/components/blacklight/constraints_component.rb +27 -37
- data/app/components/blacklight/document/action_component.html.erb +2 -9
- data/app/components/blacklight/document/action_component.rb +26 -8
- data/app/components/blacklight/document/actions_component.rb +1 -1
- 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 +4 -0
- data/app/components/blacklight/document_component.rb +7 -23
- data/app/components/blacklight/document_metadata_component.rb +5 -6
- data/app/components/blacklight/document_title_component.rb +4 -1
- data/app/components/blacklight/facet_component.rb +1 -1
- data/app/components/blacklight/facet_field_checkboxes_component.html.erb +1 -1
- data/app/components/blacklight/facet_field_checkboxes_component.rb +1 -1
- data/app/components/blacklight/facet_field_component.html.erb +5 -5
- data/app/components/blacklight/facet_field_component.rb +9 -2
- data/app/components/blacklight/facet_field_list_component.html.erb +1 -1
- 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.html.erb +2 -0
- data/app/components/blacklight/header_component.rb +26 -0
- data/app/components/blacklight/hidden_search_state_component.rb +1 -2
- 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.rb +24 -8
- data/app/components/blacklight/metadata_field_layout_component.rb +0 -18
- 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/sort_component.rb +1 -1
- data/app/components/blacklight/response/spellcheck_component.rb +17 -6
- data/app/components/blacklight/response/view_type_button_component.rb +2 -6
- data/app/components/blacklight/response/view_type_component.rb +2 -4
- 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 -9
- 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/search_navbar_component.html.erb +5 -0
- data/app/components/blacklight/search_navbar_component.rb +34 -0
- data/app/components/blacklight/start_over_button_component.rb +5 -3
- data/app/components/blacklight/system/flash_message_component.html.erb +3 -1
- data/app/components/blacklight/system/flash_message_component.rb +10 -1
- data/app/components/blacklight/system/modal_component.html.erb +1 -1
- data/app/components/blacklight/system/modal_component.rb +0 -2
- data/app/components/blacklight/top_navbar_component.html.erb +12 -0
- data/app/components/blacklight/top_navbar_component.rb +13 -0
- data/app/controllers/bookmarks_controller.rb +1 -0
- data/app/controllers/catalog_controller.rb +1 -0
- data/app/controllers/concerns/blacklight/bookmarks.rb +13 -10
- data/app/controllers/concerns/blacklight/catalog.rb +21 -72
- data/app/controllers/concerns/blacklight/controller.rb +6 -43
- 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 +1 -0
- data/app/controllers/search_history_controller.rb +1 -0
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +10 -308
- data/app/helpers/blacklight/catalog_helper_behavior.rb +22 -137
- data/app/helpers/blacklight/component_helper_behavior.rb +2 -53
- data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -117
- data/app/helpers/blacklight/facets_helper_behavior.rb +4 -321
- data/app/helpers/blacklight/icon_helper_behavior.rb +5 -4
- data/app/helpers/blacklight/layout_helper_behavior.rb +1 -0
- data/app/helpers/blacklight/render_partials_helper_behavior.rb +11 -30
- data/app/helpers/blacklight/url_helper_behavior.rb +13 -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 -122
- data/app/javascript/blacklight/core.js +6 -5
- 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 +45 -55
- 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 -0
- data/app/models/concerns/blacklight/document/attributes.rb +50 -0
- 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 +1 -0
- data/app/models/concerns/blacklight/document/sms.rb +1 -0
- data/app/models/concerns/blacklight/document.rb +12 -20
- 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 +0 -1
- data/app/models/solr_document.rb +1 -0
- data/app/presenters/blacklight/clause_presenter.rb +1 -1
- data/app/presenters/blacklight/document_presenter.rb +13 -21
- 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 +7 -5
- data/app/presenters/blacklight/rendering/join.rb +1 -1
- 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 +1 -8
- data/app/services/blacklight/search_service.rb +8 -7
- data/app/values/blacklight/types.rb +95 -11
- 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/_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/_facets.html.erb +5 -4
- data/app/views/catalog/_home_text.html.erb +2 -14
- data/app/views/catalog/_search_form.html.erb +3 -3
- 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 +10 -15
- data/app/views/catalog/_show_sidebar.html.erb +2 -2
- data/app/views/catalog/_show_tools.html.erb +7 -12
- data/app/views/catalog/_view_type_group.html.erb +1 -1
- data/app/views/catalog/email_success.html.erb +5 -6
- data/app/views/catalog/facet.html.erb +4 -2
- 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 +21 -19
- data/app/views/catalog/index.rss.builder +1 -1
- data/app/views/catalog/opensearch.xml.builder +1 -1
- data/app/views/catalog/show.json.jbuilder +2 -0
- data/app/views/catalog/sms_success.html.erb +5 -6
- data/app/views/catalog/suggest.html.erb +3 -0
- data/app/views/layouts/blacklight/base.html.erb +23 -9
- data/app/views/search_history/index.html.erb +6 -2
- data/app/views/shared/_header_navbar.html.erb +1 -22
- data/app/views/shared/_modal.html.erb +3 -3
- data/blacklight.gemspec +6 -8
- 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 -1
- 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/lib/blacklight/abstract_repository.rb +1 -0
- 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 +16 -6
- data/lib/blacklight/configuration.rb +318 -341
- data/lib/blacklight/engine.rb +10 -11
- data/lib/blacklight/exceptions.rb +2 -2
- data/lib/blacklight/nested_open_struct_with_hash_access.rb +6 -12
- data/lib/blacklight/open_struct_with_hash_access.rb +19 -17
- 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 +1 -0
- data/lib/blacklight/solr/request.rb +3 -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 +4 -3
- data/lib/blacklight/solr/search_builder_behavior.rb +16 -32
- data/lib/blacklight/solr.rb +1 -0
- data/lib/blacklight/version.rb +1 -0
- data/lib/blacklight.rb +8 -11
- 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 -89
- data/lib/generators/blacklight/controller_generator.rb +3 -2
- data/lib/generators/blacklight/document_generator.rb +1 -0
- data/lib/generators/blacklight/install_generator.rb +5 -4
- 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 +37 -7
- data/lib/generators/blacklight/templates/solr_document.rb +1 -1
- data/lib/generators/blacklight/test_support_generator.rb +4 -2
- data/lib/generators/blacklight/user_generator.rb +7 -9
- data/lib/railties/blacklight.rake +2 -3
- data/package.json +9 -12
- data/rollup.config.js +27 -0
- data/spec/components/blacklight/constraints_component_spec.rb +17 -13
- data/spec/components/blacklight/document_component_spec.rb +12 -22
- data/spec/components/blacklight/facet_component_spec.rb +2 -7
- 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 +9 -7
- data/spec/components/blacklight/response/view_type_component_spec.rb +66 -0
- data/spec/components/blacklight/search_context_component_spec.rb +40 -0
- 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 +15 -129
- data/spec/features/autocomplete_spec.rb +1 -1
- data/spec/features/axe_spec.rb +1 -1
- data/spec/features/bookmarks_spec.rb +9 -0
- data/spec/features/facets_spec.rb +1 -1
- data/spec/features/search_context_spec.rb +4 -10
- data/spec/features/search_results_spec.rb +0 -33
- 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/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 +3 -242
- 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/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 +39 -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/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 +32 -23
- data/spec/models/blacklight/user_spec.rb +22 -0
- data/spec/models/solr_document_spec.rb +21 -3
- data/spec/presenters/blacklight/clause_presenter_spec.rb +1 -0
- data/spec/presenters/blacklight/document_presenter_spec.rb +2 -2
- 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 -4
- 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 +10 -25
- 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 +31 -68
- data/spec/spec_helper.rb +3 -2
- 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/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/_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 +7 -54
- 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 +18 -11
- data/spec/views/catalog/index.html.erb_spec.rb +5 -6
- data/spec/views/catalog/index.json.jbuilder_spec.rb +5 -19
- data/spec/views/catalog/show.html.erb_spec.rb +3 -25
- data/spec/views/catalog/show.json.jbuilder_spec.rb +2 -9
- data/spec/views/catalog/sms_success.html.erb_spec.rb +2 -2
- data/tasks/blacklight.rake +6 -4
- metadata +66 -112
- data/.babelrc +0 -11
- 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/controllers/concerns/blacklight/base.rb +0 -7
- 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/controllers/blacklight/facet_spec.rb +0 -33
- data/spec/controllers/blacklight/search_fields_spec.rb +0 -62
- 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 -108
- 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/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,64 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Blacklight
|
3
|
-
module DefaultComponentConfiguration
|
4
|
-
extend ActiveSupport::Concern
|
5
|
-
|
6
|
-
included do
|
7
|
-
Deprecation.warn(self, "Blacklight::DefaultComponentConfiguration is deprecated and will be removed in the next release." \
|
8
|
-
"this means you must call add_results_document_tool, add_results_collection_tool, " \
|
9
|
-
"add_show_tools_partial and add_nav_action manually in your config")
|
10
|
-
add_results_document_tool(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
|
11
|
-
|
12
|
-
add_results_collection_tool(:sort_widget)
|
13
|
-
add_results_collection_tool(:per_page_widget)
|
14
|
-
add_results_collection_tool(:view_type_group)
|
15
|
-
|
16
|
-
add_show_tools_partial(:bookmark, partial: 'bookmark_control', if: :render_bookmarks_control?)
|
17
|
-
add_show_tools_partial(:email, callback: :email_action, validator: :validate_email_params)
|
18
|
-
add_show_tools_partial(:sms, if: :render_sms_action?, callback: :sms_action, validator: :validate_sms_params)
|
19
|
-
add_show_tools_partial(:citation)
|
20
|
-
|
21
|
-
add_nav_action(:bookmark, partial: 'blacklight/nav/bookmark', if: :render_bookmarks_control?)
|
22
|
-
add_nav_action(:search_history, partial: 'blacklight/nav/search_history')
|
23
|
-
end
|
24
|
-
|
25
|
-
module ClassMethods
|
26
|
-
# YARD will include inline disabling as docs, cannot do multiline inside @!macro. AND this must be separate from doc block.
|
27
|
-
# rubocop:disable Layout/LineLength
|
28
|
-
|
29
|
-
# @!macro partial_if_unless
|
30
|
-
# @param name [String] the name of the document partial
|
31
|
-
# @param opts [Hash]
|
32
|
-
# @option opts [Symbol,Proc] :if render this action if the method identified by the symbol or the proc evaluates to true. The proc will receive the action configuration and the document or documents for the action.
|
33
|
-
# @option opts [Symbol,Proc] :unless render this action unless the method identified by the symbol or the proc evaluates to true. The proc will receive the action configuration and the document or documents for the action.
|
34
|
-
|
35
|
-
# Add a partial to the tools for rendering a document
|
36
|
-
# @!macro partial_if_unless
|
37
|
-
# @option opts [Boolean] :define_method define a controller method as named, default: true
|
38
|
-
# @option opts [Symbol] :validator method for toggling between success and failure, should return Boolean (true if valid)
|
39
|
-
# @option opts [Symbol] :callback method for further processing of documents, receives Array of documents
|
40
|
-
def add_show_tools_partial(name, opts = {})
|
41
|
-
blacklight_config.add_show_tools_partial(name, opts)
|
42
|
-
ActionBuilder.new(self, name, opts).build
|
43
|
-
end
|
44
|
-
# rubocop:enable Layout/LineLength
|
45
|
-
|
46
|
-
deprecation_deprecate add_show_tools_partial: 'use blacklight_config.add_show_tools_partial instead'
|
47
|
-
|
48
|
-
# Add a tool to be displayed for each document in the search results.
|
49
|
-
# @!macro partial_if_unless
|
50
|
-
delegate :add_results_document_tool, to: :blacklight_config
|
51
|
-
deprecation_deprecate add_results_document_tool: 'use blacklight_config.add_results_document_tool instead'
|
52
|
-
|
53
|
-
# Add a tool to be displayed for the list of search results themselves.
|
54
|
-
# @!macro partial_if_unless
|
55
|
-
delegate :add_results_collection_tool, to: :blacklight_config
|
56
|
-
deprecation_deprecate add_results_collection_tool: 'use blacklight_config.add_results_collection_tool instead'
|
57
|
-
|
58
|
-
# Add a partial to the header navbar.
|
59
|
-
# @!macro partial_if_unless
|
60
|
-
delegate :add_nav_action, to: :blacklight_config
|
61
|
-
deprecation_deprecate add_nav_action: 'use blacklight_config.add_nav_action instead'
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
@@ -1,69 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Blacklight
|
3
|
-
# These are methods that are used at both the view helper and controller layers
|
4
|
-
# They are only dependent on `blacklight_config` and `@response`
|
5
|
-
#
|
6
|
-
module Facet
|
7
|
-
extend Deprecation
|
8
|
-
delegate :facet_configuration_for_field, :facet_field_names, to: :blacklight_config
|
9
|
-
|
10
|
-
# @deprecated
|
11
|
-
# @param [Blacklight::Configuration::Facet] field_config
|
12
|
-
# @param [Object] response_data
|
13
|
-
# @return [Blacklight::FacetPaginator]
|
14
|
-
def facet_paginator(field_config, response_data)
|
15
|
-
blacklight_config.facet_paginator_class.new(
|
16
|
-
response_data.items,
|
17
|
-
sort: response_data.sort,
|
18
|
-
offset: response_data.offset,
|
19
|
-
prefix: response_data.prefix,
|
20
|
-
limit: Deprecation.silence(Blacklight::Catalog) { facet_limit_for(field_config.key) }
|
21
|
-
)
|
22
|
-
end
|
23
|
-
deprecation_deprecate facet_paginator: 'Use Blacklight::FacetFieldPresenter#paginator instead'
|
24
|
-
|
25
|
-
# @param fields [Array<String>] a list of facet field names
|
26
|
-
# @return [Array<Solr::Response::Facets::FacetField>]
|
27
|
-
# @deprecated
|
28
|
-
def facets_from_request(fields = facet_field_names, response = nil)
|
29
|
-
unless response
|
30
|
-
Deprecation.warn(self, 'Calling facets_from_request without passing the ' \
|
31
|
-
'second argument (response) is deprecated and will be removed in Blacklight ' \
|
32
|
-
'8.0.0')
|
33
|
-
response = @response
|
34
|
-
end
|
35
|
-
|
36
|
-
Deprecation.silence(Blacklight::Facet) do
|
37
|
-
fields.map { |field| facet_by_field_name(field, response) }.compact
|
38
|
-
end
|
39
|
-
end
|
40
|
-
deprecation_deprecate facets_from_request: 'Removed without replacement'
|
41
|
-
|
42
|
-
delegate :facet_group_names, to: :blacklight_config
|
43
|
-
deprecation_deprecate facet_group_names: 'Use blacklight_config.facet_group_names instead'
|
44
|
-
|
45
|
-
# Get a FacetField object from the @response
|
46
|
-
# @deprecated
|
47
|
-
# @private
|
48
|
-
# @return [Blacklight::Solr::Response::Facets::FacetField]
|
49
|
-
def facet_by_field_name(field_or_field_name, response = nil)
|
50
|
-
unless response
|
51
|
-
Deprecation.warn(self, 'Calling facet_by_field_name without passing the ' \
|
52
|
-
'second argument (response) is deprecated and will be removed in Blacklight ' \
|
53
|
-
'8.0.0')
|
54
|
-
response = @response
|
55
|
-
end
|
56
|
-
case field_or_field_name
|
57
|
-
when String, Symbol
|
58
|
-
facet_field = facet_configuration_for_field(field_or_field_name)
|
59
|
-
response.aggregations[facet_field.field]
|
60
|
-
when Blacklight::Configuration::FacetField
|
61
|
-
response.aggregations[field_or_field_name.field]
|
62
|
-
else
|
63
|
-
# is this really a useful case?
|
64
|
-
field_or_field_name
|
65
|
-
end
|
66
|
-
end
|
67
|
-
deprecation_deprecate facet_by_field_name: 'Removed without replacement'
|
68
|
-
end
|
69
|
-
end
|
@@ -1,46 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
##
|
3
|
-
# Module to deal with accessing (and setting some defaults) in an array of
|
4
|
-
# hashes that describe Blacklight search fields. Requires the base class this
|
5
|
-
# module is added to implements a #blacklight_config method that returns a hash, where
|
6
|
-
# blacklight_config[:search_fields] will be an array of hashes describing search fields.
|
7
|
-
#
|
8
|
-
# = Search Field blacklight_configuration Hash =
|
9
|
-
# [:key]
|
10
|
-
# "title", required, unique key used in search URLs to specify search_field
|
11
|
-
# [:label]
|
12
|
-
# "Title", # user-displayable label, optional, if not supplied :key.titlecase will be used
|
13
|
-
# [:qt]
|
14
|
-
# "search", # Solr qt param, request handler, usually can be left blank; defaults to nil if not explicitly specified
|
15
|
-
# [:solr_parameters]
|
16
|
-
# { :qf => "something" } # optional hash of additional parameters to pass to solr for searches on this field.
|
17
|
-
# [:solr_local_parameters]
|
18
|
-
# { :qf => "$something" } # optional hash of additional parameters that will be passed using Solr LocalParams syntax, that can use dollar sign to reference other solr variables.
|
19
|
-
# [:include_in_simple_select]
|
20
|
-
# false. Defaults to true, but you can set to false to have a search field defined for deep-links or BL extensions, but not actually included in the HTML select for simple search choice.
|
21
|
-
#
|
22
|
-
# Optionally you can supply a :key, which is what Blacklight will use
|
23
|
-
# to identify this search field in HTTP query params. If no :key is
|
24
|
-
# supplied, one will be computed from the :label. If that will
|
25
|
-
# result in a collision of keys, you should supply one explicitly.
|
26
|
-
#
|
27
|
-
##
|
28
|
-
module Blacklight::SearchFields
|
29
|
-
extend Deprecation
|
30
|
-
|
31
|
-
# Looks up search field config list from blacklight_config[:search_fields], and
|
32
|
-
# 'normalizes' all field config hashes using normalize_config method.
|
33
|
-
# @deprecated
|
34
|
-
def search_field_list
|
35
|
-
blacklight_config.search_fields.values
|
36
|
-
end
|
37
|
-
deprecation_deprecate search_field_list: 'Use blacklight_config.search_fields instead'
|
38
|
-
|
39
|
-
# Returns default search field, used for simpler display in history, etc.
|
40
|
-
# if not set in blacklight_config, defaults to first field listed in #search_field_list
|
41
|
-
# @deprecated
|
42
|
-
def default_search_field
|
43
|
-
blacklight_config.default_search_field || (Deprecation.silence(Blacklight::SearchFields) { search_field_list.first })
|
44
|
-
end
|
45
|
-
deprecation_deprecate default_search_field: 'Use Blacklight::Configuration#default_search_field'
|
46
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# Rails Helper methods to take a hash and turn it to form <input type="hidden">
|
3
|
-
# fields, works with hash nested with other hashes and arrays, standard rails
|
4
|
-
# serialization style. Oddly while Hash#to_query will do this for a URL
|
5
|
-
# query parameters, there seems to be no built in way to do it to create
|
6
|
-
# hidden form fields instead.
|
7
|
-
#
|
8
|
-
# Code taken from http://marklunds.com/articles/one/314
|
9
|
-
#
|
10
|
-
# This is used to serialize a complete current query from current params
|
11
|
-
# to form fields used for sort and change per-page
|
12
|
-
module Blacklight::HashAsHiddenFieldsHelperBehavior
|
13
|
-
extend Deprecation
|
14
|
-
|
15
|
-
##
|
16
|
-
# Writes out zero or more <input type="hidden"> elements, completely
|
17
|
-
# representing a hash passed in using Rails-style request parameters
|
18
|
-
# for hashes nested with arrays and other hashes.
|
19
|
-
#
|
20
|
-
# @deprecated
|
21
|
-
# @param [Hash] hash
|
22
|
-
# @return [String]
|
23
|
-
def render_hash_as_hidden_fields(hash)
|
24
|
-
render Blacklight::HiddenSearchStateComponent.new(params: hash)
|
25
|
-
end
|
26
|
-
deprecation_deprecate render_hash_as_hidden_fields: 'Use Blacklight::HiddenSearchStateComponent instead'
|
27
|
-
end
|
@@ -1,188 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# All methods in here are 'api' that may be over-ridden by plugins and local
|
3
|
-
# code, so method signatures and semantics should not be changed casually.
|
4
|
-
# implementations can be of course.
|
5
|
-
#
|
6
|
-
# Includes methods for rendering contraints graphically on the
|
7
|
-
# search results page (render_constraints(_*))
|
8
|
-
module Blacklight::RenderConstraintsHelperBehavior
|
9
|
-
extend Deprecation
|
10
|
-
self.deprecation_horizon = 'blacklight 8.0'
|
11
|
-
|
12
|
-
##
|
13
|
-
# Check if the query has any constraints defined (a query, facet, etc)
|
14
|
-
#
|
15
|
-
# @deprecated
|
16
|
-
# @param [Blacklight::SearchState,Hash] params_or_search_state query parameters
|
17
|
-
# @return [Boolean]
|
18
|
-
def query_has_constraints?(params_or_search_state = search_state)
|
19
|
-
search_state = convert_to_search_state(params_or_search_state)
|
20
|
-
search_state.has_constraints?
|
21
|
-
end
|
22
|
-
deprecation_deprecate query_has_constraints?: 'use search_state#has_constraints?'
|
23
|
-
|
24
|
-
##
|
25
|
-
# Render the actual constraints, not including header or footer
|
26
|
-
# info.
|
27
|
-
#
|
28
|
-
# @param [Hash] localized_params query parameters
|
29
|
-
# @return [String]
|
30
|
-
def render_constraints(localized_params = params, local_search_state = search_state)
|
31
|
-
params_or_search_state = if localized_params != params
|
32
|
-
localized_params
|
33
|
-
else
|
34
|
-
local_search_state
|
35
|
-
end
|
36
|
-
|
37
|
-
Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
|
38
|
-
render_constraints_query(params_or_search_state) + render_constraints_clauses(params_or_search_state) + render_constraints_filters(params_or_search_state)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
|
42
|
-
##
|
43
|
-
# Render the query constraints
|
44
|
-
#
|
45
|
-
# @deprecated
|
46
|
-
# @param [Blacklight::SearchState,ActionController::Parameters] params_or_search_state query parameters
|
47
|
-
# @return [String]
|
48
|
-
def render_constraints_query(params_or_search_state = search_state)
|
49
|
-
Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_constraints_query is deprecated')
|
50
|
-
search_state = convert_to_search_state(params_or_search_state)
|
51
|
-
|
52
|
-
# So simple don't need a view template, we can just do it here.
|
53
|
-
return "".html_safe if search_state.query_param.blank?
|
54
|
-
|
55
|
-
Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
|
56
|
-
render_constraint_element(constraint_query_label(search_state.params),
|
57
|
-
search_state.query_param,
|
58
|
-
classes: ["query"],
|
59
|
-
remove: remove_constraint_url(search_state))
|
60
|
-
end
|
61
|
-
end
|
62
|
-
|
63
|
-
##
|
64
|
-
# Render the query constraints
|
65
|
-
#
|
66
|
-
# @deprecated
|
67
|
-
# @param [Blacklight::SearchState,ActionController::Parameters] params_or_search_state query parameters
|
68
|
-
# @return [String]
|
69
|
-
def render_constraints_clauses(params_or_search_state = search_state)
|
70
|
-
search_state = convert_to_search_state(params_or_search_state)
|
71
|
-
|
72
|
-
clause_presenters = search_state.clause_params.map do |key, clause|
|
73
|
-
field_config = blacklight_config.search_fields[clause[:field]]
|
74
|
-
Blacklight::ClausePresenter.new(key, clause, field_config, self, search_state)
|
75
|
-
end
|
76
|
-
|
77
|
-
render(Blacklight::ConstraintComponent.with_collection(clause_presenters))
|
78
|
-
end
|
79
|
-
deprecation_deprecate :render_constraints_clauses
|
80
|
-
|
81
|
-
##
|
82
|
-
# Provide a url for removing a particular constraint. This can be overriden
|
83
|
-
# in the case that you want parameters other than the defaults to be removed
|
84
|
-
# (e.g. :search_field)
|
85
|
-
#
|
86
|
-
# @deprecated
|
87
|
-
# @param [Blacklight::SearchState,ActionController::Parameters] params_or_search_state query parameters
|
88
|
-
# @return [String]
|
89
|
-
def remove_constraint_url(params_or_search_state = search_state)
|
90
|
-
Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'remove_constraint_url is deprecated')
|
91
|
-
search_state = convert_to_search_state(params_or_search_state)
|
92
|
-
|
93
|
-
search_action_path(search_state.remove_query_params)
|
94
|
-
end
|
95
|
-
|
96
|
-
##
|
97
|
-
# Render the facet constraints
|
98
|
-
# @deprecated
|
99
|
-
# @param [Blacklight::SearchState,Hash] params_or_search_state query parameters
|
100
|
-
# @return [String]
|
101
|
-
def render_constraints_filters(params_or_search_state = search_state)
|
102
|
-
Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_constraints_filters is deprecated')
|
103
|
-
search_state = convert_to_search_state(params_or_search_state)
|
104
|
-
|
105
|
-
return "".html_safe unless search_state.filters.any?
|
106
|
-
|
107
|
-
Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
|
108
|
-
safe_join(search_state.filters.map do |field|
|
109
|
-
render_filter_element(field.key, field.values, search_state)
|
110
|
-
end, "\n")
|
111
|
-
end
|
112
|
-
end
|
113
|
-
|
114
|
-
##
|
115
|
-
# Render a single facet's constraint
|
116
|
-
# @deprecated
|
117
|
-
# @param [String] facet field
|
118
|
-
# @param [Array<String>] values selected facet values
|
119
|
-
# @param [Blacklight::SearchState] search_state path query parameters
|
120
|
-
# @return [String]
|
121
|
-
def render_filter_element(facet, values, search_state)
|
122
|
-
Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_filter_element is deprecated')
|
123
|
-
facet_config = facet_configuration_for_field(facet)
|
124
|
-
|
125
|
-
safe_join(Array(values).map do |val|
|
126
|
-
next if val.blank? # skip empty string
|
127
|
-
|
128
|
-
Deprecation.silence(Blacklight::RenderConstraintsHelperBehavior) do
|
129
|
-
presenter = if val.is_a? Array
|
130
|
-
inclusive_facet_item_presenter(facet_config, val, facet)
|
131
|
-
else
|
132
|
-
facet_item_presenter(facet_config, val, facet)
|
133
|
-
end
|
134
|
-
|
135
|
-
render_constraint_element(presenter.field_label,
|
136
|
-
presenter.label,
|
137
|
-
remove: presenter.remove_href(search_state),
|
138
|
-
classes: ["filter", "filter-" + facet.parameterize])
|
139
|
-
end
|
140
|
-
end, "\n")
|
141
|
-
end
|
142
|
-
|
143
|
-
def inclusive_facet_item_presenter(facet_config, facet_item, facet_field)
|
144
|
-
Blacklight::InclusiveFacetItemPresenter.new(facet_item, facet_config, self, facet_field)
|
145
|
-
end
|
146
|
-
|
147
|
-
# Render a label/value constraint on the screen. Can be called
|
148
|
-
# by plugins and such to get application-defined rendering.
|
149
|
-
#
|
150
|
-
# Can be over-ridden locally to render differently if desired,
|
151
|
-
# although in most cases you can just change CSS instead.
|
152
|
-
#
|
153
|
-
# Can pass in nil label if desired.
|
154
|
-
#
|
155
|
-
# @deprecated
|
156
|
-
# @param [String] label to display
|
157
|
-
# @param [String] value to display
|
158
|
-
# @param [Hash] options
|
159
|
-
# @option options [String] :remove url to execute for a 'remove' action
|
160
|
-
# @option options [Array<String>] :classes an array of classes to add to container span for constraint.
|
161
|
-
# @return [String]
|
162
|
-
def render_constraint_element(label, value, options = {})
|
163
|
-
Deprecation.warn(Blacklight::RenderConstraintsHelperBehavior, 'render_constraints_element is deprecated')
|
164
|
-
render(partial: "catalog/constraints_element", locals: { label: label, value: value, options: options })
|
165
|
-
end
|
166
|
-
|
167
|
-
# @private
|
168
|
-
def constraints_helpers_and_partials_from_blacklight?
|
169
|
-
method(:render_constraints).owner == Blacklight::RenderConstraintsHelperBehavior &&
|
170
|
-
method(:render_constraints_query).owner == Blacklight::RenderConstraintsHelperBehavior &&
|
171
|
-
method(:remove_constraint_url).owner == Blacklight::RenderConstraintsHelperBehavior &&
|
172
|
-
method(:render_constraints_filters).owner == Blacklight::RenderConstraintsHelperBehavior &&
|
173
|
-
method(:render_filter_element).owner == Blacklight::RenderConstraintsHelperBehavior &&
|
174
|
-
method(:render_constraint_element).owner == Blacklight::RenderConstraintsHelperBehavior &&
|
175
|
-
partial_from_blacklight?('catalog/constraints_element')
|
176
|
-
end
|
177
|
-
|
178
|
-
private
|
179
|
-
|
180
|
-
def convert_to_search_state(params_or_search_state)
|
181
|
-
if params_or_search_state.is_a? Blacklight::SearchState
|
182
|
-
params_or_search_state
|
183
|
-
else
|
184
|
-
# deprecated
|
185
|
-
controller.search_state_class.new(params_or_search_state, blacklight_config, controller)
|
186
|
-
end
|
187
|
-
end
|
188
|
-
end
|
@@ -1,97 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
# All methods in here are 'api' that may be over-ridden by plugins and local
|
3
|
-
# code, so method signatures and semantics should not be changed casually.
|
4
|
-
# implementations can be of course.
|
5
|
-
#
|
6
|
-
# Includes methods for rendering more textually on Search History page
|
7
|
-
# (render_search_to_s(_*))
|
8
|
-
module Blacklight::SearchHistoryConstraintsHelperBehavior
|
9
|
-
extend Deprecation
|
10
|
-
self.deprecation_horizon = '8.0'
|
11
|
-
|
12
|
-
# Simpler textual version of constraints, used on Search History page.
|
13
|
-
# Theoretically can may be DRY'd up with results page render_constraints,
|
14
|
-
# maybe even using the very same HTML with different CSS?
|
15
|
-
# But too tricky for now, too many changes to existing CSS. TODO.
|
16
|
-
def render_search_to_s(params)
|
17
|
-
return render(Blacklight::ConstraintsComponent.for_search_history(search_state: convert_to_search_state(params))) unless overridden_search_history_constraints_helper_methods?
|
18
|
-
|
19
|
-
Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, 'Calling out to potentially overridden helpers for backwards compatibility.')
|
20
|
-
|
21
|
-
Deprecation.silence(Blacklight::SearchHistoryConstraintsHelperBehavior) do
|
22
|
-
render_search_to_s_q(params) +
|
23
|
-
render_search_to_s_filters(params)
|
24
|
-
end
|
25
|
-
end
|
26
|
-
deprecation_deprecate render_search_to_s: 'Use Blacklight::ConstraintsComponent.for_search_history instead'
|
27
|
-
|
28
|
-
##
|
29
|
-
# Render the search query constraint
|
30
|
-
def render_search_to_s_q(params)
|
31
|
-
Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, '#render_search_to_s_q is deprecated without replacement')
|
32
|
-
return "".html_safe if params['q'].blank?
|
33
|
-
|
34
|
-
label = label_for_search_field(params[:search_field]) unless default_search_field?(params[:search_field])
|
35
|
-
|
36
|
-
render_search_to_s_element(label, render_filter_value(params['q']))
|
37
|
-
end
|
38
|
-
|
39
|
-
##
|
40
|
-
# Render the search facet constraints
|
41
|
-
def render_search_to_s_filters(params)
|
42
|
-
Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, '#render_search_to_s_filters is deprecated without replacement')
|
43
|
-
return "".html_safe unless params[:f]
|
44
|
-
|
45
|
-
safe_join(params[:f].collect do |facet_field, value_list|
|
46
|
-
render_search_to_s_element(facet_field_label(facet_field),
|
47
|
-
safe_join(value_list.collect do |value|
|
48
|
-
render_filter_value(value, facet_field)
|
49
|
-
end,
|
50
|
-
tag.span(" #{t('blacklight.and')} ", class: 'filter-separator')))
|
51
|
-
end, " \n ")
|
52
|
-
end
|
53
|
-
|
54
|
-
# value can be Array, in which case elements are joined with
|
55
|
-
# 'and'. Pass in option :escape_value => false to pass in pre-rendered
|
56
|
-
# html for value. key with escape_key if needed.
|
57
|
-
def render_search_to_s_element(key, value, _options = {})
|
58
|
-
Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, '#render_search_to_s_element is deprecated without replacement')
|
59
|
-
tag.span(render_filter_name(key) + tag.span(value, class: 'filter-values'),
|
60
|
-
class: 'constraint')
|
61
|
-
end
|
62
|
-
|
63
|
-
##
|
64
|
-
# Render the name of the facet
|
65
|
-
def render_filter_name name
|
66
|
-
Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, '#render_filter_name is deprecated without replacement')
|
67
|
-
return "".html_safe if name.blank?
|
68
|
-
|
69
|
-
tag.span(t('blacklight.search.filters.label', label: name),
|
70
|
-
class: 'filter-name')
|
71
|
-
end
|
72
|
-
|
73
|
-
##
|
74
|
-
# Render the value of the facet
|
75
|
-
def render_filter_value value, key = nil
|
76
|
-
Deprecation.warn(Blacklight::SearchHistoryConstraintsHelperBehavior, '#render_filter_value is deprecated without replacement')
|
77
|
-
display_value = value
|
78
|
-
Deprecation.silence(Blacklight::FacetsHelperBehavior) do
|
79
|
-
display_value = facet_display_value(key, value) if key
|
80
|
-
end
|
81
|
-
tag.span(h(display_value),
|
82
|
-
class: 'filter-value')
|
83
|
-
end
|
84
|
-
|
85
|
-
private
|
86
|
-
|
87
|
-
# Check if the downstream application has overridden these methods
|
88
|
-
# @deprecated
|
89
|
-
# @private
|
90
|
-
def overridden_search_history_constraints_helper_methods?
|
91
|
-
method(:render_search_to_s_q).owner != Blacklight::FacetsHelperBehavior ||
|
92
|
-
method(:render_search_to_s_filters).owner != Blacklight::FacetsHelperBehavior ||
|
93
|
-
method(:render_search_to_s_element).owner != Blacklight::FacetsHelperBehavior ||
|
94
|
-
method(:render_filter_name).owner != Blacklight::FacetsHelperBehavior ||
|
95
|
-
method(:render_filter_value).owner != Blacklight::FacetsHelperBehavior
|
96
|
-
end
|
97
|
-
end
|
@@ -1,13 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
module Blacklight
|
3
|
-
module SuggestHelperBehavior
|
4
|
-
##
|
5
|
-
# @deprecated
|
6
|
-
# @return [Boolean] should autocomplete be enabled in the UI
|
7
|
-
def autocomplete_enabled?
|
8
|
-
blacklight_config.autocomplete_enabled.present? &&
|
9
|
-
blacklight_config.autocomplete_path.present?
|
10
|
-
end
|
11
|
-
deprecation_deprecate autocomplete_enabled?: "use SearchBarPresenter#autocomplete_enabled?"
|
12
|
-
end
|
13
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
/*global Bloodhound */
|
2
|
-
import Bloodhound from 'typeahead.js/dist/bloodhound.js'
|
3
|
-
|
4
|
-
Blacklight.onLoad(function() {
|
5
|
-
'use strict';
|
6
|
-
|
7
|
-
$('[data-autocomplete-enabled="true"]').each(function() {
|
8
|
-
var $el = $(this);
|
9
|
-
if($el.hasClass('tt-hint')) {
|
10
|
-
return;
|
11
|
-
}
|
12
|
-
var suggestUrl = $el.data().autocompletePath;
|
13
|
-
|
14
|
-
var terms = new Bloodhound({
|
15
|
-
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
|
16
|
-
queryTokenizer: Bloodhound.tokenizers.whitespace,
|
17
|
-
remote: {
|
18
|
-
url: suggestUrl + '?q=%QUERY',
|
19
|
-
wildcard: '%QUERY'
|
20
|
-
}
|
21
|
-
});
|
22
|
-
|
23
|
-
terms.initialize();
|
24
|
-
|
25
|
-
$el.typeahead({
|
26
|
-
hint: true,
|
27
|
-
highlight: true,
|
28
|
-
minLength: 2
|
29
|
-
},
|
30
|
-
{
|
31
|
-
name: 'terms',
|
32
|
-
displayKey: 'term',
|
33
|
-
source: terms.ttAdapter()
|
34
|
-
});
|
35
|
-
});
|
36
|
-
});
|
@@ -1,22 +0,0 @@
|
|
1
|
-
/*global Blacklight */
|
2
|
-
|
3
|
-
'use strict';
|
4
|
-
|
5
|
-
Blacklight.doResizeFacetLabelsAndCounts = function() {
|
6
|
-
// adjust width of facet columns to fit their contents
|
7
|
-
function longer (a,b) { return b.textContent.length - a.textContent.length }
|
8
|
-
|
9
|
-
document.querySelectorAll('.facet-values, .pivot-facet').forEach(function(elem){
|
10
|
-
const nodes = elem.querySelectorAll('.facet-count')
|
11
|
-
// TODO: when we drop ie11 support, this can become the spread operator:
|
12
|
-
const longest = Array.from(nodes).sort(longer)[0]
|
13
|
-
if (longest && longest.textContent) {
|
14
|
-
const width = longest.textContent.length + 1 + 'ch'
|
15
|
-
elem.querySelector('.facet-count').style.width = width
|
16
|
-
}
|
17
|
-
})
|
18
|
-
}
|
19
|
-
|
20
|
-
Blacklight.onLoad(function() {
|
21
|
-
Blacklight.doResizeFacetLabelsAndCounts()
|
22
|
-
})
|
@@ -1,47 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Blacklight
|
4
|
-
class SearchBarPresenter
|
5
|
-
extend Deprecation
|
6
|
-
attr_reader :configuration, :view_context, :controller
|
7
|
-
|
8
|
-
# Set the partial this presenter draws
|
9
|
-
class_attribute :partial
|
10
|
-
self.partial = 'catalog/search_form'
|
11
|
-
|
12
|
-
def initialize(controller, configuration = view_context.blacklight_config)
|
13
|
-
@controller = controller
|
14
|
-
@view_context = controller.view_context
|
15
|
-
@configuration = configuration
|
16
|
-
end
|
17
|
-
|
18
|
-
def render
|
19
|
-
view_context.render partial, presenter: self
|
20
|
-
end
|
21
|
-
deprecation_deprecate render: "The SearchBarPresenter has been deprecated. Call `render Blacklight::SearchBarComponent.new' instead"
|
22
|
-
|
23
|
-
##
|
24
|
-
# @return [Boolean] should autocomplete be enabled in the UI
|
25
|
-
def autocomplete_enabled?
|
26
|
-
configuration.autocomplete_enabled.present? &&
|
27
|
-
configuration.autocomplete_path.present?
|
28
|
-
end
|
29
|
-
|
30
|
-
##
|
31
|
-
# If no search parameters have been given, we should
|
32
|
-
# auto-focus the user's cursor into the searchbox
|
33
|
-
#
|
34
|
-
# @return [Boolean]
|
35
|
-
def autofocus?
|
36
|
-
configuration.enable_search_bar_autofocus.present? &&
|
37
|
-
configuration.enable_search_bar_autofocus &&
|
38
|
-
controller.is_a?(Blacklight::Catalog) &&
|
39
|
-
controller.action_name == "index" &&
|
40
|
-
!controller.has_search_parameters?
|
41
|
-
end
|
42
|
-
|
43
|
-
def advanced_search_enabled?
|
44
|
-
configuration.advanced_search.enabled
|
45
|
-
end
|
46
|
-
end
|
47
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
<% # local params:
|
2
|
-
# label
|
3
|
-
# value
|
4
|
-
# options =>
|
5
|
-
# :remove => url for a remove constraint link
|
6
|
-
# :classes => array of classes to add to container span
|
7
|
-
options ||= {}
|
8
|
-
%>
|
9
|
-
|
10
|
-
<%= render(Blacklight::ConstraintLayoutComponent.new(
|
11
|
-
classes: options[:classes],
|
12
|
-
label: label,
|
13
|
-
value: value,
|
14
|
-
remove_path: options[:remove])) %>
|
@@ -1,5 +0,0 @@
|
|
1
|
-
<%= link_to document_action_label(document_action_config.key, document_action_config),
|
2
|
-
document_action_path(document_action_config, (local_assigns.has_key?(:url_opts) ? url_opts : {}).merge(({id: document} if document) || {})),
|
3
|
-
id: document_action_config.fetch(:id, "#{document_action_config.key}Link"),
|
4
|
-
class: 'nav-link',
|
5
|
-
data: {}.merge(({ blacklight_modal: "trigger" } if document_action_config.modal != false) || {}) %>
|
@@ -1,5 +0,0 @@
|
|
1
|
-
<%= render (blacklight_config&.view_config(document_index_view_type)&.facet_group_component || Blacklight::Response::FacetGroupComponent).new(
|
2
|
-
response: @response,
|
3
|
-
id: groupname,
|
4
|
-
fields: facet_field_names(groupname),
|
5
|
-
title: groupname.present? ? t("blacklight.search.facets-#{groupname}.title") : t('blacklight.search.facets.title')) %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= render(Blacklight::DocumentMetadataComponent.new(fields: document_presenter(document).field_presenters)) %>
|