blacklight-spotlight 3.0.0.rc3 → 3.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- 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/blocks/uploaded_items_block.js +8 -1
- data/app/assets/javascripts/spotlight/admin/catalog_edit.js +13 -47
- data/app/assets/javascripts/spotlight/admin/exhibit_tag_autocomplete.js +37 -0
- data/app/assets/javascripts/spotlight/admin/{reindex_monitor.js → progress_monitor.js} +26 -4
- data/app/assets/javascripts/spotlight/admin/sir-trevor/locales.js +1 -1
- data/app/assets/javascripts/spotlight/user/zpr_links.js.erb +29 -14
- data/app/assets/stylesheets/spotlight/_browse.scss +8 -0
- data/app/assets/stylesheets/spotlight/_catalog.scss +30 -4
- data/app/assets/stylesheets/spotlight/_exhibit_admin.scss +9 -0
- data/app/assets/stylesheets/spotlight/_modals.scss +3 -0
- data/app/assets/stylesheets/spotlight/_nestable.scss +8 -0
- data/app/assets/stylesheets/spotlight/_spotlight.scss +2 -0
- data/app/assets/stylesheets/spotlight/_view_larger.scss +22 -0
- data/app/assets/stylesheets/spotlight/browse_group_categories_block.scss +23 -0
- data/app/assets/stylesheets/spotlight/typeahead.css +23 -23
- data/app/builders/spotlight/bootstrap_breadcrumbs_builder.rb +4 -2
- data/app/controllers/concerns/spotlight/base.rb +1 -1
- data/app/controllers/concerns/spotlight/catalog.rb +7 -1
- data/app/controllers/spotlight/browse_controller.rb +9 -15
- 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 +16 -13
- 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/job_trackers_controller.rb +17 -0
- data/app/controllers/spotlight/pages_controller.rb +6 -7
- data/app/controllers/spotlight/tags_controller.rb +39 -5
- data/app/helpers/spotlight/application_helper.rb +20 -1
- data/app/helpers/spotlight/job_trackers_helper.rb +31 -0
- data/app/helpers/spotlight/main_app_helpers.rb +3 -4
- 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_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/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 +6 -2
- 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 +26 -6
- data/app/models/spotlight/bulk_update.rb +8 -0
- data/app/models/spotlight/event.rb +13 -0
- data/app/models/spotlight/exhibit.rb +5 -14
- data/app/models/spotlight/feature_page.rb +0 -2
- data/app/models/spotlight/featured_image.rb +40 -1
- data/app/models/spotlight/field_metadata.rb +4 -8
- data/app/models/spotlight/job_tracker.rb +114 -0
- data/app/models/spotlight/page.rb +1 -3
- data/app/models/spotlight/page_configurations.rb +10 -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 +3 -1
- 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/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/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/_sidebar.html.erb +2 -2
- data/app/views/spotlight/browse/_search.html.erb +3 -3
- data/app/views/spotlight/browse/_search_box.html.erb +9 -9
- data/app/views/spotlight/browse/_search_title.html.erb +1 -1
- 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/_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 +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/_sidebar.html.erb +1 -1
- data/app/views/spotlight/featured_images/_form.html.erb +1 -1
- 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/_order_pages.html.erb +2 -2
- data/app/views/spotlight/pages/_view_type_group.html.erb +3 -3
- data/app/views/spotlight/pages/show.html.erb +1 -1
- 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 +2 -2
- 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 +7 -6
- data/app/views/spotlight/sir_trevor/blocks/_search_results_block.html.erb +1 -1
- 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/show.yaml.yamlbuilder +6 -0
- data/config/i18n-tasks.yml +1 -0
- data/config/locales/spotlight.ar.yml +11 -1
- data/config/locales/spotlight.en.yml +170 -10
- data/config/routes.rb +29 -1
- 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/db/migrate/20210506070809_add_indexes_for_featured_images.rb +9 -0
- data/lib/generators/spotlight/install_generator.rb +2 -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/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 +22 -1
- data/lib/spotlight/version.rb +1 -1
- data/spec/controllers/spotlight/browse_controller_spec.rb +0 -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/featured_images_controller_spec.rb +3 -3
- data/spec/controllers/spotlight/job_trackers_controller_spec.rb +37 -0
- data/spec/controllers/spotlight/tags_controller_spec.rb +5 -1
- data/spec/examples.txt +1502 -1437
- data/spec/factories/bulk_updates.rb +15 -0
- data/spec/factories/exhibits.rb +4 -0
- data/spec/factories/job_trackers.rb +11 -0
- data/spec/factories/users.rb +27 -8
- data/spec/features/add_items_spec.rb +10 -5
- data/spec/features/bulk_actions_spec.rb +72 -0
- data/spec/features/catalog_spec.rb +1 -0
- data/spec/features/import_exhibit_spec.rb +5 -1
- 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/reindex_monitor_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/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/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 +4 -58
- data/spec/models/spotlight/featured_image_spec.rb +13 -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/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/spec_helper.rb +2 -5
- data/spec/test_app_templates/Gemfile.extra +1 -0
- 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/spotlight/catalog/_edit_default.html.erb_spec.rb +1 -1
- data/spec/views/spotlight/dashboards/_reindexing_activity.html.erb_spec.rb +24 -19
- 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/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
- metadata +143 -34
- 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
@@ -0,0 +1,15 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :bulk_update, class: 'Spotlight::BulkUpdate' do
|
5
|
+
file { Rack::Test::UploadedFile.new(File.expand_path(File.join('..', 'fixtures', 'updated-bulk-update-template.csv'), __dir__)) }
|
6
|
+
|
7
|
+
exhibit
|
8
|
+
end
|
9
|
+
|
10
|
+
factory :tagged_bulk_update, class: 'Spotlight::BulkUpdate' do
|
11
|
+
file { Rack::Test::UploadedFile.new(File.expand_path(File.join('..', 'fixtures', 'updated-bulk-update-template-w-tags.csv'), __dir__)) }
|
12
|
+
|
13
|
+
exhibit
|
14
|
+
end
|
15
|
+
end
|
data/spec/factories/exhibits.rb
CHANGED
@@ -0,0 +1,11 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
FactoryBot.define do
|
4
|
+
factory :job_tracker, class: 'Spotlight::JobTracker' do
|
5
|
+
user
|
6
|
+
on factory: :exhibit
|
7
|
+
resource factory: :exhibit
|
8
|
+
created_at { Time.zone.parse('2017-01-05 23:00:00') }
|
9
|
+
updated_at { Time.zone.parse('2017-01-05 23:05:00') }
|
10
|
+
end
|
11
|
+
end
|
data/spec/factories/users.rb
CHANGED
@@ -2,26 +2,45 @@
|
|
2
2
|
|
3
3
|
FactoryBot.define do
|
4
4
|
factory :user do
|
5
|
-
transient do
|
6
|
-
exhibit { FactoryBot.create(:exhibit) }
|
7
|
-
end
|
8
5
|
sequence(:email) { |n| "user#{n}@example.com" }
|
9
6
|
password { 'insecure' }
|
10
|
-
|
11
7
|
factory :site_admin do
|
12
8
|
after(:create) do |user, _evaluator|
|
13
9
|
user.roles.create role: 'admin', resource: Spotlight::Site.instance
|
14
10
|
end
|
15
11
|
end
|
16
12
|
|
17
|
-
factory :
|
13
|
+
factory :named_exhibit_roles do
|
14
|
+
transient do
|
15
|
+
exhibit { FactoryBot.create(:exhibit) }
|
16
|
+
role { nil }
|
17
|
+
end
|
18
|
+
|
18
19
|
after(:create) do |user, evaluator|
|
19
|
-
user.roles.create role:
|
20
|
+
user.roles.create role: evaluator.role, resource: evaluator.exhibit if evaluator.role
|
21
|
+
end
|
22
|
+
|
23
|
+
factory :exhibit_admin do
|
24
|
+
transient do
|
25
|
+
role { 'admin' }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
factory :exhibit_curator do
|
30
|
+
transient do
|
31
|
+
role { 'curator' }
|
32
|
+
end
|
20
33
|
end
|
21
34
|
end
|
22
|
-
|
35
|
+
|
36
|
+
trait :with_exhibit_role do
|
37
|
+
transient do
|
38
|
+
exhibit { FactoryBot.create(:exhibit) }
|
39
|
+
role { nil }
|
40
|
+
end
|
41
|
+
|
23
42
|
after(:create) do |user, evaluator|
|
24
|
-
user.roles.create role:
|
43
|
+
user.roles.create role: evaluator.role, resource: evaluator.exhibit if evaluator.role
|
25
44
|
end
|
26
45
|
end
|
27
46
|
|
@@ -43,7 +43,8 @@ describe 'Uploading a non-repository item', type: :feature do
|
|
43
43
|
expect(page).to have_content 'Object uploaded successfully.'
|
44
44
|
|
45
45
|
expect(Spotlight::Resource.last.upload.image.file.path).to end_with '800x600.png'
|
46
|
-
|
46
|
+
ensure
|
47
|
+
Blacklight.default_index.connection.delete_by_query 'spotlight_resource_type_ssim:spotlight/resources/uploads'
|
47
48
|
Blacklight.default_index.connection.commit
|
48
49
|
end
|
49
50
|
|
@@ -59,8 +60,8 @@ describe 'Uploading a non-repository item', type: :feature do
|
|
59
60
|
end
|
60
61
|
expect(page).to have_content 'Object uploaded successfully.'
|
61
62
|
expect(Spotlight::Resource.last.data['full_title_tesim']).to eq 'no-image'
|
62
|
-
|
63
|
-
Blacklight.default_index.connection.
|
63
|
+
ensure
|
64
|
+
Blacklight.default_index.connection.delete_by_query 'spotlight_resource_type_ssim:spotlight/resources/uploads'
|
64
65
|
Blacklight.default_index.connection.commit
|
65
66
|
end
|
66
67
|
|
@@ -84,7 +85,7 @@ describe 'Uploading a non-repository item', type: :feature do
|
|
84
85
|
end
|
85
86
|
|
86
87
|
context 'as an site administrator' do
|
87
|
-
let(:user) { FactoryBot.create(:site_admin
|
88
|
+
let(:user) { FactoryBot.create(:site_admin) }
|
88
89
|
|
89
90
|
it 'displays the JSON upload form' do
|
90
91
|
visit spotlight.new_exhibit_resource_path(exhibit)
|
@@ -113,6 +114,9 @@ describe 'Uploading a non-repository item', type: :feature do
|
|
113
114
|
end
|
114
115
|
end
|
115
116
|
|
117
|
+
Blacklight.default_index.connection.commit
|
118
|
+
visit current_path
|
119
|
+
|
116
120
|
click_link '800x600'
|
117
121
|
click_link 'Edit'
|
118
122
|
fill_in 'Title', with: 'This is a now an avatar'
|
@@ -123,7 +127,8 @@ describe 'Uploading a non-repository item', type: :feature do
|
|
123
127
|
|
124
128
|
expect(page).to have_content 'This is a now an avatar'
|
125
129
|
expect(Spotlight::Resource.last.upload.image.path).to end_with 'avatar.png'
|
126
|
-
|
130
|
+
ensure
|
131
|
+
Blacklight.default_index.connection.delete_by_query 'spotlight_resource_type_ssim:spotlight/resources/uploads'
|
127
132
|
Blacklight.default_index.connection.commit
|
128
133
|
end
|
129
134
|
end
|
@@ -0,0 +1,72 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
describe 'Bulk actions', type: :feature do
|
4
|
+
let(:exhibit) { FactoryBot.create(:exhibit) }
|
5
|
+
let(:curator) { FactoryBot.create(:exhibit_curator, exhibit: exhibit) }
|
6
|
+
|
7
|
+
before do
|
8
|
+
login_as curator
|
9
|
+
d = SolrDocument.new(id: 'dq287tq6352')
|
10
|
+
exhibit.tag(d.sidecar(exhibit), with: ['foo'], on: :tags)
|
11
|
+
d.make_private! exhibit
|
12
|
+
d.reindex
|
13
|
+
Blacklight.default_index.connection.commit
|
14
|
+
end
|
15
|
+
|
16
|
+
after do
|
17
|
+
d = SolrDocument.new(id: 'dq287tq6352')
|
18
|
+
exhibit.tag(d.sidecar(exhibit), with: [], on: :tags)
|
19
|
+
exhibit.owned_tags.destroy_all
|
20
|
+
d.make_public! exhibit
|
21
|
+
d.reindex
|
22
|
+
Blacklight.default_index.connection.commit
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'setting item visibility', js: true do
|
26
|
+
visit spotlight.search_exhibit_catalog_path(exhibit, { q: 'dq287tq6352' })
|
27
|
+
|
28
|
+
click_button 'Bulk actions'
|
29
|
+
click_link 'Change item visibility'
|
30
|
+
expect(page).to have_css 'h4', text: 'Change item visibility', visible: true
|
31
|
+
choose 'Private'
|
32
|
+
accept_confirm 'All items in the result set will be updated. Are you sure?' do
|
33
|
+
click_button 'Change'
|
34
|
+
end
|
35
|
+
expect(page).to have_css '.alert', text: 'Visibility of 1 item is being updated.'
|
36
|
+
expect(SolrDocument.new(id: 'dq287tq6352').private?(exhibit)).to be true
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'adding tags', js: true do
|
40
|
+
visit spotlight.search_exhibit_catalog_path(exhibit, { q: 'dq287tq6352' })
|
41
|
+
|
42
|
+
click_button 'Bulk actions'
|
43
|
+
click_link 'Add tags'
|
44
|
+
expect(page).to have_css 'h4', text: 'Add tags', visible: true
|
45
|
+
within '#add-tags-modal' do
|
46
|
+
find('[data-autocomplete-fetched="true"]', visible: false)
|
47
|
+
find('.tt-input').set('good,stuff')
|
48
|
+
end
|
49
|
+
accept_confirm 'All items in the result set will be updated. Are you sure?' do
|
50
|
+
click_button 'Add'
|
51
|
+
end
|
52
|
+
expect(page).to have_css '.alert', text: 'Tags are being added for 1 item.'
|
53
|
+
expect(SolrDocument.new(id: 'dq287tq6352').sidecar(exhibit).all_tags_list).to include('foo', 'good', 'stuff')
|
54
|
+
end
|
55
|
+
|
56
|
+
it 'removing tags', js: true do
|
57
|
+
visit spotlight.search_exhibit_catalog_path(exhibit, { q: 'dq287tq6352' })
|
58
|
+
|
59
|
+
click_button 'Bulk actions'
|
60
|
+
click_link 'Remove tags'
|
61
|
+
expect(page).to have_css 'h4', text: 'Remove tags', visible: true
|
62
|
+
within '#remove-tags-modal' do
|
63
|
+
find('[data-autocomplete-fetched="true"]', visible: false)
|
64
|
+
find('.tt-input').set('foo')
|
65
|
+
end
|
66
|
+
accept_confirm 'All items in the result set will be updated. Are you sure?' do
|
67
|
+
click_button 'Remove'
|
68
|
+
end
|
69
|
+
expect(page).to have_css '.alert', text: 'Tags are being removed for 1 item.'
|
70
|
+
expect(SolrDocument.new(id: 'dq287tq6352').sidecar(exhibit).all_tags_list).to eq []
|
71
|
+
end
|
72
|
+
end
|
@@ -30,6 +30,7 @@ describe 'Catalog', type: :feature do
|
|
30
30
|
it 'has breadcrumbs' do
|
31
31
|
visit spotlight.search_exhibit_catalog_path(exhibit, q: 'xyz')
|
32
32
|
expect(page).to have_breadcrumbs 'Home', 'Search results'
|
33
|
+
expect(page).to have_selector '.breadcrumb-item.active', text: 'Search results'
|
33
34
|
end
|
34
35
|
|
35
36
|
describe 'Non-spotlight #show' do
|
@@ -6,7 +6,11 @@ describe 'Allow exhibit admins to import and export content from an exhibit', ty
|
|
6
6
|
let(:exhibit) { FactoryBot.create(:exhibit) }
|
7
7
|
let(:user) { FactoryBot.create(:exhibit_admin, exhibit: exhibit) }
|
8
8
|
|
9
|
-
before
|
9
|
+
before do
|
10
|
+
allow(Spotlight::ReindexExhibitJob).to receive(:perform_later).and_return(true) if Rails.version < '6'
|
11
|
+
|
12
|
+
login_as user
|
13
|
+
end
|
10
14
|
|
11
15
|
pending 'should allow admins to export content from an exhibit' do
|
12
16
|
pending(%(There's not really any good way to test the contents of a
|
@@ -142,14 +142,14 @@ describe 'Solr Document Block', feature: true, versioning: true, default_max_wai
|
|
142
142
|
it 'allows you to optionally display a ZPR link with the image', js: true do
|
143
143
|
fill_in_solr_document_block_typeahead_field with: 'gk446cj2442'
|
144
144
|
|
145
|
-
check '
|
145
|
+
check 'Offer "View larger" option'
|
146
146
|
# this seems silly, but also seems to help with the flappy-ness of this spec
|
147
|
-
expect(find_field('
|
147
|
+
expect(find_field('Offer "View larger" option', checked: true)).to be_checked
|
148
148
|
|
149
149
|
save_page
|
150
150
|
|
151
151
|
within '.contents' do
|
152
|
-
click_button '
|
152
|
+
click_button 'View [World map] larger'
|
153
153
|
end
|
154
154
|
|
155
155
|
within '.modal-content' do
|
@@ -225,6 +225,6 @@ describe 'Solr Document Block', feature: true, versioning: true, default_max_wai
|
|
225
225
|
|
226
226
|
# for some reason, the text area above isn't getting filled in
|
227
227
|
# expect(page).to have_selector ".st-text-block", text: "zzz"
|
228
|
-
expect(find_field('primary-caption-field').value).to eq
|
228
|
+
expect(find_field('primary-caption-field').value).to eq Spotlight::PageConfigurations::DOCUMENT_TITLE_KEY
|
229
229
|
end
|
230
230
|
end
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -156,8 +155,8 @@ describe Spotlight::ApplicationHelper, type: :helper do
|
|
156
155
|
end
|
157
156
|
|
158
157
|
it 'excludes view fields that are never visible (e.g. atom, rss)' do
|
159
|
-
blacklight_config.view.a
|
160
|
-
blacklight_config.view.b
|
158
|
+
blacklight_config.view.a(if: true)
|
159
|
+
blacklight_config.view.b(if: false)
|
161
160
|
|
162
161
|
expect(helper.available_view_fields).to include :a
|
163
162
|
expect(helper.available_view_fields).not_to include :b
|
@@ -173,9 +172,9 @@ describe Spotlight::ApplicationHelper, type: :helper do
|
|
173
172
|
# clean out the default views
|
174
173
|
blacklight_config.view.reject! { |_| true }
|
175
174
|
|
176
|
-
blacklight_config.view.a
|
177
|
-
blacklight_config.view.b
|
178
|
-
blacklight_config.view.c
|
175
|
+
blacklight_config.view.a!
|
176
|
+
blacklight_config.view.b!
|
177
|
+
blacklight_config.view.c!
|
179
178
|
allow(helper).to receive(:blacklight_config).and_return(blacklight_config)
|
180
179
|
end
|
181
180
|
|