blacklight-spotlight 3.0.0.rc2 → 3.0.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 (321) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/assets/images/blacklight/arrow-alt-circle-left.svg +1 -0
  4. data/app/assets/images/blacklight/arrow-alt-circle-right.svg +1 -0
  5. data/app/assets/images/blacklight/close.svg +1 -0
  6. data/app/assets/images/blacklight/zoom_in.svg +1 -0
  7. data/app/assets/images/blacklight/zoom_out.svg +1 -0
  8. data/app/assets/javascripts/spotlight/admin/{add_new_page_button.js → add_new_button.js} +7 -0
  9. data/app/assets/javascripts/spotlight/admin/block_mixins/autocompleteable.js +4 -4
  10. data/app/assets/javascripts/spotlight/admin/blocks/browse_group_categories_block.js +88 -0
  11. data/app/assets/javascripts/spotlight/admin/blocks/pages_block.js +1 -1
  12. data/app/assets/javascripts/spotlight/admin/blocks/solr_documents_base_block.js +1 -1
  13. data/app/assets/javascripts/spotlight/admin/blocks/uploaded_items_block.js +8 -1
  14. data/app/assets/javascripts/spotlight/admin/catalog_edit.js +13 -47
  15. data/app/assets/javascripts/spotlight/admin/croppable.js +1 -1
  16. data/app/assets/javascripts/spotlight/admin/exhibit_tag_autocomplete.js +37 -0
  17. data/app/assets/javascripts/spotlight/admin/index.js +0 -2
  18. data/app/assets/javascripts/spotlight/admin/{reindex_monitor.js → progress_monitor.js} +26 -4
  19. data/app/assets/javascripts/spotlight/admin/search_typeahead.js +2 -2
  20. data/app/assets/javascripts/spotlight/admin/sir-trevor/locales.js +8 -1
  21. data/app/assets/javascripts/spotlight/user/browse_group_categories.js +59 -0
  22. data/app/assets/javascripts/spotlight/user/index.js +1 -0
  23. data/app/assets/javascripts/spotlight/user/zpr_links.js.erb +29 -14
  24. data/app/assets/stylesheets/spotlight/_breadcrumbs.scss +8 -0
  25. data/app/assets/stylesheets/spotlight/_browse.scss +8 -0
  26. data/app/assets/stylesheets/spotlight/_catalog.scss +30 -4
  27. data/app/assets/stylesheets/spotlight/_exhibit_admin.scss +9 -0
  28. data/app/assets/stylesheets/spotlight/_featured_browse_categories_block.scss +34 -1
  29. data/app/assets/stylesheets/spotlight/_modals.scss +3 -0
  30. data/app/assets/stylesheets/spotlight/_nestable.scss +8 -0
  31. data/app/assets/stylesheets/spotlight/_spotlight.scss +4 -0
  32. data/app/assets/stylesheets/spotlight/_view_larger.scss +22 -0
  33. data/app/assets/stylesheets/spotlight/browse_group_categories_block.scss +92 -0
  34. data/app/assets/stylesheets/spotlight/typeahead.css +23 -23
  35. data/app/builders/spotlight/bootstrap_breadcrumbs_builder.rb +5 -4
  36. data/app/controllers/concerns/spotlight/base.rb +1 -1
  37. data/app/controllers/concerns/spotlight/catalog.rb +7 -1
  38. data/app/controllers/concerns/spotlight/search_helper.rb +2 -8
  39. data/app/controllers/spotlight/appearances_controller.rb +0 -13
  40. data/app/controllers/spotlight/browse_controller.rb +15 -17
  41. data/app/controllers/spotlight/bulk_actions_controller.rb +62 -0
  42. data/app/controllers/spotlight/bulk_updates_controller.rb +67 -0
  43. data/app/controllers/spotlight/catalog_controller.rb +17 -14
  44. data/app/controllers/spotlight/concerns/application_controller.rb +13 -2
  45. data/app/controllers/spotlight/dashboards_controller.rb +5 -4
  46. data/app/controllers/spotlight/exhibits_controller.rb +1 -1
  47. data/app/controllers/spotlight/featured_images_controller.rb +1 -1
  48. data/app/controllers/spotlight/groups_controller.rb +80 -0
  49. data/app/controllers/spotlight/job_trackers_controller.rb +17 -0
  50. data/app/controllers/spotlight/pages_controller.rb +8 -13
  51. data/app/controllers/spotlight/searches_controller.rb +4 -17
  52. data/app/controllers/spotlight/tags_controller.rb +39 -5
  53. data/app/helpers/spotlight/application_helper.rb +21 -2
  54. data/app/helpers/spotlight/crud_link_helpers.rb +1 -1
  55. data/app/helpers/spotlight/job_trackers_helper.rb +31 -0
  56. data/app/helpers/spotlight/main_app_helpers.rb +4 -5
  57. data/app/helpers/spotlight/meta_helper.rb +2 -2
  58. data/app/helpers/spotlight/pages_helper.rb +1 -8
  59. data/app/helpers/spotlight/roles_helper.rb +1 -1
  60. data/app/helpers/spotlight/searches_helper.rb +1 -1
  61. data/app/jobs/concerns/spotlight/gather_documents.rb +35 -0
  62. data/app/jobs/concerns/spotlight/job_tracking.rb +64 -0
  63. data/app/jobs/concerns/spotlight/limit_concurrency.rb +33 -0
  64. data/app/jobs/spotlight/add_tags_job.rb +31 -0
  65. data/app/jobs/spotlight/add_uploads_from_csv.rb +4 -3
  66. data/app/jobs/spotlight/application_job.rb +8 -0
  67. data/app/jobs/spotlight/change_visibility_job.rb +33 -0
  68. data/app/jobs/spotlight/cleanup_job_trackers_job.rb +13 -0
  69. data/app/jobs/spotlight/default_thumbnail_job.rb +1 -3
  70. data/app/jobs/spotlight/process_bulk_updates_csv_job.rb +82 -0
  71. data/app/jobs/spotlight/reindex_exhibit_job.rb +39 -0
  72. data/app/jobs/spotlight/reindex_job.rb +64 -44
  73. data/app/jobs/spotlight/remove_tags_job.rb +31 -0
  74. data/app/jobs/spotlight/rename_sidecar_field_job.rb +3 -2
  75. data/app/jobs/spotlight/rename_tags_job.rb +33 -0
  76. data/app/jobs/spotlight/update_job_trackers_job.rb +20 -0
  77. data/app/models/concerns/spotlight/browse_category_search_builder.rb +59 -0
  78. data/app/models/concerns/spotlight/exhibit_analytics.rb +2 -6
  79. data/app/models/concerns/spotlight/exhibit_documents.rb +2 -2
  80. data/app/models/concerns/spotlight/resources/web.rb +1 -1
  81. data/app/models/concerns/spotlight/search_builder.rb +11 -0
  82. data/app/models/concerns/spotlight/solr_document.rb +1 -1
  83. data/app/models/concerns/spotlight/solr_document/atomic_updates.rb +2 -2
  84. data/app/models/concerns/spotlight/user.rb +7 -2
  85. data/app/models/sir_trevor_rails/blocks/browse_group_categories_block.rb +25 -0
  86. data/app/models/sir_trevor_rails/blocks/solr_documents_block.rb +9 -0
  87. data/app/models/sir_trevor_rails/blocks/uploaded_items_block.rb +4 -0
  88. data/app/models/spotlight/ability.rb +8 -2
  89. data/app/models/spotlight/about_page.rb +1 -1
  90. data/app/models/spotlight/attachment.rb +1 -1
  91. data/app/models/spotlight/background_job_progress.rb +96 -0
  92. data/app/models/spotlight/blacklight_configuration.rb +28 -7
  93. data/app/models/spotlight/bulk_update.rb +8 -0
  94. data/app/models/spotlight/event.rb +13 -0
  95. data/app/models/spotlight/exhibit.rb +15 -12
  96. data/app/models/spotlight/feature_page.rb +1 -3
  97. data/app/models/spotlight/featured_image.rb +41 -2
  98. data/app/models/spotlight/field_metadata.rb +4 -8
  99. data/app/models/spotlight/group.rb +22 -0
  100. data/app/models/spotlight/group_member.rb +11 -0
  101. data/app/models/spotlight/home_page.rb +1 -1
  102. data/app/models/spotlight/job_tracker.rb +114 -0
  103. data/app/models/spotlight/page.rb +3 -5
  104. data/app/models/spotlight/page_configurations.rb +15 -9
  105. data/app/models/spotlight/resource.rb +28 -62
  106. data/app/models/spotlight/resources/iiif_harvester.rb +12 -3
  107. data/app/models/spotlight/resources/iiif_manifest.rb +9 -7
  108. data/app/models/spotlight/resources/iiif_service.rb +9 -2
  109. data/app/models/spotlight/resources/json_upload.rb +12 -0
  110. data/app/models/spotlight/resources/upload.rb +25 -2
  111. data/app/models/spotlight/role.rb +1 -2
  112. data/app/models/spotlight/search.rb +5 -0
  113. data/app/models/spotlight/solr_document_sidecar.rb +2 -1
  114. data/app/presenters/spotlight/iiif_manifest_presenter.rb +2 -2
  115. data/app/services/spotlight/bulk_updates_csv_template_service.rb +93 -0
  116. data/app/services/spotlight/etl.rb +7 -0
  117. data/app/services/spotlight/etl/context.rb +52 -0
  118. data/app/services/spotlight/etl/executor.rb +192 -0
  119. data/app/services/spotlight/etl/loaders.rb +12 -0
  120. data/app/services/spotlight/etl/pipeline.rb +81 -0
  121. data/app/services/spotlight/etl/solr_loader.rb +96 -0
  122. data/app/services/spotlight/etl/sources.rb +25 -0
  123. data/app/services/spotlight/etl/step.rb +82 -0
  124. data/app/services/spotlight/etl/transforms.rb +64 -0
  125. data/app/services/spotlight/exhibit_import_export_service.rb +50 -22
  126. data/app/services/spotlight/iiif_resource_resolver.rb +1 -1
  127. data/app/services/spotlight/validity_checker.rb +5 -5
  128. data/app/uploaders/spotlight/bulk_updates_uploader.rb +7 -0
  129. data/app/uploaders/spotlight/featured_image_uploader.rb +1 -1
  130. data/app/views/catalog/_add_tags.html.erb +28 -0
  131. data/app/views/catalog/_bulk_actions.html.erb +12 -0
  132. data/app/views/catalog/_change_visibility.html.erb +35 -0
  133. data/app/views/catalog/_curator_actions.html.erb +3 -0
  134. data/app/views/catalog/_remove_tags.html.erb +37 -0
  135. data/app/views/catalog/_save_search.html.erb +1 -1
  136. data/app/views/spotlight/about_pages/_sidebar.html.erb +2 -2
  137. data/app/views/spotlight/browse/_search.html.erb +4 -3
  138. data/app/views/spotlight/browse/_search_box.html.erb +9 -9
  139. data/app/views/spotlight/browse/_search_title.html.erb +1 -1
  140. data/app/views/spotlight/browse/index.html.erb +13 -0
  141. data/app/views/spotlight/bulk_updates/_download.html.erb +23 -0
  142. data/app/views/spotlight/bulk_updates/_overview.html.erb +1 -0
  143. data/app/views/spotlight/bulk_updates/_progress_panel.html.erb +19 -0
  144. data/app/views/spotlight/bulk_updates/_upload.html.erb +12 -0
  145. data/app/views/spotlight/bulk_updates/edit.html.erb +37 -0
  146. data/app/views/spotlight/catalog/_admin_header.html.erb +1 -1
  147. data/app/views/spotlight/catalog/_admin_index_header_default.html.erb +1 -1
  148. data/app/views/spotlight/catalog/_admin_thumbnail_default.html.erb +3 -2
  149. data/app/views/spotlight/catalog/_document.html.erb +2 -4
  150. data/app/views/spotlight/catalog/_edit_default.html.erb +2 -2
  151. data/app/views/spotlight/catalog/_reindex_progress_panel.html.erb +1 -1
  152. data/app/views/spotlight/catalog/index.iiif_json.jbuilder +22 -0
  153. data/app/views/spotlight/custom_fields/_form.html.erb +1 -1
  154. data/app/views/spotlight/custom_search_fields/_form.html.erb +1 -1
  155. data/app/views/spotlight/dashboards/_reindexing_activity.html.erb +6 -6
  156. data/app/views/spotlight/exhibits/_exhibit_card.html.erb +1 -1
  157. data/app/views/spotlight/feature_pages/_sidebar.html.erb +1 -1
  158. data/app/views/spotlight/featured_images/_form.html.erb +1 -1
  159. data/app/views/spotlight/job_trackers/show.html.erb +79 -0
  160. data/app/views/spotlight/metadata_configurations/_metadata_field.html.erb +2 -2
  161. data/app/views/spotlight/pages/_form.html.erb +2 -2
  162. data/app/views/spotlight/pages/_view_type_group.html.erb +3 -3
  163. data/app/views/spotlight/pages/show.html.erb +1 -1
  164. data/app/views/spotlight/resources/_form.html.erb +1 -1
  165. data/app/views/spotlight/resources/csv_upload/_form.html.erb +1 -1
  166. data/app/views/spotlight/resources/iiif/_form.html.erb +1 -1
  167. data/app/views/spotlight/resources/json_upload/_form.html.erb +2 -2
  168. data/app/views/spotlight/resources/upload/_form.html.erb +1 -1
  169. data/app/views/spotlight/search_configurations/_document_index_view_types.html.erb +2 -2
  170. data/app/views/spotlight/searches/_form.html.erb +14 -2
  171. data/app/views/spotlight/searches/_group.html.erb +27 -0
  172. data/app/views/spotlight/searches/index.html.erb +58 -17
  173. data/app/views/spotlight/shared/_curation_sidebar.html.erb +3 -0
  174. data/app/views/spotlight/shared/_locale_picker.html.erb +1 -1
  175. data/app/views/spotlight/sir_trevor/blocks/_browse_group_categories_block.html.erb +45 -0
  176. data/app/views/spotlight/sir_trevor/blocks/_search_results_block.html.erb +1 -1
  177. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_block.html.erb +8 -8
  178. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb +7 -7
  179. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb +9 -7
  180. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb +5 -5
  181. data/app/views/spotlight/sir_trevor/blocks/_uploaded_items_block.html.erb +4 -0
  182. data/app/views/spotlight/tags/_tag.html.erb +24 -0
  183. data/app/views/spotlight/tags/index.html.erb +12 -16
  184. data/app/views/spotlight/translations/_groups.html.erb +34 -0
  185. data/app/views/spotlight/translations/edit.html.erb +6 -0
  186. data/app/views/spotlight/translations/show.yaml.yamlbuilder +6 -0
  187. data/config/i18n-tasks.yml +6 -0
  188. data/config/locales/spotlight.ar.yml +11 -1
  189. data/config/locales/spotlight.en.yml +207 -11
  190. data/config/routes.rb +39 -1
  191. data/db/migrate/20210113092223_create_spotlight_groups.rb +23 -0
  192. data/db/migrate/20210122082032_create_job_trackers.rb +22 -0
  193. data/db/migrate/20210126123041_create_events.rb +15 -0
  194. data/db/migrate/20210305070001_remove_class_from_sirtrevor_image_blocks.rb +20 -0
  195. data/db/migrate/20210305171150_create_bulk_updates.rb +9 -0
  196. data/db/migrate/20210308090000_migrate_caption_values_for_title_key.rb +29 -0
  197. data/db/migrate/20210506070809_add_indexes_for_featured_images.rb +9 -0
  198. data/lib/generators/spotlight/install_generator.rb +5 -5
  199. data/lib/generators/spotlight/scaffold_resource_generator.rb +5 -13
  200. data/lib/generators/spotlight/templates/config/initializers/riiif.rb +7 -5
  201. data/lib/generators/spotlight/templates/config/initializers/spotlight_initializer.rb +1 -1
  202. data/lib/generators/spotlight/templates/solr/config/schema.xml +1 -1
  203. data/lib/migration/iiif.rb +3 -3
  204. data/lib/spotlight/engine.rb +26 -4
  205. data/lib/spotlight/version.rb +1 -1
  206. data/spec/controllers/spotlight/browse_controller_spec.rb +23 -6
  207. data/spec/controllers/spotlight/bulk_actions_controller_spec.rb +124 -0
  208. data/spec/controllers/spotlight/bulk_updates_controller_spec.rb +77 -0
  209. data/spec/controllers/spotlight/catalog_controller_spec.rb +15 -13
  210. data/spec/controllers/spotlight/feature_pages_controller_spec.rb +11 -0
  211. data/spec/controllers/spotlight/featured_images_controller_spec.rb +3 -3
  212. data/spec/controllers/spotlight/groups_controller_spec.rb +103 -0
  213. data/spec/controllers/spotlight/job_trackers_controller_spec.rb +37 -0
  214. data/spec/controllers/spotlight/searches_controller_spec.rb +10 -3
  215. data/spec/controllers/spotlight/tags_controller_spec.rb +5 -1
  216. data/spec/controllers/spotlight/view_configurations_controller_spec.rb +1 -1
  217. data/spec/examples.txt +1502 -136
  218. data/spec/factories/bulk_updates.rb +15 -0
  219. data/spec/factories/exhibits.rb +4 -0
  220. data/spec/factories/group.rb +17 -0
  221. data/spec/factories/job_trackers.rb +11 -0
  222. data/spec/factories/searches.rb +10 -0
  223. data/spec/factories/users.rb +27 -8
  224. data/spec/features/add_items_spec.rb +10 -5
  225. data/spec/features/browse_category_admin_spec.rb +36 -4
  226. data/spec/features/browse_category_navigation_spec.rb +44 -0
  227. data/spec/features/browse_category_spec.rb +2 -2
  228. data/spec/features/bulk_actions_spec.rb +72 -0
  229. data/spec/features/catalog_spec.rb +1 -0
  230. data/spec/features/exhibits/translation_editing_spec.rb +49 -0
  231. data/spec/features/home_page_spec.rb +4 -4
  232. data/spec/features/import_exhibit_spec.rb +5 -1
  233. data/spec/features/javascript/about_page_admin_spec.rb +1 -1
  234. data/spec/features/javascript/block_controls_spec.rb +1 -1
  235. data/spec/features/javascript/blocks/browse_group_categories_block_spec.rb +64 -0
  236. data/spec/features/javascript/blocks/solr_documents_block_spec.rb +4 -4
  237. data/spec/features/javascript/blocks/uploaded_items_block_spec.rb +27 -1
  238. data/spec/features/javascript/browse_group_admin_spec.rb +45 -0
  239. data/spec/features/javascript/edit_in_place_spec.rb +2 -2
  240. data/spec/features/javascript/feature_page_admin_spec.rb +1 -1
  241. data/spec/features/javascript/reindex_monitor_spec.rb +1 -1
  242. data/spec/features/site_users_management_spec.rb +5 -5
  243. data/spec/fixtures/bulk-update-template.csv +57 -0
  244. data/spec/fixtures/updated-bulk-update-template-w-tags.csv +4 -0
  245. data/spec/fixtures/updated-bulk-update-template.csv +4 -0
  246. data/spec/helpers/spotlight/application_helper_spec.rb +5 -6
  247. data/spec/helpers/spotlight/crud_link_helpers_spec.rb +3 -3
  248. data/spec/helpers/spotlight/pages_helper_spec.rb +8 -15
  249. data/spec/helpers/spotlight/roles_helper_spec.rb +1 -1
  250. data/spec/i18n_spec.rb +1 -0
  251. data/spec/jobs/spotlight/add_tags_job_spec.rb +34 -0
  252. data/spec/jobs/spotlight/add_uploads_from_csv_spec.rb +4 -1
  253. data/spec/jobs/spotlight/change_visibility_job_spec.rb +30 -0
  254. data/spec/jobs/spotlight/process_bulk_updates_csv_job_spec.rb +78 -0
  255. data/spec/jobs/spotlight/reindex_exhibit_job_spec.rb +43 -0
  256. data/spec/jobs/spotlight/reindex_job_spec.rb +34 -60
  257. data/spec/jobs/spotlight/remove_tags_job_spec.rb +39 -0
  258. data/spec/lib/migration/iiif_spec.rb +1 -1
  259. data/spec/models/sir_trevor_rails/blocks/browse_group_categories_block_spec.rb +41 -0
  260. data/spec/models/spotlight/ability_spec.rb +27 -0
  261. data/spec/models/spotlight/background_job_progress_spec.rb +137 -0
  262. data/spec/models/spotlight/blacklight_configuration_spec.rb +22 -17
  263. data/spec/models/spotlight/browse_category_search_builder_spec.rb +49 -0
  264. data/spec/models/spotlight/exhibit_spec.rb +12 -58
  265. data/spec/models/spotlight/featured_image_spec.rb +13 -1
  266. data/spec/models/spotlight/group_spec.rb +19 -0
  267. data/spec/models/spotlight/resource_spec.rb +89 -87
  268. data/spec/models/spotlight/resources/iiif_harvester_spec.rb +9 -10
  269. data/spec/models/spotlight/role_spec.rb +1 -1
  270. data/spec/models/spotlight/search_spec.rb +30 -3
  271. data/spec/models/spotlight/solr_document/atomic_updates_spec.rb +10 -0
  272. data/spec/models/spotlight/solr_document_sidecar_spec.rb +1 -0
  273. data/spec/presenters/spotlight/iiif_manifest_presenter_spec.rb +1 -1
  274. data/spec/services/spotlight/bulk_updates_csv_template_service_spec.rb +26 -0
  275. data/spec/services/spotlight/etl/context_spec.rb +66 -0
  276. data/spec/services/spotlight/etl/executor_spec.rb +149 -0
  277. data/spec/services/spotlight/etl/pipeline_spec.rb +22 -0
  278. data/spec/services/spotlight/etl/solr_loader_spec.rb +76 -0
  279. data/spec/services/spotlight/etl/step_spec.rb +70 -0
  280. data/spec/services/spotlight/exhibit_import_export_service_spec.rb +48 -1
  281. data/spec/spec_helper.rb +3 -6
  282. data/spec/support/features/test_features_helpers.rb +15 -0
  283. data/spec/test_app_templates/Gemfile.extra +2 -0
  284. data/spec/test_app_templates/catalog_controller.rb +6 -3
  285. data/spec/test_app_templates/lib/generators/test_app_generator.rb +2 -2
  286. data/spec/uploaders/spotlight/featured_image_uploader_spec.rb +2 -2
  287. data/spec/views/spotlight/browse/index.html.erb_spec.rb +2 -0
  288. data/spec/views/spotlight/catalog/_edit_default.html.erb_spec.rb +1 -1
  289. data/spec/views/spotlight/dashboards/_reindexing_activity.html.erb_spec.rb +24 -19
  290. data/spec/views/spotlight/job_trackers/show.html.erb_spec.rb +65 -0
  291. data/spec/views/spotlight/metadata_configurations/_metadata_field.html.erb_spec.rb +3 -4
  292. data/spec/views/spotlight/pages/show.html.erb_spec.rb +1 -0
  293. data/spec/views/spotlight/sir_trevor/blocks/_browse_block.html.erb_spec.rb +1 -1
  294. data/spec/views/spotlight/sir_trevor/blocks/_iframe_block.html.erb_spec.rb +1 -1
  295. data/spec/views/spotlight/sir_trevor/blocks/_link_to_search_block.html.erb_spec.rb +1 -1
  296. data/spec/views/spotlight/sir_trevor/blocks/_rule_block.html.erb_spec.rb +1 -1
  297. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_block.html.erb_spec.rb +8 -4
  298. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb_spec.rb +7 -2
  299. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_embed_block.html.erb_spec.rb +8 -5
  300. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb_spec.rb +3 -2
  301. data/spec/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb_spec.rb +9 -4
  302. data/spec/views/spotlight/tags/index.html.erb_spec.rb +5 -2
  303. data/vendor/assets/javascripts/tiny-slider.js +3218 -0
  304. data/vendor/assets/stylesheets/tiny-slider.css +1 -0
  305. metadata +472 -287
  306. data/app/assets/images/blacklight/add_circle.svg +0 -1
  307. data/app/assets/images/blacklight/custom_fullscreen.svg +0 -1
  308. data/app/assets/images/blacklight/remove_circle.svg +0 -1
  309. data/app/assets/images/blacklight/resize_small.svg +0 -1
  310. data/app/models/concerns/spotlight/resources/open_graph.rb +0 -36
  311. data/app/models/spotlight/reindex_progress.rb +0 -78
  312. data/app/models/spotlight/reindexing_log_entry.rb +0 -42
  313. data/app/services/spotlight/resources/iiif_builder.rb +0 -19
  314. data/app/services/spotlight/solr_document_builder.rb +0 -77
  315. data/app/services/spotlight/upload_solr_document_builder.rb +0 -57
  316. data/spec/factories/reindexing_log_entries.rb +0 -54
  317. data/spec/models/spotlight/reindex_progress_spec.rb +0 -122
  318. data/spec/models/spotlight/reindexing_log_entry_spec.rb +0 -129
  319. data/spec/models/spotlight/resources/open_graph_spec.rb +0 -65
  320. data/spec/services/spotlight/solr_document_builder_spec.rb +0 -66
  321. data/vendor/assets/javascripts/handlebars-v1.3.0.js +0 -2746
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7004b788de24eca3d6f0b429b184c56ef6831ca2c161f5472cd6e9b5279bc9d6
4
- data.tar.gz: fc95ee6947c984a4789a449986f3d6f2c7d6c10005c5f42039c89b6690cb92eb
3
+ metadata.gz: 744fbdb9eab230da1278b056d9e86e5474e42641e7392cc2d3e0f1a45c9639bb
4
+ data.tar.gz: 99b069606c5854c4f7361a14d05f7ac4716bf61250e1d1c215094754474a6088
5
5
  SHA512:
6
- metadata.gz: 48af92f233fc293a2d3b1fb3783f12102e0851d0fcd5ddfd188e9e2313b3389742efcd67cc256186e3252cfe0722bc0a0f961bd1665f591396add0bccc22437f
7
- data.tar.gz: 5073b54f60041abff381552ff072cfe1c07e6faa61719500c2f85a0e5de8e72a5852dc6571452225c5a27573cb76546b8c703b3f2149e2e4b3e57ab3a82fbcc9
6
+ metadata.gz: 190fb6c64ce2200ad5123f94fc10f6c9490053eb2b4229cdbf96fd4b82897b2b3a8b1977a597f49f7a6b58a0b84ef3eff2e5157210f4d9f3f0731f368259e089
7
+ data.tar.gz: 4cd54b3fbd339222e04dab49f1c7c3072901034f38fe86202759a601ec8f80a122546a6a1feb21f53c5246e07527b6df87c8656396752cb71c2ca68b524b923d
data/README.md CHANGED
@@ -1,7 +1,7 @@
1
1
  spotlight
2
2
  =========
3
3
 
4
- [![Build Status](https://travis-ci.org/projectblacklight/spotlight.png?branch=master)](https://travis-ci.org/projectblacklight/spotlight) | [![Gem Version](https://badge.fury.io/rb/blacklight-spotlight.png)](http://badge.fury.io/rb/blacklight-spotlight) | [Release Notes](https://github.com/projectblacklight/spotlight/releases) | [Design Documents](https://github.com/projectblacklight/spotlight/releases/tag/v0.0.0)
4
+ ![CI](https://github.com/projectblacklight/spotlight/workflows/CI/badge.svg) | [![Gem Version](https://badge.fury.io/rb/blacklight-spotlight.png)](http://badge.fury.io/rb/blacklight-spotlight) | [Release Notes](https://github.com/projectblacklight/spotlight/releases) | [Design Documents](https://github.com/projectblacklight/spotlight/releases/tag/v0.0.0)
5
5
 
6
6
  Spotlight is open source software that enables librarians, curators, and other content experts to easily build feature-rich websites that showcase collections and objects from a digital repository, uploaded items, or a combination of the two. Spotlight is a plug-in for [Blacklight](https://github.com/projectblacklight/blacklight), an open source, Ruby on Rails Engine that provides a basic discovery interface for searching an Apache Solr index.
7
7
 
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512"><!-- Font Awesome Free 5.15.2 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) --><path d="M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12 19 6.41z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zm.5-7H9v2H7v1h2v2h1v-2h2V9h-2z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 0 24 24" width="24"><path d="M0 0h24v24H0V0z" fill="none"/><path d="M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7V9z"/></svg>
@@ -13,6 +13,7 @@
13
13
  var cancel = $("input[data-behavior='cancel']", target);
14
14
  var input = $("input[type='text']", target);
15
15
  var original_width = button.outerWidth();
16
+ var expanded = false;
16
17
 
17
18
  // Animate button open when the mouse enters or
18
19
  // the button is given focus (i.e. clicked/tabbed)
@@ -43,7 +44,13 @@
43
44
  }
44
45
  });
45
46
  function expandButton(){
47
+ // If this has not yet been expanded, recalculate original_width to
48
+ // handle things that may have been originally hidden.
49
+ if (!expanded) {
50
+ original_width = button.outerWidth();
51
+ }
46
52
  if(button.outerWidth() <= (original_width + 5)) {
53
+ expanded = true;
47
54
  button.animate(
48
55
  {width: settings.animate_width + 'px'}, settings.speed, function(){
49
56
  target.show(0, function(){
@@ -18,6 +18,10 @@
18
18
  this.transform_autocomplete_results = _.identity;
19
19
  }
20
20
 
21
+ if (_.isUndefined(this['autocomplete_control'])) {
22
+ this.autocomplete_control = function() { return '<input type="text" class="st-input-string form-control item-input-field" data-twitter-typeahead="true" placeholder="<%= i18n.t("blocks:autocompleteable:placeholder")%>"/>' };
23
+ }
24
+
21
25
  if (_.isUndefined(this['bloodhoundOptions'])) {
22
26
  this.bloodhoundOptions = function() {
23
27
  return {
@@ -30,10 +34,6 @@
30
34
  }
31
35
  },
32
36
 
33
- autocomplete_control: function() {
34
- return '<input type="text" class="st-input-string form-control item-input-field" data-twitter-typeahead="true" placeholder="<%= i18n.t("blocks:autocompleteable:placeholder")%>"/>';
35
- },
36
-
37
37
  addAutocompletetoSirTrevorForm: function() {
38
38
  $('[data-twitter-typeahead]', this.inner).spotlightSearchTypeAhead({bloodhound: this.bloodhound(), template: this.autocomplete_template()}).on('typeahead:selected typeahead:autocompleted', this.autocompletedHandler()).on( 'focus', function() {
39
39
  if($(this).val() === '') {
@@ -0,0 +1,88 @@
1
+ /*
2
+ Sir Trevor BrowseGroupCategories
3
+ */
4
+
5
+ SirTrevor.Blocks.BrowseGroupCategories = (function(){
6
+
7
+ return Spotlight.Block.Resources.extend({
8
+ type: "browse_group_categories",
9
+ icon_name: "browse",
10
+ bloodhoundOptions: function() {
11
+ var that = this;
12
+ return {
13
+ prefetch: {
14
+ url: this.autocomplete_url(),
15
+ ttl: 0,
16
+ filter: function(response) {
17
+ // Let the dom know that the response has been returned
18
+ $(that.inner).attr('data-browse-groups-fetched', true);
19
+ return response;
20
+ }
21
+ }
22
+ };
23
+ },
24
+
25
+ autocomplete_control: function() {
26
+ return '<input type="text" class="st-input-string form-control item-input-field" data-twitter-typeahead="true" placeholder="<%= i18n.t("blocks:browse_group_categories:autocomplete")%>"/>';
27
+ },
28
+ autocomplete_template: function() { return '<div class="autocomplete-item{{#unless published}} blacklight-private{{/unless}}"><span class="autocomplete-title">{{title}}</span><br/></div>' },
29
+ autocomplete_url: function() { return $(this.inner).closest('form[data-autocomplete-exhibit-browse-groups-path]').data('autocomplete-exhibit-browse-groups-path').replace("%25QUERY", "%QUERY"); },
30
+ _itemPanel: function(data) {
31
+ var index = "item_" + this.globalIndex++;
32
+ var checked;
33
+ if (data.display == "true") {
34
+ checked = "checked='checked'"
35
+ } else {
36
+ checked = "";
37
+ }
38
+ var resource_id = data.slug || data.id;
39
+ var markup = [
40
+ '<li class="field form-inline dd-item dd3-item" data-resource-id="' + resource_id + '" data-id="' + index + '" id="' + this.formId("item_" + data.id) + '">',
41
+ '<input type="hidden" name="item[' + index + '][id]" value="' + resource_id + '" />',
42
+ '<input type="hidden" name="item[' + index + '][title]" value="' + data.title + '" />',
43
+ '<input data-property="weight" type="hidden" name="item[' + index + '][weight]" value="' + data.weight + '" />',
44
+ '<div class="card d-flex dd3-content">',
45
+ '<div class="dd-handle dd3-handle"><%= i18n.t("blocks:resources:panel:drag") %></div>',
46
+ '<div class="d-flex card-header item-grid justify-content-between">',
47
+ '<div class="d-flex flex-grow-1">',
48
+ '<div class="checkbox">',
49
+ '<input name="item[' + index + '][display]" type="hidden" value="false" />',
50
+ '<input name="item[' + index + '][display]" id="'+ this.formId(this.display_checkbox + '_' + data.id) + '" type="checkbox" ' + checked + ' class="item-grid-checkbox" value="true" />',
51
+ '<label class="sr-only" for="'+ this.formId(this.display_checkbox + '_' + data.id) +'"><%= i18n.t("blocks:resources:panel:display") %></label>',
52
+ '</div>',
53
+ '<div class="main">',
54
+ '<div class="title card-title">' + data.title + '</div>',
55
+ '</div>',
56
+ '</div>',
57
+ '<div class="d-flex">',
58
+ '<a data-item-grid-panel-remove="true" href="#"><%= i18n.t("blocks:resources:panel:remove") %></a>',
59
+ '</div>',
60
+ '</div>',
61
+ '</div>',
62
+ '</li>'
63
+ ].join("\n");
64
+
65
+ var panel = $(_.template(markup)(this));
66
+ var context = this;
67
+
68
+ $('a[data-item-grid-panel-remove]', panel).on('click', function(e) {
69
+ e.preventDefault();
70
+ $(this).closest('.field').remove();
71
+ context.afterPanelDelete();
72
+
73
+ });
74
+
75
+ this.afterPanelRender(data, panel);
76
+
77
+ return panel;
78
+ },
79
+
80
+ item_options: function() { return [
81
+ '<label>',
82
+ '<input type="hidden" name="display-item-counts" value="false" />',
83
+ '<input type="checkbox" name="display-item-counts" value="true" checked />',
84
+ '<%= i18n.t("blocks:browse_group_categories:item_counts") %>',
85
+ '</label>'
86
+ ].join("\n") },
87
+ });
88
+ })();
@@ -8,7 +8,7 @@ SirTrevor.Blocks.FeaturedPages = (function(){
8
8
  icon_name: "pages",
9
9
 
10
10
  autocomplete_url: function() { return $(this.inner).closest('form[data-autocomplete-exhibit-pages-path]').data('autocomplete-exhibit-pages-path').replace("%25QUERY", "%QUERY"); },
11
- autocomplete_template: function() { return '<div class="autocomplete-item{{#unless published}} blacklight-private{{/unless}}">{{log "Look at me"}}{{log thumbnail_image_url}}{{#if thumbnail_image_url}}<div class="document-thumbnail"><img class="img-thumbnail" src="{{thumbnail_image_url}}" /></div>{{/if}}<span class="autocomplete-title">{{title}}</span><br/><small>&nbsp;&nbsp;{{description}}</small></div>' },
11
+ autocomplete_template: function() { return '<div class="autocomplete-item{{#unless published}} blacklight-private{{/unless}}">{{#if thumbnail_image_url}}<div class="document-thumbnail"><img class="img-thumbnail" src="{{thumbnail_image_url}}" /></div>{{/if}}<span class="autocomplete-title">{{title}}</span><br/><small>&nbsp;&nbsp;{{description}}</small></div>' },
12
12
  bloodhoundOptions: function() {
13
13
  return {
14
14
  prefetch: {
@@ -85,7 +85,7 @@ SirTrevor.Blocks.SolrDocumentsBase = (function(){
85
85
 
86
86
  $.ajax(manifestUrl).done(
87
87
  function(manifest) {
88
- var Iiif = require('spotlight/admin/iiif');
88
+ var Iiif = spotlightAdminIiif;
89
89
  var iiifManifest = new Iiif(manifestUrl, manifest);
90
90
 
91
91
  var thumbs = iiifManifest.imagesArray();
@@ -130,9 +130,16 @@ SirTrevor.Blocks.UploadedItems = (function(){
130
130
  '</div>',
131
131
  '<input type="file" id="uploaded_item_url" name="file[file_0][file_data]" />',
132
132
  '</div>',
133
+ '<div class="col-md-4">',
134
+ '<input name="<%= zpr_key %>" type="hidden" value="false" />',
135
+ '<input name="<%= zpr_key %>" id="<%= formId(zpr_key) %>" data-key="<%= zpr_key %>" type="checkbox" value="true" />',
136
+ '<label for="<%= formId(zpr_key) %>"><%= i18n.t("blocks:solr_documents:zpr:title") %></label>',
137
+ '</div>',
133
138
  '</div>',
134
139
  '<%= text_area() %>',
135
140
  '</div>'
136
- ].join("\n")
141
+ ].join("\n"),
142
+
143
+ zpr_key: 'zpr_link'
137
144
  });
138
145
  })();
@@ -1,50 +1,16 @@
1
1
  Spotlight.onLoad(function() {
2
- if($('#solr_document_exhibit_tag_list').length > 0) {
3
- // By default tags input binds on page ready to [data-role=tagsinput],
4
- // however, that doesn't work with Turbolinks. So we init manually:
5
- $('#solr_document_exhibit_tag_list').tagsinput();
6
-
7
- var tags = new Bloodhound({
8
- datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },
9
- queryTokenizer: Bloodhound.tokenizers.whitespace,
10
- limit: 100,
11
- prefetch: {
12
- url: $('#solr_document_exhibit_tag_list').data('autocomplete_url'),
13
- ttl: 1,
14
- filter: function(list) {
15
- return $.map(list, function(tag) { return { name: tag }; });
16
- }
2
+ $(".visiblity_toggle").blCheckboxSubmit({
3
+ //css_class is added to elements added, plus used for id base
4
+ cssClass: "toggle_visibility",
5
+ //success is called at the end of the ajax success callback
6
+ success: function (isPublic){
7
+ // We store the selector of the label to toggle in a data attribute in the form
8
+ var docTarget = $($(this).data("label-toggle-target"));
9
+ if ( isPublic ) {
10
+ docTarget.removeClass("blacklight-private");
11
+ } else {
12
+ docTarget.addClass("blacklight-private");
17
13
  }
18
- });
19
-
20
- tags.initialize();
21
-
22
- $('#solr_document_exhibit_tag_list').tagsinput('input').typeahead({highlight: true, hint: false}, {
23
- name: 'tags',
24
- displayKey: 'name',
25
- source: tags.ttAdapter()
26
- }).bind('typeahead:selected', $.proxy(function (obj, datum) {
27
- $('#solr_document_exhibit_tag_list').tagsinput('add', datum.name);
28
- $('#solr_document_exhibit_tag_list').tagsinput('input').typeahead('val', '');
29
- })).bind('blur', function() {
30
- $('#solr_document_exhibit_tag_list').tagsinput('add', $('#solr_document_exhibit_tag_list').tagsinput('input').typeahead('val'));
31
- $('#solr_document_exhibit_tag_list').tagsinput('input').typeahead('val', '');
32
- });
33
- }
34
-
35
- $(".visiblity_toggle").blCheckboxSubmit({
36
- //css_class is added to elements added, plus used for id base
37
- cssClass: "toggle_visibility",
38
- //success is called at the end of the ajax success callback
39
- success: function (isPublic){
40
- // We store the selector of the label to toggle in a data attribute in the form
41
- var docTarget = $($(this).data("label-toggle-target"));
42
- if ( isPublic ) {
43
- docTarget.removeClass("blacklight-private");
44
- } else {
45
- docTarget.addClass("blacklight-private");
46
- }
47
- }
48
- });
49
-
14
+ }
15
+ });
50
16
  });
@@ -12,7 +12,7 @@ Spotlight.onLoad(function() {
12
12
  $.fn.croppable = function() {
13
13
  var croppables = this;
14
14
 
15
- var Crop = require('spotlight/admin/crop');
15
+ var Crop = spotlightAdminCrop;
16
16
  $(croppables).each(function() {
17
17
  var cropElement = $(this);
18
18
  var c = new Crop(cropElement);
@@ -0,0 +1,37 @@
1
+ Spotlight.onLoad(function() {
2
+ $('[data-autocomplete-tag="true"]').each(function(_i, el) {
3
+ var $el = $(el);
4
+ // By default tags input binds on page ready to [data-role=tagsinput],
5
+ // however, that doesn't work with Turbolinks. So we init manually:
6
+ $el.tagsinput();
7
+
8
+ var tags = new Bloodhound({
9
+ datumTokenizer: function(d) { return Bloodhound.tokenizers.whitespace(d.name); },
10
+ queryTokenizer: Bloodhound.tokenizers.whitespace,
11
+ limit: 100,
12
+ prefetch: {
13
+ url: $el.data('autocomplete-url'),
14
+ ttl: 1,
15
+ filter: function(list) {
16
+ // Let the dom know that the response has been returned
17
+ $el.attr('data-autocomplete-fetched', true);
18
+ return $.map(list, function(tag) { return { name: tag }; });
19
+ }
20
+ }
21
+ });
22
+
23
+ tags.initialize();
24
+
25
+ $el.tagsinput('input').typeahead({highlight: true, hint: false}, {
26
+ name: 'tags',
27
+ displayKey: 'name',
28
+ source: tags.ttAdapter()
29
+ }).bind('typeahead:selected', $.proxy(function (obj, datum) {
30
+ $el.tagsinput('add', datum.name);
31
+ $el.tagsinput('input').typeahead('val', '');
32
+ })).bind('blur', function() {
33
+ $el.tagsinput('add', $el.tagsinput('input').typeahead('val'));
34
+ $el.tagsinput('input').typeahead('val', '');
35
+ });
36
+ });
37
+ });
@@ -12,7 +12,5 @@
12
12
  //= require Path.Drag
13
13
  //= require MutationObserver
14
14
 
15
- // Provide AMD module support
16
- //= require almond
17
15
  //= require polyfill.min.js
18
16
  //= require_tree .
@@ -1,9 +1,9 @@
1
1
  Spotlight.onLoad(function() {
2
- $('[data-behavior="reindex-monitor"]').reindexMonitor();
2
+ $('[data-behavior="progress-panel"]').progressMonitor();
3
3
  });
4
4
 
5
5
  (function($) {
6
- $.fn.reindexMonitor = function() {
6
+ $.fn.progressMonitor = function() {
7
7
  var monitorElements = this;
8
8
  var defaultRefreshRate = 3000;
9
9
  var panelContainer;
@@ -11,6 +11,7 @@ Spotlight.onLoad(function() {
11
11
 
12
12
  $(monitorElements).each(function() {
13
13
  panelContainer = $(this);
14
+ panelContainer.hide();
14
15
  var monitorUrl = panelContainer.data('monitorUrl');
15
16
  var refreshRate = panelContainer.data('refreshRate') || defaultRefreshRate;
16
17
  pollers.push(
@@ -48,10 +49,14 @@ Spotlight.onLoad(function() {
48
49
  function updateMonitorPanel(data) {
49
50
  panelStartDate().text(data.started_at);
50
51
  panelCurrentDate().text(data.updated_at);
51
- panelCompleted().text(data.completed);
52
+ panelCompletedDate().text(data.updated_at);
53
+ panelCurrent().text(data.completed);
54
+ setPanelCompleted(data.finished);
52
55
  updatePanelTotals(data);
53
56
  updatePanelErrorMessage(data);
54
57
  updateProgressBar(data);
58
+
59
+ panelContainer.show();
55
60
  }
56
61
 
57
62
  function updateProgressBar(data) {
@@ -84,6 +89,7 @@ Spotlight.onLoad(function() {
84
89
  }
85
90
 
86
91
  function calculatePercentage(data) {
92
+ if (data.total == 0) return 0;
87
93
  return Math.floor((data.completed / data.total) * 100);
88
94
  }
89
95
 
@@ -103,11 +109,17 @@ Spotlight.onLoad(function() {
103
109
  .find('[data-behavior="date"]');
104
110
  }
105
111
 
112
+ function panelCompletedDate() {
113
+ return monitorPanel()
114
+ .find('[data-behavior="monitor-completed"]')
115
+ .find('[data-behavior="date"]');
116
+ }
117
+
106
118
  function panelTotals() {
107
119
  return monitorPanel().find('[data-behavior="total"]');
108
120
  }
109
121
 
110
- function panelCompleted() {
122
+ function panelCurrent() {
111
123
  return monitorPanel()
112
124
  .find('[data-behavior="monitor-current"]')
113
125
  .find('[data-behavior="completed"]');
@@ -121,6 +133,16 @@ Spotlight.onLoad(function() {
121
133
  return monitorPanel().find('[data-behavior="monitor-error"]');
122
134
  }
123
135
 
136
+ function setPanelCompleted(finished) {
137
+ var panel = monitorPanel().find('[data-behavior="monitor-completed"]');
138
+
139
+ if (finished) {
140
+ panel.show();
141
+ } else {
142
+ panel.hide();
143
+ }
144
+ }
145
+
124
146
  return this;
125
147
  };
126
148
  })(jQuery);
@@ -1,5 +1,5 @@
1
1
  //= require typeahead.bundle.min.js
2
- //= require handlebars-v1.3.0.js
2
+ //= require handlebars
3
3
 
4
4
  (function($){
5
5
  $.fn.spotlightSearchTypeAhead = function( options ) {
@@ -73,7 +73,7 @@ function addImageSelector(input, panel, manifestUrl, initialize) {
73
73
  var cropper = input.data('iiifCropper');
74
74
  $.ajax(manifestUrl).done(
75
75
  function(manifest) {
76
- var Iiif = require('spotlight/admin/iiif');
76
+ var Iiif = spotlightAdminIiif;
77
77
  var iiifManifest = new Iiif(manifestUrl, manifest);
78
78
 
79
79
  var thumbs = iiifManifest.imagesArray();
@@ -9,6 +9,13 @@ SirTrevor.Locales.en.blocks = $.extend(SirTrevor.Locales.en.blocks, {
9
9
  item_counts: "Include item counts?"
10
10
  },
11
11
 
12
+ browse_group_categories: {
13
+ autocomplete: "Enter a browse group title...",
14
+ title: "Browse Group Categories",
15
+ description: "This widget displays all browse categories associated with a selected browse group as a horizontally-scrolling row. Each selected browse group is displayed as a separate row. Each displayed category in a group links to the corresponding browse category results page.",
16
+ item_counts: "Include category item counts?"
17
+ },
18
+
12
19
  link_to_search: {
13
20
  title: "Saved Searches",
14
21
  description: "This widget highlights saved searches. Each highlighted saved search links to the search results page generated by the saved search parameters. Any saved search listed on the Curation > Browse categories page, whether published or not, can be highlighted as a saved search.",
@@ -65,7 +72,7 @@ SirTrevor.Locales.en.blocks = $.extend(SirTrevor.Locales.en.blocks, {
65
72
  secondary: "Secondary caption"
66
73
  },
67
74
  zpr: {
68
- title: 'Display ZPR link'
75
+ title: 'Offer "View larger" option'
69
76
  }
70
77
  },
71
78