blacklight 7.41.0 → 8.0.0.beta1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.env +2 -3
- data/.github/workflows/ruby.yml +81 -0
- data/.rubocop.yml +243 -14
- data/.rubocop_todo.yml +137 -429
- data/Gemfile +11 -6
- data/README.md +11 -3
- data/VERSION +1 -1
- data/app/assets/javascripts/blacklight/blacklight.esm.js +384 -0
- data/app/assets/javascripts/blacklight/blacklight.esm.js.map +1 -0
- data/app/assets/javascripts/blacklight/blacklight.js +374 -493
- data/app/assets/javascripts/blacklight/blacklight.js.map +1 -0
- data/app/assets/stylesheets/blacklight/_autocomplete.scss +25 -0
- data/app/assets/stylesheets/blacklight/_blacklight_base.scss +1 -1
- data/app/assets/stylesheets/blacklight/_bookmark.scss +16 -0
- data/app/assets/stylesheets/blacklight/_bootstrap_overrides.scss +8 -0
- data/app/assets/stylesheets/blacklight/_constraints.scss +4 -4
- data/app/assets/stylesheets/blacklight/_facets.scss +72 -44
- data/app/assets/stylesheets/blacklight/_header.scss +0 -15
- data/app/assets/stylesheets/blacklight/_icons.scss +0 -14
- data/app/assets/stylesheets/blacklight/_mixins.scss +20 -0
- data/app/assets/stylesheets/blacklight/_modal.scss +8 -2
- data/app/assets/stylesheets/blacklight/_search_form.scss +30 -3
- data/app/assets/stylesheets/blacklight/_search_history.scss +10 -1
- data/app/assets/stylesheets/blacklight/_search_results.scss +6 -2
- data/app/assets/stylesheets/blacklight/blacklight_defaults.scss +4 -1
- data/app/builders/blacklight/action_builder.rb +18 -9
- data/app/components/blacklight/advanced_search_form_component.html.erb +3 -3
- data/app/components/blacklight/advanced_search_form_component.rb +8 -10
- data/app/components/blacklight/constraints_component.rb +27 -37
- data/app/components/blacklight/document/action_component.rb +12 -10
- data/app/components/blacklight/document/actions_component.rb +2 -2
- data/app/components/blacklight/document/bookmark_component.html.erb +9 -0
- data/app/components/blacklight/document/bookmark_component.rb +4 -2
- data/app/components/blacklight/document/citation_component.rb +5 -3
- data/app/components/blacklight/document/group_component.rb +7 -3
- data/app/components/blacklight/document/sidebar_component.html.erb +2 -0
- data/app/components/blacklight/document/sidebar_component.rb +16 -0
- data/app/components/blacklight/document/thumbnail_component.html.erb +2 -7
- data/app/components/blacklight/document/thumbnail_component.rb +1 -9
- data/app/components/blacklight/document_component.html.erb +1 -1
- data/app/components/blacklight/document_component.rb +16 -78
- data/app/components/blacklight/document_metadata_component.html.erb +2 -4
- data/app/components/blacklight/document_metadata_component.rb +5 -10
- data/app/components/blacklight/facet_component.rb +3 -3
- data/app/components/blacklight/facet_field_checkboxes_component.html.erb +4 -4
- data/app/components/blacklight/facet_field_checkboxes_component.rb +1 -1
- data/app/components/blacklight/facet_field_component.html.erb +4 -5
- data/app/components/blacklight/facet_field_component.rb +9 -2
- data/app/components/blacklight/facet_field_list_component.html.erb +3 -3
- data/app/components/blacklight/facet_field_list_component.rb +37 -5
- data/app/components/blacklight/facet_field_no_layout_component.rb +0 -2
- data/app/components/blacklight/facet_item_component.rb +1 -43
- data/app/components/blacklight/facet_item_pivot_component.rb +21 -23
- data/app/components/blacklight/header_component.rb +1 -1
- data/app/components/blacklight/hidden_search_state_component.rb +1 -2
- data/app/components/blacklight/icons/icon_component.rb +4 -9
- data/app/components/blacklight/icons/legacy_icon_component.rb +30 -0
- data/app/components/blacklight/icons/list_component.rb +16 -0
- data/app/components/blacklight/icons/search_component.rb +16 -0
- data/app/components/blacklight/metadata_field_component.html.erb +2 -2
- data/app/components/blacklight/metadata_field_component.rb +24 -8
- data/app/components/blacklight/metadata_field_layout_component.rb +4 -25
- data/app/components/blacklight/response/facet_group_component.html.erb +3 -5
- data/app/components/blacklight/response/facet_group_component.rb +29 -8
- data/app/components/blacklight/response/pagination_component.html.erb +1 -1
- data/app/components/blacklight/response/pagination_component.rb +2 -11
- data/app/components/blacklight/response/sort_component.html.erb +6 -1
- data/app/components/blacklight/response/sort_component.rb +1 -16
- data/app/components/blacklight/response/spellcheck_component.rb +18 -7
- data/app/components/blacklight/response/view_type_button_component.rb +3 -7
- data/app/components/blacklight/response/view_type_component.rb +4 -6
- data/app/components/blacklight/search/sidebar_component.html.erb +8 -0
- data/app/components/blacklight/search/sidebar_component.rb +17 -0
- data/app/components/blacklight/search_bar_component.html.erb +20 -15
- data/app/components/blacklight/search_bar_component.rb +2 -16
- data/app/components/blacklight/search_button_component.rb +3 -3
- data/app/components/blacklight/search_context_component.rb +43 -10
- data/app/components/blacklight/search_header_component.html.erb +2 -0
- data/app/components/blacklight/search_header_component.rb +6 -0
- data/app/components/blacklight/start_over_button_component.rb +5 -3
- data/app/components/blacklight/system/dropdown_component.rb +8 -5
- data/app/components/blacklight/system/flash_message_component.html.erb +4 -2
- data/app/components/blacklight/system/flash_message_component.rb +12 -3
- data/app/components/blacklight/system/modal_component.html.erb +1 -1
- data/app/components/blacklight/system/modal_component.rb +1 -3
- data/app/components/blacklight/top_navbar_component.html.erb +1 -1
- data/app/components/blacklight/top_navbar_component.rb +0 -4
- data/app/controllers/bookmarks_controller.rb +1 -0
- data/app/controllers/catalog_controller.rb +1 -0
- data/app/controllers/concerns/blacklight/bookmarks.rb +10 -9
- data/app/controllers/concerns/blacklight/catalog.rb +21 -83
- data/app/controllers/concerns/blacklight/controller.rb +3 -41
- data/app/controllers/concerns/blacklight/search_context.rb +25 -7
- data/app/controllers/concerns/blacklight/search_history.rb +2 -0
- data/app/controllers/concerns/blacklight/searchable.rb +12 -1
- data/app/controllers/concerns/blacklight/token_based_user.rb +13 -1
- data/app/controllers/search_history_controller.rb +1 -0
- data/app/helpers/blacklight/blacklight_helper_behavior.rb +12 -310
- data/app/helpers/blacklight/catalog_helper_behavior.rb +22 -139
- data/app/helpers/blacklight/component_helper_behavior.rb +2 -53
- data/app/helpers/blacklight/configuration_helper_behavior.rb +2 -119
- data/app/helpers/blacklight/facets_helper_behavior.rb +4 -321
- data/app/helpers/blacklight/icon_helper_behavior.rb +5 -7
- data/app/helpers/blacklight/layout_helper_behavior.rb +4 -3
- data/app/helpers/blacklight/render_partials_helper_behavior.rb +11 -31
- data/app/helpers/blacklight/url_helper_behavior.rb +12 -97
- data/app/helpers/blacklight_helper.rb +1 -0
- data/app/helpers/catalog_helper.rb +1 -0
- data/app/javascript/blacklight/bookmark_toggle.js +13 -19
- data/app/javascript/blacklight/button_focus.js +12 -10
- data/app/javascript/blacklight/checkbox_submit.js +68 -123
- data/app/javascript/blacklight/core.js +5 -7
- data/app/javascript/blacklight/index.js +13 -0
- data/app/javascript/blacklight/modal.js +99 -164
- data/app/javascript/blacklight/modalForm.js +60 -0
- data/app/javascript/blacklight/search_context.js +46 -54
- data/app/models/blacklight/facet_paginator.rb +3 -2
- data/app/models/blacklight/icon.rb +4 -2
- data/app/models/bookmark.rb +0 -2
- data/app/models/concerns/blacklight/configurable.rb +5 -4
- data/app/models/concerns/blacklight/document/active_model_shim.rb +1 -10
- data/app/models/concerns/blacklight/document/cache_key.rb +1 -0
- data/app/models/concerns/blacklight/document/dublin_core.rb +2 -1
- data/app/models/concerns/blacklight/document/email.rb +1 -0
- data/app/models/concerns/blacklight/document/export.rb +2 -1
- data/app/models/concerns/blacklight/document/extensions.rb +1 -0
- data/app/models/concerns/blacklight/document/schema_org.rb +1 -0
- data/app/models/concerns/blacklight/document/semantic_fields.rb +2 -1
- data/app/models/concerns/blacklight/document/sms.rb +1 -0
- data/app/models/concerns/blacklight/suggest/response.rb +1 -0
- data/app/models/concerns/blacklight/user.rb +17 -8
- data/app/models/record_mailer.rb +13 -12
- data/app/models/search.rb +1 -7
- data/app/models/solr_document.rb +1 -0
- data/app/presenters/blacklight/clause_presenter.rb +1 -1
- data/app/presenters/blacklight/document_presenter.rb +23 -50
- data/app/presenters/blacklight/facet_field_presenter.rb +39 -14
- data/app/presenters/blacklight/facet_grouped_item_presenter.rb +1 -5
- data/app/presenters/blacklight/facet_item_pivot_presenter.rb +60 -0
- data/app/presenters/blacklight/facet_item_presenter.rb +3 -9
- data/app/presenters/blacklight/field_presenter.rb +1 -0
- data/app/presenters/blacklight/index_presenter.rb +2 -40
- data/app/presenters/blacklight/json_presenter.rb +10 -6
- data/app/presenters/blacklight/rendering/link_to_facet.rb +2 -5
- data/app/presenters/blacklight/show_presenter.rb +1 -9
- data/app/presenters/blacklight/thumbnail_presenter.rb +1 -1
- data/app/services/blacklight/bookmarks_search_builder.rb +22 -0
- data/app/services/blacklight/field_retriever.rb +12 -21
- data/app/services/blacklight/search_service.rb +10 -17
- data/app/values/blacklight/types.rb +0 -18
- data/app/views/bookmarks/_clear_bookmarks_widget.html.erb +8 -1
- data/app/views/bookmarks/_tools.html.erb +7 -12
- data/app/views/catalog/_advanced_search_form.html.erb +0 -1
- data/app/views/catalog/_bookmark_control.html.erb +1 -1
- data/app/views/catalog/_citation.html.erb +1 -1
- data/app/views/catalog/_constraints.html.erb +1 -14
- data/app/views/catalog/_document.atom.builder +12 -14
- data/app/views/catalog/_document.html.erb +5 -3
- data/app/views/catalog/_document.rss.builder +2 -4
- data/app/views/catalog/_facet_layout.html.erb +2 -2
- data/app/views/catalog/_facets.html.erb +5 -4
- data/app/views/catalog/_home_text.html.erb +2 -14
- data/app/views/catalog/_per_page_widget.html.erb +10 -1
- data/app/views/catalog/_search_form.html.erb +2 -2
- data/app/views/catalog/_search_header.html.erb +1 -2
- data/app/views/catalog/_search_results.html.erb +2 -2
- data/app/views/catalog/_search_sidebar.html.erb +5 -1
- data/app/views/catalog/_show_main_content.html.erb +11 -16
- data/app/views/catalog/_show_sidebar.html.erb +2 -2
- data/app/views/catalog/_show_tools.html.erb +8 -14
- data/app/views/catalog/_view_type_group.html.erb +1 -1
- data/app/views/catalog/email.html.erb +2 -2
- data/app/views/catalog/email_success.html.erb +5 -6
- data/app/views/catalog/facet.html.erb +7 -5
- data/app/views/catalog/index.atom.builder +12 -14
- data/app/views/catalog/index.html.erb +4 -1
- data/app/views/catalog/index.json.jbuilder +19 -19
- data/app/views/catalog/index.rss.builder +1 -1
- data/app/views/catalog/opensearch.xml.builder +1 -1
- data/app/views/catalog/sms.html.erb +2 -2
- data/app/views/catalog/sms_success.html.erb +5 -6
- data/app/views/catalog/suggest.html.erb +3 -0
- data/app/views/kaminari/blacklight/_page.html.erb +2 -1
- data/app/views/layouts/blacklight/base.html.erb +13 -2
- data/app/views/search_history/index.html.erb +6 -2
- data/app/views/shared/_flash_messages.html.erb +1 -1
- data/app/views/shared/_modal.html.erb +3 -3
- data/blacklight.gemspec +7 -11
- data/config/importmap.rb +3 -0
- data/config/locales/blacklight.ar.yml +0 -1
- data/config/locales/blacklight.ca.yml +0 -1
- data/config/locales/blacklight.de.yml +0 -1
- data/config/locales/blacklight.en.yml +0 -2
- data/config/locales/blacklight.es.yml +0 -1
- data/config/locales/blacklight.fr.yml +0 -1
- data/config/locales/blacklight.hu.yml +0 -1
- data/config/locales/blacklight.it.yml +0 -1
- data/config/locales/blacklight.nl.yml +0 -1
- data/config/locales/blacklight.pt-BR.yml +0 -1
- data/config/locales/blacklight.sq.yml +0 -1
- data/config/locales/blacklight.zh.yml +0 -1
- data/config/routes.rb +3 -2
- data/db/migrate/20140202020201_create_searches.rb +1 -0
- data/db/migrate/20140202020202_create_bookmarks.rb +1 -0
- data/db/migrate/20140320000000_add_polymorphic_type_to_bookmarks.rb +1 -0
- data/docker-compose.yml +3 -3
- data/lib/blacklight/abstract_repository.rb +1 -6
- data/lib/blacklight/component.rb +47 -10
- data/lib/blacklight/configuration/context.rb +4 -4
- data/lib/blacklight/configuration/display_field.rb +7 -9
- data/lib/blacklight/configuration/facet_field.rb +17 -11
- data/lib/blacklight/configuration/field.rb +1 -0
- data/lib/blacklight/configuration/fields.rb +12 -15
- data/lib/blacklight/configuration/index_field.rb +1 -0
- data/lib/blacklight/configuration/null_display_field.rb +17 -0
- data/lib/blacklight/configuration/search_field.rb +1 -0
- data/lib/blacklight/configuration/show_field.rb +1 -0
- data/lib/blacklight/configuration/sort_field.rb +1 -0
- data/lib/blacklight/configuration/tool_config.rb +1 -0
- data/lib/blacklight/configuration/view_config.rb +14 -10
- data/lib/blacklight/configuration.rb +310 -365
- data/lib/blacklight/engine.rb +8 -24
- data/lib/blacklight/exceptions.rb +2 -2
- data/lib/blacklight/nested_open_struct_with_hash_access.rb +7 -13
- data/lib/blacklight/open_struct_with_hash_access.rb +23 -6
- data/lib/blacklight/parameters.rb +7 -21
- data/lib/blacklight/routes/exportable.rb +1 -0
- data/lib/blacklight/routes/searchable.rb +2 -1
- data/lib/blacklight/routes.rb +1 -0
- data/lib/blacklight/search_builder.rb +10 -10
- data/lib/blacklight/search_state/filter_field.rb +8 -25
- data/lib/blacklight/search_state/pivot_filter_field.rb +144 -0
- data/lib/blacklight/search_state.rb +23 -79
- data/lib/blacklight/solr/document.rb +1 -0
- data/lib/blacklight/solr/facet_paginator.rb +1 -0
- data/lib/blacklight/solr/repository.rb +4 -24
- data/lib/blacklight/solr/request.rb +1 -0
- data/lib/blacklight/solr/response/facets.rb +21 -5
- data/lib/blacklight/solr/response/group.rb +1 -0
- data/lib/blacklight/solr/response/group_response.rb +1 -0
- data/lib/blacklight/solr/response/more_like_this.rb +1 -0
- data/lib/blacklight/solr/response/pagination_methods.rb +4 -3
- data/lib/blacklight/solr/response/params.rb +5 -4
- data/lib/blacklight/solr/response/response.rb +1 -0
- data/lib/blacklight/solr/response/spelling.rb +1 -0
- data/lib/blacklight/solr/response.rb +16 -3
- data/lib/blacklight/solr/search_builder_behavior.rb +16 -35
- data/lib/blacklight/solr.rb +7 -0
- data/lib/blacklight/version.rb +1 -0
- data/lib/blacklight.rb +26 -14
- data/lib/generators/blacklight/assets/importmap_generator.rb +55 -0
- data/lib/generators/blacklight/assets/propshaft_generator.rb +25 -0
- data/lib/generators/blacklight/assets/sprockets_generator.rb +66 -0
- data/lib/generators/blacklight/assets_generator.rb +13 -86
- data/lib/generators/blacklight/controller_generator.rb +4 -3
- data/lib/generators/blacklight/document_generator.rb +1 -0
- data/lib/generators/blacklight/install_generator.rb +4 -3
- data/lib/generators/blacklight/models_generator.rb +1 -0
- data/lib/generators/blacklight/search_builder_generator.rb +1 -0
- data/lib/generators/blacklight/solr_generator.rb +1 -1
- data/lib/generators/blacklight/templates/catalog_controller.rb +34 -8
- data/lib/generators/blacklight/templates/solr/conf/solrconfig.xml +1 -70
- data/lib/generators/blacklight/test_support_generator.rb +5 -3
- data/lib/generators/blacklight/user_generator.rb +7 -9
- data/lib/railties/blacklight.rake +6 -7
- data/package.json +10 -13
- data/rollup.config.js +27 -0
- data/spec/components/blacklight/constraints_component_spec.rb +17 -13
- data/spec/components/blacklight/document/action_component_spec.rb +6 -1
- data/spec/components/blacklight/document_component_spec.rb +22 -131
- data/spec/components/blacklight/facet_component_spec.rb +3 -18
- data/spec/components/blacklight/facet_field_checkboxes_component_spec.rb +1 -2
- data/spec/components/blacklight/facet_field_list_component_spec.rb +7 -6
- data/spec/components/blacklight/facet_item_pivot_component_spec.rb +10 -9
- data/spec/components/blacklight/response/view_type_component_spec.rb +66 -0
- data/spec/components/blacklight/search_bar_component_spec.rb +1 -1
- data/spec/components/blacklight/search_context_component_spec.rb +17 -8
- data/spec/controllers/blacklight/catalog/component_configuration_spec.rb +1 -6
- data/spec/controllers/blacklight/{base_spec.rb → catalog_spec.rb} +2 -2
- data/spec/controllers/bookmarks_controller_spec.rb +2 -3
- data/spec/controllers/catalog_controller_spec.rb +13 -135
- data/spec/features/advanced_search_spec.rb +0 -56
- data/spec/features/autocomplete_spec.rb +1 -1
- data/spec/features/axe_spec.rb +1 -6
- data/spec/features/bookmarks_spec.rb +1 -1
- data/spec/features/facets_spec.rb +6 -4
- data/spec/features/search_context_spec.rb +5 -11
- data/spec/features/search_results_spec.rb +0 -33
- data/spec/features/sitelinks_search_box.rb +13 -0
- data/spec/helpers/blacklight/configuration_helper_behavior_spec.rb +2 -138
- data/spec/helpers/blacklight/facets_helper_behavior_spec.rb +0 -387
- data/spec/helpers/blacklight/icon_helper_behavior_spec.rb +8 -0
- data/spec/helpers/blacklight/layout_helper_behavior_spec.rb +3 -20
- data/spec/helpers/blacklight/render_partials_helper_behavior_spec.rb +5 -7
- data/spec/helpers/blacklight/url_helper_behavior_spec.rb +9 -131
- data/spec/helpers/blacklight_helper_spec.rb +8 -252
- data/spec/helpers/catalog_helper_spec.rb +7 -118
- data/spec/i18n_spec.rb +1 -0
- data/spec/integration/generators/blacklight/solr_generator_spec.rb +1 -1
- data/spec/lib/blacklight/component_spec.rb +27 -32
- data/spec/lib/blacklight/configuration/facet_field_spec.rb +27 -16
- data/spec/lib/blacklight/configuration/field_spec.rb +1 -1
- data/spec/lib/blacklight/configuration/view_config_spec.rb +1 -1
- data/spec/lib/blacklight/open_struct_with_hash_access_spec.rb +2 -2
- data/spec/lib/blacklight/parameters_spec.rb +1 -4
- data/spec/lib/blacklight/search_state/filter_field_spec.rb +4 -4
- data/spec/lib/blacklight/search_state/pivot_filter_field_spec.rb +117 -0
- data/spec/lib/blacklight/search_state_spec.rb +80 -198
- data/spec/lib/tasks/blacklight_task_spec.rb +1 -0
- data/spec/models/blacklight/configuration_spec.rb +17 -51
- data/spec/models/blacklight/document/active_model_shim_spec.rb +2 -2
- data/spec/models/blacklight/icon_spec.rb +31 -15
- data/spec/models/blacklight/search_builder_spec.rb +9 -9
- data/spec/models/blacklight/solr/document_spec.rb +3 -3
- data/spec/models/blacklight/solr/repository_spec.rb +0 -45
- data/spec/models/blacklight/solr/response/facets_spec.rb +27 -27
- data/spec/models/blacklight/solr/response/group_response_spec.rb +1 -0
- data/spec/models/blacklight/solr/response/group_spec.rb +1 -0
- data/spec/models/blacklight/solr/response_spec.rb +9 -2
- data/spec/models/blacklight/solr/search_builder_spec.rb +24 -44
- data/spec/models/blacklight/user_spec.rb +22 -0
- data/spec/models/solr_document_spec.rb +3 -9
- data/spec/presenters/blacklight/clause_presenter_spec.rb +1 -0
- data/spec/presenters/blacklight/document_presenter_spec.rb +2 -3
- data/spec/presenters/blacklight/facet_field_presenter_spec.rb +85 -12
- data/spec/presenters/blacklight/facet_grouped_item_presenter_spec.rb +1 -0
- data/spec/presenters/blacklight/facet_item_presenter_spec.rb +14 -13
- data/spec/presenters/blacklight/field_presenter_spec.rb +0 -14
- data/spec/presenters/blacklight/index_presenter_spec.rb +2 -5
- data/spec/presenters/blacklight/json_presenter_spec.rb +1 -0
- data/spec/presenters/blacklight/link_alternate_presenter_spec.rb +3 -2
- data/spec/presenters/blacklight/show_presenter_spec.rb +20 -30
- data/spec/presenters/thumbnail_presenter_spec.rb +1 -1
- data/spec/requests/load_suggestions_spec.rb +16 -0
- data/spec/routing/catalog_routing_spec.rb +2 -1
- data/spec/services/blacklight/search_service_spec.rb +39 -76
- data/spec/spec_helper.rb +8 -9
- data/spec/support/controller_level_helpers.rb +1 -2
- data/spec/support/features/search_helpers.rb +39 -0
- data/spec/support/features/session_helpers.rb +1 -0
- data/spec/support/features.rb +3 -0
- data/spec/support/view_component_capybara_test_helpers.rb +8 -0
- data/spec/test_app_templates/Gemfile.extra +1 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +9 -2
- data/spec/views/catalog/_document.html.erb_spec.rb +3 -34
- data/spec/views/catalog/_facet_index_navigation.html.erb_spec.rb +1 -1
- data/spec/views/catalog/_paginate_compact.html.erb_spec.rb +0 -2
- data/spec/views/catalog/_search_header.erb_spec.rb +1 -0
- data/spec/views/catalog/_show_sidebar.erb_spec.rb +1 -0
- data/spec/views/catalog/_show_tools.html.erb_spec.rb +5 -66
- data/spec/views/catalog/_view_type_group.html.erb_spec.rb +17 -9
- data/spec/views/catalog/email_success.html.erb_spec.rb +2 -2
- data/spec/views/catalog/facet.html.erb_spec.rb +6 -3
- data/spec/views/catalog/index.atom.builder_spec.rb +17 -11
- data/spec/views/catalog/index.html.erb_spec.rb +5 -6
- data/spec/views/catalog/index.json.jbuilder_spec.rb +2 -2
- data/spec/views/catalog/show.html.erb_spec.rb +3 -25
- data/spec/views/catalog/sms_success.html.erb_spec.rb +2 -2
- data/tasks/blacklight.rake +11 -9
- data/template.demo.rb +7 -7
- metadata +77 -189
- data/.babelrc +0 -11
- data/.github/matrix.json +0 -62
- data/.github/workflows/build.yml +0 -16
- data/.github/workflows/lint.yml +0 -23
- data/.github/workflows/main.yml +0 -23
- data/.github/workflows/test.yml +0 -53
- data/app/assets/images/blacklight/list.svg +0 -1
- data/app/assets/images/blacklight/search.svg +0 -1
- data/app/assets/stylesheets/blacklight/_twitter_typeahead.scss +0 -37
- data/app/components/blacklight/content_areas_shim.rb +0 -13
- data/app/components/blacklight/search/per_page_component.html.erb +0 -2
- data/app/components/blacklight/search/per_page_component.rb +0 -50
- data/app/components/blacklight/search_context/server_item_pagination_component.html.erb +0 -10
- data/app/components/blacklight/search_context/server_item_pagination_component.rb +0 -15
- data/app/components/blacklight/system/dropdown_button_component.rb +0 -18
- data/app/controllers/concerns/blacklight/base.rb +0 -12
- data/app/controllers/concerns/blacklight/default_component_configuration.rb +0 -64
- data/app/controllers/concerns/blacklight/facet.rb +0 -69
- data/app/controllers/concerns/blacklight/search_fields.rb +0 -46
- data/app/helpers/blacklight/hash_as_hidden_fields_helper_behavior.rb +0 -27
- data/app/helpers/blacklight/render_constraints_helper_behavior.rb +0 -188
- data/app/helpers/blacklight/search_history_constraints_helper_behavior.rb +0 -97
- data/app/helpers/blacklight/suggest_helper_behavior.rb +0 -13
- data/app/javascript/blacklight/autocomplete.js +0 -36
- data/app/javascript/blacklight/facet_load.js +0 -22
- data/app/presenters/blacklight/search_bar_presenter.rb +0 -47
- data/app/views/catalog/_constraints_element.html.erb +0 -14
- data/app/views/catalog/_document_action.html.erb +0 -5
- data/app/views/catalog/_facet_group.html.erb +0 -5
- data/app/views/catalog/_facet_limit.html.erb +0 -3
- data/app/views/catalog/_index.html.erb +0 -1
- data/app/views/catalog/_index_header.html.erb +0 -22
- data/app/views/catalog/_previous_next_doc.html.erb +0 -2
- data/app/views/catalog/_show.html.erb +0 -6
- data/app/views/catalog/_show_header.html.erb +0 -2
- data/app/views/catalog/_thumbnail.html.erb +0 -1
- data/lib/blacklight/deprecations/engine_configuration.rb +0 -66
- data/lib/blacklight/deprecations/search_state_normalization.rb +0 -52
- data/spec/components/blacklight/header_component_spec.rb +0 -20
- data/spec/components/blacklight/icons/icon_component_spec.rb +0 -42
- data/spec/components/blacklight/response/pagination_component_spec.rb +0 -53
- data/spec/components/blacklight/search_context/server_item_pagination_component_spec.rb +0 -35
- data/spec/controllers/blacklight/facet_spec.rb +0 -33
- data/spec/controllers/blacklight/search_fields_spec.rb +0 -62
- data/spec/features/citation_spec.rb +0 -10
- data/spec/features/sitelinks_search_box_spec.rb +0 -13
- data/spec/features/sms_spec.rb +0 -12
- data/spec/helpers/blacklight/hash_as_hidden_fields_behavior_spec.rb +0 -26
- data/spec/helpers/blacklight/render_constraints_helper_behavior_spec.rb +0 -92
- data/spec/helpers/blacklight/search_history_constraints_helper_behavior_spec.rb +0 -101
- data/spec/helpers/blacklight/suggest_helper_behavior_spec.rb +0 -48
- data/spec/lib/blacklight/engine_spec.rb +0 -41
- data/spec/presenters/blacklight/search_bar_presenter_spec.rb +0 -94
- data/spec/services/blacklight/field_retriever_spec.rb +0 -17
- data/spec/support/view_component_test_helpers.rb +0 -35
- data/spec/views/catalog/_constraints.html.erb_spec.rb +0 -33
- data/spec/views/catalog/_facet_group.html.erb_spec.rb +0 -84
- data/spec/views/catalog/_facets.html.erb_spec.rb +0 -15
- data/spec/views/catalog/_index.html.erb_spec.rb +0 -62
- data/spec/views/catalog/_index_header.html.erb_spec.rb +0 -35
- data/spec/views/catalog/_previous_next_doc.html.erb_spec.rb +0 -22
- data/spec/views/catalog/_show.html.erb_spec.rb +0 -62
- data/spec/views/catalog/_thumbnail.html.erb_spec.rb +0 -38
@@ -1,15 +1,8 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
|
2
3
|
##
|
3
4
|
# URL helper methods
|
4
5
|
module Blacklight::UrlHelperBehavior
|
5
|
-
extend Deprecation
|
6
|
-
|
7
|
-
# @deprecated
|
8
|
-
def url_for_document(doc, options = {})
|
9
|
-
search_state.url_for_document(doc, options)
|
10
|
-
end
|
11
|
-
deprecation_deprecate url_for_document: 'Use SearchState#url_for_document directly'
|
12
|
-
|
13
6
|
# Uses the catalog_path route to create a link to the show page for an item.
|
14
7
|
# catalog_path accepts a hash. The solr query params are stored in the session,
|
15
8
|
# so we only need the +counter+ param here. We also need to know if we are viewing to document as part of search results.
|
@@ -19,9 +12,9 @@ module Blacklight::UrlHelperBehavior
|
|
19
12
|
# @param opts [Hash] the options to create the link with
|
20
13
|
# @option opts [Number] :counter (nil) the count to set in the session (for paging through a query result)
|
21
14
|
# @example Passing in an image
|
22
|
-
# link_to_document(doc, '<img src="thumbnail.png">', counter: 3) #=> "<a href=\"catalog/123\" data-
|
15
|
+
# link_to_document(doc, '<img src="thumbnail.png">', counter: 3) #=> "<a href=\"catalog/123\" data-context-href=\"/catalog/123/track?counter=3&search_id=999\"><img src="thumbnail.png"></a>
|
23
16
|
# @example With the default document link field
|
24
|
-
# link_to_document(doc, counter: 3) #=> "<a href=\"catalog/123\" data-
|
17
|
+
# link_to_document(doc, counter: 3) #=> "<a href=\"catalog/123\" data-context-href=\"/catalog/123/track?counter=3&search_id=999\">My Title</a>
|
25
18
|
def link_to_document(doc, field_or_opts = nil, opts = { counter: nil })
|
26
19
|
label = case field_or_opts
|
27
20
|
when NilClass
|
@@ -29,18 +22,11 @@ module Blacklight::UrlHelperBehavior
|
|
29
22
|
when Hash
|
30
23
|
opts = field_or_opts
|
31
24
|
document_presenter(doc).heading
|
32
|
-
when Proc, Symbol
|
33
|
-
Deprecation.warn(self, "passing a #{field_or_opts.class} to link_to_document is deprecated and will be removed in Blacklight 8")
|
34
|
-
Deprecation.silence(Blacklight::IndexPresenter) do
|
35
|
-
index_presenter(doc).label field_or_opts, opts
|
36
|
-
end
|
37
25
|
else # String
|
38
26
|
field_or_opts
|
39
27
|
end
|
40
28
|
|
41
|
-
|
42
|
-
link_to label, url_for_document(doc), document_link_params(doc, opts)
|
43
|
-
end
|
29
|
+
link_to label, search_state.url_for_document(doc), document_link_params(doc, opts)
|
44
30
|
end
|
45
31
|
|
46
32
|
# @private
|
@@ -49,47 +35,19 @@ module Blacklight::UrlHelperBehavior
|
|
49
35
|
end
|
50
36
|
private :document_link_params
|
51
37
|
|
52
|
-
##
|
53
|
-
# Link to the previous document in the current search context
|
54
|
-
# @deprecated
|
55
|
-
def link_to_previous_document(previous_document, classes: 'previous', **addl_link_opts)
|
56
|
-
link_opts = session_tracking_params(previous_document, search_session['counter'].to_i - 1).merge(class: classes, rel: 'prev').merge(addl_link_opts)
|
57
|
-
link_to_unless previous_document.nil?, raw(t('views.pagination.previous')), url_for_document(previous_document), link_opts do
|
58
|
-
tag.span raw(t('views.pagination.previous')), class: 'previous'
|
59
|
-
end
|
60
|
-
end
|
61
|
-
deprecation_deprecate link_to_previous_document: 'Moving to Blacklight::SearchContext::ServerItemPaginationComponent'
|
62
|
-
|
63
|
-
##
|
64
|
-
# Link to the next document in the current search context
|
65
|
-
# @deprecated
|
66
|
-
def link_to_next_document(next_document, classes: 'next', **addl_link_opts)
|
67
|
-
link_opts = session_tracking_params(next_document, search_session['counter'].to_i + 1).merge(class: classes, rel: 'next').merge(addl_link_opts)
|
68
|
-
link_to_unless next_document.nil?, raw(t('views.pagination.next')), url_for_document(next_document), link_opts do
|
69
|
-
tag.span raw(t('views.pagination.next')), class: 'next'
|
70
|
-
end
|
71
|
-
end
|
72
|
-
deprecation_deprecate link_to_previous_document: 'Moving to Blacklight::SearchContext::ServerItemPaginationComponent'
|
73
|
-
|
74
38
|
##
|
75
39
|
# Attributes for a link that gives a URL we can use to track clicks for the current search session
|
76
|
-
# We disable turbo prefetch (InstantClick), because since we replace the link with a form, it's just wasted.
|
77
|
-
# @private
|
78
40
|
# @param [SolrDocument] document
|
79
41
|
# @param [Integer] counter
|
80
42
|
# @example
|
81
43
|
# session_tracking_params(SolrDocument.new(id: 123), 7)
|
82
44
|
# => { data: { context_href: '/catalog/123/track?counter=7&search_id=999' } }
|
83
|
-
def session_tracking_params document, counter
|
84
|
-
path = session_tracking_path(document, per_page: params.fetch(:per_page,
|
85
|
-
|
86
|
-
if path.nil?
|
87
|
-
return {}
|
88
|
-
end
|
45
|
+
def session_tracking_params document, counter, per_page: search_session['per_page'], search_id: current_search_session&.id
|
46
|
+
path = session_tracking_path(document, per_page: params.fetch(:per_page, per_page), counter: counter, search_id: search_id, document_id: document&.id)
|
47
|
+
return {} if path.nil?
|
89
48
|
|
90
|
-
{ data: { context_href: path
|
49
|
+
{ data: { context_href: path } }
|
91
50
|
end
|
92
|
-
private :session_tracking_params
|
93
51
|
|
94
52
|
##
|
95
53
|
# Get the URL for tracking search sessions across pages using polymorphic routing
|
@@ -101,7 +59,7 @@ module Blacklight::UrlHelperBehavior
|
|
101
59
|
end
|
102
60
|
|
103
61
|
raise "Unable to find #{controller_tracking_method} route helper. " \
|
104
|
-
|
62
|
+
"Did you add `concerns :searchable` routing mixin to your `config/routes.rb`?"
|
105
63
|
end
|
106
64
|
|
107
65
|
def controller_tracking_method
|
@@ -112,28 +70,6 @@ module Blacklight::UrlHelperBehavior
|
|
112
70
|
# link based helpers ->
|
113
71
|
#
|
114
72
|
|
115
|
-
# create link to query (e.g. spelling suggestion)
|
116
|
-
# @deprecated
|
117
|
-
def link_to_query(query)
|
118
|
-
p = search_state.to_h.except(:page, :action)
|
119
|
-
p[:q] = query
|
120
|
-
link_to(query, search_action_path(p))
|
121
|
-
end
|
122
|
-
deprecation_deprecate link_to_query: 'Removed without replacement'
|
123
|
-
|
124
|
-
##
|
125
|
-
# Get the path to the search action with any parameters (e.g. view type)
|
126
|
-
# that should be persisted across search sessions.
|
127
|
-
# @deprecated
|
128
|
-
def start_over_path query_params = params
|
129
|
-
h = {}
|
130
|
-
current_index_view_type = document_index_view_type(query_params)
|
131
|
-
h[:view] = current_index_view_type unless current_index_view_type == default_document_index_view_type
|
132
|
-
|
133
|
-
search_action_path(h)
|
134
|
-
end
|
135
|
-
deprecation_deprecate start_over_path: 'Removed without replacement'
|
136
|
-
|
137
73
|
# Create a link back to the index screen, keeping the user's facet, query and paging choices intact by using session.
|
138
74
|
# @example
|
139
75
|
# link_back_to_catalog(label: 'Back to Search')
|
@@ -166,30 +102,9 @@ module Blacklight::UrlHelperBehavior
|
|
166
102
|
link_to label, link_url, opts
|
167
103
|
end
|
168
104
|
|
169
|
-
#
|
105
|
+
# Use in e.g. the search history display, where we want something more like text instead of the normal constraints
|
170
106
|
def link_to_previous_search(params)
|
171
|
-
|
172
|
-
|
173
|
-
end
|
174
|
-
end
|
175
|
-
|
176
|
-
# Get url parameters to a search within a grouped result set
|
177
|
-
#
|
178
|
-
# @deprecated
|
179
|
-
# @param [Blacklight::Solr::Response::Group] group
|
180
|
-
# @return [Hash]
|
181
|
-
def add_group_facet_params_and_redirect group
|
182
|
-
search_state.add_facet_params_and_redirect(group.field, group.key)
|
183
|
-
end
|
184
|
-
deprecation_deprecate add_group_facet_params_and_redirect: 'Removed without replacement'
|
185
|
-
|
186
|
-
# A URL to refworks export, with an embedded callback URL to this app.
|
187
|
-
# the callback URL is to bookmarks#export, which delivers a list of
|
188
|
-
# user's bookmarks in 'refworks marc txt' format -- we tell refworks
|
189
|
-
# to expect that format.
|
190
|
-
# @deprecated
|
191
|
-
def bookmarks_export_url(format, params = {})
|
192
|
-
bookmarks_url(params.merge(format: format, encrypted_user_id: encrypt_user_id(current_or_guest_user.id)))
|
107
|
+
search_state = controller.search_state_class.new(params, blacklight_config, self)
|
108
|
+
link_to(render(Blacklight::ConstraintsComponent.for_search_history(search_state: search_state)), search_action_path(params))
|
193
109
|
end
|
194
|
-
deprecation_deprecate bookmarks_export_url: 'Removed without replacement'
|
195
110
|
end
|
@@ -1,25 +1,19 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
import Blacklight from './core'
|
2
|
+
import CheckboxSubmit from './checkbox_submit'
|
3
|
+
|
4
|
+
const BookmarkToggle = (() => {
|
5
|
+
// change form submit toggle to checkbox
|
3
6
|
Blacklight.doBookmarkToggleBehavior = function() {
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
// cssClass is added to elements added, plus used for id base
|
10
|
-
cssClass: 'toggle-bookmark',
|
11
|
-
success: function(checked, response) {
|
12
|
-
if (response.bookmarks) {
|
13
|
-
$('[data-role=bookmark-counter]').text(response.bookmarks.count);
|
14
|
-
}
|
15
|
-
}
|
7
|
+
document.addEventListener('click', (e) => {
|
8
|
+
if (e.target.matches('[data-checkboxsubmit-target="checkbox"]')) {
|
9
|
+
const form = e.target.closest('form')
|
10
|
+
if (form) new CheckboxSubmit(form).clicked(e);
|
11
|
+
}
|
16
12
|
});
|
17
13
|
};
|
18
14
|
Blacklight.doBookmarkToggleBehavior.selector = 'form.bookmark-toggle';
|
19
15
|
|
20
|
-
Blacklight.
|
21
|
-
|
22
|
-
});
|
23
|
-
|
16
|
+
Blacklight.doBookmarkToggleBehavior();
|
17
|
+
})()
|
24
18
|
|
25
|
-
|
19
|
+
export default BookmarkToggle
|
@@ -1,10 +1,12 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
}
|
9
|
-
})
|
10
|
-
})
|
1
|
+
const ButtonFocus = (() => {
|
2
|
+
document.addEventListener('click', (e) => {
|
3
|
+
// Button clicks should change focus. As of 10/3/19, Firefox for Mac and
|
4
|
+
// Safari both do not set focus to a button on button click.
|
5
|
+
// See https://zellwk.com/blog/inconsistent-button-behavior/ for background information
|
6
|
+
if (e.target.matches('[data-toggle="collapse"]') || e.target.matches('[data-bs-toggle="collapse"]')) {
|
7
|
+
e.target.focus()
|
8
|
+
}
|
9
|
+
})
|
10
|
+
})()
|
11
|
+
|
12
|
+
export default ButtonFocus
|
@@ -1,135 +1,80 @@
|
|
1
|
-
/*
|
2
|
-
that will convert a "toggle" form, with single submit button to add/remove
|
1
|
+
/* Converts a "toggle" form, with single submit button to add/remove
|
3
2
|
something, like used for Bookmarks, into an AJAXy checkbox instead.
|
4
|
-
|
5
3
|
Apply to a form. Does require certain assumption about the form:
|
6
4
|
1) The same form 'action' href must be used for both ADD and REMOVE
|
7
5
|
actions, with the different being the hidden input name="_method"
|
8
6
|
being set to "put" or "delete" -- that's the Rails method to pretend
|
9
7
|
to be doing a certain HTTP verb. So same URL, PUT to add, DELETE
|
10
8
|
to remove. This plugin assumes that.
|
11
|
-
|
12
9
|
Plus, the form this is applied to should provide a data-doc-id
|
13
10
|
attribute (HTML5-style doc-*) that contains the id/primary key
|
14
11
|
of the object in question -- used by plugin for a unique value for
|
15
12
|
DOM id's.
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
Pass in options for your class name and labels:
|
20
|
-
$("form.something").blCheckboxSubmit({
|
21
|
-
//cssClass is added to elements added, plus used for id base
|
22
|
-
cssClass: "toggle_my_kinda_form",
|
23
|
-
error: function() {
|
24
|
-
#optional callback
|
25
|
-
},
|
26
|
-
success: function(after_success_check_state) {
|
27
|
-
#optional callback
|
28
|
-
}
|
29
|
-
});
|
13
|
+
Uses HTML for a checkbox compatible with Bootstrap 4.
|
14
|
+
new CheckboxSubmit(document.querySelector('form.something')).render()
|
30
15
|
*/
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
data: form.serialize(),
|
97
|
-
error: function() {
|
98
|
-
label.removeAttr('disabled');
|
99
|
-
checkbox.removeAttr('disabled');
|
100
|
-
options.error.call();
|
101
|
-
},
|
102
|
-
success: function(data, status, xhr) {
|
103
|
-
//if app isn't running at all, xhr annoyingly
|
104
|
-
//reports success with status 0.
|
105
|
-
if (xhr.status != 0) {
|
106
|
-
checked = ! checked;
|
107
|
-
updateStateFor(checked);
|
108
|
-
label.removeAttr('disabled');
|
109
|
-
checkbox.removeAttr('disabled');
|
110
|
-
options.success.call(form, checked, xhr.responseJSON);
|
111
|
-
} else {
|
112
|
-
label.removeAttr('disabled');
|
113
|
-
checkbox.removeAttr('disabled');
|
114
|
-
options.error.call();
|
115
|
-
}
|
116
|
-
}
|
117
|
-
});
|
118
|
-
|
119
|
-
return false;
|
120
|
-
}); //checkbox.click
|
121
|
-
|
122
|
-
|
123
|
-
}); //this.each
|
124
|
-
return this;
|
125
|
-
};
|
126
|
-
|
127
|
-
$.fn.blCheckboxSubmit.defaults = {
|
128
|
-
//cssClass is added to elements added, plus used for id base
|
129
|
-
cssClass: 'blCheckboxSubmit',
|
130
|
-
error: function() {
|
131
|
-
alert("Error");
|
132
|
-
},
|
133
|
-
success: function() {} //callback
|
134
|
-
};
|
135
|
-
})(jQuery);
|
16
|
+
export default class CheckboxSubmit {
|
17
|
+
constructor(form) {
|
18
|
+
this.form = form
|
19
|
+
}
|
20
|
+
|
21
|
+
async clicked(evt) {
|
22
|
+
this.spanTarget.innerHTML = this.form.getAttribute('data-inprogress')
|
23
|
+
this.labelTarget.setAttribute('disabled', 'disabled');
|
24
|
+
this.checkboxTarget.setAttribute('disabled', 'disabled');
|
25
|
+
const response = await fetch(this.formTarget.getAttribute('action'), {
|
26
|
+
body: new FormData(this.formTarget),
|
27
|
+
method: this.formTarget.getAttribute('method').toUpperCase(),
|
28
|
+
headers: {
|
29
|
+
'Accept': 'application/json',
|
30
|
+
'X-Requested-With': 'XMLHttpRequest',
|
31
|
+
'X-CSRF-Token': document.querySelector('meta[name=csrf-token]')?.content
|
32
|
+
}
|
33
|
+
})
|
34
|
+
this.labelTarget.removeAttribute('disabled')
|
35
|
+
this.checkboxTarget.removeAttribute('disabled')
|
36
|
+
if (response.ok) {
|
37
|
+
const json = await response.json()
|
38
|
+
this.updateStateFor(!this.checked)
|
39
|
+
document.querySelector('[data-role=bookmark-counter]').innerHTML = json.bookmarks.count
|
40
|
+
} else {
|
41
|
+
alert('Error')
|
42
|
+
}
|
43
|
+
}
|
44
|
+
|
45
|
+
get checked() {
|
46
|
+
return (this.form.querySelectorAll('input[name=_method][value=delete]').length != 0)
|
47
|
+
}
|
48
|
+
|
49
|
+
get formTarget() {
|
50
|
+
return this.form
|
51
|
+
}
|
52
|
+
|
53
|
+
get labelTarget() {
|
54
|
+
return this.form.querySelector('[data-checkboxsubmit-target="label"]')
|
55
|
+
}
|
56
|
+
|
57
|
+
get checkboxTarget() {
|
58
|
+
return this.form.querySelector('[data-checkboxsubmit-target="checkbox"]')
|
59
|
+
}
|
60
|
+
|
61
|
+
get spanTarget() {
|
62
|
+
return this.form.querySelector('[data-checkboxsubmit-target="span"]')
|
63
|
+
}
|
64
|
+
|
65
|
+
updateStateFor(state) {
|
66
|
+
this.checkboxTarget.checked = state
|
67
|
+
|
68
|
+
if (state) {
|
69
|
+
this.labelTarget.classList.add('checked')
|
70
|
+
//Set the Rails hidden field that fakes an HTTP verb
|
71
|
+
//properly for current state action.
|
72
|
+
this.formTarget.querySelector('input[name=_method]').value = 'delete'
|
73
|
+
this.spanTarget.innerHTML = this.form.getAttribute('data-present')
|
74
|
+
} else {
|
75
|
+
this.labelTarget.classList.remove('checked')
|
76
|
+
this.formTarget.querySelector('input[name=_method]').value = 'put'
|
77
|
+
this.spanTarget.innerHTML = this.form.getAttribute('data-absent')
|
78
|
+
}
|
79
|
+
}
|
80
|
+
}
|
@@ -1,20 +1,20 @@
|
|
1
1
|
const Blacklight = function() {
|
2
|
-
|
2
|
+
const buffer = new Array;
|
3
3
|
return {
|
4
4
|
onLoad: function(func) {
|
5
5
|
buffer.push(func);
|
6
6
|
},
|
7
7
|
|
8
8
|
activate: function() {
|
9
|
-
for(
|
9
|
+
for(let i = 0; i < buffer.length; i++) {
|
10
10
|
buffer[i].call();
|
11
11
|
}
|
12
12
|
},
|
13
13
|
|
14
14
|
listeners: function () {
|
15
|
-
|
15
|
+
const listeners = [];
|
16
16
|
if (typeof Turbo !== 'undefined') {
|
17
|
-
listeners.push('turbo:load');
|
17
|
+
listeners.push('turbo:load', 'turbo:frame-load');
|
18
18
|
} else if (typeof Turbolinks !== 'undefined' && Turbolinks.supported) {
|
19
19
|
// Turbolinks 5
|
20
20
|
if (Turbolinks.BrowserAdapter) {
|
@@ -51,7 +51,5 @@ Blacklight.onLoad(function () {
|
|
51
51
|
elem.classList.add('js')
|
52
52
|
})
|
53
53
|
|
54
|
-
Blacklight.csrfToken = () => document.querySelector('meta[name=csrf-token]')?.content
|
55
|
-
Blacklight.csrfParam = () => document.querySelector('meta[name=csrf-param]')?.content
|
56
54
|
|
57
|
-
|
55
|
+
export default Blacklight
|
@@ -0,0 +1,13 @@
|
|
1
|
+
import BookmarkToggle from './bookmark_toggle'
|
2
|
+
import ButtonFocus from './button_focus'
|
3
|
+
import Modal from './modal'
|
4
|
+
import SearchContext from './search_context'
|
5
|
+
import Core from './core'
|
6
|
+
|
7
|
+
export default {
|
8
|
+
BookmarkToggle,
|
9
|
+
ButtonFocus,
|
10
|
+
Modal,
|
11
|
+
SearchContext,
|
12
|
+
onLoad: Core.onLoad
|
13
|
+
}
|