blacklight 7.43.1 → 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 +162 -374
- data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -1
- data/app/assets/javascripts/blacklight/blacklight.js +374 -488
- data/app/assets/javascripts/blacklight/blacklight.js.map +1 -1
- 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 -13
- 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 -8
- 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 -38
- 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/runtime_registry.rb +0 -24
- 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 +14 -39
- 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 +3 -5
- 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/application_controller_spec.rb +0 -23
- 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/document/dublin_core_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 -114
- 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 +68 -219
- 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/controller_runtime.rb +0 -42
- data/lib/blacklight/deprecations/engine_configuration.rb +0 -66
- data/lib/blacklight/deprecations/search_state_normalization.rb +0 -52
- data/lib/blacklight/log_subscriber.rb +0 -25
- 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/lib/blacklight/runtime_registry_spec.rb +0 -46
- 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
data/lib/blacklight.rb
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
|
+
|
|
2
3
|
require 'kaminari'
|
|
3
|
-
require '
|
|
4
|
+
require 'blacklight/open_struct_with_hash_access'
|
|
5
|
+
require 'blacklight/nested_open_struct_with_hash_access'
|
|
4
6
|
require 'jbuilder'
|
|
5
|
-
require "zeitwerk"
|
|
6
|
-
loader = Zeitwerk::Loader.for_gem
|
|
7
|
-
loader.ignore("#{__dir__}/generators")
|
|
8
|
-
loader.setup
|
|
9
7
|
|
|
10
8
|
module Blacklight
|
|
11
|
-
|
|
9
|
+
autoload :AbstractRepository, 'blacklight/abstract_repository'
|
|
10
|
+
autoload :Component, 'blacklight/component'
|
|
11
|
+
autoload :Configuration, 'blacklight/configuration'
|
|
12
|
+
autoload :Exceptions, 'blacklight/exceptions'
|
|
13
|
+
autoload :Parameters, 'blacklight/parameters'
|
|
14
|
+
autoload :Routes, 'blacklight/routes'
|
|
15
|
+
autoload :RuntimeRegistry, 'blacklight/runtime_registry'
|
|
16
|
+
autoload :SearchBuilder, 'blacklight/search_builder'
|
|
17
|
+
autoload :SearchState, 'blacklight/search_state'
|
|
18
|
+
autoload :Solr, 'blacklight/solr'
|
|
19
|
+
|
|
20
|
+
require 'blacklight/version'
|
|
12
21
|
require 'blacklight/engine' if defined?(Rails)
|
|
13
22
|
|
|
14
23
|
def self.blacklight_config_file
|
|
@@ -58,9 +67,6 @@ module Blacklight
|
|
|
58
67
|
|
|
59
68
|
def defaults_version
|
|
60
69
|
@defaults_version ||= blacklight_yml['load_defaults'] ||
|
|
61
|
-
# this config parameter was introduced in Blacklight 7.11, so to be safe,
|
|
62
|
-
# we pin any 7.x app to the 7.10 behavior
|
|
63
|
-
(Blacklight::VERSION.starts_with?('7') && '7.10.0') ||
|
|
64
70
|
Blacklight::VERSION
|
|
65
71
|
|
|
66
72
|
@defaults_version == 'latest' ? Blacklight::VERSION : @defaults_version
|
|
@@ -76,13 +82,17 @@ module Blacklight
|
|
|
76
82
|
end
|
|
77
83
|
|
|
78
84
|
begin
|
|
79
|
-
blacklight_erb = ERB.new(
|
|
85
|
+
blacklight_erb = ERB.new(File.read(blacklight_config_file)).result(binding)
|
|
80
86
|
rescue StandardError, SyntaxError => e
|
|
81
87
|
raise("#{blacklight_config_file} was found, but could not be parsed with ERB. \n#{e.inspect}")
|
|
82
88
|
end
|
|
83
89
|
|
|
84
90
|
begin
|
|
85
|
-
@blacklight_yml =
|
|
91
|
+
@blacklight_yml = if RUBY_VERSION > '2.6'
|
|
92
|
+
YAML.safe_load(blacklight_erb, aliases: true)
|
|
93
|
+
else
|
|
94
|
+
YAML.safe_load(blacklight_erb, [], [], true)
|
|
95
|
+
end
|
|
86
96
|
rescue => e
|
|
87
97
|
raise("#{blacklight_config_file} was found, but could not be parsed.\n#{e.inspect}")
|
|
88
98
|
end
|
|
@@ -99,9 +109,7 @@ module Blacklight
|
|
|
99
109
|
end
|
|
100
110
|
|
|
101
111
|
def self.logger
|
|
102
|
-
@logger ||=
|
|
103
|
-
::Rails.logger if defined? Rails && Rails.respond_to?(:logger)
|
|
104
|
-
end
|
|
112
|
+
@logger ||= (::Rails.logger if defined? Rails && Rails.respond_to?(:logger))
|
|
105
113
|
end
|
|
106
114
|
|
|
107
115
|
def self.logger= logger
|
|
@@ -120,4 +128,8 @@ module Blacklight
|
|
|
120
128
|
def self.root
|
|
121
129
|
@root ||= File.expand_path(File.dirname(File.dirname(__FILE__)))
|
|
122
130
|
end
|
|
131
|
+
|
|
132
|
+
def self.deprecation
|
|
133
|
+
@deprecation ||= ActiveSupport::Deprecation.new('9.0', 'Blacklight')
|
|
134
|
+
end
|
|
123
135
|
end
|
|
@@ -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__)
|
|
@@ -11,10 +12,7 @@ module Blacklight
|
|
|
11
12
|
class_option :devise, type: :boolean, default: false, aliases: "-d", desc: "Use Devise as authentication logic."
|
|
12
13
|
class_option :marc, type: :boolean, default: false, aliases: "-m", desc: "Generate MARC-based demo."
|
|
13
14
|
class_option :'bootstrap-version', type: :string, default: nil, desc: "Set the generated app's bootstrap version"
|
|
14
|
-
|
|
15
|
-
# Jsbundling is defined instead. Should only effect the generator, but this
|
|
16
|
-
# is the setup blacklight_range_limit relies on.
|
|
17
|
-
class_option :'skip-assets', type: :boolean, default: !defined?(Sprockets) && !defined?(Jsbundling).nil?, desc: "Skip generating javascript and css assets into the application"
|
|
15
|
+
class_option :'skip-assets', type: :boolean, default: false, desc: "Skip generating javascript and css assets into the application"
|
|
18
16
|
class_option :'skip-solr', type: :boolean, default: false, desc: "Skip generating solr configurations."
|
|
19
17
|
|
|
20
18
|
desc <<-EOS
|
|
@@ -87,7 +85,7 @@ module Blacklight
|
|
|
87
85
|
return unless options[:marc]
|
|
88
86
|
|
|
89
87
|
blacklight_marc = String.new('blacklight-marc')
|
|
90
|
-
gem blacklight_marc, '
|
|
88
|
+
gem blacklight_marc, '~> 8.0'
|
|
91
89
|
|
|
92
90
|
bundle_install
|
|
93
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
|