blacklight-spotlight 3.0.0.rc1 → 3.0.0.rc6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/app/assets/images/blacklight/arrow-alt-circle-left.svg +1 -0
- data/app/assets/images/blacklight/arrow-alt-circle-right.svg +1 -0
- data/app/assets/images/blacklight/close.svg +1 -0
- data/app/assets/images/blacklight/zoom_in.svg +1 -0
- data/app/assets/images/blacklight/zoom_out.svg +1 -0
- data/app/assets/javascripts/spotlight/admin/{add_new_page_button.js → add_new_button.js} +7 -0
- data/app/assets/javascripts/spotlight/admin/block_mixins/autocompleteable.js +4 -4
- data/app/assets/javascripts/spotlight/admin/blocks/browse_group_categories_block.js +88 -0
- data/app/assets/javascripts/spotlight/admin/blocks/pages_block.js +1 -1
- data/app/assets/javascripts/spotlight/admin/blocks/solr_documents_base_block.js +1 -1
- data/app/assets/javascripts/spotlight/admin/blocks/uploaded_items_block.js +8 -1
- data/app/assets/javascripts/spotlight/admin/catalog_edit.js +13 -47
- data/app/assets/javascripts/spotlight/admin/croppable.js +1 -1
- data/app/assets/javascripts/spotlight/admin/exhibit_tag_autocomplete.js +37 -0
- data/app/assets/javascripts/spotlight/admin/index.js +0 -2
- data/app/assets/javascripts/spotlight/admin/{reindex_monitor.js → progress_monitor.js} +26 -4
- data/app/assets/javascripts/spotlight/admin/search_typeahead.js +2 -2
- data/app/assets/javascripts/spotlight/admin/sir-trevor/locales.js +9 -2
- data/app/assets/javascripts/spotlight/user/browse_group_categories.js +59 -0
- data/app/assets/javascripts/spotlight/user/index.js +1 -0
- data/app/assets/javascripts/spotlight/user/zpr_links.js.erb +29 -14
- data/app/assets/stylesheets/spotlight/_breadcrumbs.scss +8 -0
- data/app/assets/stylesheets/spotlight/_browse.scss +8 -0
- data/app/assets/stylesheets/spotlight/_catalog.scss +34 -8
- data/app/assets/stylesheets/spotlight/_exhibit_admin.scss +9 -0
- data/app/assets/stylesheets/spotlight/_featured_browse_categories_block.scss +212 -84
- data/app/assets/stylesheets/spotlight/_item_text_block.scss +1 -1
- data/app/assets/stylesheets/spotlight/_modals.scss +3 -0
- data/app/assets/stylesheets/spotlight/_nestable.scss +8 -0
- data/app/assets/stylesheets/spotlight/_pages.scss +9 -4
- data/app/assets/stylesheets/spotlight/_spotlight.scss +4 -0
- data/app/assets/stylesheets/spotlight/_translations.scss +6 -0
- data/app/assets/stylesheets/spotlight/_view_larger.scss +22 -0
- data/app/assets/stylesheets/spotlight/browse_group_categories_block.scss +92 -0
- data/app/assets/stylesheets/spotlight/typeahead.css +23 -23
- data/app/builders/spotlight/bootstrap_breadcrumbs_builder.rb +5 -4
- data/app/controllers/concerns/spotlight/base.rb +1 -1
- data/app/controllers/concerns/spotlight/catalog.rb +7 -1
- data/app/controllers/concerns/spotlight/search_helper.rb +2 -8
- data/app/controllers/spotlight/appearances_controller.rb +0 -13
- data/app/controllers/spotlight/browse_controller.rb +15 -17
- data/app/controllers/spotlight/bulk_actions_controller.rb +62 -0
- data/app/controllers/spotlight/bulk_updates_controller.rb +67 -0
- data/app/controllers/spotlight/catalog_controller.rb +17 -14
- data/app/controllers/spotlight/concerns/application_controller.rb +13 -2
- data/app/controllers/spotlight/dashboards_controller.rb +5 -4
- data/app/controllers/spotlight/exhibits_controller.rb +1 -1
- data/app/controllers/spotlight/featured_images_controller.rb +1 -1
- data/app/controllers/spotlight/groups_controller.rb +80 -0
- data/app/controllers/spotlight/job_trackers_controller.rb +17 -0
- data/app/controllers/spotlight/pages_controller.rb +8 -13
- data/app/controllers/spotlight/searches_controller.rb +4 -17
- data/app/controllers/spotlight/tags_controller.rb +39 -5
- data/app/helpers/spotlight/application_helper.rb +21 -2
- data/app/helpers/spotlight/crud_link_helpers.rb +1 -1
- data/app/helpers/spotlight/job_trackers_helper.rb +31 -0
- data/app/helpers/spotlight/main_app_helpers.rb +4 -5
- data/app/helpers/spotlight/meta_helper.rb +2 -2
- data/app/helpers/spotlight/pages_helper.rb +1 -8
- data/app/helpers/spotlight/roles_helper.rb +1 -1
- data/app/helpers/spotlight/searches_helper.rb +1 -1
- data/app/jobs/concerns/spotlight/gather_documents.rb +35 -0
- data/app/jobs/concerns/spotlight/job_tracking.rb +64 -0
- data/app/jobs/concerns/spotlight/limit_concurrency.rb +33 -0
- data/app/jobs/spotlight/add_tags_job.rb +31 -0
- data/app/jobs/spotlight/add_uploads_from_csv.rb +4 -3
- data/app/jobs/spotlight/application_job.rb +8 -0
- data/app/jobs/spotlight/change_visibility_job.rb +33 -0
- data/app/jobs/spotlight/cleanup_job_trackers_job.rb +13 -0
- data/app/jobs/spotlight/default_thumbnail_job.rb +1 -3
- data/app/jobs/spotlight/process_bulk_updates_csv_job.rb +82 -0
- data/app/jobs/spotlight/reindex_exhibit_job.rb +39 -0
- data/app/jobs/spotlight/reindex_job.rb +64 -44
- data/app/jobs/spotlight/remove_tags_job.rb +31 -0
- data/app/jobs/spotlight/rename_sidecar_field_job.rb +3 -2
- data/app/jobs/spotlight/rename_tags_job.rb +33 -0
- data/app/jobs/spotlight/update_job_trackers_job.rb +20 -0
- data/app/models/concerns/spotlight/browse_category_search_builder.rb +59 -0
- data/app/models/concerns/spotlight/exhibit_analytics.rb +2 -6
- data/app/models/concerns/spotlight/exhibit_defaults.rb +1 -1
- data/app/models/concerns/spotlight/exhibit_documents.rb +2 -2
- data/app/models/concerns/spotlight/resources/web.rb +1 -1
- data/app/models/concerns/spotlight/search_builder.rb +11 -0
- data/app/models/concerns/spotlight/solr_document.rb +1 -1
- data/app/models/concerns/spotlight/solr_document/atomic_updates.rb +2 -2
- data/app/models/concerns/spotlight/user.rb +7 -2
- data/app/models/sir_trevor_rails/blocks/browse_group_categories_block.rb +25 -0
- data/app/models/sir_trevor_rails/blocks/solr_documents_block.rb +9 -0
- data/app/models/sir_trevor_rails/blocks/uploaded_items_block.rb +4 -0
- data/app/models/spotlight/ability.rb +8 -2
- data/app/models/spotlight/about_page.rb +1 -1
- data/app/models/spotlight/attachment.rb +1 -1
- data/app/models/spotlight/background_job_progress.rb +96 -0
- data/app/models/spotlight/blacklight_configuration.rb +28 -7
- data/app/models/spotlight/bulk_update.rb +8 -0
- data/app/models/spotlight/event.rb +13 -0
- data/app/models/spotlight/exhibit.rb +15 -12
- data/app/models/spotlight/feature_page.rb +1 -3
- data/app/models/spotlight/featured_image.rb +8 -2
- data/app/models/spotlight/field_metadata.rb +4 -8
- data/app/models/spotlight/group.rb +22 -0
- data/app/models/spotlight/group_member.rb +11 -0
- data/app/models/spotlight/home_page.rb +1 -1
- data/app/models/spotlight/job_tracker.rb +114 -0
- data/app/models/spotlight/page.rb +3 -5
- data/app/models/spotlight/page_configurations.rb +15 -9
- data/app/models/spotlight/resource.rb +28 -62
- data/app/models/spotlight/resources/iiif_harvester.rb +12 -3
- data/app/models/spotlight/resources/iiif_manifest.rb +9 -7
- data/app/models/spotlight/resources/iiif_service.rb +9 -2
- data/app/models/spotlight/resources/json_upload.rb +12 -0
- data/app/models/spotlight/resources/upload.rb +25 -2
- data/app/models/spotlight/role.rb +1 -2
- data/app/models/spotlight/search.rb +5 -0
- data/app/models/spotlight/solr_document_sidecar.rb +2 -1
- data/app/presenters/spotlight/iiif_manifest_presenter.rb +2 -2
- data/app/services/spotlight/bulk_updates_csv_template_service.rb +93 -0
- data/app/services/spotlight/etl.rb +7 -0
- data/app/services/spotlight/etl/context.rb +52 -0
- data/app/services/spotlight/etl/executor.rb +192 -0
- data/app/services/spotlight/etl/loaders.rb +12 -0
- data/app/services/spotlight/etl/pipeline.rb +81 -0
- data/app/services/spotlight/etl/solr_loader.rb +96 -0
- data/app/services/spotlight/etl/sources.rb +25 -0
- data/app/services/spotlight/etl/step.rb +82 -0
- data/app/services/spotlight/etl/transforms.rb +64 -0
- data/app/services/spotlight/exhibit_import_export_service.rb +50 -22
- data/app/services/spotlight/iiif_resource_resolver.rb +1 -1
- data/app/services/spotlight/validity_checker.rb +5 -5
- data/app/uploaders/spotlight/bulk_updates_uploader.rb +7 -0
- data/app/uploaders/spotlight/featured_image_uploader.rb +1 -1
- data/app/views/catalog/_add_tags.html.erb +28 -0
- data/app/views/catalog/_bulk_actions.html.erb +12 -0
- data/app/views/catalog/_change_visibility.html.erb +35 -0
- data/app/views/catalog/_curator_actions.html.erb +3 -0
- data/app/views/catalog/_remove_tags.html.erb +37 -0
- data/app/views/catalog/_save_search.html.erb +1 -1
- data/app/views/spotlight/about_pages/_empty.html.erb +5 -5
- data/app/views/spotlight/browse/_search.html.erb +2 -1
- data/app/views/spotlight/browse/_search_box.html.erb +9 -9
- data/app/views/spotlight/browse/index.html.erb +13 -0
- data/app/views/spotlight/bulk_updates/_download.html.erb +23 -0
- data/app/views/spotlight/bulk_updates/_overview.html.erb +1 -0
- data/app/views/spotlight/bulk_updates/_progress_panel.html.erb +19 -0
- data/app/views/spotlight/bulk_updates/_upload.html.erb +12 -0
- data/app/views/spotlight/bulk_updates/edit.html.erb +37 -0
- data/app/views/spotlight/catalog/_admin_header.html.erb +1 -1
- data/app/views/spotlight/catalog/_admin_index_header_default.html.erb +1 -1
- data/app/views/spotlight/catalog/_admin_thumbnail_default.html.erb +3 -2
- data/app/views/spotlight/catalog/_document.html.erb +2 -4
- data/app/views/spotlight/catalog/_edit_default.html.erb +2 -2
- data/app/views/spotlight/catalog/_reindex_progress_panel.html.erb +1 -1
- data/app/views/spotlight/catalog/index.iiif_json.jbuilder +22 -0
- data/app/views/spotlight/contacts/_form.html.erb +1 -1
- data/app/views/spotlight/custom_fields/_form.html.erb +1 -1
- data/app/views/spotlight/custom_search_fields/_form.html.erb +1 -1
- data/app/views/spotlight/dashboards/_reindexing_activity.html.erb +6 -6
- data/app/views/spotlight/exhibits/_exhibit_card.html.erb +1 -1
- data/app/views/spotlight/feature_pages/_empty.html.erb +5 -5
- data/app/views/spotlight/featured_images/_form.html.erb +2 -2
- data/app/views/spotlight/featured_images/_upload_form.html.erb +1 -1
- data/app/views/spotlight/home_pages/_empty.html.erb +3 -3
- data/app/views/spotlight/job_trackers/show.html.erb +79 -0
- data/app/views/spotlight/metadata_configurations/_metadata_field.html.erb +2 -2
- data/app/views/spotlight/pages/_form.html.erb +2 -2
- data/app/views/spotlight/pages/_view_type_group.html.erb +3 -3
- data/app/views/spotlight/resources/_form.html.erb +1 -1
- data/app/views/spotlight/resources/csv_upload/_form.html.erb +1 -1
- data/app/views/spotlight/resources/iiif/_form.html.erb +1 -1
- data/app/views/spotlight/resources/json_upload/_form.html.erb +2 -2
- data/app/views/spotlight/resources/upload/_form.html.erb +1 -1
- data/app/views/spotlight/search_configurations/_document_index_view_types.html.erb +2 -2
- data/app/views/spotlight/searches/_form.html.erb +14 -2
- data/app/views/spotlight/searches/_group.html.erb +27 -0
- data/app/views/spotlight/searches/index.html.erb +58 -17
- data/app/views/spotlight/shared/_curation_sidebar.html.erb +3 -0
- data/app/views/spotlight/shared/_locale_picker.html.erb +1 -1
- data/app/views/spotlight/sir_trevor/blocks/_browse_group_categories_block.html.erb +45 -0
- data/app/views/spotlight/sir_trevor/blocks/_solr_documents_block.html.erb +8 -8
- data/app/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb +7 -7
- data/app/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb +9 -7
- data/app/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb +5 -5
- data/app/views/spotlight/sir_trevor/blocks/_uploaded_items_block.html.erb +4 -0
- data/app/views/spotlight/tags/_tag.html.erb +24 -0
- data/app/views/spotlight/tags/index.html.erb +12 -16
- data/app/views/spotlight/translations/_groups.html.erb +34 -0
- data/app/views/spotlight/translations/_import.html.erb +5 -5
- data/app/views/spotlight/translations/edit.html.erb +6 -0
- data/app/views/spotlight/translations/show.yaml.yamlbuilder +6 -0
- data/config/i18n-tasks.yml +6 -0
- data/config/locales/spotlight.ar.yml +11 -1
- data/config/locales/spotlight.en.yml +283 -87
- data/config/routes.rb +39 -1
- data/db/migrate/20210113092223_create_spotlight_groups.rb +23 -0
- data/db/migrate/20210122082032_create_job_trackers.rb +22 -0
- data/db/migrate/20210126123041_create_events.rb +15 -0
- data/db/migrate/20210305070001_remove_class_from_sirtrevor_image_blocks.rb +20 -0
- data/db/migrate/20210305171150_create_bulk_updates.rb +9 -0
- data/db/migrate/20210308090000_migrate_caption_values_for_title_key.rb +29 -0
- data/lib/generators/spotlight/install_generator.rb +5 -5
- data/lib/generators/spotlight/scaffold_resource_generator.rb +5 -13
- data/lib/generators/spotlight/templates/config/initializers/riiif.rb +7 -5
- data/lib/generators/spotlight/templates/config/initializers/spotlight_initializer.rb +1 -1
- data/lib/generators/spotlight/templates/solr/config/schema.xml +1 -1
- data/lib/migration/iiif.rb +3 -3
- data/lib/spotlight/engine.rb +26 -4
- data/lib/spotlight/version.rb +1 -1
- data/spec/controllers/spotlight/about_pages_controller_spec.rb +3 -3
- data/spec/controllers/spotlight/browse_controller_spec.rb +23 -6
- data/spec/controllers/spotlight/bulk_actions_controller_spec.rb +124 -0
- data/spec/controllers/spotlight/bulk_updates_controller_spec.rb +77 -0
- data/spec/controllers/spotlight/catalog_controller_spec.rb +15 -13
- data/spec/controllers/spotlight/contacts_controller_spec.rb +2 -2
- data/spec/controllers/spotlight/feature_pages_controller_spec.rb +11 -0
- data/spec/controllers/spotlight/featured_images_controller_spec.rb +3 -3
- data/spec/controllers/spotlight/groups_controller_spec.rb +103 -0
- data/spec/controllers/spotlight/home_pages_controller_spec.rb +1 -1
- data/spec/controllers/spotlight/job_trackers_controller_spec.rb +37 -0
- data/spec/controllers/spotlight/searches_controller_spec.rb +10 -3
- data/spec/controllers/spotlight/tags_controller_spec.rb +5 -1
- data/spec/controllers/spotlight/view_configurations_controller_spec.rb +1 -1
- data/spec/examples.txt +1501 -1410
- data/spec/factories/bulk_updates.rb +15 -0
- data/spec/factories/exhibits.rb +4 -0
- data/spec/factories/group.rb +17 -0
- data/spec/factories/job_trackers.rb +11 -0
- data/spec/factories/searches.rb +11 -1
- data/spec/factories/users.rb +27 -8
- data/spec/features/add_items_spec.rb +10 -5
- data/spec/features/browse_category_admin_spec.rb +37 -5
- data/spec/features/browse_category_navigation_spec.rb +44 -0
- data/spec/features/browse_category_spec.rb +2 -2
- data/spec/features/bulk_actions_spec.rb +72 -0
- data/spec/features/catalog_spec.rb +3 -2
- data/spec/features/dashboard_spec.rb +2 -2
- data/spec/features/edit_search_fields_spec.rb +2 -2
- data/spec/features/exhibits/edit_metadata_fields_spec.rb +1 -1
- data/spec/features/exhibits/translation_editing_spec.rb +55 -6
- data/spec/features/home_page_spec.rb +5 -5
- data/spec/features/import_exhibit_spec.rb +5 -1
- data/spec/features/item_admin_spec.rb +4 -4
- data/spec/features/javascript/about_page_admin_spec.rb +1 -1
- data/spec/features/javascript/block_controls_spec.rb +1 -1
- data/spec/features/javascript/blocks/browse_group_categories_block_spec.rb +64 -0
- data/spec/features/javascript/blocks/solr_documents_block_spec.rb +4 -4
- data/spec/features/javascript/blocks/uploaded_items_block_spec.rb +27 -1
- data/spec/features/javascript/browse_group_admin_spec.rb +45 -0
- data/spec/features/javascript/edit_in_place_spec.rb +3 -3
- data/spec/features/javascript/feature_page_admin_spec.rb +1 -1
- data/spec/features/javascript/reindex_monitor_spec.rb +1 -1
- data/spec/features/javascript/search_config_admin_spec.rb +1 -1
- data/spec/features/report_a_problem_spec.rb +1 -1
- data/spec/features/site_users_management_spec.rb +5 -5
- data/spec/fixtures/bulk-update-template.csv +57 -0
- data/spec/fixtures/updated-bulk-update-template-w-tags.csv +4 -0
- data/spec/fixtures/updated-bulk-update-template.csv +4 -0
- data/spec/helpers/spotlight/application_helper_spec.rb +5 -6
- data/spec/helpers/spotlight/crud_link_helpers_spec.rb +3 -3
- data/spec/helpers/spotlight/pages_helper_spec.rb +8 -15
- data/spec/helpers/spotlight/roles_helper_spec.rb +1 -1
- data/spec/i18n_spec.rb +1 -0
- data/spec/jobs/spotlight/add_tags_job_spec.rb +34 -0
- data/spec/jobs/spotlight/add_uploads_from_csv_spec.rb +4 -1
- data/spec/jobs/spotlight/change_visibility_job_spec.rb +30 -0
- data/spec/jobs/spotlight/process_bulk_updates_csv_job_spec.rb +78 -0
- data/spec/jobs/spotlight/reindex_exhibit_job_spec.rb +43 -0
- data/spec/jobs/spotlight/reindex_job_spec.rb +34 -60
- data/spec/jobs/spotlight/remove_tags_job_spec.rb +39 -0
- data/spec/lib/migration/iiif_spec.rb +1 -1
- data/spec/models/sir_trevor_rails/blocks/browse_group_categories_block_spec.rb +41 -0
- data/spec/models/spotlight/ability_spec.rb +27 -0
- data/spec/models/spotlight/background_job_progress_spec.rb +137 -0
- data/spec/models/spotlight/blacklight_configuration_spec.rb +22 -17
- data/spec/models/spotlight/browse_category_search_builder_spec.rb +49 -0
- data/spec/models/spotlight/exhibit_spec.rb +13 -59
- data/spec/models/spotlight/featured_image_spec.rb +1 -1
- data/spec/models/spotlight/group_spec.rb +19 -0
- data/spec/models/spotlight/main_navigation_spec.rb +1 -1
- data/spec/models/spotlight/resource_spec.rb +89 -87
- data/spec/models/spotlight/resources/iiif_harvester_spec.rb +9 -10
- data/spec/models/spotlight/role_spec.rb +1 -1
- data/spec/models/spotlight/search_spec.rb +30 -3
- data/spec/models/spotlight/solr_document/atomic_updates_spec.rb +10 -0
- data/spec/models/spotlight/solr_document_sidecar_spec.rb +1 -0
- data/spec/presenters/spotlight/iiif_manifest_presenter_spec.rb +1 -1
- data/spec/services/spotlight/bulk_updates_csv_template_service_spec.rb +26 -0
- data/spec/services/spotlight/etl/context_spec.rb +66 -0
- data/spec/services/spotlight/etl/executor_spec.rb +149 -0
- data/spec/services/spotlight/etl/pipeline_spec.rb +22 -0
- data/spec/services/spotlight/etl/solr_loader_spec.rb +76 -0
- data/spec/services/spotlight/etl/step_spec.rb +70 -0
- data/spec/services/spotlight/exhibit_import_export_service_spec.rb +48 -1
- data/spec/spec_helper.rb +3 -6
- data/spec/support/features/test_features_helpers.rb +15 -0
- data/spec/test_app_templates/Gemfile.extra +2 -0
- data/spec/test_app_templates/catalog_controller.rb +6 -3
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +2 -2
- data/spec/uploaders/spotlight/featured_image_uploader_spec.rb +2 -2
- data/spec/views/shared/_exhibit_navbar.html.erb_spec.rb +1 -1
- data/spec/views/spotlight/browse/index.html.erb_spec.rb +2 -0
- data/spec/views/spotlight/catalog/_edit_default.html.erb_spec.rb +1 -1
- data/spec/views/spotlight/dashboards/_analytics.html.erb_spec.rb +1 -1
- data/spec/views/spotlight/dashboards/_reindexing_activity.html.erb_spec.rb +30 -25
- data/spec/views/spotlight/job_trackers/show.html.erb_spec.rb +65 -0
- data/spec/views/spotlight/metadata_configurations/_metadata_field.html.erb_spec.rb +3 -4
- data/spec/views/spotlight/pages/show.html.erb_spec.rb +1 -0
- data/spec/views/spotlight/search_configurations/_facets.html.erb_spec.rb +1 -1
- data/spec/views/spotlight/sir_trevor/blocks/_browse_block.html.erb_spec.rb +1 -1
- data/spec/views/spotlight/sir_trevor/blocks/_iframe_block.html.erb_spec.rb +1 -1
- data/spec/views/spotlight/sir_trevor/blocks/_link_to_search_block.html.erb_spec.rb +1 -1
- data/spec/views/spotlight/sir_trevor/blocks/_rule_block.html.erb_spec.rb +1 -1
- data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_block.html.erb_spec.rb +8 -4
- data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb_spec.rb +7 -2
- data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb_spec.rb +8 -5
- data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb_spec.rb +3 -2
- data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb_spec.rb +9 -4
- data/spec/views/spotlight/tags/index.html.erb_spec.rb +5 -2
- data/vendor/assets/javascripts/tiny-slider.js +3218 -0
- data/vendor/assets/stylesheets/tiny-slider.css +1 -0
- metadata +471 -281
- data/app/assets/images/blacklight/add_circle.svg +0 -1
- data/app/assets/images/blacklight/custom_fullscreen.svg +0 -1
- data/app/assets/images/blacklight/remove_circle.svg +0 -1
- data/app/assets/images/blacklight/resize_small.svg +0 -1
- data/app/models/concerns/spotlight/resources/open_graph.rb +0 -36
- data/app/models/spotlight/reindex_progress.rb +0 -78
- data/app/models/spotlight/reindexing_log_entry.rb +0 -42
- data/app/services/spotlight/resources/iiif_builder.rb +0 -19
- data/app/services/spotlight/solr_document_builder.rb +0 -77
- data/app/services/spotlight/upload_solr_document_builder.rb +0 -57
- data/spec/factories/reindexing_log_entries.rb +0 -54
- data/spec/models/spotlight/reindex_progress_spec.rb +0 -122
- data/spec/models/spotlight/reindexing_log_entry_spec.rb +0 -129
- data/spec/models/spotlight/resources/open_graph_spec.rb +0 -65
- data/spec/services/spotlight/solr_document_builder_spec.rb +0 -66
- data/vendor/assets/javascripts/handlebars-v1.3.0.js +0 -2746
@@ -6,6 +6,12 @@ class CatalogController < ApplicationController
|
|
6
6
|
before_action :set_paper_trail_whodunnit
|
7
7
|
|
8
8
|
configure_blacklight do |config|
|
9
|
+
config.view.gallery.document_component = Blacklight::Gallery::DocumentComponent
|
10
|
+
# config.view.gallery.classes = 'row-cols-2 row-cols-md-3'
|
11
|
+
config.view.masonry.document_component = Blacklight::Gallery::DocumentComponent
|
12
|
+
config.view.slideshow.document_component = Blacklight::Gallery::SlideshowComponent
|
13
|
+
config.show.tile_source_field = :content_metadata_image_iiif_info_ssm
|
14
|
+
config.show.partials.insert(1, :openseadragon)
|
9
15
|
## Default parameters to send to solr for all search-like requests. See also SolrHelper#solr_search_params
|
10
16
|
config.default_solr_params = {
|
11
17
|
qt: 'search',
|
@@ -29,9 +35,6 @@ class CatalogController < ApplicationController
|
|
29
35
|
config.index.display_type_field = 'content_metadata_type_ssm'
|
30
36
|
config.index.thumbnail_field = Spotlight::Engine.config.thumbnail_field
|
31
37
|
|
32
|
-
config.view.gallery.partials = %i[index_header index]
|
33
|
-
config.view.slideshow.partials = [:index]
|
34
|
-
|
35
38
|
config.show.tile_source_field = :content_metadata_image_iiif_info_ssm
|
36
39
|
config.show.partials.insert(1, :openseadragon)
|
37
40
|
|
@@ -10,8 +10,8 @@ class TestAppGenerator < Rails::Generators::Base
|
|
10
10
|
end
|
11
11
|
|
12
12
|
def add_gems
|
13
|
-
gem 'blacklight', '~> 7.
|
14
|
-
gem 'blacklight-gallery', '~>
|
13
|
+
gem 'blacklight', '~> 7.17'
|
14
|
+
gem 'blacklight-gallery', '~> 3.0'
|
15
15
|
Bundler.with_clean_env do
|
16
16
|
run 'bundle install'
|
17
17
|
end
|
@@ -5,9 +5,9 @@ describe Spotlight::FeaturedImageUploader do
|
|
5
5
|
|
6
6
|
let(:mounter) { FactoryBot.create(:featured_image) }
|
7
7
|
|
8
|
-
describe '#
|
8
|
+
describe '#extension_allowlist' do
|
9
9
|
it 'is the configured array of approved extension to be uploaded' do
|
10
|
-
expect(featured_image_uploader.
|
10
|
+
expect(featured_image_uploader.extension_allowlist).to eq Spotlight::Engine.config.allowed_upload_extensions
|
11
11
|
end
|
12
12
|
end
|
13
13
|
|
@@ -42,7 +42,7 @@ describe 'shared/_exhibit_navbar', type: :view do
|
|
42
42
|
feature_page
|
43
43
|
another_page = FactoryBot.create(:feature_page, exhibit: current_exhibit)
|
44
44
|
render
|
45
|
-
expect(response).to have_selector '.dropdown .dropdown-toggle', text: 'Curated
|
45
|
+
expect(response).to have_selector '.dropdown .dropdown-toggle', text: 'Curated features'
|
46
46
|
expect(response).to have_link feature_page.title, visible: false, href: spotlight.exhibit_feature_page_path(current_exhibit, feature_page)
|
47
47
|
expect(response).to have_link another_page.title, visible: false, href: spotlight.exhibit_feature_page_path(current_exhibit, another_page)
|
48
48
|
end
|
@@ -7,11 +7,13 @@ describe 'spotlight/browse/index', type: :view do
|
|
7
7
|
before { allow(view).to receive(:current_exhibit).and_return(search.exhibit) }
|
8
8
|
|
9
9
|
it 'has a title' do
|
10
|
+
assign :groups, []
|
10
11
|
render
|
11
12
|
expect(response).to have_selector 'h1', text: 'Browse'
|
12
13
|
end
|
13
14
|
|
14
15
|
it 'renders the collection of searches' do
|
16
|
+
assign :groups, []
|
15
17
|
assign :searches, [search, another_search]
|
16
18
|
stub_template 'spotlight/browse/_search.html.erb' => '<%= search.id %> <br/>'
|
17
19
|
render
|
@@ -25,7 +25,7 @@ describe 'spotlight/catalog/_edit_default.html.erb', type: :view do
|
|
25
25
|
it 'has a edit tag form' do
|
26
26
|
render
|
27
27
|
expect(rendered).to have_field 'solr_document_exhibit_tag_list'
|
28
|
-
expect(rendered).to have_selector '#solr_document_exhibit_tag_list[@data-
|
28
|
+
expect(rendered).to have_selector '#solr_document_exhibit_tag_list[@data-autocomplete-url="autocomplete-path.json"]'
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'does not have special metadata editing fields for non-uploaded resources' do
|
@@ -19,7 +19,7 @@ describe 'spotlight/dashboards/_analytics.html.erb', type: :view do
|
|
19
19
|
|
20
20
|
it 'has header' do
|
21
21
|
render
|
22
|
-
expect(rendered).to have_content 'User
|
22
|
+
expect(rendered).to have_content 'User activity over the past month'
|
23
23
|
end
|
24
24
|
|
25
25
|
it 'has metric labels' do
|
@@ -1,26 +1,23 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
describe 'spotlight/dashboards/_reindexing_activity.html.erb', type: :view do
|
4
|
-
# recent reindexing entries should be sorted by start_time in descending order, so mock that behavior
|
5
|
-
let(:recent_reindexing) do
|
6
|
-
[FactoryBot.build(:unstarted_reindexing_log_entry)] + # nil start_time is trouble for the sort_by used to create the rest of the fixture's rows
|
7
|
-
[
|
8
|
-
FactoryBot.build(:reindexing_log_entry),
|
9
|
-
FactoryBot.build(:in_progress_reindexing_log_entry),
|
10
|
-
FactoryBot.build(:recent_reindexing_log_entry),
|
11
|
-
FactoryBot.build(:failed_reindexing_log_entry)
|
12
|
-
].sort_by(&:start_time).reverse
|
13
|
-
end
|
14
4
|
let(:p) { 'spotlight/dashboards/reindexing_activity' }
|
5
|
+
let(:exhibit) { FactoryBot.build(:exhibit) }
|
6
|
+
|
7
|
+
before do
|
8
|
+
assign(:recent_reindexing, recent_reindexing)
|
9
|
+
allow(view).to receive(:current_exhibit).and_return(exhibit)
|
10
|
+
end
|
15
11
|
|
16
12
|
context 'the reindexing log is empty' do
|
13
|
+
let(:recent_reindexing) { [] }
|
14
|
+
|
17
15
|
before do
|
18
|
-
assign(:recent_reindexing, [])
|
19
16
|
render p
|
20
17
|
end
|
21
18
|
|
22
19
|
it 'displays the section header' do
|
23
|
-
expect(rendered).to have_css('h2', text: 'Recent
|
20
|
+
expect(rendered).to have_css('h2', text: 'Recent item indexing activity')
|
24
21
|
end
|
25
22
|
|
26
23
|
it 'displays an explanatory message when there are no reindexing attempts in the log' do
|
@@ -29,21 +26,31 @@ describe 'spotlight/dashboards/_reindexing_activity.html.erb', type: :view do
|
|
29
26
|
end
|
30
27
|
|
31
28
|
context 'the reindexing log has entries' do
|
29
|
+
# recent reindexing entries should be sorted by start_time in descending order, so mock that behavior
|
30
|
+
let(:recent_reindexing) do
|
31
|
+
[
|
32
|
+
FactoryBot.build(:job_tracker, status: 'enqueued'),
|
33
|
+
FactoryBot.build(:job_tracker, status: 'completed', data: { progress: 10 }),
|
34
|
+
FactoryBot.build(:job_tracker, status: 'in_progress', created_at: Time.zone.parse('January 10, 2017 23:00')),
|
35
|
+
FactoryBot.build(:job_tracker, status: 'completed', data: { progress: 100 }),
|
36
|
+
FactoryBot.build(:job_tracker, status: 'failed', data: { progress: 10 })
|
37
|
+
]
|
38
|
+
end
|
39
|
+
|
32
40
|
before do
|
33
|
-
assign(:recent_reindexing, recent_reindexing)
|
34
41
|
render p
|
35
42
|
end
|
36
43
|
|
37
44
|
it 'displays the correct localized column headings when there are reindexing attempts in the log' do
|
38
45
|
expect(rendered).to have_css('table.table-striped th.col-3', text: 'Date', count: 1)
|
39
|
-
expect(rendered).to have_css('table.table-striped th.col-3', text: 'Requested
|
40
|
-
expect(rendered).to have_css('table.table-striped th.col-1', text: 'Items
|
41
|
-
expect(rendered).to have_css('table.table-striped th.col-3', text: 'Elapsed
|
46
|
+
expect(rendered).to have_css('table.table-striped th.col-3', text: 'Requested by', count: 1)
|
47
|
+
expect(rendered).to have_css('table.table-striped th.col-1', text: 'Items indexed', count: 1)
|
48
|
+
expect(rendered).to have_css('table.table-striped th.col-3', text: 'Elapsed time', count: 1)
|
42
49
|
expect(rendered).to have_css('table.table-striped th.col-2', text: 'Status', count: 1)
|
43
50
|
end
|
44
51
|
|
45
52
|
it 'formats the start time correctly' do
|
46
|
-
expect(rendered).to have_css('table.table-striped td', text: 'January 05, 2017 23:00', count:
|
53
|
+
expect(rendered).to have_css('table.table-striped td', text: 'January 05, 2017 23:00', count: 4)
|
47
54
|
expect(rendered).to have_css('table.table-striped td', text: 'January 10, 2017 23:00', count: 1)
|
48
55
|
end
|
49
56
|
|
@@ -60,22 +67,20 @@ describe 'spotlight/dashboards/_reindexing_activity.html.erb', type: :view do
|
|
60
67
|
expect(rendered).to have_css('table.table-striped td', text: '5 minutes', count: 3)
|
61
68
|
end
|
62
69
|
|
63
|
-
it 'displays nothing in the duration column or start time column when the info is unavailable (e.g. unstarted or in_progress attempts)' do
|
64
|
-
# we expect 2 blank durations, and 1 blank start time (1 unstarted log entry w/ blank start and duration, 1 in_progress w/ blank duration)
|
65
|
-
expect(rendered).to have_css('table.table-striped td', text: /^$/, count: 3)
|
66
|
-
end
|
67
|
-
|
68
70
|
it 'displays the status of the reindexing attempt using localized text' do
|
69
|
-
expect(rendered).to have_css('table.table-striped td', text: 'Not
|
71
|
+
expect(rendered).to have_css('table.table-striped td', text: 'Not yet started', count: 1)
|
70
72
|
expect(rendered).to have_css('table.table-striped td', text: 'Successful', count: 2)
|
71
|
-
expect(rendered).to have_css('table.table-striped td', text: 'In
|
73
|
+
expect(rendered).to have_css('table.table-striped td', text: 'In progress', count: 1)
|
72
74
|
expect(rendered).to have_css('table.table-striped td', text: 'Failed', count: 1)
|
73
75
|
end
|
74
76
|
end
|
75
77
|
|
76
78
|
context 'a reindexing log entry has a null user' do
|
79
|
+
let(:recent_reindexing) do
|
80
|
+
[FactoryBot.build(:job_tracker, status: 'completed', data: { progress: 10 }, user: nil)]
|
81
|
+
end
|
82
|
+
|
77
83
|
it 'displays blank in the user field and renders without error' do
|
78
|
-
assign(:recent_reindexing, [FactoryBot.build(:reindexing_log_entry_no_user)])
|
79
84
|
expect { render p }.not_to raise_error
|
80
85
|
|
81
86
|
# we expect one blank table cell for the user, and values for everything else
|
@@ -0,0 +1,65 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
describe 'spotlight/job_trackers/show', type: :view do
|
4
|
+
let(:exhibit) { FactoryBot.create(:exhibit) }
|
5
|
+
let(:job_tracker) { FactoryBot.create(:job_tracker, job_class: 'Spotlight::ReindexExhibitJob', on: exhibit, user: user) }
|
6
|
+
let(:user) { FactoryBot.create(:user) }
|
7
|
+
|
8
|
+
before do
|
9
|
+
assign(:exhibit, exhibit)
|
10
|
+
assign(:job_tracker, job_tracker)
|
11
|
+
|
12
|
+
allow(view).to receive_messages(current_exhibit: exhibit)
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'displays the type of job' do
|
16
|
+
render
|
17
|
+
expect(rendered).to have_selector 'h2', text: 'Spotlight::ReindexExhibitJob'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'displays the job status for enqueued jobs' do
|
21
|
+
job_tracker.update(status: 'enqueued')
|
22
|
+
render
|
23
|
+
expect(rendered).to have_content '⏱'
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'displays the job status for failed jobs' do
|
27
|
+
job_tracker.update(status: 'failed')
|
28
|
+
render
|
29
|
+
expect(rendered).to have_content '🟥'
|
30
|
+
expect(rendered).to have_content 'job failed'
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'displays the job status for successful jobs' do
|
34
|
+
job_tracker.update(status: 'completed')
|
35
|
+
render
|
36
|
+
expect(rendered).to have_content '✅'
|
37
|
+
expect(rendered).to have_content 'job completed'
|
38
|
+
end
|
39
|
+
|
40
|
+
it 'display job started events' do
|
41
|
+
render
|
42
|
+
expect(rendered).to have_selector 'tr', text: '1 job started', normalize_ws: true
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'records who started the job' do
|
46
|
+
render
|
47
|
+
expect(rendered).to have_selector 'tr', text: "2 job created by #{user.email}", normalize_ws: true
|
48
|
+
end
|
49
|
+
|
50
|
+
it 'displays logged messages' do
|
51
|
+
job_tracker.events.create(data: { message: 'this is a useful log message' })
|
52
|
+
job_tracker.events.create(data: { message: 'and so is this' })
|
53
|
+
|
54
|
+
render
|
55
|
+
expect(rendered).to have_selector 'tr', text: 'this is a useful log message'
|
56
|
+
expect(rendered).to have_selector 'tr', text: 'and so is this'
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'displays job progress information' do
|
60
|
+
allow(job_tracker).to receive_messages(progress: 37, total: 51)
|
61
|
+
|
62
|
+
render
|
63
|
+
expect(rendered).to have_content 'processed 37 / 51'
|
64
|
+
end
|
65
|
+
end
|
@@ -2,9 +2,9 @@
|
|
2
2
|
|
3
3
|
describe 'spotlight/metadata_configurations/_metadata_field', type: :view do
|
4
4
|
let(:exhibit) { FactoryBot.create(:exhibit) }
|
5
|
-
let(:field) { Blacklight::Configuration::Field.new immutable: OpenStruct.new(another_view_type: false) }
|
5
|
+
let(:field) { Blacklight::Configuration::Field.new label: 'Some label', immutable: OpenStruct.new(another_view_type: false) }
|
6
6
|
let(:builder) { ActionView::Helpers::FormBuilder.new 'z', nil, view, {} }
|
7
|
-
let(:p) { 'spotlight/metadata_configurations/metadata_field
|
7
|
+
let(:p) { 'spotlight/metadata_configurations/metadata_field' }
|
8
8
|
|
9
9
|
before do
|
10
10
|
assign(:exhibit, exhibit)
|
@@ -17,8 +17,7 @@ describe 'spotlight/metadata_configurations/_metadata_field', type: :view do
|
|
17
17
|
)
|
18
18
|
end
|
19
19
|
|
20
|
-
it 'uses the
|
21
|
-
allow(view).to receive(:index_field_label).with(anything, 'some_key').and_return 'Some label'
|
20
|
+
it 'uses the metadata field label' do
|
22
21
|
render partial: p, locals: { key: 'some_key', config: field, f: builder }
|
23
22
|
expect(rendered).to have_selector '.field-label', text: 'Some label'
|
24
23
|
end
|
@@ -11,6 +11,7 @@ describe 'spotlight/pages/show', type: :view do
|
|
11
11
|
|
12
12
|
before do
|
13
13
|
allow(view).to receive(:current_exhibit).and_return(exhibit)
|
14
|
+
allow(view).to receive(:render_body_class).and_return('')
|
14
15
|
assign(:page, page)
|
15
16
|
stub_template 'spotlight/pages/_sidebar.html.erb' => 'Sidebar'
|
16
17
|
stub_template 'spotlight/pages/_tophat.html.erb' => ''
|
@@ -29,7 +29,7 @@ describe 'spotlight/search_configurations/_facets', type: :view do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
it 'shows the config for the non-empty personal name facet' do
|
32
|
-
expect(rendered).to have_content 'Personal
|
32
|
+
expect(rendered).to have_content 'Personal names'
|
33
33
|
end
|
34
34
|
|
35
35
|
it 'shows the config for the empty custom facet' do
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
describe 'spotlight/sir_trevor/blocks/_browse_block.html.erb', type: :view do
|
4
|
-
let(:p) { 'spotlight/sir_trevor/blocks/browse_block
|
4
|
+
let(:p) { 'spotlight/sir_trevor/blocks/browse_block' }
|
5
5
|
let(:page) { double('Page', display_sidebar?: true) }
|
6
6
|
let(:search) { FactoryBot.create(:search) }
|
7
7
|
let(:block) do
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
describe 'spotlight/sir_trevor/blocks/_iframe_block.html.erb', type: :view do
|
4
|
-
let(:p) { 'spotlight/sir_trevor/blocks/iframe_block
|
4
|
+
let(:p) { 'spotlight/sir_trevor/blocks/iframe_block' }
|
5
5
|
let(:block) do
|
6
6
|
OpenStruct.new
|
7
7
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
describe 'spotlight/sir_trevor/blocks/_link_to_search_block.html.erb', type: :view do
|
4
|
-
let(:p) { 'spotlight/sir_trevor/blocks/link_to_search_block
|
4
|
+
let(:p) { 'spotlight/sir_trevor/blocks/link_to_search_block' }
|
5
5
|
let(:page) { double('Page', display_sidebar?: true) }
|
6
6
|
let(:search) { FactoryBot.create(:search, query_params: { a: 1 }) }
|
7
7
|
let(:block) do
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
describe 'spotlight/sir_trevor/blocks/_rule_block.html.erb', type: :view do
|
4
|
-
let(:p) { 'spotlight/sir_trevor/blocks/rule_block
|
4
|
+
let(:p) { 'spotlight/sir_trevor/blocks/rule_block' }
|
5
5
|
|
6
6
|
it 'has an hr' do
|
7
7
|
render partial: p
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
describe 'spotlight/sir_trevor/blocks/_solr_documents_block.html.erb', type: :view do
|
4
|
-
let(:p) { 'spotlight/sir_trevor/blocks/solr_documents_block
|
4
|
+
let(:p) { 'spotlight/sir_trevor/blocks/solr_documents_block' }
|
5
5
|
let(:page) { double('Page') }
|
6
6
|
let(:block) do
|
7
7
|
SirTrevorRails::Blocks::SolrDocumentsBlock.new({ type: 'block', data: { title: 'Some title', text: 'Some text', 'text-align' => 'right' } }, page)
|
@@ -9,10 +9,14 @@ describe 'spotlight/sir_trevor/blocks/_solr_documents_block.html.erb', type: :vi
|
|
9
9
|
let(:doc) { blacklight_config.document_model.new(id: 1) }
|
10
10
|
let(:blacklight_config) do
|
11
11
|
Blacklight::Configuration.new do |config|
|
12
|
-
config.view.embed
|
13
|
-
config.view.embed.locals = { a: 1 }
|
12
|
+
config.view.embed(partials: %w[a b c], locals: { a: 1 })
|
14
13
|
end
|
15
14
|
end
|
15
|
+
let(:stub_presenter) do
|
16
|
+
instance_double(Blacklight::DocumentPresenter, heading: 'blah', thumbnail: thumbnail_presenter)
|
17
|
+
end
|
18
|
+
|
19
|
+
let(:thumbnail_presenter) { instance_double(Blacklight::ThumbnailPresenter, exists?: true, thumbnail_tag: 'thumb') }
|
16
20
|
|
17
21
|
before do
|
18
22
|
allow(block).to receive(:each_document).and_yield({}, doc)
|
@@ -21,7 +25,7 @@ describe 'spotlight/sir_trevor/blocks/_solr_documents_block.html.erb', type: :vi
|
|
21
25
|
|
22
26
|
before do
|
23
27
|
allow(view).to receive(:blacklight_config).and_return(blacklight_config)
|
24
|
-
allow(view).to receive_messages(
|
28
|
+
allow(view).to receive_messages(document_presenter: stub_presenter, document_link_params: {})
|
25
29
|
end
|
26
30
|
|
27
31
|
context 'with a multi-image object' do
|
@@ -1,10 +1,15 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
describe 'spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb', type: :view do
|
4
|
-
let(:p) { 'spotlight/sir_trevor/blocks/solr_documents_carousel_block
|
4
|
+
let(:p) { 'spotlight/sir_trevor/blocks/solr_documents_carousel_block' }
|
5
5
|
let(:block) do
|
6
6
|
SirTrevorRails::Blocks::SolrDocumentsCarouselBlock.new({ type: 'block', data: {} }, page)
|
7
7
|
end
|
8
|
+
let(:stub_presenter) do
|
9
|
+
instance_double(Blacklight::DocumentPresenter, heading: 'blah', thumbnail: thumbnail_presenter)
|
10
|
+
end
|
11
|
+
|
12
|
+
let(:thumbnail_presenter) { instance_double(Blacklight::ThumbnailPresenter, exists?: true, thumbnail_tag: 'thumb') }
|
8
13
|
|
9
14
|
before do
|
10
15
|
allow(block).to receive(:each_document).and_return([
|
@@ -14,7 +19,7 @@ describe 'spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb',
|
|
14
19
|
])
|
15
20
|
allow(block).to receive_messages(documents?: true)
|
16
21
|
allow(view).to receive_messages(solr_documents_carousel_block: block)
|
17
|
-
allow(view).to receive_messages(
|
22
|
+
allow(view).to receive_messages(document_presenter: stub_presenter, blacklight_config: Blacklight::Configuration.new)
|
18
23
|
end
|
19
24
|
|
20
25
|
it 'has a slideshow block' do
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
describe 'spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb', type: :view do
|
4
|
-
let(:p) { 'spotlight/sir_trevor/blocks/solr_documents_embed_block
|
4
|
+
let(:p) { 'spotlight/sir_trevor/blocks/solr_documents_embed_block' }
|
5
5
|
let(:page) { double('Page') }
|
6
6
|
let(:block) do
|
7
7
|
SirTrevorRails::Blocks::SolrDocumentsEmbedBlock.new({ type: 'block', data: { title: 'Some title', text: 'Some text', 'text-align' => 'right' } }, page)
|
@@ -9,10 +9,14 @@ describe 'spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb', typ
|
|
9
9
|
let(:doc) { blacklight_config.document_model.new(id: 1) }
|
10
10
|
let(:blacklight_config) do
|
11
11
|
Blacklight::Configuration.new do |config|
|
12
|
-
config.view.embed
|
13
|
-
config.view.embed.locals = { a: 1 }
|
12
|
+
config.view.embed(partials: %w[a b c], locals: { a: 1 })
|
14
13
|
end
|
15
14
|
end
|
15
|
+
let(:stub_presenter) do
|
16
|
+
instance_double(Blacklight::DocumentPresenter, heading: 'blah', thumbnail: thumbnail_presenter)
|
17
|
+
end
|
18
|
+
|
19
|
+
let(:thumbnail_presenter) { instance_double(Blacklight::ThumbnailPresenter, exists?: true, thumbnail_tag: 'thumb') }
|
16
20
|
|
17
21
|
before do
|
18
22
|
allow(block).to receive(:each_document).and_yield({}, doc)
|
@@ -20,8 +24,7 @@ describe 'spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb', typ
|
|
20
24
|
end
|
21
25
|
|
22
26
|
before do
|
23
|
-
allow(view).to
|
24
|
-
allow(view).to receive_messages(has_thumbnail?: true, render_thumbnail_tag: 'thumb')
|
27
|
+
allow(view).to receive_messages(blacklight_config: blacklight_config, document_presenter: stub_presenter)
|
25
28
|
end
|
26
29
|
|
27
30
|
it 'has a embed block' do
|