blacklight-spotlight 5.1.0 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +153 -48
  3. data/app/assets/javascripts/spotlight/spotlight.esm.js +33 -1
  4. data/app/assets/javascripts/spotlight/spotlight.esm.js.map +1 -1
  5. data/app/assets/javascripts/spotlight/spotlight.js +33 -1
  6. data/app/assets/javascripts/spotlight/spotlight.js.map +1 -1
  7. data/app/assets/stylesheets/spotlight/_admin_users.scss +28 -0
  8. data/app/assets/stylesheets/spotlight/_browse.scss +1 -1
  9. data/app/assets/stylesheets/spotlight/_featured_browse_categories_block.scss +1 -1
  10. data/app/assets/stylesheets/spotlight/_spotlight.scss +1 -0
  11. data/app/components/spotlight/admin_users/email_component.html.erb +5 -0
  12. data/app/components/spotlight/admin_users/email_component.rb +22 -0
  13. data/app/components/spotlight/admin_users/exhibit_roles_component.html.erb +28 -0
  14. data/app/components/spotlight/admin_users/exhibit_roles_component.rb +19 -0
  15. data/app/components/spotlight/admin_users/site_admin_component.html.erb +13 -0
  16. data/app/components/spotlight/admin_users/site_admin_component.rb +17 -0
  17. data/app/components/spotlight/analytics/aggregation_component.rb +1 -1
  18. data/app/components/spotlight/analytics/dashboard_component.rb +1 -1
  19. data/app/components/spotlight/breadcrumbs_component.rb +1 -1
  20. data/app/components/spotlight/bulk_action_component.rb +1 -1
  21. data/app/components/spotlight/edit_view_links_component.rb +1 -1
  22. data/app/components/spotlight/header_navigation_link_component.rb +1 -1
  23. data/app/components/spotlight/save_search_component.rb +1 -1
  24. data/app/components/spotlight/select_image_component.rb +1 -1
  25. data/app/components/spotlight/skip_link_component.rb +1 -1
  26. data/app/components/spotlight/solr_document_legacy_embed_component.rb +2 -2
  27. data/app/components/spotlight/tag_list_form_component.rb +1 -1
  28. data/app/components/spotlight/tag_selector_component.rb +1 -1
  29. data/app/components/spotlight/title_component.rb +1 -1
  30. data/app/components/spotlight/translations/subheading_component.rb +1 -1
  31. data/app/components/spotlight/uneditable_non_default_language_component.rb +1 -1
  32. data/app/controllers/spotlight/admin_users_controller.rb +11 -1
  33. data/app/controllers/spotlight/browse_controller.rb +2 -8
  34. data/app/controllers/spotlight/bulk_actions_controller.rb +1 -1
  35. data/app/controllers/spotlight/bulk_updates_controller.rb +22 -7
  36. data/app/controllers/spotlight/catalog_controller.rb +7 -15
  37. data/app/controllers/spotlight/dashboards_controller.rb +2 -6
  38. data/app/controllers/spotlight/exhibits_controller.rb +1 -0
  39. data/app/controllers/spotlight/home_pages_controller.rb +1 -1
  40. data/app/controllers/spotlight/searches_controller.rb +1 -1
  41. data/app/controllers/spotlight/solr_controller.rb +1 -0
  42. data/app/helpers/spotlight/main_app_helpers.rb +1 -5
  43. data/app/helpers/spotlight/rendering_helper.rb +4 -1
  44. data/app/javascript/spotlight/admin/blocks/pages_block.js +2 -0
  45. data/app/javascript/spotlight/user/carousel.js +32 -2
  46. data/app/jobs/spotlight/add_tags_job.rb +1 -0
  47. data/app/jobs/spotlight/add_uploads_from_csv.rb +1 -0
  48. data/app/jobs/spotlight/change_visibility_job.rb +1 -0
  49. data/app/jobs/spotlight/process_bulk_updates_csv_job.rb +1 -0
  50. data/app/jobs/spotlight/reindex_exhibit_job.rb +1 -0
  51. data/app/jobs/spotlight/reindex_job.rb +1 -0
  52. data/app/jobs/spotlight/remove_tags_job.rb +1 -0
  53. data/app/jobs/spotlight/rename_sidecar_field_job.rb +1 -0
  54. data/app/models/concerns/spotlight/user.rb +5 -0
  55. data/app/models/sir_trevor_rails/blocks/browse_block.rb +1 -1
  56. data/app/models/sir_trevor_rails/blocks/featured_pages_block.rb +1 -1
  57. data/app/models/sir_trevor_rails/blocks/solr_documents_block.rb +1 -0
  58. data/app/models/spotlight/ability.rb +1 -1
  59. data/app/models/spotlight/about_page.rb +1 -0
  60. data/app/models/spotlight/blacklight_configuration.rb +6 -7
  61. data/app/models/spotlight/contact.rb +2 -1
  62. data/app/models/spotlight/contact_email.rb +1 -0
  63. data/app/models/spotlight/custom_field.rb +1 -0
  64. data/app/models/spotlight/exhibit.rb +2 -9
  65. data/app/models/spotlight/feature_page.rb +1 -0
  66. data/app/models/spotlight/group.rb +2 -1
  67. data/app/models/spotlight/home_page.rb +1 -0
  68. data/app/models/spotlight/job_tracker.rb +1 -1
  69. data/app/models/spotlight/main_navigation.rb +1 -1
  70. data/app/models/spotlight/page.rb +28 -19
  71. data/app/models/spotlight/resource.rb +1 -0
  72. data/app/models/spotlight/resources/iiif_manifest.rb +0 -126
  73. data/app/models/spotlight/resources/iiif_manifest_metadata.rb +161 -0
  74. data/app/models/spotlight/resources/iiif_manifest_v3.rb +41 -0
  75. data/app/models/spotlight/resources/iiif_service.rb +25 -1
  76. data/app/models/spotlight/search.rb +2 -1
  77. data/app/services/spotlight/exhibit_import_export_service.rb +3 -1
  78. data/app/views/spotlight/admin_users/index.html.erb +16 -26
  79. data/app/views/spotlight/catalog/_document_admin_table.html.erb +2 -6
  80. data/app/views/spotlight/catalog/edit.html.erb +1 -6
  81. data/app/views/spotlight/exhibits/_exhibit_card.html.erb +1 -1
  82. data/app/views/spotlight/pages/_order_pages.html.erb +1 -1
  83. data/app/views/spotlight/pages/show.html.erb +4 -2
  84. data/app/views/spotlight/resources/csv_upload/_form.html.erb +2 -0
  85. data/app/views/spotlight/sir_trevor/blocks/_embedded_document.html.erb +2 -2
  86. data/app/views/spotlight/sir_trevor/blocks/_search_results_block.html.erb +2 -2
  87. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb +5 -3
  88. data/app/views/spotlight/sir_trevor/blocks/_text_block.html.erb +1 -1
  89. data/config/initializers/devise_rails8_patch.rb +13 -0
  90. data/config/locales/spotlight.en.yml +34 -5
  91. data/config/routes.rb +5 -1
  92. data/lib/spotlight/engine.rb +10 -26
  93. data/lib/spotlight/version.rb +1 -1
  94. data/spec/fixtures/iiif_responses.rb +344 -0
  95. data/spec/support/features/test_features_helpers.rb +4 -6
  96. data/spec/support/stub_iiif_response.rb +1 -0
  97. data/spec/support/with_queue_adapter.rb +17 -0
  98. metadata +42 -29
