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,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)) %>
|
@@ -1,22 +0,0 @@
|
|
1
|
-
<%# header bar for doc items in index view -%>
|
2
|
-
<header class="documentHeader row">
|
3
|
-
<%# main title container for doc partial view
|
4
|
-
How many bootstrap columns need to be reserved
|
5
|
-
for bookmarks control depends on size.
|
6
|
-
-%>
|
7
|
-
<% document_actions = capture do %>
|
8
|
-
<% # bookmark functions for items/docs -%>
|
9
|
-
<%= render_index_doc_actions document, wrapping_class: "index-document-functions col-sm-3 col-lg-2" %>
|
10
|
-
<% end %>
|
11
|
-
|
12
|
-
<h3 class="index_title document-title-heading <%= document_actions.present? ? "col-sm-9 col-lg-10" : "col-md-12" %>">
|
13
|
-
<% if counter = document_counter_with_offset(document_counter) %>
|
14
|
-
<span class="document-counter">
|
15
|
-
<%= t('blacklight.search.documents.counter', counter: counter) %>
|
16
|
-
</span>
|
17
|
-
<% end %>
|
18
|
-
<%= link_to_document document, counter: counter %>
|
19
|
-
</h3>
|
20
|
-
|
21
|
-
<%= document_actions %>
|
22
|
-
</header>
|
@@ -1,2 +0,0 @@
|
|
1
|
-
<% Deprecation.warn(self, 'The partial _previous_next_doc.html.erb will be removed in 8.0. Render Blacklight::SearchContext::ServerItemPaginationComponent instead.') %>
|
2
|
-
<%= render(Blacklight::SearchContextComponent.new(search_context: @search_context, search_session: search_session)) %>
|
@@ -1 +0,0 @@
|
|
1
|
-
<%= render Blacklight::Document::ThumbnailComponent.new(presenter: document_presenter(document), counter: document_counter_with_offset(document_counter)) -%>
|
@@ -1,66 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Blacklight
|
4
|
-
module Deprecations
|
5
|
-
module EngineConfiguration
|
6
|
-
# rubocop:disable Style/RedundantSelf, Style/HashSyntax
|
7
|
-
# @deprecated
|
8
|
-
def bookmarks_http_method
|
9
|
-
self.blacklight.bookmarks_http_method
|
10
|
-
end
|
11
|
-
deprecation_deprecate bookmarks_http_method: 'Moved to `blacklight.bookmarks_http_method`'
|
12
|
-
|
13
|
-
# @deprecated
|
14
|
-
def bookmarks_http_method=(val)
|
15
|
-
self.blacklight.bookmarks_http_method = val
|
16
|
-
end
|
17
|
-
deprecation_deprecate :'bookmarks_http_method=' => 'Moved to `blacklight.bookmarks_http_method=`'
|
18
|
-
|
19
|
-
# @deprecated
|
20
|
-
def email_regexp
|
21
|
-
self.blacklight.email_regexp
|
22
|
-
end
|
23
|
-
deprecation_deprecate email_regexp: 'Moved to `blacklight.email_regexp`'
|
24
|
-
|
25
|
-
# @deprecated
|
26
|
-
def email_regexp=(val)
|
27
|
-
self.blacklight.email_regexp = val
|
28
|
-
end
|
29
|
-
deprecation_deprecate :'email_regexp=' => 'Moved to `blacklight.email_regexp=`'
|
30
|
-
|
31
|
-
# @deprecated
|
32
|
-
def facet_missing_param
|
33
|
-
self.blacklight.facet_missing_param
|
34
|
-
end
|
35
|
-
deprecation_deprecate facet_missing_param: 'Moved to `blacklight.facet_missing_param`'
|
36
|
-
|
37
|
-
# @deprecated
|
38
|
-
def facet_missing_param=(val)
|
39
|
-
self.blacklight.facet_missing_param = val
|
40
|
-
end
|
41
|
-
deprecation_deprecate :'facet_missing_param=' => 'Moved to `blacklight.facet_missing_param=`'
|
42
|
-
|
43
|
-
# @deprecated
|
44
|
-
def sms_mappings
|
45
|
-
self.blacklight.sms_mappings
|
46
|
-
end
|
47
|
-
deprecation_deprecate sms_mappings: 'Moved to `blacklight.sms_mappings`'
|
48
|
-
|
49
|
-
# @deprecated
|
50
|
-
def sms_mappings=(val)
|
51
|
-
self.blacklight.sms_mappings = val
|
52
|
-
end
|
53
|
-
deprecation_deprecate :'sms_mappings=' => 'Moved to `blacklight.sms_mappings=`'
|
54
|
-
# rubocop:enable Style/RedundantSelf, Style/HashSyntax
|
55
|
-
|
56
|
-
def self.deprecate_in(object)
|
57
|
-
class << object
|
58
|
-
extend Deprecation
|
59
|
-
self.deprecation_horizon = 'blacklight 8.0'
|
60
|
-
|
61
|
-
include Blacklight::Deprecations::EngineConfiguration
|
62
|
-
end
|
63
|
-
end
|
64
|
-
end
|
65
|
-
end
|
66
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Blacklight
|
4
|
-
module Deprecations
|
5
|
-
module SearchStateNormalization
|
6
|
-
extend ActiveSupport::Concern
|
7
|
-
|
8
|
-
class_methods do
|
9
|
-
def facet_params_need_normalization(facet_params)
|
10
|
-
Deprecation.warn(self, 'Calling `facet_params_need_normalization` on the Blacklight::SearchState ' \
|
11
|
-
'class is deprecated and will be removed in Blacklight 8. Delegate to #needs_normalization?(value_params) on the ' \
|
12
|
-
'filter fields of the search state object.')
|
13
|
-
|
14
|
-
facet_params.is_a?(Hash) && facet_params.values.any? { |x| x.is_a?(Hash) }
|
15
|
-
end
|
16
|
-
|
17
|
-
def normalize_facet_params(facet_params)
|
18
|
-
Deprecation.warn(self, 'Calling `normalize_facet_params` on the Blacklight::SearchState ' \
|
19
|
-
'class is deprecated and will be removed in Blacklight 8. Delegate to #normalize(value_params) on the ' \
|
20
|
-
'filter fields of the search state object.')
|
21
|
-
|
22
|
-
facet_params.transform_values { |value| value.is_a?(Hash) ? value.values : value }
|
23
|
-
end
|
24
|
-
|
25
|
-
def normalize_params(untrusted_params = {})
|
26
|
-
Deprecation.warn(self, 'Calling `normalize_params` on the Blacklight::SearchState ' \
|
27
|
-
'class is deprecated and will be removed in Blacklight 8. Call #normalize_params on the ' \
|
28
|
-
'search state object.')
|
29
|
-
params = untrusted_params
|
30
|
-
|
31
|
-
if params.respond_to?(:to_unsafe_h)
|
32
|
-
# This is the typical (not-ActionView::TestCase) code path.
|
33
|
-
params = params.to_unsafe_h
|
34
|
-
# In Rails 5 to_unsafe_h returns a HashWithIndifferentAccess, in Rails 4 it returns Hash
|
35
|
-
params = params.with_indifferent_access if params.instance_of? Hash
|
36
|
-
elsif params.is_a? Hash
|
37
|
-
# This is an ActionView::TestCase workaround for Rails 4.2.
|
38
|
-
params = params.dup.with_indifferent_access
|
39
|
-
else
|
40
|
-
params = params.dup.to_h.with_indifferent_access
|
41
|
-
end
|
42
|
-
|
43
|
-
# Normalize facet parameters mangled by facebook
|
44
|
-
params[:f] = normalize_facet_params(params[:f]) if facet_params_need_normalization(params[:f])
|
45
|
-
params[:f_inclusive] = normalize_facet_params(params[:f_inclusive]) if facet_params_need_normalization(params[:f_inclusive])
|
46
|
-
|
47
|
-
params
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
RSpec.describe Blacklight::HeaderComponent, type: :component do
|
4
|
-
before do
|
5
|
-
with_controller_class(CatalogController) do
|
6
|
-
allow(controller).to receive(:current_user).and_return(nil)
|
7
|
-
allow(controller).to receive(:search_action_url).and_return('/search')
|
8
|
-
render
|
9
|
-
end
|
10
|
-
end
|
11
|
-
|
12
|
-
context 'with no slots' do
|
13
|
-
let(:render) { render_inline(described_class.new(blacklight_config: CatalogController.blacklight_config)) }
|
14
|
-
|
15
|
-
it 'draws the topbar' do
|
16
|
-
expect(page).to have_css 'nav.topbar'
|
17
|
-
expect(page).to have_link 'Blacklight', href: '/'
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
@@ -1,42 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require 'spec_helper'
|
4
|
-
|
5
|
-
RSpec.describe Blacklight::Icons::IconComponent, type: :component do
|
6
|
-
subject(:component) { sub_component.new }
|
7
|
-
|
8
|
-
let(:sub_component) do
|
9
|
-
Class.new(described_class) do
|
10
|
-
def self.name
|
11
|
-
'TestIconComponent'
|
12
|
-
end
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
context 'when no classes are passed in' do
|
17
|
-
subject(:component) { sub_component.new }
|
18
|
-
|
19
|
-
it "renders component" do
|
20
|
-
render_inline(component)
|
21
|
-
expect(page).to have_css "span[class='blacklight-icons blacklight-icons-test_icon']"
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
context 'when classes are passed in' do
|
26
|
-
subject(:component) { sub_component.new(classes: 'my-icon') }
|
27
|
-
|
28
|
-
it "renders component" do
|
29
|
-
render_inline(component)
|
30
|
-
expect(page).to have_css "span[class='my-icon blacklight-icons blacklight-icons-test_icon']"
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
context 'when name is passed in' do
|
35
|
-
subject(:component) { sub_component.new(name: 'my-icon') }
|
36
|
-
|
37
|
-
it "renders component" do
|
38
|
-
render_inline(component)
|
39
|
-
expect(page).to have_css "span[class='blacklight-icons blacklight-icons-my-icon']"
|
40
|
-
end
|
41
|
-
end
|
42
|
-
end
|