blacklight-spotlight 3.0.0.alpha.10 → 3.0.0.rc5
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/crop.es6 +6 -0
- 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/block_controls.js +21 -12
- 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 +211 -83
- data/app/assets/stylesheets/spotlight/_item_text_block.scss +6 -0
- 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/_report_a_problem.scss +5 -2
- 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/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 +12 -3
- 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 +10 -9
- data/app/controllers/spotlight/concerns/application_controller.rb +13 -2
- data/app/controllers/spotlight/dashboards_controller.rb +2 -1
- 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 +5 -8
- data/app/controllers/spotlight/resources/csv_upload_controller.rb +1 -1
- 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 +1 -1
- data/app/helpers/spotlight/pages_helper.rb +1 -8
- data/app/helpers/spotlight/roles_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 +32 -6
- 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/mailers/spotlight/indexing_complete_mailer.rb +3 -2
- 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/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/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 +19 -7
- data/app/models/spotlight/bulk_update.rb +8 -0
- data/app/models/spotlight/contact.rb +1 -1
- data/app/models/spotlight/custom_field.rb +3 -3
- 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 +9 -3
- 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 +6 -0
- data/app/models/spotlight/page_content.rb +2 -0
- data/app/models/spotlight/resource.rb +28 -62
- data/app/models/spotlight/resources/csv_upload.rb +2 -1
- data/app/models/spotlight/resources/iiif_harvester.rb +12 -3
- data/app/models/spotlight/resources/iiif_manifest.rb +11 -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 +1 -1
- 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/values/custom_field_name.rb +1 -0
- 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/spotlight/about_pages/_empty.html.erb +5 -5
- data/app/views/spotlight/browse/_search.html.erb +2 -1
- 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/_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 +1 -1
- 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/indexing_complete_mailer/documents_indexed.html.erb +9 -0
- data/app/views/spotlight/job_trackers/show.html.erb +79 -0
- data/app/views/spotlight/pages/_form.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/searches/_form.html.erb +12 -0
- 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/_honeypot_field.html.erb +4 -0
- data/app/views/spotlight/shared/_locale_picker.html.erb +1 -1
- data/app/views/spotlight/shared/_report_a_problem.html.erb +7 -10
- 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 +3 -3
- data/app/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb +2 -2
- data/app/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb +2 -2
- data/app/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb +2 -2
- 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 +8 -0
- data/config/locales/spotlight.ar.yml +32 -18
- data/config/locales/spotlight.en.yml +296 -93
- data/config/routes.rb +38 -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/lib/generators/spotlight/install_generator.rb +23 -2
- 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/sir_trevor_rails.rb +10 -0
- data/lib/generators/spotlight/templates/config/initializers/spotlight_initializer.rb +3 -1
- data/lib/generators/spotlight/templates/solr/config/schema.xml +1 -1
- data/lib/migration/iiif.rb +3 -3
- data/lib/spotlight/engine.rb +29 -4
- data/lib/spotlight/upload_field_config.rb +1 -0
- 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 +24 -1
- 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/resources/csv_upload_controller_spec.rb +4 -4
- 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 +1500 -125
- 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_contacts_spec.rb +1 -1
- data/spec/features/add_items_spec.rb +10 -5
- data/spec/features/browse_category_admin_spec.rb +39 -7
- 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/create_exhibit_spec.rb +5 -4
- data/spec/features/dashboard_spec.rb +7 -7
- data/spec/features/edit_search_fields_spec.rb +2 -2
- data/spec/features/exhibits/administration_spec.rb +3 -3
- data/spec/features/exhibits/edit_metadata_fields_spec.rb +1 -1
- data/spec/features/exhibits/language_create_edit_spec.rb +3 -3
- 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 +3 -1
- data/spec/features/javascript/blocks/browse_group_categories_block_spec.rb +64 -0
- data/spec/features/javascript/blocks/solr_documents_block_spec.rb +3 -3
- 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 +6 -5
- 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 +0 -1
- data/spec/helpers/spotlight/crud_link_helpers_spec.rb +3 -3
- data/spec/helpers/spotlight/pages_helper_spec.rb +10 -17
- 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 +16 -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/mailers/spotlight/indexing_complete_mailer_spec.rb +11 -1
- data/spec/models/sir_trevor_rails/blocks/browse_group_categories_block_spec.rb +41 -0
- data/spec/models/solr_document_spec.rb +2 -3
- data/spec/models/spotlight/ability_spec.rb +27 -0
- data/spec/models/spotlight/access_controls_enforcement_search_builder_spec.rb +1 -0
- data/spec/models/spotlight/background_job_progress_spec.rb +137 -0
- data/spec/models/spotlight/blacklight_configuration_spec.rb +8 -3
- data/spec/models/spotlight/exhibit_spec.rb +13 -59
- data/spec/models/spotlight/featured_image_spec.rb +1 -2
- 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 +3 -3
- 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/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 +62 -3
- data/spec/services/spotlight/iiif_resource_resolver_spec.rb +1 -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 -3
- data/spec/test_app_templates/catalog_controller.rb +6 -3
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +1 -1
- 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 -3
- 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/search_configurations/_sort.html.erb_spec.rb +7 -8
- data/spec/views/spotlight/tags/index.html.erb_spec.rb +5 -2
- data/vendor/assets/javascripts/leaflet-iiif.js +46 -21
- data/vendor/assets/javascripts/tiny-slider.js +3218 -0
- data/vendor/assets/stylesheets/tiny-slider.css +1 -0
- metadata +511 -296
- 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 -76
- 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
@@ -54,7 +54,7 @@ describe 'Uploaded Items Block', feature: true, js: true, versioning: true do
|
|
54
54
|
attach_file('uploaded_item_url', fixture_file2)
|
55
55
|
|
56
56
|
# This line blocks until the javascript has added the file to the page:
|
57
|
-
expect(find('
|
57
|
+
expect(find('input[name="item[file_0][display]"]')).to be_present
|
58
58
|
|
59
59
|
# Uncheck the first checkbox
|
60
60
|
all('input[type="checkbox"]').first.click
|
@@ -65,4 +65,30 @@ describe 'Uploaded Items Block', feature: true, js: true, versioning: true do
|
|
65
65
|
expect(page).to have_css('img[alt=""]', count: 1)
|
66
66
|
end
|
67
67
|
end
|
68
|
+
|
69
|
+
it 'may have ZPR links' do
|
70
|
+
attach_file('uploaded_item_url', fixture_file1)
|
71
|
+
attach_file('uploaded_item_url', fixture_file2)
|
72
|
+
|
73
|
+
check 'Offer "View larger" option'
|
74
|
+
# this seems silly, but also seems to help with the flappy-ness of this spec
|
75
|
+
expect(find_field('Offer "View larger" option', checked: true)).to be_checked
|
76
|
+
|
77
|
+
save_page
|
78
|
+
|
79
|
+
within('.uploaded-items-block') do
|
80
|
+
expect(page).to have_button('View larger', count: 2)
|
81
|
+
end
|
82
|
+
|
83
|
+
within first('.contents') do
|
84
|
+
data = find('button')['data-iiif-tilesource']
|
85
|
+
expect(data).to be_present
|
86
|
+
expect(JSON.parse(data).with_indifferent_access).to include type: 'image', url: end_with('800x600.png')
|
87
|
+
click_button 'View larger'
|
88
|
+
end
|
89
|
+
|
90
|
+
within '.modal-content' do
|
91
|
+
expect(page).to have_css('#osd-modal-container')
|
92
|
+
end
|
93
|
+
end
|
68
94
|
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
describe 'Browse Group Adminstration', js: true do
|
4
|
+
let(:exhibit) { FactoryBot.create(:exhibit) }
|
5
|
+
let(:exhibit_curator) { FactoryBot.create(:exhibit_curator, exhibit: exhibit) }
|
6
|
+
let!(:group1) do
|
7
|
+
FactoryBot.create(
|
8
|
+
:group,
|
9
|
+
title: 'Good group 1',
|
10
|
+
exhibit: exhibit
|
11
|
+
)
|
12
|
+
end
|
13
|
+
|
14
|
+
before { login_as exhibit_curator }
|
15
|
+
|
16
|
+
it 'is able to create new groups' do
|
17
|
+
visit spotlight.exhibit_searches_path(exhibit, anchor: 'browse-groups')
|
18
|
+
|
19
|
+
add_new_via_button('My New Group')
|
20
|
+
|
21
|
+
expect(page).to have_content 'The browse group was created.'
|
22
|
+
expect(page).to have_css('li.dd-item')
|
23
|
+
expect(page).to have_css('h4', text: 'My New Group')
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'updates the page titles' do
|
27
|
+
visit spotlight.exhibit_searches_path(exhibit, anchor: 'browse-groups')
|
28
|
+
|
29
|
+
within("[data-id='#{group1.id}']") do
|
30
|
+
within('h4') do
|
31
|
+
expect(page).to have_content('Good group 1')
|
32
|
+
expect(page).to have_css('.title-field', visible: false)
|
33
|
+
click_link('Good group 1')
|
34
|
+
expect(page).to have_css('.title-field', visible: true)
|
35
|
+
find('.title-field').set('New good group 1')
|
36
|
+
end
|
37
|
+
end
|
38
|
+
click_button('Save changes')
|
39
|
+
within("[data-id='#{group1.id}']") do
|
40
|
+
within('h4') do
|
41
|
+
expect(page).to have_content('New good group 1')
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
@@ -12,7 +12,7 @@ describe 'Edit in place', type: :feature, js: true do
|
|
12
12
|
|
13
13
|
click_link 'Feature pages'
|
14
14
|
|
15
|
-
|
15
|
+
add_new_via_button('My New Feature Page')
|
16
16
|
|
17
17
|
expect(page).to have_css('h3', text: 'My New Feature Page')
|
18
18
|
|
@@ -38,7 +38,7 @@ describe 'Edit in place', type: :feature, js: true do
|
|
38
38
|
|
39
39
|
click_link 'Feature pages'
|
40
40
|
|
41
|
-
|
41
|
+
add_new_via_button('My New Feature Page')
|
42
42
|
|
43
43
|
expect(page).to have_css('h3', text: 'My New Feature Page')
|
44
44
|
|
@@ -73,7 +73,7 @@ describe 'Edit in place', type: :feature, js: true do
|
|
73
73
|
within('#nested-navigation') do
|
74
74
|
expect(page).to have_css("#exhibit_main_navigations_attributes_0_label[type='hidden']", visible: false)
|
75
75
|
expect(page).not_to have_css("#exhibit_main_navigations_attributes_0_label[type='text']")
|
76
|
-
click_link('Curated
|
76
|
+
click_link('Curated features')
|
77
77
|
expect(page).not_to have_css("#exhibit_main_navigations_attributes_0_label[type='hidden']")
|
78
78
|
expect(page).to have_css("#exhibit_main_navigations_attributes_0_label[type='text']")
|
79
79
|
fill_in 'exhibit_main_navigations_attributes_0_label', with: 'My Page Label'
|
@@ -26,7 +26,7 @@ describe 'Feature Pages Adminstration', js: true do
|
|
26
26
|
|
27
27
|
click_link 'Feature pages'
|
28
28
|
|
29
|
-
|
29
|
+
add_new_via_button('My New Page')
|
30
30
|
|
31
31
|
expect(page).to have_content 'The feature page was created.'
|
32
32
|
expect(page).to have_css('li.dd-item')
|
@@ -8,7 +8,7 @@ describe 'Reindex Monitor', js: true, default_max_wait_time: 10 do
|
|
8
8
|
let(:exhibit_curator) { FactoryBot.create(:exhibit_curator, exhibit: exhibit) }
|
9
9
|
|
10
10
|
before do
|
11
|
-
|
11
|
+
exhibit.job_trackers.create(resource: exhibit, status: 'completed', job_class: 'Spotlight::ReindexExhibitJob')
|
12
12
|
login_as exhibit_curator
|
13
13
|
visit spotlight.admin_exhibit_catalog_path(exhibit)
|
14
14
|
end
|
@@ -120,7 +120,7 @@ describe 'Search Configuration Administration', js: true do
|
|
120
120
|
within('#nested-sort-fields') do
|
121
121
|
expect(page).to have_css("#blacklight_configuration_sort_fields_title_label[type='hidden']", visible: false)
|
122
122
|
expect(page).not_to have_css("#blacklight_configuration_sort_fields_title_label[type='text']")
|
123
|
-
click_link('
|
123
|
+
click_link('title')
|
124
124
|
expect(page).not_to have_css("#blacklight_configuration_sort_fields_title_label[type='hidden']")
|
125
125
|
expect(page).to have_css("#blacklight_configuration_sort_fields_title_label[type='text']")
|
126
126
|
fill_in 'blacklight_configuration_sort_fields_title_label', with: 'My Title Label'
|
@@ -27,15 +27,16 @@ describe 'Report a Problem', type: :feature do
|
|
27
27
|
|
28
28
|
click_on 'Feedback'
|
29
29
|
|
30
|
-
expect(page).to have_css('h2', text: 'Contact
|
30
|
+
expect(page).to have_css('h2', text: 'Contact us', visible: true)
|
31
31
|
end
|
32
32
|
|
33
33
|
it 'accepts a problem report', js: true do
|
34
34
|
visit spotlight.exhibit_solr_document_path(exhibit, id: 'dq287tq6352')
|
35
35
|
click_on 'Feedback'
|
36
|
+
expect(page).to have_css('.alert-primary', text: '/dq287tq6352')
|
36
37
|
expect(find('#contact_form_current_url', visible: false).value).to end_with spotlight.exhibit_solr_document_path(exhibit, id: 'dq287tq6352')
|
37
|
-
fill_in '
|
38
|
-
fill_in '
|
38
|
+
fill_in 'Your name', with: 'Some Body'
|
39
|
+
fill_in 'Your email', with: 'test@example.com'
|
39
40
|
fill_in 'Message', with: 'This is my problem report'
|
40
41
|
|
41
42
|
expect do
|
@@ -47,8 +48,8 @@ describe 'Report a Problem', type: :feature do
|
|
47
48
|
visit spotlight.exhibit_solr_document_path(exhibit, id: 'dq287tq6352')
|
48
49
|
click_on 'Feedback'
|
49
50
|
expect(find('#contact_form_current_url', visible: false).value).to end_with spotlight.exhibit_solr_document_path(exhibit, id: 'dq287tq6352')
|
50
|
-
fill_in '
|
51
|
-
fill_in '
|
51
|
+
fill_in 'Your name', with: 'Some Body'
|
52
|
+
fill_in 'Your email', with: 'test@example.com'
|
52
53
|
page.evaluate_script("$('#contact_form_#{honeypot_field_name}').val('possible_spam@spam.com')")
|
53
54
|
fill_in 'Message', with: 'This is my problem report'
|
54
55
|
|
@@ -42,15 +42,15 @@ describe 'Site users management', js: true do
|
|
42
42
|
|
43
43
|
click_button 'Add role'
|
44
44
|
|
45
|
-
expect(page).to have_css(
|
45
|
+
expect(page).to have_css('td', text: 'not-an-admin@example.com')
|
46
46
|
|
47
|
-
expect(page).to have_css(
|
47
|
+
expect(page).to have_css('a', text: 'Remove from admin role', count: 2)
|
48
48
|
within(all('table tbody tr:not([data-edit-for])').last) do
|
49
49
|
click_link 'Remove from admin role'
|
50
50
|
end
|
51
51
|
|
52
52
|
expect(page).to have_content 'User removed from site adminstrator role'
|
53
|
-
expect(page).to have_css(
|
53
|
+
expect(page).to have_css('a', text: 'Remove from admin role', count: 0)
|
54
54
|
end
|
55
55
|
|
56
56
|
it 'sends an invitation email to users who do not exist' do
|
@@ -68,7 +68,7 @@ describe 'Site users management', js: true do
|
|
68
68
|
click_link 'Add new administrator'
|
69
69
|
|
70
70
|
expect(page).to have_css('td', text: user.email)
|
71
|
-
# There
|
72
|
-
expect(page).to have_css(
|
71
|
+
# There is just our admin user so no button
|
72
|
+
expect(page).to have_css('a', text: 'Remove from admin role', count: 0)
|
73
73
|
end
|
74
74
|
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
Item ID,Item Title,Visibility
|
2
|
+
bm387cy2596,L'AMERIQVE,true
|
3
|
+
cz507zk0531,NEW MEXICO,true
|
4
|
+
dq287tq6352,L'AMERIQUE,false
|
5
|
+
ds525vw8509,"Mappa mondo and Figura prima del capitolo IV., ossia della divisione della terra",true
|
6
|
+
dx157dh4345,KAART der REYZE van drie Schepen naar het ZUYDLAND in de Jaaren 1721 en 1722,true
|
7
|
+
dy396mt9665,a Map of the Middle Part of AMERICA,true
|
8
|
+
fh912bx9878,[Americas],true
|
9
|
+
gk446cj2442,[World map],true
|
10
|
+
gt736xf9712,HEMISPHERE OCCIDENTAL DU GLOBE TERRESTRE contenant L'AMERIQUE SEPTENT.LE et L'AMERIQUE M.LE et P.tie des TERRES ARCTIQUES et ANTARCTIQUES Subdivisées en leurs Regions.,true
|
11
|
+
gv664gb7394,SITVS TERRÆ CIRCVLIS COELESTIBVS CIRCVNDATÆ.,true
|
12
|
+
gw298sq0504,"PLANISPHÆRIVM BRAHEVM, Sive Structura MVNDI TOTIVS, EX HYPOTHESI TYCHONIS BRAHEI IN PLANO DELINEATA. [Amstelodami : Apud Joannem Janssonium, 1660].",true
|
13
|
+
jp266yb7109,AMERICA,false
|
14
|
+
jr961xz9944,AMERICA SEPTENTRIONALIS,true
|
15
|
+
jy409qg0248,Novissima et Accuratissima TOTIUS AMERICÆ DESCRIPTIO.,true
|
16
|
+
kw406zk5778,[America],true
|
17
|
+
kw703rh2327,"Mappe-monde pour connoitre les progŕes & les conquestes les plus remarquables des Provinces-Vnies, ainsy que celles des Compagnies d'Orient et d'Occident et les païs quelles possédent dans l'un et dans l'autre hemisphere and Atlas historique, ou, nouvelle introduction à l’histoire, à la chronologie & à la géographie ancienne & moderne",true
|
18
|
+
mw236cd6430,"AMERIQUE SEPTENTRIONALE divisée en ses principales parties, ou sont distingués les vns des autres LES ESTATS suivant qu'ils appartiennent presentemet aux FRANÇOIS, CASTILLANS, ANGLOIS, SUEDOIS, DANOIS, HOLLANDOIS. Tirée des Relations de toutes ces Nations Par le Sr. Sanson, Geographe Ordinaire du Roy",true
|
19
|
+
np731wc7689,L'AMERIQUE | Suivant les dernieres | Observations de l'Acade= | mie Royale des Sciences Seventh of 18 States,true
|
20
|
+
nq874ts4848,"Introduction a la Geographie Avec une Description Historique Sur Touttes les parties de la Terre
|
21
|
+
Title page",true
|
22
|
+
nr766vt0518,GEOGRAPHISCHE UNIVERSAL - ZEIG UND SCHLAG-UHR : WEERELD-BEELDIGH WYS EN SLAG WERK,true
|
23
|
+
nz081wv9348,AMERIQUE SEPTENTRIONALE Par N. Sanson Geographe Ord.re du Roy. Reveue et changée en plusieurs endroits suivant les Memoires les plus recents augmentée et corrigée en cette seconde edition,true
|
24
|
+
pm812zf5263,AMERICÆ,true
|
25
|
+
ps921pn8250,PLANISPHERE URANO-GEOGRAPHIQUE c'estadire LES SPHERES CELESTE et TERRESTRE mises en plan.,false
|
26
|
+
pt603pv6417,"A Map of the WORLD with the Ships DUKE & DUTCHESS Tract Round it, from 1708 to 1711. Second of 2 States",true
|
27
|
+
qb677kc3995,L'AMERIQVE autrement Le NOVVEAV MONDE et INDES OCCIDENTALES,true
|
28
|
+
qt469cf8909,"Pascaart vertoonende de Zeecusten van Chili, Peru, Hispania, Nova, Nova Granada, en California.",true
|
29
|
+
rc221bv1386,[Armenian map of the world],true
|
30
|
+
rj993fh5469,"A New Map of the World Shewing the Course of Sr. Francis Drake, William Shouten and Capt. William Dampiers Voyages Round it.",true
|
31
|
+
rx614sw9194,AMERICÆ nova discriptio.,true
|
32
|
+
rz043dh7915,MAR DEL ZUR HISPANIS MARE PACIFICUM.,true
|
33
|
+
rz818vx8201,'t Noorder deel van WEST-INDIEN,true
|
34
|
+
sb904gg2771,Planisphaerium terrestre cum utroque coelesti hemisphaerio ... = Vlakke ared-kloot met het beide hemelsch half-rond,true
|
35
|
+
sd345mz1879,A MAP of AMERICA from the latest and best Observations,true
|
36
|
+
sn161bw2027,"Pas-caart van Zuyd-Zee, tusschen California en ilhas de Ladrones and La Atlas del mundo o el mundo aguado",true
|
37
|
+
sn343fc0807,AMERICQVE SEPTENTRIONALE,true
|
38
|
+
sp821gh4463,[World],true
|
39
|
+
sw106rc9347,AMERIQUE SEPTENTRIONALE,true
|
40
|
+
sx619yv5558,"Recentissima NOVI ORBIS, Sive AMERICÆ SEPTENTRIONALIS et MERIDIONALIS TABULA",true
|
41
|
+
tg729zw9405,NOVA TOTIVS AMERICÆ DESCRIPTIO.,true
|
42
|
+
vb000vb1451,AMERICA,true
|
43
|
+
vw323gf4937,AMERICA with those known parts in that unknowne worlde both people and manner of buildings Discribed and inlarged by I.S.Ano.1626,false
|
44
|
+
vy180gj7659,L'AMERIQUE Suivant les dernieres observations de l'Acad. Royale des Sciences.,true
|
45
|
+
wb806ct0449,A Generall Chart of the | SOUTH SEA | from the River of Plate to | Dampiers Streights on ye Coast | of NEW GUINEA,true
|
46
|
+
wt855xd4818,CONTINENT ARCTIQVE,true
|
47
|
+
xd327cm9378,"Mapa mundi, con los meridianos, y paralelos, iguales como los del globo tere- y arreglado a las mejores, y ultimas relaciones",true
|
48
|
+
yh941cp6284,Orbis terrarum tabula recens emendata et in lucem edita,true
|
49
|
+
ym733yc1437,"[Maps of the world] and A new and universal dictionary of arts and sciences: ... With an introductory preface, ... And illustrated with a great number of copper-plates, engraven by the best hands",true
|
50
|
+
yn959jw9550,A New Map of North AMERICA According to the Newest Observations.,true
|
51
|
+
ys360dp2191,TYPUS SELENOGRAPHICUS LUNÆ PHASES ET ASPECTUS VARIOS ADUMBRANS.,true
|
52
|
+
zn001wm6450,L'AMERIQVE autrement Le NOVVEAV MONDE et INDES OCCIDENTALES,true
|
53
|
+
zn845sh3664,PLANISPHERE REPRESENTANT TOUTE L'ETENDUE DU MONDE. DANS L'ORDRE QU'ON A SUIVI DANS CE LIVRE. NB. LES CHIFFRES SE RAPORTENT AUX CARTES ET AUX PAGES DES DESCRIPTIONS.,true
|
54
|
+
zq083qg2931,[Pacific Ocean],true
|
55
|
+
zr014mj0786,A New and Exact Map of ASIA According to the Best Observations,true
|
56
|
+
zs247rr8237,"AMERIQUE SEPTENTRIONALE divisée en ses principales parties, ou sont distingués les vns des autres LES ESTATS suivant qu'ils appartiennent presentemet aux FRANÇOIS, CASTILLANS, ANGLOIS, SUEDOIS, DANOIS, HOLLANDOIS. Tirée des Relations de toutes ces Nations Par le Sr. Sanson, Geographe Ordinaire du Roy",true
|
57
|
+
zv316zr9542,AMERIQUE SEPTENTRIONALE,false
|
@@ -66,7 +66,6 @@ describe Spotlight::ApplicationHelper, type: :helper do
|
|
66
66
|
end
|
67
67
|
|
68
68
|
it 'is a url for a search with the given tag facet' do
|
69
|
-
allow(SolrDocument).to receive_messages(solr_field_for_tagger: :exhibit_tags)
|
70
69
|
expected = spotlight.search_exhibit_catalog_path(exhibit_id: helper.current_exhibit, f: { exhibit_tags: ['tag_value'] })
|
71
70
|
expect(helper.url_to_tag_facet('tag_value')).to eq expected
|
72
71
|
end
|
@@ -104,7 +104,7 @@ describe Spotlight::CrudLinkHelpers, type: :helper do
|
|
104
104
|
describe '#action_default_value' do
|
105
105
|
it 'attempts i18n lookups for models' do
|
106
106
|
expect(I18n).to receive(:t).with(:'helpers.action.spotlight/feature_page.edit',
|
107
|
-
model: some_model.class.model_name.human,
|
107
|
+
model: some_model.class.model_name.human.downcase,
|
108
108
|
default: [:'helpers.action.edit', 'Edit Feature page'])
|
109
109
|
expect(helper.send(:action_default_value, some_model))
|
110
110
|
end
|
@@ -112,14 +112,14 @@ describe Spotlight::CrudLinkHelpers, type: :helper do
|
|
112
112
|
it 'attempts i18n lookups for unpersisted models' do
|
113
113
|
some_model = Spotlight::FeaturePage.new
|
114
114
|
expect(I18n).to receive(:t).with(:'helpers.action.spotlight/feature_page.create',
|
115
|
-
model: some_model.class.model_name.human,
|
115
|
+
model: some_model.class.model_name.human.downcase,
|
116
116
|
default: [:'helpers.action.create', 'Create Feature page'])
|
117
117
|
expect(helper.send(:action_default_value, some_model))
|
118
118
|
end
|
119
119
|
|
120
120
|
it 'attempts i18n lookups for models with an explicit action' do
|
121
121
|
expect(I18n).to receive(:t).with(:'helpers.action.spotlight/feature_page.custom_action',
|
122
|
-
model: some_model.class.model_name.human,
|
122
|
+
model: some_model.class.model_name.human.downcase,
|
123
123
|
default: [:'helpers.action.custom_action', 'Custom action Feature page'])
|
124
124
|
expect(helper.send(:action_default_value, some_model, :custom_action))
|
125
125
|
end
|
@@ -12,21 +12,6 @@ describe Spotlight::PagesHelper, type: :helper do
|
|
12
12
|
allow(helper).to receive_messages(blacklight_config: blacklight_config)
|
13
13
|
end
|
14
14
|
|
15
|
-
describe 'available_index_fields' do
|
16
|
-
before do
|
17
|
-
blacklight_config.index.title_field = :title_field
|
18
|
-
blacklight_config.add_index_field 'x', label: 'X'
|
19
|
-
end
|
20
|
-
|
21
|
-
it 'lists the configured index fields' do
|
22
|
-
expect(helper.available_index_fields).to include key: 'x', label: 'X'
|
23
|
-
end
|
24
|
-
|
25
|
-
it 'adds the title field if necessary' do
|
26
|
-
expect(helper.available_index_fields).to include key: :title_field, label: 'Title'
|
27
|
-
end
|
28
|
-
end
|
29
|
-
|
30
15
|
describe 'disable_save_pages_button?' do
|
31
16
|
it 'returns true if there are no pages and we are on the about pages page' do
|
32
17
|
expect(helper).to receive(:page_collection_name).and_return('about_pages')
|
@@ -106,16 +91,24 @@ describe Spotlight::PagesHelper, type: :helper do
|
|
106
91
|
it 'handles nil input' do
|
107
92
|
expect(helper.sir_trevor_markdown(nil)).to be_blank
|
108
93
|
end
|
94
|
+
|
95
|
+
it 'retains paragraphs' do
|
96
|
+
expect(helper.sir_trevor_markdown('<p>First Line</p><p>Second Line</p>').chomp).to match(%r{<p>First Line</p>\s*<p>Second Line</p>})
|
97
|
+
end
|
98
|
+
|
99
|
+
it 'replaces line breaks with paragraphs' do
|
100
|
+
expect(helper.sir_trevor_markdown('First Line<br>Second Line').chomp).to match(%r{<p>First Line</p>\s*<p>Second Line</p>})
|
101
|
+
end
|
109
102
|
end
|
110
103
|
|
111
104
|
describe '#content_editor_class' do
|
112
|
-
context '
|
105
|
+
context 'a sir-trevor backed page with a custom class' do
|
113
106
|
it 'has a custom class' do
|
114
107
|
expect(helper.content_editor_class(Spotlight::Page.new)).to eq 'js-st-instance'
|
115
108
|
end
|
116
109
|
end
|
117
110
|
|
118
|
-
context '
|
111
|
+
context 'a sir-trevor backed page with a derived class' do
|
119
112
|
it 'derives a css class name from the editor type' do
|
120
113
|
expect(helper.content_editor_class(Spotlight::Page.new(content_type: 'Something::Custom'))).to eq 'js-something-custom-instance'
|
121
114
|
end
|
@@ -2,6 +2,6 @@
|
|
2
2
|
|
3
3
|
describe Spotlight::RolesHelper, type: :helper do
|
4
4
|
it 'is a list of options' do
|
5
|
-
expect(helper.roles_for_select).to eq('Admin' => 'admin', 'Curator' => 'curator')
|
5
|
+
expect(helper.roles_for_select).to eq('Admin' => 'admin', 'Curator' => 'curator', 'Viewer' => 'viewer')
|
6
6
|
end
|
7
7
|
end
|
data/spec/i18n_spec.rb
CHANGED
@@ -0,0 +1,34 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
describe Spotlight::AddTagsJob do
|
4
|
+
subject { described_class.new(solr_params: solr_params, exhibit: exhibit, tags: tags) }
|
5
|
+
|
6
|
+
let(:solr_params) { { q: 'map' } }
|
7
|
+
let(:exhibit) { FactoryBot.create(:exhibit) }
|
8
|
+
let(:tags) { 'hello,world' }
|
9
|
+
|
10
|
+
before do
|
11
|
+
allow(Spotlight::Engine.config).to receive_messages(bulk_actions_batch_size: 5)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'adds tags to SolrDocumentSidecar objects' do
|
15
|
+
subject.perform_now
|
16
|
+
response = exhibit.blacklight_config.repository.search(solr_params.merge('rows' => 999_999_999))
|
17
|
+
expect(response.total).to eq 55
|
18
|
+
expect(Spotlight::JobTracker.last).to have_attributes(
|
19
|
+
status: 'completed',
|
20
|
+
total: 55,
|
21
|
+
progress: 55,
|
22
|
+
job_class: 'Spotlight::AddTagsJob'
|
23
|
+
)
|
24
|
+
response.documents.each do |document|
|
25
|
+
expect(document.sidecar(exhibit).all_tags_list).to include('hello', 'world')
|
26
|
+
exhibit.tag(document.sidecar(exhibit), with: [], on: :tags)
|
27
|
+
end
|
28
|
+
exhibit.owned_tags.destroy_all
|
29
|
+
response.documents.each do |document|
|
30
|
+
document.sidecar(exhibit).destroy
|
31
|
+
document.reindex
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
describe Spotlight::
|
3
|
+
describe Spotlight::AddUploadsFromCsv do
|
4
4
|
subject(:job) { described_class.new(data, exhibit, user) }
|
5
5
|
|
6
6
|
let(:exhibit) { FactoryBot.create(:exhibit) }
|
@@ -40,4 +40,19 @@ describe Spotlight::AddUploadsFromCSV do
|
|
40
40
|
|
41
41
|
job.perform_now
|
42
42
|
end
|
43
|
+
|
44
|
+
context 'with errors' do
|
45
|
+
it 'collects errors uploaded resources for each row of data' do
|
46
|
+
allow(Spotlight::IndexingCompleteMailer).to receive(:documents_indexed).and_return(double(deliver_now: true))
|
47
|
+
job.perform_now
|
48
|
+
expect(Spotlight::IndexingCompleteMailer).to have_received(:documents_indexed).with(
|
49
|
+
data, exhibit, user,
|
50
|
+
indexed_count: 1,
|
51
|
+
errors: {
|
52
|
+
1 => array_including(match(Regexp.union(/relative URI: x/, /URI scheme '' not in whitelist:/))),
|
53
|
+
2 => array_including(match(/Upload is invalid/))
|
54
|
+
}
|
55
|
+
)
|
56
|
+
end
|
57
|
+
end
|
43
58
|
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
describe Spotlight::ChangeVisibilityJob do
|
4
|
+
subject { described_class.new(solr_params: solr_params, exhibit: exhibit, visibility: visibility) }
|
5
|
+
|
6
|
+
let(:solr_params) { { q: 'map' } }
|
7
|
+
let(:exhibit) { FactoryBot.create(:exhibit) }
|
8
|
+
let(:visibility) { 'private' }
|
9
|
+
|
10
|
+
before do
|
11
|
+
allow(Spotlight::Engine.config).to receive_messages(bulk_actions_batch_size: 5)
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'sets the items based off of the visibility' do
|
15
|
+
subject.perform_now
|
16
|
+
response = exhibit.blacklight_config.repository.search(solr_params.merge('rows' => 999_999_999))
|
17
|
+
expect(response.total).to eq 55
|
18
|
+
expect(Spotlight::JobTracker.last).to have_attributes(
|
19
|
+
status: 'completed',
|
20
|
+
total: 55,
|
21
|
+
progress: 55,
|
22
|
+
job_class: 'Spotlight::ChangeVisibilityJob'
|
23
|
+
)
|
24
|
+
response.documents.each do |document|
|
25
|
+
expect(document.private?(exhibit)).to be true
|
26
|
+
document.make_public!(exhibit)
|
27
|
+
document.reindex
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|