@@ -3266,7 +3266,37 @@
3266
3266
  class Carousel {
3267
3267
  connect() {
3268
3268
  if ($.fn.carousel) {
3269
- $('.carousel').carousel();
3269
+ const $carousel = $('.carousel');
3270
+
3271
+ // updates the aria-describedby on the next and prev btns
3272
+ const updateAriaDescribedBy = function ($carousel) {
3273
+ const $activeItem = $carousel.find('.carousel-item.active');
3274
+ const $items = $carousel.find('.carousel-item');
3275
+ const curIndex = $items.index($activeItem);
3276
+ const prevIndex = (curIndex - 1 + $items.length) % $items.length;
3277
+ const nextIndex = (curIndex + 1) % $items.length;
3278
+
3279
+ const prevDataId = $items.eq(prevIndex).data('id');
3280
+ const nextDataId = $items.eq(nextIndex).data('id');
3281
+ if (prevDataId) {
3282
+ $carousel.find('.carousel-control-prev').attr('aria-describedby', 'carousel-caption-' + prevDataId);
3283
+ }
3284
+ if (nextDataId) {
3285
+ $carousel.find('.carousel-control-next').attr('aria-describedby', 'carousel-caption-' + nextDataId);
3286
+ }
3287
+ };
3288
+
3289
+ // on initial page load, set the aria-describedby on the btns for each carousel
3290
+ $carousel.each(function () {
3291
+ const $this = $(this);
3292
+ $this.carousel();
3293
+ updateAriaDescribedBy($this);
3294
+ });
3295
+
3296
+ // on slide change
3297
+ $carousel.on('slid.bs.carousel', function () {
3298
+ updateAriaDescribedBy($(this));
3299
+ });
3270
3300
  }
3271
3301
  }
3272
3302
  }
@@ -5999,6 +6029,8 @@
5999
6029
 
6000
6030
  icon_name: "pages",
6001
6031
 
6032
+ show_image_selection: false,
6033
+
6002
6034
  autocomplete_url: function() { return document.getElementById(this.instanceID).closest('form[data-autocomplete-exhibit-pages-path]').dataset.autocompleteExhibitPagesPath; },
6003
6035
  autocomplete_fetch: function(url) {
6004
6036
  return this.fetchOnceAndFilterLocalResults(url);