blacklight 7.42.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 +244 -15
- data/.rubocop_todo.yml +137 -429
- data/.solr_wrapper.yml +1 -3
- 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 +1 -1
- 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 +7 -6
- 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 +3 -2
- 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 -29
- 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 +8 -9
- data/lib/generators/blacklight/assets/propshaft_generator.rb +2 -11
- data/lib/generators/blacklight/assets/sprockets_generator.rb +17 -51
- data/lib/generators/blacklight/assets_generator.rb +11 -7
- 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 +2 -1
- 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 +6 -71
- 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 -386
- 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 +8 -1
- 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 +73 -189
- data/.babelrc +0 -11
- data/.github/matrix.json +0 -71
- 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 -52
- 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
|
@@ -14,15 +14,10 @@ module Blacklight
|
|
|
14
14
|
def import_javascript_assets
|
|
15
15
|
append_to_file 'config/importmap.rb' do
|
|
16
16
|
<<~CONTENT
|
|
17
|
-
pin "@github/auto-complete-element", to: "https://cdn.skypack.dev/@github/auto-complete-element"
|
|
18
17
|
pin "@popperjs/core", to: "https://ga.jspm.io/npm:@popperjs/core@2.11.6/dist/umd/popper.min.js"
|
|
19
18
|
pin "bootstrap", to: "https://ga.jspm.io/npm:bootstrap@#{(defined?(Bootstrap) && Bootstrap::VERSION) || '5.2.2'}/dist/js/bootstrap.js"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
append_to_file 'app/assets/config/manifest.js' do
|
|
24
|
-
<<~CONTENT
|
|
25
|
-
//= link blacklight/manifest.js
|
|
19
|
+
pin "blacklight", to: "blacklight/blacklight.js"
|
|
20
|
+
pin "dialog-polyfill", to: "https://ga.jspm.io/npm:dialog-polyfill@0.5.6/dist/dialog-polyfill.js"
|
|
26
21
|
CONTENT
|
|
27
22
|
end
|
|
28
23
|
end
|
|
@@ -31,8 +26,12 @@ module Blacklight
|
|
|
31
26
|
append_to_file 'app/javascript/application.js' do
|
|
32
27
|
<<~CONTENT
|
|
33
28
|
import bootstrap from "bootstrap"
|
|
34
|
-
import
|
|
35
|
-
import
|
|
29
|
+
import "blacklight"
|
|
30
|
+
import dialogPolyfill from "dialog-polyfill"
|
|
31
|
+
Blacklight.onLoad(() => {
|
|
32
|
+
const dialog = document.querySelector('dialog')
|
|
33
|
+
dialogPolyfill.registerDialog(dialog)
|
|
34
|
+
})
|
|
36
35
|
CONTENT
|
|
37
36
|
end
|
|
38
37
|
end
|
|
@@ -4,15 +4,7 @@ module Blacklight
|
|
|
4
4
|
module Assets
|
|
5
5
|
class PropshaftGenerator < Rails::Generators::Base
|
|
6
6
|
def add_package
|
|
7
|
-
|
|
8
|
-
run "yarn add blacklight-frontend:#{Blacklight::Engine.root}"
|
|
9
|
-
else
|
|
10
|
-
run 'yarn add blacklight-frontend'
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
14
|
-
def add_third_party_packages
|
|
15
|
-
run 'yarn add @github/auto-complete-element'
|
|
7
|
+
run 'yarn add blacklight-frontend'
|
|
16
8
|
end
|
|
17
9
|
|
|
18
10
|
def add_package_assets
|
|
@@ -24,8 +16,7 @@ module Blacklight
|
|
|
24
16
|
|
|
25
17
|
append_to_file 'app/javascript/application.js' do
|
|
26
18
|
<<~CONTENT
|
|
27
|
-
import Blacklight from "blacklight-frontend";
|
|
28
|
-
import githubAutoCompleteElement from "@github/auto-complete-element";
|
|
19
|
+
import Blacklight from "blacklight-frontend/app/assets/javascripts/blacklight/blacklight.esm";
|
|
29
20
|
CONTENT
|
|
30
21
|
end
|
|
31
22
|
end
|
|
@@ -3,46 +3,25 @@
|
|
|
3
3
|
module Blacklight
|
|
4
4
|
module Assets
|
|
5
5
|
class SprocketsGenerator < Rails::Generators::Base
|
|
6
|
-
class_option :'bootstrap-version', type: :string, default: ENV.fetch('BOOTSTRAP_VERSION', '~>
|
|
7
|
-
|
|
8
|
-
def replace_propshaft_with_sprockets
|
|
9
|
-
return if defined?(Sprockets)
|
|
10
|
-
|
|
11
|
-
# Rails 8+ defaults to Propshaft, but Blacklight 7.x JS requires Sprockets
|
|
12
|
-
gsub_file 'Gemfile', /^gem ['"]propshaft['"].*$/, '# \0'
|
|
13
|
-
gem 'sprockets-rails'
|
|
14
|
-
end
|
|
6
|
+
class_option :'bootstrap-version', type: :string, default: ENV.fetch('BOOTSTRAP_VERSION', '~> 5.1'), desc: "Set the generated app's bootstrap version"
|
|
15
7
|
|
|
8
|
+
# This could be skipped if you want to use webpacker
|
|
16
9
|
def add_javascript_dependencies
|
|
17
10
|
gem 'bootstrap', options[:'bootstrap-version'].presence
|
|
18
|
-
gem 'jquery-rails'
|
|
19
|
-
gem 'twitter-typeahead-rails', '0.11.1.pre.corejavascript'
|
|
11
|
+
gem 'jquery-rails' if bootstrap_4? # Bootstrap 4 has a dependency on jquery
|
|
20
12
|
end
|
|
21
13
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
##
|
|
15
|
+
# Remove the empty generated app/assets/images directory. Without doing this,
|
|
16
|
+
# the default Sprockets 4 manifest will raise an exception.
|
|
17
|
+
def appease_sprockets4
|
|
18
|
+
return if Rails.version > '7' || Sprockets::VERSION < '4'
|
|
25
19
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
# Rails 8+ with Propshaft replaced: create Sprockets config from scratch
|
|
29
|
-
directory = File.expand_path('app/assets/config', destination_root)
|
|
30
|
-
FileUtils.mkdir_p(directory)
|
|
31
|
-
create_file 'app/assets/config/manifest.js' do
|
|
32
|
-
<<~CONTENT
|
|
33
|
-
//= link_tree ../images
|
|
34
|
-
//= link_directory ../stylesheets .css
|
|
35
|
-
//= link application.js
|
|
36
|
-
CONTENT
|
|
37
|
-
end
|
|
38
|
-
empty_directory 'app/assets/images'
|
|
39
|
-
elsif defined?(Sprockets::VERSION) && Sprockets::VERSION >= '4'
|
|
40
|
-
append_to_file 'app/assets/config/manifest.js', "\n//= link application.js"
|
|
41
|
-
empty_directory 'app/assets/images'
|
|
42
|
-
end
|
|
20
|
+
append_to_file 'app/assets/config/manifest.js', "\n//= link application.js"
|
|
21
|
+
empty_directory 'app/assets/images'
|
|
43
22
|
end
|
|
44
23
|
|
|
45
|
-
def assets
|
|
24
|
+
def assets
|
|
46
25
|
create_file 'app/assets/stylesheets/blacklight.scss' do
|
|
47
26
|
<<~CONTENT
|
|
48
27
|
@import 'bootstrap';
|
|
@@ -50,42 +29,29 @@ module Blacklight
|
|
|
50
29
|
CONTENT
|
|
51
30
|
end
|
|
52
31
|
|
|
53
|
-
|
|
54
|
-
application_css = File.expand_path('app/assets/stylesheets/application.css', destination_root)
|
|
55
|
-
if File.exist?(application_css)
|
|
56
|
-
content = File.read(application_css)
|
|
57
|
-
unless content.include?('require blacklight')
|
|
58
|
-
create_file 'app/assets/stylesheets/application.css', force: true do
|
|
59
|
-
<<~CONTENT
|
|
60
|
-
/*
|
|
61
|
-
*= require blacklight
|
|
62
|
-
*= require_self
|
|
63
|
-
*/
|
|
64
|
-
CONTENT
|
|
65
|
-
end
|
|
66
|
-
end
|
|
67
|
-
end
|
|
32
|
+
gem "sassc-rails", "~> 2.1" if Rails.version > '7'
|
|
68
33
|
|
|
69
34
|
# Ensure this method is idempotent
|
|
70
35
|
return if has_blacklight_assets?
|
|
71
36
|
|
|
72
37
|
create_file 'app/assets/javascripts/application.js' do
|
|
73
38
|
<<~CONTENT
|
|
74
|
-
//= require jquery3
|
|
75
39
|
//= require rails-ujs
|
|
40
|
+
#{'//= require jquery3' if bootstrap_4?}
|
|
76
41
|
|
|
77
42
|
// Required by Blacklight
|
|
78
43
|
//= require popper
|
|
79
|
-
// Twitter Typeahead for autocomplete
|
|
80
|
-
//= require twitter/typeahead
|
|
81
44
|
//= require bootstrap
|
|
82
|
-
//= require blacklight/blacklight
|
|
83
45
|
CONTENT
|
|
84
46
|
end
|
|
85
47
|
end
|
|
86
48
|
|
|
87
49
|
private
|
|
88
50
|
|
|
51
|
+
def bootstrap_4?
|
|
52
|
+
options[:'bootstrap-version'].match?(/\A[^0-9]*4\./)
|
|
53
|
+
end
|
|
54
|
+
|
|
89
55
|
def has_blacklight_assets?
|
|
90
56
|
application_js.include?('blacklight/blacklight')
|
|
91
57
|
end
|
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require 'shellwords'
|
|
4
|
-
|
|
5
3
|
module Blacklight
|
|
6
4
|
class AssetsGenerator < Rails::Generators::Base
|
|
7
|
-
class_option :'bootstrap-version', type: :string, default: ENV.fetch('BOOTSTRAP_VERSION', '~>
|
|
5
|
+
class_option :'bootstrap-version', type: :string, default: ENV.fetch('BOOTSTRAP_VERSION', '~> 5.1'), desc: "Set the generated app's bootstrap version"
|
|
8
6
|
|
|
9
7
|
def run_asset_pipeline_specific_generator
|
|
10
|
-
generated_options = "--bootstrap-version='#{
|
|
8
|
+
generated_options = "--bootstrap-version='#{options[:'bootstrap-version']}'" if options[:'bootstrap-version']
|
|
9
|
+
|
|
10
|
+
generator = if defined?(Propshaft)
|
|
11
|
+
'blacklight:assets:propshaft'
|
|
12
|
+
elsif defined?(Importmap)
|
|
13
|
+
'blacklight:assets:importmap'
|
|
14
|
+
elsif defined?(Sprockets)
|
|
15
|
+
'blacklight:assets:sprockets'
|
|
16
|
+
end
|
|
11
17
|
|
|
12
|
-
|
|
13
|
-
# so we always use the sprockets generator regardless of what Rails defaulted to.
|
|
14
|
-
generate 'blacklight:assets:sprockets', generated_options
|
|
18
|
+
generate generator, generated_options if generator
|
|
15
19
|
end
|
|
16
20
|
end
|
|
17
21
|
end
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
|
|
2
3
|
module Blacklight
|
|
3
4
|
class ControllerGenerator < Rails::Generators::Base
|
|
4
5
|
source_root File.expand_path('../templates', __FILE__)
|
|
@@ -16,8 +17,8 @@ module Blacklight
|
|
|
16
17
|
def inject_blacklight_controller_behavior
|
|
17
18
|
inject_into_class "app/controllers/application_controller.rb", "ApplicationController" do
|
|
18
19
|
" # Adds a few additional behaviors into the application controller\n" \
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
" include Blacklight::Controller\n" \
|
|
21
|
+
" layout :determine_layout if respond_to? :layout\n\n"
|
|
21
22
|
end
|
|
22
23
|
end
|
|
23
24
|
|
|
@@ -30,7 +31,7 @@ module Blacklight
|
|
|
30
31
|
route <<-EOF
|
|
31
32
|
concern :searchable, Blacklight::Routes::Searchable.new
|
|
32
33
|
|
|
33
|
-
resource :catalog, only: [], as: 'catalog', path: '/catalog', controller: 'catalog' do
|
|
34
|
+
resource :catalog, only: [:index], as: 'catalog', path: '/catalog', controller: 'catalog' do
|
|
34
35
|
concerns :searchable
|
|
35
36
|
end
|
|
36
37
|
EOF
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
|
|
2
3
|
module Blacklight
|
|
3
4
|
class Install < Rails::Generators::Base
|
|
4
5
|
source_root File.expand_path('../templates', __FILE__)
|
|
@@ -84,7 +85,7 @@ module Blacklight
|
|
|
84
85
|
return unless options[:marc]
|
|
85
86
|
|
|
86
87
|
blacklight_marc = String.new('blacklight-marc')
|
|
87
|
-
gem blacklight_marc, '
|
|
88
|
+
gem blacklight_marc, '~> 8.0'
|
|
88
89
|
|
|
89
90
|
bundle_install
|
|
90
91
|
|
|
@@ -5,7 +5,16 @@ class <%= controller_name.classify %>Controller < ApplicationController
|
|
|
5
5
|
|
|
6
6
|
include Blacklight::Catalog
|
|
7
7
|
|
|
8
|
+
# If you'd like to handle errors returned by Solr in a certain way,
|
|
9
|
+
# you can use Rails rescue_from with a method you define in this controller,
|
|
10
|
+
# uncomment:
|
|
11
|
+
#
|
|
12
|
+
# rescue_from Blacklight::Exceptions::InvalidRequest, with: :my_handling_method
|
|
13
|
+
|
|
8
14
|
configure_blacklight do |config|
|
|
15
|
+
## Specify the style of markup to be generated (may be 4 or 5)
|
|
16
|
+
# config.bootstrap_version = 5
|
|
17
|
+
#
|
|
9
18
|
## Class for sending and receiving requests from a search index
|
|
10
19
|
# config.repository_class = Blacklight::Solr::Repository
|
|
11
20
|
#
|
|
@@ -29,23 +38,32 @@ class <%= controller_name.classify %>Controller < ApplicationController
|
|
|
29
38
|
# solr path which will be added to solr base url before the other solr params.
|
|
30
39
|
#config.solr_path = 'select'
|
|
31
40
|
#config.document_solr_path = 'get'
|
|
32
|
-
#config.json_solr_path = 'advanced'
|
|
33
41
|
|
|
34
42
|
# items to show per page, each number in the array represent another option to choose from.
|
|
35
43
|
#config.per_page = [10,20,50,100]
|
|
36
44
|
|
|
37
45
|
# solr field configuration for search results/index views
|
|
38
46
|
config.index.title_field = 'title_tsim'
|
|
39
|
-
#config.index.display_type_field = 'format'
|
|
40
|
-
#config.index.thumbnail_field = 'thumbnail_path_ss'
|
|
47
|
+
# config.index.display_type_field = 'format'
|
|
48
|
+
# config.index.thumbnail_field = 'thumbnail_path_ss'
|
|
49
|
+
|
|
50
|
+
# The presenter is the view-model class for the page
|
|
51
|
+
# config.index.document_presenter_class = MyApp::IndexPresenter
|
|
41
52
|
|
|
42
|
-
|
|
53
|
+
# Some components can be configured
|
|
54
|
+
# config.index.document_component = MyApp::SearchResultComponent
|
|
55
|
+
# config.index.constraints_component = MyApp::ConstraintsComponent
|
|
56
|
+
# config.index.search_bar_component = MyApp::SearchBarComponent
|
|
57
|
+
# config.index.search_header_component = MyApp::SearchHeaderComponent
|
|
58
|
+
# config.index.document_actions.delete(:bookmark)
|
|
59
|
+
|
|
60
|
+
config.add_results_document_tool(:bookmark, component: Blacklight::Document::BookmarkComponent, if: :render_bookmarks_control?)
|
|
43
61
|
|
|
44
62
|
config.add_results_collection_tool(:sort_widget)
|
|
45
63
|
config.add_results_collection_tool(:per_page_widget)
|
|
46
64
|
config.add_results_collection_tool(:view_type_group)
|
|
47
65
|
|
|
48
|
-
config.add_show_tools_partial(:bookmark,
|
|
66
|
+
config.add_show_tools_partial(:bookmark, component: Blacklight::Document::BookmarkComponent, if: :render_bookmarks_control?)
|
|
49
67
|
config.add_show_tools_partial(:email, callback: :email_action, validator: :validate_email_params)
|
|
50
68
|
config.add_show_tools_partial(:sms, if: :render_sms_action?, callback: :sms_action, validator: :validate_sms_params)
|
|
51
69
|
config.add_show_tools_partial(:citation)
|
|
@@ -54,9 +72,17 @@ class <%= controller_name.classify %>Controller < ApplicationController
|
|
|
54
72
|
config.add_nav_action(:search_history, partial: 'blacklight/nav/search_history')
|
|
55
73
|
|
|
56
74
|
# solr field configuration for document/show views
|
|
57
|
-
#config.show.title_field = 'title_tsim'
|
|
58
|
-
#config.show.display_type_field = 'format'
|
|
59
|
-
#config.show.thumbnail_field = 'thumbnail_path_ss'
|
|
75
|
+
# config.show.title_field = 'title_tsim'
|
|
76
|
+
# config.show.display_type_field = 'format'
|
|
77
|
+
# config.show.thumbnail_field = 'thumbnail_path_ss'
|
|
78
|
+
#
|
|
79
|
+
# The presenter is a view-model class for the page
|
|
80
|
+
# config.show.document_presenter_class = MyApp::ShowPresenter
|
|
81
|
+
#
|
|
82
|
+
# These components can be configured
|
|
83
|
+
# config.show.document_component = MyApp::DocumentComponent
|
|
84
|
+
# config.show.sidebar_component = MyApp::SidebarComponent
|
|
85
|
+
# config.show.embed_component = MyApp::EmbedComponent
|
|
60
86
|
|
|
61
87
|
# solr fields that will be treated as facets by the blacklight application
|
|
62
88
|
# The ordering of the field names is the order of the display
|
|
@@ -16,14 +16,14 @@
|
|
|
16
16
|
</updateLog>
|
|
17
17
|
</updateHandler>
|
|
18
18
|
|
|
19
|
-
<!-- solr lib dirs
|
|
19
|
+
<!-- solr lib dirs -->
|
|
20
20
|
<lib dir="${solr.install.dir:../../../..}/modules/analysis-extras/lib" />
|
|
21
21
|
<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lib" />
|
|
22
22
|
<lib dir="${solr.install.dir:../../../..}/contrib/analysis-extras/lucene-libs" />
|
|
23
23
|
|
|
24
24
|
<dataDir>${solr.data.dir:}</dataDir>
|
|
25
25
|
|
|
26
|
-
<requestHandler name="
|
|
26
|
+
<requestHandler name="search" class="solr.SearchHandler" default="true">
|
|
27
27
|
<!-- default values for query parameters can be specified, these
|
|
28
28
|
will be overridden by parameters in the request
|
|
29
29
|
-->
|
|
@@ -47,6 +47,7 @@
|
|
|
47
47
|
full_title_tsim
|
|
48
48
|
short_title_tsim
|
|
49
49
|
alternative_title_tsim
|
|
50
|
+
active_fedora_model_ssi
|
|
50
51
|
title_tsim
|
|
51
52
|
author_tsim
|
|
52
53
|
subject_tsim
|
|
@@ -83,73 +84,7 @@
|
|
|
83
84
|
<str name="facet">true</str>
|
|
84
85
|
<str name="facet.mincount">1</str>
|
|
85
86
|
<str name="facet.limit">10</str>
|
|
86
|
-
<str name="facet.field">
|
|
87
|
-
|
|
88
|
-
<str name="spellcheck">true</str>
|
|
89
|
-
<str name="spellcheck.dictionary">default</str>
|
|
90
|
-
<str name="spellcheck.onlyMorePopular">true</str>
|
|
91
|
-
<str name="spellcheck.extendedResults">true</str>
|
|
92
|
-
<str name="spellcheck.collate">false</str>
|
|
93
|
-
<str name="spellcheck.count">5</str>
|
|
94
|
-
|
|
95
|
-
</lst>
|
|
96
|
-
<arr name="last-components">
|
|
97
|
-
<str>spellcheck</str>
|
|
98
|
-
</arr>
|
|
99
|
-
</requestHandler>
|
|
100
|
-
|
|
101
|
-
<requestHandler name="/advanced" class="solr.SearchHandler">
|
|
102
|
-
<!-- a lucene request handler for using the JSON Query DSL,
|
|
103
|
-
specifically for advanced search.
|
|
104
|
-
Using a separate requestHandler is a workaround to
|
|
105
|
-
https://issues.apache.org/jira/browse/SOLR-16916, although
|
|
106
|
-
it could be desirable for other reasons as well.
|
|
107
|
-
-->
|
|
108
|
-
<lst name="defaults">
|
|
109
|
-
<str name="defType">lucene</str>
|
|
110
|
-
<str name="echoParams">explicit</str>
|
|
111
|
-
<str name="df">title_tsim</str>
|
|
112
|
-
<str name="qf">
|
|
113
|
-
id
|
|
114
|
-
full_title_tsim
|
|
115
|
-
short_title_tsim
|
|
116
|
-
alternative_title_tsim
|
|
117
|
-
title_tsim
|
|
118
|
-
author_tsim
|
|
119
|
-
subject_tsim
|
|
120
|
-
all_text_timv
|
|
121
|
-
</str>
|
|
122
|
-
<str name="pf">
|
|
123
|
-
all_text_timv^10
|
|
124
|
-
</str>
|
|
125
|
-
|
|
126
|
-
<str name="author_qf">
|
|
127
|
-
author_tsim
|
|
128
|
-
</str>
|
|
129
|
-
<str name="author_pf">
|
|
130
|
-
</str>
|
|
131
|
-
<str name="title_qf">
|
|
132
|
-
title_tsim
|
|
133
|
-
full_title_tsim
|
|
134
|
-
short_title_tsim
|
|
135
|
-
alternative_title_tsim
|
|
136
|
-
</str>
|
|
137
|
-
<str name="title_pf">
|
|
138
|
-
</str>
|
|
139
|
-
<str name="subject_qf">
|
|
140
|
-
subject_tsim
|
|
141
|
-
</str>
|
|
142
|
-
<str name="subject_pf">
|
|
143
|
-
</str>
|
|
144
|
-
|
|
145
|
-
<str name="fl">
|
|
146
|
-
*,
|
|
147
|
-
score
|
|
148
|
-
</str>
|
|
149
|
-
|
|
150
|
-
<str name="facet">true</str>
|
|
151
|
-
<str name="facet.mincount">1</str>
|
|
152
|
-
<str name="facet.limit">10</str>
|
|
87
|
+
<str name="facet.field">active_fedora_model_ssi</str>
|
|
153
88
|
<str name="facet.field">subject_ssim</str>
|
|
154
89
|
|
|
155
90
|
<str name="spellcheck">true</str>
|
|
@@ -253,8 +188,8 @@
|
|
|
253
188
|
|
|
254
189
|
<requestHandler name="/replication" class="solr.ReplicationHandler" startup="lazy" />
|
|
255
190
|
|
|
256
|
-
<requestDispatcher>
|
|
257
|
-
<requestParsers multipartUploadLimitInKB="2048" />
|
|
191
|
+
<requestDispatcher handleSelect="true" >
|
|
192
|
+
<requestParsers enableRemoteStreaming="true" multipartUploadLimitInKB="2048" />
|
|
258
193
|
</requestDispatcher>
|
|
259
194
|
|
|
260
195
|
<requestHandler name="/analysis/field" startup="lazy" class="solr.FieldAnalysisRequestHandler" />
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
|
|
2
3
|
# Copy Blacklight test support material in place
|
|
3
4
|
|
|
4
5
|
# Need the requires here so we can call the generator from environment.rb
|
|
@@ -17,7 +18,7 @@ module Blacklight
|
|
|
17
18
|
copy_file "alternate_controller.rb", "app/controllers/alternate_controller.rb"
|
|
18
19
|
|
|
19
20
|
routing_code = <<-EOF
|
|
20
|
-
resource :alternate, controller: 'alternate', only: [] do
|
|
21
|
+
resource :alternate, controller: 'alternate', only: [:index] do
|
|
21
22
|
concerns :searchable
|
|
22
23
|
end
|
|
23
24
|
EOF
|
|
@@ -41,9 +42,10 @@ module Blacklight
|
|
|
41
42
|
end
|
|
42
43
|
|
|
43
44
|
def configure_action_mailer
|
|
44
|
-
insert_into_file "config/environments/test.rb", after: "config.action_mailer.delivery_method = :test\n" do
|
|
45
|
+
insert_into_file "config/environments/test.rb", after: "config.action_mailer.delivery_method = :test\n" do
|
|
46
|
+
<<-EOF
|
|
45
47
|
config.action_mailer.default_options = {from: 'no-reply@example.org'}
|
|
46
|
-
|
|
48
|
+
EOF
|
|
47
49
|
end
|
|
48
50
|
end
|
|
49
51
|
end
|
|
@@ -25,7 +25,7 @@ module Blacklight
|
|
|
25
25
|
gem "devise-guests", "~> 0.8"
|
|
26
26
|
|
|
27
27
|
inside destination_root do
|
|
28
|
-
Bundler.
|
|
28
|
+
Bundler.with_unbundled_env do
|
|
29
29
|
run "bundle install"
|
|
30
30
|
end
|
|
31
31
|
end
|
|
@@ -36,12 +36,10 @@ module Blacklight
|
|
|
36
36
|
|
|
37
37
|
# add the #to_s to the model.
|
|
38
38
|
insert_into_file("app/models/#{model_name}.rb", before: /end(\n| )*$/) do
|
|
39
|
-
"\n #
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
" email\n" \
|
|
44
|
-
" end\n"
|
|
39
|
+
"\n # Configuration added by Blacklight; Blacklight::User uses a method key on your\n" \
|
|
40
|
+
" # user class to get a user-displayable login/identifier for\n" \
|
|
41
|
+
" # the account.\n" \
|
|
42
|
+
" self.string_display_key ||= :email\n"
|
|
45
43
|
end
|
|
46
44
|
gsub_file("config/initializers/devise.rb", "config.sign_out_via = :delete", "config.sign_out_via = :get")
|
|
47
45
|
end
|
|
@@ -52,10 +50,10 @@ module Blacklight
|
|
|
52
50
|
if File.exist?(File.expand_path(file_path, destination_root))
|
|
53
51
|
inject_into_class file_path, model_name.classify do
|
|
54
52
|
"\n # Connects this user object to Blacklights Bookmarks." \
|
|
55
|
-
|
|
53
|
+
"\n include Blacklight::User\n"
|
|
56
54
|
end
|
|
57
55
|
else
|
|
58
|
-
say_status "warning",
|
|
56
|
+
say_status "warning", <<~EOS, :yellow
|
|
59
57
|
Blacklight authenticated user functionality not installed, as a user model
|
|
60
58
|
could not be found at /app/models/user.rb. If you used a different name,
|
|
61
59
|
please re-run the migration and provide that name as an argument. E.g.:
|
|
@@ -19,9 +19,8 @@ namespace :blacklight do
|
|
|
19
19
|
task seed: [:environment] do
|
|
20
20
|
require 'yaml'
|
|
21
21
|
|
|
22
|
-
app_file = Rails.root && Rails.root
|
|
23
|
-
file = ENV
|
|
24
|
-
(app_file && File.exist?(app_file) && app_file) ||
|
|
22
|
+
app_file = Rails.root && "#{Rails.root}spec/fixtures/sample_solr_documents.yml"
|
|
23
|
+
file = ENV.fetch('FILE') { (app_file && File.exist?(app_file) && app_file) } ||
|
|
25
24
|
File.join(Blacklight.root, 'spec', 'fixtures', 'sample_solr_documents.yml')
|
|
26
25
|
docs = YAML.safe_load(File.open(file))
|
|
27
26
|
conn = Blacklight.default_index.connection
|
|
@@ -41,7 +40,7 @@ namespace :blacklight do
|
|
|
41
40
|
exit 1
|
|
42
41
|
end
|
|
43
42
|
rescue => e
|
|
44
|
-
puts e
|
|
43
|
+
puts e.to_s
|
|
45
44
|
exit 1
|
|
46
45
|
end
|
|
47
46
|
|
|
@@ -71,7 +70,7 @@ namespace :blacklight do
|
|
|
71
70
|
end
|
|
72
71
|
rescue => e
|
|
73
72
|
errors += 1
|
|
74
|
-
puts e
|
|
73
|
+
puts e.to_s
|
|
75
74
|
end
|
|
76
75
|
|
|
77
76
|
print " - search_results: "
|
|
@@ -93,7 +92,7 @@ namespace :blacklight do
|
|
|
93
92
|
end
|
|
94
93
|
rescue => e
|
|
95
94
|
errors += 1
|
|
96
|
-
puts e
|
|
95
|
+
puts e.to_s
|
|
97
96
|
end
|
|
98
97
|
|
|
99
98
|
print " - fetch: "
|
|
@@ -113,7 +112,7 @@ namespace :blacklight do
|
|
|
113
112
|
end
|
|
114
113
|
rescue => e
|
|
115
114
|
errors += 1
|
|
116
|
-
puts e
|
|
115
|
+
puts e.to_s
|
|
117
116
|
end
|
|
118
117
|
|
|
119
118
|
exit 1 if errors > 0
|
data/package.json
CHANGED
|
@@ -1,18 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "blacklight-frontend",
|
|
3
|
-
"version": "
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "8.0.0-beta.1",
|
|
4
|
+
"description": "[](https://travis-ci.com/projectblacklight/blacklight) [](http://badge.fury.io/rb/blacklight) [](https://coveralls.io/github/projectblacklight/blacklight?branch=main)",
|
|
5
5
|
"main": "app/assets/javascripts/blacklight",
|
|
6
6
|
"scripts": {
|
|
7
|
-
"js-compile-bundle": "
|
|
7
|
+
"js-compile-bundle": "rollup --config rollup.config.js --sourcemap && ESM=true rollup --config rollup.config.js --sourcemap"
|
|
8
8
|
},
|
|
9
9
|
"repository": {
|
|
10
10
|
"type": "git",
|
|
11
11
|
"url": "git+https://github.com/projectblacklight/blacklight.git"
|
|
12
12
|
},
|
|
13
13
|
"files": [
|
|
14
|
-
"app/assets"
|
|
15
|
-
"app/javascript"
|
|
14
|
+
"app/assets"
|
|
16
15
|
],
|
|
17
16
|
"author": "",
|
|
18
17
|
"license": "Apache-2.0",
|
|
@@ -21,15 +20,13 @@
|
|
|
21
20
|
},
|
|
22
21
|
"homepage": "https://github.com/projectblacklight/blacklight#readme",
|
|
23
22
|
"devDependencies": {
|
|
24
|
-
"
|
|
25
|
-
"@babel/core": "^7.2.3",
|
|
26
|
-
"@babel/preset-env": "^7.16.0",
|
|
27
|
-
"shx": "^0.3.2"
|
|
23
|
+
"rollup": "^2.60.0"
|
|
28
24
|
},
|
|
29
|
-
"browserslist":
|
|
25
|
+
"browserslist": [
|
|
26
|
+
"defaults",
|
|
27
|
+
"not IE 11"
|
|
28
|
+
],
|
|
30
29
|
"dependencies": {
|
|
31
|
-
"bootstrap": ">=4.3.1 <6.0.0"
|
|
32
|
-
"jquery": "^3.5.1",
|
|
33
|
-
"typeahead.js": "^0.11.1"
|
|
30
|
+
"bootstrap": ">=4.3.1 <6.0.0"
|
|
34
31
|
}
|
|
35
32
|
}
|
data/rollup.config.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
'use strict'
|
|
2
|
+
|
|
3
|
+
const path = require('path')
|
|
4
|
+
|
|
5
|
+
const BUNDLE = process.env.BUNDLE === 'true'
|
|
6
|
+
const ESM = process.env.ESM === 'true'
|
|
7
|
+
|
|
8
|
+
const fileDest = `blacklight${ESM ? '.esm' : ''}`
|
|
9
|
+
const external = []
|
|
10
|
+
const globals = {}
|
|
11
|
+
|
|
12
|
+
const rollupConfig = {
|
|
13
|
+
input: path.resolve(__dirname, `app/javascript/blacklight/index.js`),
|
|
14
|
+
output: {
|
|
15
|
+
file: path.resolve(__dirname, `app/assets/javascripts/blacklight/${fileDest}.js`),
|
|
16
|
+
format: ESM ? 'esm' : 'umd',
|
|
17
|
+
globals,
|
|
18
|
+
generatedCode: 'es2015'
|
|
19
|
+
},
|
|
20
|
+
external
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
if (!ESM) {
|
|
24
|
+
rollupConfig.output.name = 'Blacklight'
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
module.exports = rollupConfig
|