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.
Files changed (339) 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/crop.es6 +6 -0
  16. data/app/assets/javascripts/spotlight/admin/croppable.js +1 -1
  17. data/app/assets/javascripts/spotlight/admin/exhibit_tag_autocomplete.js +37 -0
  18. data/app/assets/javascripts/spotlight/admin/index.js +0 -2
  19. data/app/assets/javascripts/spotlight/admin/{reindex_monitor.js → progress_monitor.js} +26 -4
  20. data/app/assets/javascripts/spotlight/admin/search_typeahead.js +2 -2
  21. data/app/assets/javascripts/spotlight/admin/sir-trevor/block_controls.js +21 -12
  22. data/app/assets/javascripts/spotlight/admin/sir-trevor/locales.js +9 -2
  23. data/app/assets/javascripts/spotlight/user/browse_group_categories.js +59 -0
  24. data/app/assets/javascripts/spotlight/user/index.js +1 -0
  25. data/app/assets/javascripts/spotlight/user/zpr_links.js.erb +29 -14
  26. data/app/assets/stylesheets/spotlight/_breadcrumbs.scss +8 -0
  27. data/app/assets/stylesheets/spotlight/_browse.scss +8 -0
  28. data/app/assets/stylesheets/spotlight/_catalog.scss +34 -8
  29. data/app/assets/stylesheets/spotlight/_exhibit_admin.scss +9 -0
  30. data/app/assets/stylesheets/spotlight/_featured_browse_categories_block.scss +211 -83
  31. data/app/assets/stylesheets/spotlight/_item_text_block.scss +6 -0
  32. data/app/assets/stylesheets/spotlight/_modals.scss +3 -0
  33. data/app/assets/stylesheets/spotlight/_nestable.scss +8 -0
  34. data/app/assets/stylesheets/spotlight/_pages.scss +9 -4
  35. data/app/assets/stylesheets/spotlight/_report_a_problem.scss +5 -2
  36. data/app/assets/stylesheets/spotlight/_spotlight.scss +4 -0
  37. data/app/assets/stylesheets/spotlight/_translations.scss +6 -0
  38. data/app/assets/stylesheets/spotlight/_view_larger.scss +22 -0
  39. data/app/assets/stylesheets/spotlight/browse_group_categories_block.scss +92 -0
  40. data/app/assets/stylesheets/spotlight/typeahead.css +23 -23
  41. data/app/builders/spotlight/bootstrap_breadcrumbs_builder.rb +5 -4
  42. data/app/controllers/concerns/spotlight/catalog.rb +7 -1
  43. data/app/controllers/concerns/spotlight/search_helper.rb +2 -8
  44. data/app/controllers/spotlight/appearances_controller.rb +0 -13
  45. data/app/controllers/spotlight/browse_controller.rb +12 -3
  46. data/app/controllers/spotlight/bulk_actions_controller.rb +62 -0
  47. data/app/controllers/spotlight/bulk_updates_controller.rb +67 -0
  48. data/app/controllers/spotlight/catalog_controller.rb +10 -9
  49. data/app/controllers/spotlight/concerns/application_controller.rb +13 -2
  50. data/app/controllers/spotlight/dashboards_controller.rb +2 -1
  51. data/app/controllers/spotlight/exhibits_controller.rb +1 -1
  52. data/app/controllers/spotlight/featured_images_controller.rb +1 -1
  53. data/app/controllers/spotlight/groups_controller.rb +80 -0
  54. data/app/controllers/spotlight/job_trackers_controller.rb +17 -0
  55. data/app/controllers/spotlight/pages_controller.rb +5 -8
  56. data/app/controllers/spotlight/resources/csv_upload_controller.rb +1 -1
  57. data/app/controllers/spotlight/searches_controller.rb +4 -17
  58. data/app/controllers/spotlight/tags_controller.rb +39 -5
  59. data/app/helpers/spotlight/application_helper.rb +21 -2
  60. data/app/helpers/spotlight/crud_link_helpers.rb +1 -1
  61. data/app/helpers/spotlight/job_trackers_helper.rb +31 -0
  62. data/app/helpers/spotlight/main_app_helpers.rb +1 -1
  63. data/app/helpers/spotlight/pages_helper.rb +1 -8
  64. data/app/helpers/spotlight/roles_helper.rb +1 -1
  65. data/app/jobs/concerns/spotlight/gather_documents.rb +35 -0
  66. data/app/jobs/concerns/spotlight/job_tracking.rb +64 -0
  67. data/app/jobs/concerns/spotlight/limit_concurrency.rb +33 -0
  68. data/app/jobs/spotlight/add_tags_job.rb +31 -0
  69. data/app/jobs/spotlight/add_uploads_from_csv.rb +32 -6
  70. data/app/jobs/spotlight/application_job.rb +8 -0
  71. data/app/jobs/spotlight/change_visibility_job.rb +33 -0
  72. data/app/jobs/spotlight/cleanup_job_trackers_job.rb +13 -0
  73. data/app/jobs/spotlight/default_thumbnail_job.rb +1 -3
  74. data/app/jobs/spotlight/process_bulk_updates_csv_job.rb +82 -0
  75. data/app/jobs/spotlight/reindex_exhibit_job.rb +39 -0
  76. data/app/jobs/spotlight/reindex_job.rb +64 -44
  77. data/app/jobs/spotlight/remove_tags_job.rb +31 -0
  78. data/app/jobs/spotlight/rename_sidecar_field_job.rb +3 -2
  79. data/app/jobs/spotlight/rename_tags_job.rb +33 -0
  80. data/app/jobs/spotlight/update_job_trackers_job.rb +20 -0
  81. data/app/mailers/spotlight/indexing_complete_mailer.rb +3 -2
  82. data/app/models/concerns/spotlight/exhibit_analytics.rb +2 -6
  83. data/app/models/concerns/spotlight/exhibit_defaults.rb +1 -1
  84. data/app/models/concerns/spotlight/exhibit_documents.rb +2 -2
  85. data/app/models/concerns/spotlight/resources/web.rb +1 -1
  86. data/app/models/concerns/spotlight/solr_document.rb +1 -1
  87. data/app/models/concerns/spotlight/solr_document/atomic_updates.rb +2 -2
  88. data/app/models/concerns/spotlight/user.rb +7 -2
  89. data/app/models/sir_trevor_rails/blocks/browse_group_categories_block.rb +25 -0
  90. data/app/models/sir_trevor_rails/blocks/uploaded_items_block.rb +4 -0
  91. data/app/models/spotlight/ability.rb +8 -2
  92. data/app/models/spotlight/about_page.rb +1 -1
  93. data/app/models/spotlight/attachment.rb +1 -1
  94. data/app/models/spotlight/background_job_progress.rb +96 -0
  95. data/app/models/spotlight/blacklight_configuration.rb +19 -7
  96. data/app/models/spotlight/bulk_update.rb +8 -0
  97. data/app/models/spotlight/contact.rb +1 -1
  98. data/app/models/spotlight/custom_field.rb +3 -3
  99. data/app/models/spotlight/event.rb +13 -0
  100. data/app/models/spotlight/exhibit.rb +15 -12
  101. data/app/models/spotlight/feature_page.rb +1 -3
  102. data/app/models/spotlight/featured_image.rb +9 -3
  103. data/app/models/spotlight/field_metadata.rb +4 -8
  104. data/app/models/spotlight/group.rb +22 -0
  105. data/app/models/spotlight/group_member.rb +11 -0
  106. data/app/models/spotlight/home_page.rb +1 -1
  107. data/app/models/spotlight/job_tracker.rb +114 -0
  108. data/app/models/spotlight/page.rb +3 -5
  109. data/app/models/spotlight/page_configurations.rb +6 -0
  110. data/app/models/spotlight/page_content.rb +2 -0
  111. data/app/models/spotlight/resource.rb +28 -62
  112. data/app/models/spotlight/resources/csv_upload.rb +2 -1
  113. data/app/models/spotlight/resources/iiif_harvester.rb +12 -3
  114. data/app/models/spotlight/resources/iiif_manifest.rb +11 -7
  115. data/app/models/spotlight/resources/iiif_service.rb +9 -2
  116. data/app/models/spotlight/resources/json_upload.rb +12 -0
  117. data/app/models/spotlight/resources/upload.rb +25 -2
  118. data/app/models/spotlight/role.rb +1 -2
  119. data/app/models/spotlight/search.rb +5 -0
  120. data/app/models/spotlight/solr_document_sidecar.rb +2 -1
  121. data/app/presenters/spotlight/iiif_manifest_presenter.rb +1 -1
  122. data/app/services/spotlight/bulk_updates_csv_template_service.rb +93 -0
  123. data/app/services/spotlight/etl.rb +7 -0
  124. data/app/services/spotlight/etl/context.rb +52 -0
  125. data/app/services/spotlight/etl/executor.rb +192 -0
  126. data/app/services/spotlight/etl/loaders.rb +12 -0
  127. data/app/services/spotlight/etl/pipeline.rb +81 -0
  128. data/app/services/spotlight/etl/solr_loader.rb +96 -0
  129. data/app/services/spotlight/etl/sources.rb +25 -0
  130. data/app/services/spotlight/etl/step.rb +82 -0
  131. data/app/services/spotlight/etl/transforms.rb +64 -0
  132. data/app/services/spotlight/exhibit_import_export_service.rb +50 -22
  133. data/app/services/spotlight/iiif_resource_resolver.rb +1 -1
  134. data/app/services/spotlight/validity_checker.rb +5 -5
  135. data/app/uploaders/spotlight/bulk_updates_uploader.rb +7 -0
  136. data/app/uploaders/spotlight/featured_image_uploader.rb +1 -1
  137. data/app/values/custom_field_name.rb +1 -0
  138. data/app/views/catalog/_add_tags.html.erb +28 -0
  139. data/app/views/catalog/_bulk_actions.html.erb +12 -0
  140. data/app/views/catalog/_change_visibility.html.erb +35 -0
  141. data/app/views/catalog/_curator_actions.html.erb +3 -0
  142. data/app/views/catalog/_remove_tags.html.erb +37 -0
  143. data/app/views/spotlight/about_pages/_empty.html.erb +5 -5
  144. data/app/views/spotlight/browse/_search.html.erb +2 -1
  145. data/app/views/spotlight/browse/index.html.erb +13 -0
  146. data/app/views/spotlight/bulk_updates/_download.html.erb +23 -0
  147. data/app/views/spotlight/bulk_updates/_overview.html.erb +1 -0
  148. data/app/views/spotlight/bulk_updates/_progress_panel.html.erb +19 -0
  149. data/app/views/spotlight/bulk_updates/_upload.html.erb +12 -0
  150. data/app/views/spotlight/bulk_updates/edit.html.erb +37 -0
  151. data/app/views/spotlight/catalog/_admin_header.html.erb +1 -1
  152. data/app/views/spotlight/catalog/_document.html.erb +2 -4
  153. data/app/views/spotlight/catalog/_edit_default.html.erb +2 -2
  154. data/app/views/spotlight/catalog/_reindex_progress_panel.html.erb +1 -1
  155. data/app/views/spotlight/catalog/index.iiif_json.jbuilder +22 -0
  156. data/app/views/spotlight/contacts/_form.html.erb +1 -1
  157. data/app/views/spotlight/custom_fields/_form.html.erb +1 -1
  158. data/app/views/spotlight/custom_search_fields/_form.html.erb +1 -1
  159. data/app/views/spotlight/dashboards/_reindexing_activity.html.erb +6 -6
  160. data/app/views/spotlight/exhibits/_exhibit_card.html.erb +1 -1
  161. data/app/views/spotlight/feature_pages/_empty.html.erb +5 -5
  162. data/app/views/spotlight/featured_images/_form.html.erb +1 -1
  163. data/app/views/spotlight/featured_images/_upload_form.html.erb +1 -1
  164. data/app/views/spotlight/home_pages/_empty.html.erb +3 -3
  165. data/app/views/spotlight/indexing_complete_mailer/documents_indexed.html.erb +9 -0
  166. data/app/views/spotlight/job_trackers/show.html.erb +79 -0
  167. data/app/views/spotlight/pages/_form.html.erb +3 -3
  168. data/app/views/spotlight/resources/_form.html.erb +1 -1
  169. data/app/views/spotlight/resources/csv_upload/_form.html.erb +1 -1
  170. data/app/views/spotlight/resources/iiif/_form.html.erb +1 -1
  171. data/app/views/spotlight/resources/json_upload/_form.html.erb +2 -2
  172. data/app/views/spotlight/resources/upload/_form.html.erb +1 -1
  173. data/app/views/spotlight/searches/_form.html.erb +12 -0
  174. data/app/views/spotlight/searches/_group.html.erb +27 -0
  175. data/app/views/spotlight/searches/index.html.erb +58 -17
  176. data/app/views/spotlight/shared/_curation_sidebar.html.erb +3 -0
  177. data/app/views/spotlight/shared/_honeypot_field.html.erb +4 -0
  178. data/app/views/spotlight/shared/_locale_picker.html.erb +1 -1
  179. data/app/views/spotlight/shared/_report_a_problem.html.erb +7 -10
  180. data/app/views/spotlight/sir_trevor/blocks/_browse_group_categories_block.html.erb +45 -0
  181. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_block.html.erb +3 -3
  182. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_carousel_block.html.erb +2 -2
  183. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_features_block.html.erb +2 -2
  184. data/app/views/spotlight/sir_trevor/blocks/_solr_documents_grid_block.html.erb +2 -2
  185. data/app/views/spotlight/sir_trevor/blocks/_uploaded_items_block.html.erb +4 -0
  186. data/app/views/spotlight/tags/_tag.html.erb +24 -0
  187. data/app/views/spotlight/tags/index.html.erb +12 -16
  188. data/app/views/spotlight/translations/_groups.html.erb +34 -0
  189. data/app/views/spotlight/translations/_import.html.erb +5 -5
  190. data/app/views/spotlight/translations/edit.html.erb +6 -0
  191. data/app/views/spotlight/translations/show.yaml.yamlbuilder +6 -0
  192. data/config/i18n-tasks.yml +8 -0
  193. data/config/locales/spotlight.ar.yml +32 -18
  194. data/config/locales/spotlight.en.yml +296 -93
  195. data/config/routes.rb +38 -1
  196. data/db/migrate/20210113092223_create_spotlight_groups.rb +23 -0
  197. data/db/migrate/20210122082032_create_job_trackers.rb +22 -0
  198. data/db/migrate/20210126123041_create_events.rb +15 -0
  199. data/db/migrate/20210305070001_remove_class_from_sirtrevor_image_blocks.rb +20 -0
  200. data/db/migrate/20210305171150_create_bulk_updates.rb +9 -0
  201. data/lib/generators/spotlight/install_generator.rb +23 -2
  202. data/lib/generators/spotlight/scaffold_resource_generator.rb +5 -13
  203. data/lib/generators/spotlight/templates/config/initializers/riiif.rb +7 -5
  204. data/lib/generators/spotlight/templates/config/initializers/sir_trevor_rails.rb +10 -0
  205. data/lib/generators/spotlight/templates/config/initializers/spotlight_initializer.rb +3 -1
  206. data/lib/generators/spotlight/templates/solr/config/schema.xml +1 -1
  207. data/lib/migration/iiif.rb +3 -3
  208. data/lib/spotlight/engine.rb +29 -4
  209. data/lib/spotlight/upload_field_config.rb +1 -0
  210. data/lib/spotlight/version.rb +1 -1
  211. data/spec/controllers/spotlight/about_pages_controller_spec.rb +3 -3
  212. data/spec/controllers/spotlight/browse_controller_spec.rb +24 -1
  213. data/spec/controllers/spotlight/bulk_actions_controller_spec.rb +124 -0
  214. data/spec/controllers/spotlight/bulk_updates_controller_spec.rb +77 -0
  215. data/spec/controllers/spotlight/catalog_controller_spec.rb +15 -13
  216. data/spec/controllers/spotlight/contacts_controller_spec.rb +2 -2
  217. data/spec/controllers/spotlight/feature_pages_controller_spec.rb +11 -0
  218. data/spec/controllers/spotlight/featured_images_controller_spec.rb +3 -3
  219. data/spec/controllers/spotlight/groups_controller_spec.rb +103 -0
  220. data/spec/controllers/spotlight/home_pages_controller_spec.rb +1 -1
  221. data/spec/controllers/spotlight/job_trackers_controller_spec.rb +37 -0
  222. data/spec/controllers/spotlight/resources/csv_upload_controller_spec.rb +4 -4
  223. data/spec/controllers/spotlight/searches_controller_spec.rb +10 -3
  224. data/spec/controllers/spotlight/tags_controller_spec.rb +5 -1
  225. data/spec/controllers/spotlight/view_configurations_controller_spec.rb +1 -1
  226. data/spec/examples.txt +1500 -125
  227. data/spec/factories/bulk_updates.rb +15 -0
  228. data/spec/factories/exhibits.rb +4 -0
  229. data/spec/factories/group.rb +17 -0
  230. data/spec/factories/job_trackers.rb +11 -0
  231. data/spec/factories/searches.rb +11 -1
  232. data/spec/factories/users.rb +27 -8
  233. data/spec/features/add_contacts_spec.rb +1 -1
  234. data/spec/features/add_items_spec.rb +10 -5
  235. data/spec/features/browse_category_admin_spec.rb +39 -7
  236. data/spec/features/browse_category_navigation_spec.rb +44 -0
  237. data/spec/features/browse_category_spec.rb +2 -2
  238. data/spec/features/bulk_actions_spec.rb +72 -0
  239. data/spec/features/catalog_spec.rb +3 -2
  240. data/spec/features/create_exhibit_spec.rb +5 -4
  241. data/spec/features/dashboard_spec.rb +7 -7
  242. data/spec/features/edit_search_fields_spec.rb +2 -2
  243. data/spec/features/exhibits/administration_spec.rb +3 -3
  244. data/spec/features/exhibits/edit_metadata_fields_spec.rb +1 -1
  245. data/spec/features/exhibits/language_create_edit_spec.rb +3 -3
  246. data/spec/features/exhibits/translation_editing_spec.rb +55 -6
  247. data/spec/features/home_page_spec.rb +5 -5
  248. data/spec/features/import_exhibit_spec.rb +5 -1
  249. data/spec/features/item_admin_spec.rb +4 -4
  250. data/spec/features/javascript/about_page_admin_spec.rb +1 -1
  251. data/spec/features/javascript/block_controls_spec.rb +3 -1
  252. data/spec/features/javascript/blocks/browse_group_categories_block_spec.rb +64 -0
  253. data/spec/features/javascript/blocks/solr_documents_block_spec.rb +3 -3
  254. data/spec/features/javascript/blocks/uploaded_items_block_spec.rb +27 -1
  255. data/spec/features/javascript/browse_group_admin_spec.rb +45 -0
  256. data/spec/features/javascript/edit_in_place_spec.rb +3 -3
  257. data/spec/features/javascript/feature_page_admin_spec.rb +1 -1
  258. data/spec/features/javascript/reindex_monitor_spec.rb +1 -1
  259. data/spec/features/javascript/search_config_admin_spec.rb +1 -1
  260. data/spec/features/report_a_problem_spec.rb +6 -5
  261. data/spec/features/site_users_management_spec.rb +5 -5
  262. data/spec/fixtures/bulk-update-template.csv +57 -0
  263. data/spec/fixtures/updated-bulk-update-template-w-tags.csv +4 -0
  264. data/spec/fixtures/updated-bulk-update-template.csv +4 -0
  265. data/spec/helpers/spotlight/application_helper_spec.rb +0 -1
  266. data/spec/helpers/spotlight/crud_link_helpers_spec.rb +3 -3
  267. data/spec/helpers/spotlight/pages_helper_spec.rb +10 -17
  268. data/spec/helpers/spotlight/roles_helper_spec.rb +1 -1
  269. data/spec/i18n_spec.rb +1 -0
  270. data/spec/jobs/spotlight/add_tags_job_spec.rb +34 -0
  271. data/spec/jobs/spotlight/add_uploads_from_csv_spec.rb +16 -1
  272. data/spec/jobs/spotlight/change_visibility_job_spec.rb +30 -0
  273. data/spec/jobs/spotlight/process_bulk_updates_csv_job_spec.rb +78 -0
  274. data/spec/jobs/spotlight/reindex_exhibit_job_spec.rb +43 -0
  275. data/spec/jobs/spotlight/reindex_job_spec.rb +34 -60
  276. data/spec/jobs/spotlight/remove_tags_job_spec.rb +39 -0
  277. data/spec/lib/migration/iiif_spec.rb +1 -1
  278. data/spec/mailers/spotlight/indexing_complete_mailer_spec.rb +11 -1
  279. data/spec/models/sir_trevor_rails/blocks/browse_group_categories_block_spec.rb +41 -0
  280. data/spec/models/solr_document_spec.rb +2 -3
  281. data/spec/models/spotlight/ability_spec.rb +27 -0
  282. data/spec/models/spotlight/access_controls_enforcement_search_builder_spec.rb +1 -0
  283. data/spec/models/spotlight/background_job_progress_spec.rb +137 -0
  284. data/spec/models/spotlight/blacklight_configuration_spec.rb +8 -3
  285. data/spec/models/spotlight/exhibit_spec.rb +13 -59
  286. data/spec/models/spotlight/featured_image_spec.rb +1 -2
  287. data/spec/models/spotlight/group_spec.rb +19 -0
  288. data/spec/models/spotlight/main_navigation_spec.rb +1 -1
  289. data/spec/models/spotlight/resource_spec.rb +89 -87
  290. data/spec/models/spotlight/resources/iiif_harvester_spec.rb +9 -10
  291. data/spec/models/spotlight/role_spec.rb +3 -3
  292. data/spec/models/spotlight/search_spec.rb +30 -3
  293. data/spec/models/spotlight/solr_document/atomic_updates_spec.rb +10 -0
  294. data/spec/models/spotlight/solr_document_sidecar_spec.rb +1 -0
  295. data/spec/services/spotlight/bulk_updates_csv_template_service_spec.rb +26 -0
  296. data/spec/services/spotlight/etl/context_spec.rb +66 -0
  297. data/spec/services/spotlight/etl/executor_spec.rb +149 -0
  298. data/spec/services/spotlight/etl/pipeline_spec.rb +22 -0
  299. data/spec/services/spotlight/etl/solr_loader_spec.rb +76 -0
  300. data/spec/services/spotlight/etl/step_spec.rb +70 -0
  301. data/spec/services/spotlight/exhibit_import_export_service_spec.rb +62 -3
  302. data/spec/services/spotlight/iiif_resource_resolver_spec.rb +1 -1
  303. data/spec/spec_helper.rb +3 -6
  304. data/spec/support/features/test_features_helpers.rb +15 -0
  305. data/spec/test_app_templates/Gemfile.extra +2 -3
  306. data/spec/test_app_templates/catalog_controller.rb +6 -3
  307. data/spec/test_app_templates/lib/generators/test_app_generator.rb +1 -1
  308. data/spec/uploaders/spotlight/featured_image_uploader_spec.rb +2 -2
  309. data/spec/views/shared/_exhibit_navbar.html.erb_spec.rb +1 -1
  310. data/spec/views/spotlight/browse/index.html.erb_spec.rb +2 -0
  311. data/spec/views/spotlight/catalog/_edit_default.html.erb_spec.rb +1 -1
  312. data/spec/views/spotlight/dashboards/_analytics.html.erb_spec.rb +1 -1
  313. data/spec/views/spotlight/dashboards/_reindexing_activity.html.erb_spec.rb +30 -25
  314. data/spec/views/spotlight/job_trackers/show.html.erb_spec.rb +65 -0
  315. data/spec/views/spotlight/metadata_configurations/_metadata_field.html.erb_spec.rb +3 -3
  316. data/spec/views/spotlight/pages/show.html.erb_spec.rb +1 -0
  317. data/spec/views/spotlight/search_configurations/_facets.html.erb_spec.rb +1 -1
  318. data/spec/views/spotlight/search_configurations/_sort.html.erb_spec.rb +7 -8
  319. data/spec/views/spotlight/tags/index.html.erb_spec.rb +5 -2
  320. data/vendor/assets/javascripts/leaflet-iiif.js +46 -21
  321. data/vendor/assets/javascripts/tiny-slider.js +3218 -0
  322. data/vendor/assets/stylesheets/tiny-slider.css +1 -0
  323. metadata +511 -296
  324. data/app/assets/images/blacklight/add_circle.svg +0 -1
  325. data/app/assets/images/blacklight/custom_fullscreen.svg +0 -1
  326. data/app/assets/images/blacklight/remove_circle.svg +0 -1
  327. data/app/assets/images/blacklight/resize_small.svg +0 -1
  328. data/app/models/concerns/spotlight/resources/open_graph.rb +0 -36
  329. data/app/models/spotlight/reindex_progress.rb +0 -78
  330. data/app/models/spotlight/reindexing_log_entry.rb +0 -42
  331. data/app/services/spotlight/resources/iiif_builder.rb +0 -19
  332. data/app/services/spotlight/solr_document_builder.rb +0 -76
  333. data/app/services/spotlight/upload_solr_document_builder.rb +0 -57
  334. data/spec/factories/reindexing_log_entries.rb +0 -54
  335. data/spec/models/spotlight/reindex_progress_spec.rb +0 -122
  336. data/spec/models/spotlight/reindexing_log_entry_spec.rb +0 -129
  337. data/spec/models/spotlight/resources/open_graph_spec.rb +0 -65
  338. data/spec/services/spotlight/solr_document_builder_spec.rb +0 -66
  339. data/vendor/assets/javascripts/handlebars-v1.3.0.js +0 -2746
@@ -2,20 +2,17 @@
2
2
  <div class="row justify-content-center">
3
3
  <% contact_form ||= Spotlight::ContactForm.new current_url: request.original_url %>
4
4
  <%= bootstrap_form_for contact_form, url: spotlight.exhibit_contact_form_path(current_exhibit, contact_form), layout: :horizontal, label_col: 'col-sm-3', control_col: 'col-sm-9', html: { class: 'col-md-offset-2 col-md-8 my-3 '} do |f| %>
5
-
6
5
  <h2><%= t(:'.title') %></h2>
6
+ <div class="alert alert-primary"><%= t('.reporting_from', url: contact_form.current_url) %></div>
7
+ <%= f.text_area :message, rows: 4 %>
7
8
  <%= f.text_field :name %>
8
- <span style="display:none;visibility:hidden;">
9
- <% honeypot_field_name = Spotlight::Engine.config.spambot_honeypot_email_field %>
10
- <%= f.email_field honeypot_field_name, label: t(:'.honeypot_field_explanation') %>
11
- </span>
9
+ <%= render '/spotlight/shared/honeypot_field', f: f %>
12
10
  <%= f.email_field :email %>
13
- <%= f.text_area :message, rows: 7 %>
14
11
  <%= f.hidden_field :current_url %>
15
- <div class="form-actions">
16
- <div class="primary-actions">
17
- <%= link_to t(:'helpers.action.cancel'), '#', class: 'btn-sizing', data: { 'behavior' => 'cancel-link' } %>
18
- <%= f.submit nil, class: 'btn btn-primary' %>
12
+ <div class="form-actions row">
13
+ <div class="col offset-sm-3">
14
+ <%= f.submit nil, class: 'btn btn-primary' %>
15
+ <%= link_to t(:'helpers.action.cancel'), '#', class: 'btn-sizing', data: { 'behavior' => 'cancel-link' } %>
19
16
  </div>
20
17
  </div>
21
18
  <% end %>
@@ -0,0 +1,45 @@
1
+ <% if browse_group_categories_block.groups? %>
2
+ <% browse_group_categories_block.groups.each do |group| %>
3
+ <div class="browse-group-categories-block" data-browse-group-categories-count="<%= group.searches.count %>">
4
+ <div class="d-flex flex-column flex-md-row py-2">
5
+ <div class="d-flex justify-content-between align-items-baseline">
6
+ <h2 class="m-0"><%= group.title %></h2>
7
+ <div class="pl-3">
8
+ <%= link_to t(:'.view_all'), exhibit_browse_groups_path(current_exhibit, group) %>
9
+ </div>
10
+ </div>
11
+ <% if group.searches.count > 1 %>
12
+ <ul class="browse-group-categories-controls p-0 pt-2 pt-md-0 ml-md-auto mb-0 d-flex justify-content-center align-items-end">
13
+ <li class="prev px-1 overflow-hidden">
14
+ <%= blacklight_icon 'arrow-alt-circle-left' %>
15
+ </li>
16
+ <li class="next px-1 overflow-hidden">
17
+ <%= blacklight_icon 'arrow-alt-circle-right' %>
18
+ </li>
19
+ </ul>
20
+ <% end %>
21
+ </div>
22
+ <div class="spotlight-flexbox browse-categories categories-<%= [group.searches.count, (@page.display_sidebar? ? 3 : 4)].min %>" data-browse-group-categories-carousel data-sidebar='<%= @page.display_sidebar? %>' data-browse-group-categories-count="<%= group.searches.count %>">
23
+ <% group.searches.published.each_with_index do |search, index| %>
24
+ <div class="box category-1 justify-content-center justify-content-md-space-around">
25
+ <%= link_to spotlight.exhibit_browse_group_path(current_exhibit, group, search), class: 'justify-content-center' do %>
26
+ <div class="browse-category" style='background-image: linear-gradient(rgba(0, 0, 0, 0.0), rgba(0, 0, 0, 0.1), rgba(0, 0, 0, 0.5)), url("<%= search.thumbnail.iiif_url if search.thumbnail %>")'>
27
+ <div class="category-caption">
28
+ <p class="category-title">
29
+ <%= search.title %>
30
+ <% if search.subtitle.present? %><span class="category-subtitle"><%= search.subtitle %></span><% end %>
31
+ </p>
32
+
33
+ <% if browse_group_categories_block.display_item_counts? %>
34
+ <span class="item-count"><%= t(:'.items', count: search.count) %></span>
35
+ <% end %>
36
+ </div>
37
+ <div class="hover-overlay"></div>
38
+ </div>
39
+ <% end %>
40
+ </div>
41
+ <% end %>
42
+ </div>
43
+ </div>
44
+ <% end %>
45
+ <% end %>
@@ -9,9 +9,9 @@
9
9
  <div class="box" data-id="<%= document.id %>">
10
10
  <div class="contents">
11
11
  <% if block_options[:thumbnail_image_url].present? %>
12
- <%= link_to_document(document, image_tag(block_options[:thumbnail_image_url], class: 'img-thumbnail', alt: doc_presenter.heading), counter: -1) %>
12
+ <%= link_to_document(document, image_tag(block_options[:thumbnail_image_url], class: 'img-thumbnail', alt: doc_presenter.heading, skip_pipeline: true), counter: -1) %>
13
13
  <% elsif block_options[:iiif_tilesource_base].present? %>
14
- <%= link_to_document(document, image_tag(block_options[:iiif_tilesource_base] + '/full/!400,400/0/default.jpg', class: 'img-thumbnail', alt: doc_presenter.heading), counter: -1) %>
14
+ <%= link_to_document(document, image_tag(block_options[:iiif_tilesource_base] + '/full/!400,400/0/default.jpg', class: 'img-thumbnail', alt: doc_presenter.heading, skip_pipeline: true), counter: -1) %>
15
15
  <% elsif has_thumbnail? document %>
16
16
  <%= render_thumbnail_tag(document, { class: 'img-thumbnail', alt: doc_presenter.heading }, document_counter: -1) %>
17
17
  <% end %>
@@ -26,7 +26,7 @@
26
26
  </div>
27
27
  <% end %>
28
28
  <% if solr_documents_block.zpr_link? && block_options[:iiif_tilesource].present? %>
29
- <button class="btn btn-secondary zpr-link" data-iiif-tilesource="<%= block_options[:iiif_tilesource] %>">Show in ZPR viewer</button>
29
+ <button class="btn btn-secondary zpr-link" data-iiif-tilesource="<%= block_options[:iiif_tilesource] %>"><%= t('.zpr_link_html', title: doc_presenter.heading) %></button>
30
30
  <% end %>
31
31
  </div>
32
32
  </div>
@@ -9,9 +9,9 @@
9
9
  <% doc_presenter = index_presenter(document) %>
10
10
  <div class="carousel-item <%= 'active' if index == 0 %>" data-id="<%= document.id %>">
11
11
  <% if block_options[:full_image_url].present? %>
12
- <%= link_to_document(document, image_tag(block_options[:full_image_url], alt: doc_presenter.heading), counter: -1) %>
12
+ <%= link_to_document(document, image_tag(block_options[:full_image_url], alt: doc_presenter.heading, skip_pipeline: true), counter: -1) %>
13
13
  <% elsif block_options[:iiif_tilesource_base].present? %>
14
- <%= link_to_document(document, image_tag(block_options[:iiif_tilesource_base] + '/full/!800,800/0/default.jpg', alt: doc_presenter.heading), counter: -1) %>
14
+ <%= link_to_document(document, image_tag(block_options[:iiif_tilesource_base] + '/full/!800,800/0/default.jpg', alt: doc_presenter.heading, skip_pipeline: true), counter: -1) %>
15
15
  <% elsif has_thumbnail? document %>
16
16
  <%= render_thumbnail_tag(document, { alt: doc_presenter.heading }, document_counter: -1) %>
17
17
  <% end %>
@@ -12,9 +12,9 @@
12
12
  <% doc_presenter = index_presenter(document) %>
13
13
  <div class="carousel-item <%= 'active' if index == 0 %>" data-id="<%= document.id %>">
14
14
  <% if block_options[:full_image_url].present? %>
15
- <%= link_to_document(document, image_tag(block_options[:full_image_url], alt: doc_presenter.heading), counter: -1) %>
15
+ <%= link_to_document(document, image_tag(block_options[:full_image_url], alt: doc_presenter.heading, skip_pipeline: true), counter: -1) %>
16
16
  <% elsif block_options[:iiif_tilesource_base].present? %>
17
- <%= link_to_document(document, image_tag(block_options[:iiif_tilesource_base] + '/full/!800,800/0/default.jpg', alt: doc_presenter.heading), counter: -1) %>
17
+ <%= link_to_document(document, image_tag(block_options[:iiif_tilesource_base] + '/full/!800,800/0/default.jpg', alt: doc_presenter.heading, skip_pipeline: true), counter: -1) %>
18
18
  <% elsif has_thumbnail? document %>
19
19
  <%= render_thumbnail_tag(document, { alt: doc_presenter.heading }, document_counter: -1) %>
20
20
  <% end %>
@@ -6,9 +6,9 @@
6
6
  <% doc_presenter = index_presenter(document) %>
7
7
  <div class="box item-<%= index %>" data-id="<%= document.id %>">
8
8
  <% if block_options[:thumbnail_image_url].present? %>
9
- <%= link_to_document(document, image_tag(block_options[:thumbnail_image_url], class: 'img-thumbnail', alt: doc_presenter.heading), counter: -1) %>
9
+ <%= link_to_document(document, image_tag(block_options[:thumbnail_image_url], class: 'img-thumbnail', alt: doc_presenter.heading, skip_pipeline: true), counter: -1) %>
10
10
  <% elsif block_options[:iiif_tilesource_base].present? %>
11
- <%= link_to_document(document, image_tag(block_options[:iiif_tilesource_base] + '/full/!400,400/0/default.jpg', class: 'img-thumbnail', alt: doc_presenter.heading), counter: -1) %>
11
+ <%= link_to_document(document, image_tag(block_options[:iiif_tilesource_base] + '/full/!400,400/0/default.jpg', class: 'img-thumbnail', alt: doc_presenter.heading, skip_pipeline: true), counter: -1) %>
12
12
  <% elsif has_thumbnail? document %>
13
13
  <%= render_thumbnail_tag(document, { class: 'img-thumbnail', alt: doc_presenter.heading }, document_counter: -1) %>
14
14
  <% end %>
@@ -16,6 +16,10 @@
16
16
  <%= file[:caption] %>
17
17
  </div>
18
18
  <% end %>
19
+
20
+ <% if uploaded_items_block.zpr_link? %>
21
+ <%= button_tag t('.zpr_link_html', title: file[:caption]), class: 'btn btn-secondary zpr-link', data: { 'iiif-tilesource' => { type: 'image', url: file[:url] }.to_json } %>
22
+ <% end %>
19
23
  </div>
20
24
  </div>
21
25
  <% end %>
@@ -0,0 +1,24 @@
1
+ <% tag = f.object %>
2
+
3
+ <%= render layout: 'spotlight/shared/dd3_item', locals: { id: tag.id.to_s, field: f, dd3_content_classes: "tag" , enabled_method: :present?, label_method: :name, label: tag.name } do |_, section| %>
4
+ <% case section when nil %>
5
+ <div class="d-flex flex-grow-1">
6
+ <div class="flex-grow-1 mx-2 main">
7
+ <h4 class="card-title h6 mb-0" data-in-place-edit-target=".edit-in-place" data-in-place-edit-field-target="[data-edit-field-target='true']">
8
+ <a href="#edit-in-place" class="field-label edit-in-place"><%= tag.name %></a>
9
+ <%= f.hidden_field :name, value: tag.name , class: 'form-control form-control-sm title-field', data: {:"edit-field-target" => 'true'} %>
10
+ </h4>
11
+
12
+ <div class="card-text">
13
+ <div class=""><%= t 'spotlight.tags.index.taggings.count', count: tag.taggings.count %> &bull; <%= link_to t(:'helpers.action.view'), url_to_tag_facet(tag.name) %></div>
14
+ <%= f.hidden_field :current_name, value: tag.name %>
15
+
16
+ </div>
17
+ </div>
18
+ <div class="flex m-2">
19
+ <div class="card-text">
20
+ <%= delete_link(tag, exhibit_tag_path(current_exhibit, tag), class: 'btn btn-danger btn-sm') %>
21
+ </div>
22
+ </div>
23
+ <% end %>
24
+ <% end %>
@@ -7,21 +7,17 @@
7
7
  <% if @tags.empty? %>
8
8
  <p><%= t :'.no_tags' %></p>
9
9
  <% else %>
10
- <table class="table table-striped tags">
11
- <thead>
12
- <th><%= t '.name' %></th>
13
- <th><%= t '.taggings.count' %></th>
14
- <%# TODO last used? %>
15
- <th><%= t '.actions' %></th>
16
- </thead>
17
- <tbody>
18
- <% @tags.each do |tag| %>
19
- <tr>
20
- <td><%= link_to tag.name, url_to_tag_facet(tag.name) %></td>
21
- <td><%= tag.taggings.count %></td>
22
- <td><%= delete_link(tag, exhibit_tag_path(current_exhibit, tag), class: 'btn btn-danger btn-sm') %></td>
23
- </tr>
10
+ <%= bootstrap_form_for @exhibit, url: update_all_exhibit_tags_path(@exhibit), layout: :horizontal, control_col: 'col-sm-10' do |f| %>
11
+ <ul class="dd-list">
12
+ <% @tags.each_with_index do |tag, index| %>
13
+ <%= f.fields_for :owned_tags_attributes, tag, index: index do |p| %>
14
+ <%= render partial: 'tag', locals: { f: p } %>
15
+ <% end %>
16
+ </ul>
17
+ <% end %>
18
+
19
+ <div class="float-right">
20
+ <%= submit_tag t(:'helpers.action.update_all'), class: "btn btn-primary" %>
21
+ </div>
24
22
  <% end %>
25
- </tbody>
26
- </table>
27
23
  <% end %>
@@ -0,0 +1,34 @@
1
+ <div role="tabpanel" class="tab-pane <%= 'active' if @tab == 'groups' %>" id="groups">
2
+ <%= bootstrap_form_for current_exhibit, url: spotlight.exhibit_translations_path(current_exhibit), layout: :horizontal do |f| %>
3
+ <% # Add hidden fields for the language and tab so the redirect knows how to come back here %>
4
+ <%= hidden_field_tag :language, @language %>
5
+ <%= hidden_field_tag :tab, 'groups' %>
6
+
7
+ <% current_exhibit.groups.each do |group| %>
8
+ <% title_translation = Translation.find_or_initialize_by(exhibit: current_exhibit, key: "#{group.slug}.title", locale: @language) %>
9
+ <%= f.fields_for :translations, title_translation do |translation_fields| %>
10
+ <%= translation_fields.hidden_field :key %>
11
+ <%= translation_fields.hidden_field :locale %>
12
+ <div data-translation-progress-item="true" class="row form-group browse-group-title">
13
+ <%= translation_fields.label :value, group[:title], class: 'col-form-label col-12 col-sm-2' %>
14
+ <div class="col-11 col-sm-9">
15
+ <%= translation_fields.text_field_without_bootstrap :value, class: 'form-control' %>
16
+ </div>
17
+ <div class="col-1">
18
+ <% if title_translation.value.present? %>
19
+ <span data-translation-present="true">
20
+ <%= blacklight_icon('check', classes: 'translation-complete') %>
21
+ </span>
22
+ <% end %>
23
+ </div>
24
+ </div>
25
+ <% end %>
26
+ <% end %>
27
+
28
+ <div class="form-actions">
29
+ <div class="primary-actions">
30
+ <%= f.submit nil, class: 'btn btn-primary' %>
31
+ </div>
32
+ </div>
33
+ <% end %>
34
+ </div>
@@ -1,10 +1,10 @@
1
1
  <% if can? :import_translations, Spotlight::Exhibit %>
2
- <div class="row col-md-12 mb-4">
2
+ <div class="row col-md-12 mb-5">
3
3
  <h2><%= t(:'.header') %></h2>
4
4
  <p class="instructions"><%= t(:'.description') %></p>
5
5
 
6
- <%= bootstrap_form_for current_exhibit, url: spotlight.import_exhibit_translations_path(current_exhibit), html: { class: 'row col-md-12 clearfix mb-3', multipart: true } do |f| %>
7
- <%= f.label :value, t(".import_label"), class: 'col-form-label col-12 col-sm-3 text-right' %>
6
+ <%= bootstrap_form_for current_exhibit, url: spotlight.import_exhibit_translations_path(current_exhibit), html: { class: 'row col-md-12 align-items-center clearfix mb-3', multipart: true } do |f| %>
7
+ <%= f.label :value, t(".import_label"), class: 'col-form-label col-12 col-sm-3 pl-0 translation-import-export-label' %>
8
8
 
9
9
  <div class="input-group col px-0">
10
10
  <%= file_field_tag :file, class: 'form-control' %>
@@ -14,8 +14,8 @@
14
14
  </div>
15
15
  </div>
16
16
  <% end %>
17
- <div class="row col-md-12">
18
- <%= content_tag :span, t(".export_label"), class: 'col-form-label col-12 col-sm-3 text-right' %>
17
+ <div class="row col-md-12 align-items-center">
18
+ <%= content_tag :span, t(".export_label"), class: 'col-form-label col-12 col-sm-3 pl-0 translation-import-export-label' %>
19
19
 
20
20
  <%= link_to t(:'.export_current_locale', language: t(:"locales.#{@language}")), spotlight.exhibit_translations_path(current_exhibit, format: "yaml", locale: @language), class: 'btn btn-primary mr-3' %>
21
21
  <%= link_to t(:'.export_default_locale', language: t(:"locales.#{I18n.default_locale}")), spotlight.exhibit_translations_path(current_exhibit, format: "yaml", locale: I18n.default_locale), class: 'btn btn-primary' %>
@@ -41,6 +41,11 @@
41
41
  <%= t('spotlight.translations.browse_categories.label') %> <span class="badge"></span>
42
42
  </a>
43
43
  </li>
44
+ <li class="nav-item">
45
+ <a href="#groups" class="nav-link <%= 'active' if @tab == 'groups' %>" aria-controls="groups" role="tab" data-toggle="tab" data-behavior="translation-progress">
46
+ <%= t('spotlight.translations.groups.label') %> <span class="badge"></span>
47
+ </a>
48
+ </li>
44
49
  <li class="nav-item">
45
50
  <a href="#pages" class="nav-link <%= 'active' if @tab == 'pages' %>" aria-controls="pages" role="tab" data-toggle="tab" data-behavior="translation-progress">
46
51
  <%= t('spotlight.translations.pages.label') %> <span class="badge"></span>
@@ -54,6 +59,7 @@
54
59
  <%= render 'search_fields' %>
55
60
  <%= render 'browse_categories' %>
56
61
  <%= render 'pages' %>
62
+ <%= render 'groups' %>
57
63
  </div>
58
64
  </div>
59
65
  </div>
@@ -71,6 +71,12 @@ json.set!(locale) do
71
71
  end
72
72
  end
73
73
 
74
+ current_exhibit.groups.each do |group|
75
+ json.set!(group.slug) do
76
+ json.title group.translated_title(default: '')
77
+ end
78
+ end
79
+
74
80
  current_exhibit.searches.each do |search|
75
81
  json.set!(search.slug) do
76
82
  json.title search.translated_title(default: '')
@@ -34,10 +34,13 @@ ignore_unused:
34
34
  - activerecord.attributes.spotlight/page.{display_sidebar\?,display_title} # app/views/spotlight/home_pages/_page_options.html.erb
35
35
  - activerecord.attributes.spotlight/language.locale # app/views/spotlight/exhibits/_languages.html.erb
36
36
  - activerecord.attributes.spotlight/contact.avatar # app/views/spotlight/contacts/_form.html.erb
37
+ - activerecord.attributes.spotlight/exhibit.contact_emails # app/views/spotlight/exhibits/_form.html.erb
37
38
  - activerecord.attributes.spotlight/exhibit.published # app/views/spotlight/sites/_exhibit.html.erb
38
39
  - activerecord.attributes.spotlight/masthead.display # app/views/spotlight/appearances/edit.html.erb
39
40
  - activerecord.attributes.spotlight/custom_field.is_multiple # app/views/spotlight/custom_fields/_form.html.erb
40
41
  - activerecord.attributes.spotlight/custom_search_field.field # app/views/spotlight/custom_search_fields/_form.html.erb
42
+ - activerecord.models.spotlight/group # Used in flash messages around the app to rename Group to Browse group
43
+ - activerecord.models.spotlight/search # Used in flash messages around the app to rename Search to Browse category
41
44
  - helpers.label.spotlight/filter.{field,value} # app/views/spotlight/filters/_form.html.erb
42
45
  - spotlight.catalog.admin.{title,header} # app/helpers/spotlight/title_helper.rb
43
46
  - spotlight.{contacts,pages,searches}.edit.{title,header} # app/helpers/spotlight/title_helper.rb
@@ -48,14 +51,17 @@ ignore_unused:
48
51
  - spotlight.featured_images.upload_form.{non_iiif_alert_html,source.exhibit.help,source.exhibit.label} # app/views/spotlight/featured_images/_form.html.erb
49
52
  - spotlight.feature_pages.page_options.published # app/views/spotlight/feature_pages/_page_options.html.erb
50
53
  - spotlight.{exhibits,custom_fields,custom_search_fields}.{new,edit}.header # configuration_page_title
54
+ - spotlight.{searches}.{group}.{view}
51
55
  - helpers.submit.custom_field.{batch_error,batch_updated,create,submit,update} # Generic repeated template
52
56
  - helpers.submit.custom_search_field.{batch_error,batch_updated,create,submit,update} # Generic repeated template
53
57
  - helpers.submit.exhibit.{batch_error,batch_updated,create,submit,update} # Generic repeated template
58
+ - helpers.submit.group.{destroyed,updated} # Generic helper that is used
54
59
  - helpers.submit.search.{create,submit,update} # Generic repeated template
55
60
  - helpers.submit.site.{batch_error,batch_updated,create,created,destroyed,submit,update} # Generic repeated template
56
61
  - helpers.submit.filter.{batch_error,batch_updated,create,created,destroyed,submit,update} # Generic repeated template
57
62
  - helpers.action.destroy_are_you_sure # app/helpers/spotlight/crud_link_helpers.rb
58
63
  - helpers.action.spotlight/role.{create,destroy} # app/views/spotlight/roles/index.html.erb
64
+ - helpers.action.spotlight/group.destroy # app/views/spotlight/searches/_group.html.erb
59
65
  - helpers.action.{edit,edit_long,new,view} # app/helpers/spotlight/crud_link_helpers.rb
60
66
  - helpers.action.spotlight/search.edit_long # app/views/spotlight/searches/_search.html.erb
61
67
  - spotlight.about_pages.page_options.published # app/views/spotlight/about_pages/_page_options.html.erb
@@ -66,6 +72,7 @@ ignore_unused:
66
72
  - helpers.submit.{submit,update} # Generically used set defaults
67
73
  - helpers.submit.contact.create # app/views/spotlight/contacts/_form.html.erb
68
74
  - helpers.action.exhibit.contact.submit # helpers.action.exhibit.contact.submit
75
+ - helpers.label.contact_form.{email,name} # app/views/spotlight/shared/_report_a_problem.html.erb
69
76
 
70
77
  # TODO Look into these as its unclear
71
78
  - activerecord.models.spotlight.page
@@ -76,6 +83,7 @@ ignore_unused:
76
83
  - helpers.action.destroy # no idea here
77
84
  - helpers.action.spotlight/search.destroy # I think it might be used by #action_default_value
78
85
  - helpers.submit.contact_form.create # /shrug
86
+ - spotlight.bulk_actions.{add_tags,change_visibility,remove_tags}.changed.* # app/controllers/spotlight/bulk_actions_controller.rb
79
87
 
80
88
  <% I18n::Tasks.add_scanner 'I18n::Tasks::Scanners::PatternMapper',
81
89
  patterns: [
@@ -16,25 +16,31 @@ ar:
16
16
  browse:
17
17
  search:
18
18
  item_count:
19
- one: 1 عنصر
19
+ zero: "%{count} عنصر"
20
+ one: "%{count} عنصر"
21
+ two: "%{count} عنصرين"
20
22
  few: "%{count} عناصر"
21
- many: "%{count} عناصر"
22
- other: "%{count} عناصر"
23
- two: عنصرين
24
- zero: لا يوجد
23
+ many: "%{count} عنصراً"
24
+ other: "%{count} عنصراً"
25
+
25
26
  search_box:
26
27
  label: ابحث في فئة التصفح الحالية
27
28
  placeholder: بحث...
28
29
  reset: مسح استعلام البحث
29
30
  submit: ابحث في فئة التصفح
30
31
  success:
31
- expand_html: يمكنك ايضاً <a href="%{expand_search_url}">البحث في كل مواد المعرض عن "%{browse_query}"</a>.
32
- result_number_html: طابق استعلام البحث <strong> %{search_size} من %{parent_search_count} عنصر</strong> في هذه الفئة.
32
+ expand_html: "يمكنك ايضاً <a href=\"%{expand_search_url}\">البحث في كل مواد المعرض عن \"%{browse_query}\"</a>."
33
+ result_number_html: "طابق استعلام البحث <strong> %{search_size} من %{parent_search_count} عنصر</strong> في هذه الفئة."
33
34
  zero_results:
34
- expand_html: تستطيع أن <a href="%{clear_search_url}"> تمسح استعلام البحث </a> أو محاولة <a href="%{expand_search_url}"> البحث في كل المواد المعروضة لاستعلام البحث ل"%{browse_query}"</a>
35
+ expand_html: "تستطيع أن <a href=\"%{clear_search_url}\"> تمسح استعلام البحث </a> أو محاولة <a href=\"%{expand_search_url}\"> البحث في كل المواد المعروضة لاستعلام البحث ل\"%{browse_query}\"</a>"
35
36
  result_number: لم يتطابق بحثك مع أي عنصر في هذه الفئة.
37
+ exhibits:
38
+ groups:
39
+ all: الكل
36
40
  header_links:
37
41
  contact: ملاحظات واقتراحات
42
+ login: تسجيل الدخول
43
+ logout: تسجيل الخروج
38
44
  shared:
39
45
  report_a_problem:
40
46
  honeypot_field_explanation: تجاهل هذا المربع النصي، فهو يُستخدم فقط لكشف المحتالين. إذا كتبت أي شيء في هذا المربع النصي، فلن يتم إرسال رسالتك.
@@ -43,17 +49,25 @@ ar:
43
49
  blocks:
44
50
  browse_block:
45
51
  items:
46
- one: 1 عنصر
52
+ zero: "%{count} عنصر"
53
+ one: "%{count} عنصر"
54
+ two: "%{count} عنصرين"
47
55
  few: "%{count} عناصر"
48
- many: "%{count} عناصر"
49
- other: "%{count} عناصر"
50
- two: عنصرين
51
- zero: لا يوجد
56
+ many: "%{count} عنصراً"
57
+ other: "%{count} عنصراً"
58
+ browse_group_categories_block:
59
+ items:
60
+ one: "%{count} عنصر"
61
+ two: "%{count} عنصرين"
62
+ few: "%{count} عناصر"
63
+ many: "%{count} عنصراً"
64
+ other: "%{count} عنصراً"
65
+ view_all: مشاهدة الكل
52
66
  link_to_search_block:
53
67
  items:
54
- one: 1 عنصر
68
+ zero: "%{count} عنصر"
69
+ one: "%{count} عنصر"
70
+ two: "%{count} عنصرين"
55
71
  few: "%{count} عناصر"
56
- many: "%{count} عناصر"
57
- other: "%{count} عناصر"
58
- two: عنصرين
59
- zero: لا يوجد
72
+ many: "%{count} عنصراً"
73
+ other: "%{count} عنصراً"
@@ -9,6 +9,7 @@ en:
9
9
  spotlight/custom_search_field:
10
10
  field: Solr specification
11
11
  spotlight/exhibit:
12
+ contact_emails: Feedback recipients
12
13
  published: Published?
13
14
  spotlight/language:
14
15
  locale: Language
@@ -23,6 +24,8 @@ en:
23
24
  models:
24
25
  spotlight:
25
26
  page: Page
27
+ spotlight/group: Browse group
28
+ spotlight/search: Browse category
26
29
  cancel: Cancel
27
30
  drag: Drag
28
31
  helpers:
@@ -43,6 +46,8 @@ en:
43
46
  create: Add new field
44
47
  spotlight/custom_search_field:
45
48
  create: Add new field
49
+ spotlight/group:
50
+ destroy: Delete group
46
51
  spotlight/role:
47
52
  create: Add a new user
48
53
  destroy: Remove from site
@@ -52,6 +57,9 @@ en:
52
57
  update_all: Save changes
53
58
  view: View
54
59
  label:
60
+ contact_form:
61
+ email: Your email
62
+ name: Your name
55
63
  solr_document:
56
64
  exhibit_tag_list: Tags
57
65
  spotlight/filter:
@@ -97,6 +105,12 @@ en:
97
105
  created: The %{model} was created.
98
106
  destroyed: The %{model} was deleted.
99
107
  updated: The %{model} was successfully updated.
108
+ group:
109
+ batch_error: There was an error updating the requested %{model}.
110
+ batch_updated: "%{model} were successfully updated."
111
+ created: The %{model} was created.
112
+ destroyed: The %{model} was deleted.
113
+ updated: The %{model} was successfully updated.
100
114
  language:
101
115
  create: Add language
102
116
  created: The %{model} was created.
@@ -138,6 +152,10 @@ en:
138
152
  spotlight_default:
139
153
  updated: The %{model} was successfully updated.
140
154
  submit: Save changes
155
+ tags:
156
+ batch_updated:
157
+ one: Renaming %{count} tag
158
+ other: Renaming %{count} tags
141
159
  update: Save changes
142
160
  locales:
143
161
  ar: Arabic
@@ -151,12 +169,6 @@ en:
151
169
  pt-BR: Portuguese - Brazil
152
170
  sq: Albanian
153
171
  zh: Chinese
154
- reindexing_log:
155
- status:
156
- failed: Failed
157
- in_progress: In Progress
158
- succeeded: Successful
159
- unstarted: Not Yet Started
160
172
  shared:
161
173
  site_sidebar:
162
174
  documentation: Curator documentation
@@ -167,7 +179,7 @@ en:
167
179
  header: Contacts
168
180
  contacts_form:
169
181
  header: Contacts
170
- instructions: Enter details for each librarian, curator or other contact person for this exhibit. Select the contacts you want to be show in the sidebar of the About Pages. Drag and drop contacts to specify the order in which they are shown in the sidebar.
182
+ instructions: Enter details for each librarian, curator or other contact person for this exhibit. Select the contacts you want to be show in the sidebar of the about pages. Drag and drop contacts to specify the order in which they are shown in the sidebar.
171
183
  page_options:
172
184
  published: Publish
173
185
  admin_users:
@@ -192,7 +204,7 @@ en:
192
204
  edit:
193
205
  header: Appearance
194
206
  main_navigation:
195
- help: Select the menu items you want to be displayed in the main navigation menu (menu items are only displayed when published pages exist for that item). Click a menu item to change its display label. Drag and drop a menu item to change their order in the menu.
207
+ help: Select the menu items you want to be displayed in the main navigation menu (menu items are only displayed when published pages exist for that item). Select a menu item to change its display label. Drag and drop a menu item to change their order in the menu.
196
208
  menu: Main menu
197
209
  site_masthead:
198
210
  heading: Exhibit masthead
@@ -223,23 +235,147 @@ en:
223
235
  zero_results:
224
236
  expand_html: You can <a href="%{clear_search_url}"> clear this search</a> or try <a href="%{expand_search_url}">searching all exhibit items for "%{browse_query}"</a>.
225
237
  result_number: Your search did not match any items in this browse category.
238
+ bulk_actions:
239
+ add: Add
240
+ add_tags:
241
+ changed:
242
+ one: Tags are being added for %{count} item.
243
+ other: Tags are being added for %{count} items.
244
+ description:
245
+ one: There is %{count} item in the current search result set. Tags entered below will be added to this item. This action won’t affect any tags already assigned to this item.
246
+ other: There are %{count} items in the current search result set. Tags entered below will be added to all %{count} items in the result set. This action won’t affect any tags already assigned to these items.
247
+ heading: Add tags
248
+ label: Enter tags to add
249
+ change: Change
250
+ change_visibility:
251
+ changed:
252
+ one: Visibility of %{count} item is being updated.
253
+ other: Visibility of %{count} items is being updated.
254
+ description:
255
+ one: There is %{count} item in the current search result set. A visibility change will be applied to this item.
256
+ other: There are %{count} items in the current search result set. A visibility change will be applied to all items in the result set.
257
+ heading: Change item visibility
258
+ label: Item visibility
259
+ private: Private
260
+ public: Public
261
+ confirm: All items in the result set will be updated. Are you sure?
262
+ label: Bulk actions
263
+ remove: Remove
264
+ remove_tags:
265
+ assigned: Currently assigned tags
266
+ changed:
267
+ one: Tags are being removed for %{count} item.
268
+ other: Tags are being removed for %{count} items.
269
+ description_html:
270
+ one: "<p>There is %{count} item in the current search result set. Tags shown below are assigned to this item.</p><p>When you remove a tag below it will be unassigned from this item.</p>"
271
+ other: "<p>There are %{count} items in the current search result set. Tags shown below are assigned to one or more of those items.</p><p>When you remove a tag below it will be unassigned from any item in the result set to which that tag is currently assigned.</p>"
272
+ heading: Remove tags
273
+ label: Enter tags to remove
274
+ bulk_updates:
275
+ download:
276
+ guidelines_html: |
277
+ <h2>Guidelines for CSV updates</h2>
278
+ <p class="instructions">
279
+ The downloadable CSV file for this exhibit contains one line for each item in the exhibit. Each line contains one or more comma-separated values. Although you can update the CSV file directly, we strongly recommended importing it into a spreadsheet application and making your updates there. The rest of these guidelines assume you are making updates in a spreadsheet.
280
+ </p>
281
+ <p class="instructions">
282
+ Note that the more lines there are in the completed CSV file that you upload, the longer the updates will take to process. If your exhibit contains more than a few thousand items, after importing the CSV file into a spreadsheet application, you should consider removing the rows of items you do not intend to update. This will also make it easier to focus on the items you do intend to update.
283
+ </p>
284
+ <h3>Column headers</h3>
285
+ <p class="instructions">
286
+ Do not edit the column headers. These are used to match property values to existing exhibit item fields.
287
+ </p>
288
+
289
+ <h3>Reference fields</h3>
290
+ <p class="instructions">
291
+ Do not edit the reference fields. These are intended to help you identify items whose updatable fields you might want to change. Updates to the reference fields will not be processed.
292
+ </p>
293
+
294
+ <p class="instructions">
295
+ If you are making a lot of updates, we recommended you use the protect or lock feature of your spreadsheet application to lock the reference field columns and ensure you don’t inadvertently edit them.
296
+ </p>
297
+
298
+ <h3>Updatable fields</h3>
299
+ <dl>
300
+ <dt>Visibility</dt>
301
+ <dd>Valid values are <em>public</em> (expressed as <samp>TRUE</samp>) and <em>private</em> (blank value).</dd>
302
+
303
+ <dt>Tags</dt>
304
+ <dd>
305
+ <p class="instructions">
306
+ If you chose to include tags in the CSV file, there will be a column in the spreadsheet for each existing tag in the exhibit, prefixed with <samp>Tag:</samp>, such as <samp>Tag: apples</samp>. (If you want to add to items a tag that does not yet exist, you must first add that tag to at least one item (by editing an item or using the Bulk actions feature on a search result set of items) before downloading the CSV file.)
307
+ </p>
308
+
309
+ <p class="instructions">
310
+ To assign a tag to an exhibit item, the value of the <samp>Tag:</samp> column for that item must be <samp>TRUE</samp>. A blank value in the <samp>Tag:</samp> column for an item means that tag is not assigned to that item.
311
+ </p>
312
+
313
+ <p class="instructions">
314
+ To remove a tag currently assigned to an item, remove the <samp>TRUE</samp> value from the appropriate <samp>Tag:</samp> column for that item.
315
+ </p>
316
+ </dd>
317
+ </dl>
318
+ instructions_html: A CSV file listing each item in this exhibit will be generated with the reference and updatable fields you specify below. <i>Reference fields</i> are intended to help you identify items that you intend to update. <i>Updatable fields</i> are the fields for which you can update values (see guidelines below).
319
+ item_id: Item ID
320
+ item_title: Item title
321
+ reference_fields:
322
+ heading: Reference fields
323
+ submit: Download CSV file
324
+ tags: Tags
325
+ updatable_fields:
326
+ heading: Updatable fields
327
+ visibility: Visibility
328
+ edit:
329
+ download:
330
+ heading: Download CSV
331
+ header: Bulk updates
332
+ overview:
333
+ heading: Overview
334
+ upload:
335
+ heading: Upload CSV
336
+ overview:
337
+ instructions_html: |
338
+ <p>You can update in bulk several properties of items in this exhibit:</p> <ul>
339
+ <li>Visibility</li>
340
+ <li>Tags</li>
341
+ </ul> <p>The steps to making bulk updates are:</p> <ol>
342
+ <li>Download a CSV (comma-separated values) file from the Download CSV tab above. The downloaded CSV file will contain a row for every item in this exhibit. Each row contains the unique ID of an exhibit item along with the values of the reference and updatable fields you specify.</li>
343
+ <li>Import the CSV file into a new spreadsheet, using an application such as a Google Sheets or Excel.</li>
344
+ <li>In the new spreadsheet, update the values for the updatable fields of exhibit items you want to change. When you’ve finished making updates, save the spreadsheet.</li>
345
+ <li>(Optional) Remove the rows for items that contain no updated values. This is not required but for exhibits with many items this can speed up the import process. If necessary, save the spreadsheet.</li>
346
+ <li>Download/export the updated spreadsheet to your computer as a .csv file.</li>
347
+ <li>Use the Upload CSV tab above to submit the updated file for processing.</li>
348
+ </ol>
349
+ progress_panel:
350
+ begin_html: Began CSV processing
351
+ completed_html: Completed CSV processing
352
+ error: An error occured while processing the CSV. Contact your exhibits administrator for more information.
353
+ heading: CSV processing status
354
+ update:
355
+ error: There was a problem uploading your CSV.
356
+ submitted: The CSV file was uploaded successfully.
357
+ upload:
358
+ file_label: Upload CSV file
359
+ form_help: The uploaded file must have a ".csv" extension
360
+ instructions: After you've saved updates to a CSV file, use the Upload CSV file action below to submit it for processing.
361
+ submit: Upload
226
362
  catalog:
227
363
  admin:
228
364
  header: Items
229
- title: Curation - Items
365
+ title: Curation - items
230
366
  admin_header:
231
367
  new_resource: Add items
232
368
  reindex: Reindex items
233
369
  breadcrumb:
234
- index: Search Results
370
+ index: Search results
235
371
  document_visibility_control:
236
372
  inprogress:
237
373
  label: ''
238
374
  make_private:
239
- button: Make Private
375
+ button: Make private
240
376
  label: ''
241
377
  make_public:
242
- button: Make Public
378
+ button: Make public
243
379
  label: ''
244
380
  edit_default:
245
381
  url-field:
@@ -248,15 +384,16 @@ en:
248
384
  blank_field_warning_html: This field is currently hidden on all pages. You can make it visible on the Curation &gt; %{link} page.
249
385
  facets:
250
386
  exhibit_visibility:
251
- label: Item Visibility
387
+ label: Item visibility
252
388
  private: Private
389
+ public: Public
253
390
  fields:
254
- date_added: Date Added
391
+ date_added: Date added
255
392
  title: Title
256
393
  visibility: Public
257
394
  reindex_progress_panel:
258
395
  begin_html: Began reindexing a total of <span data-behavior='total'></span> items.
259
- completed_html: Reindexed <span data-behavior='completed'></span> of <span data-behavior='total'></span> items.
396
+ current_html: Reindexed <span data-behavior='completed'></span> of <span data-behavior='total'></span> items.
260
397
  error: An error occured while reindexing. Contact your exhibits administrator for more information.
261
398
  heading: Reindexing status
262
399
  configuration:
@@ -264,6 +401,7 @@ en:
264
401
  sidebar:
265
402
  appearance: Appearance
266
403
  header: Configuration
404
+ job_trackers: Job status
267
405
  metadata: Metadata
268
406
  search_configuration: Search
269
407
  settings: General
@@ -277,7 +415,7 @@ en:
277
415
  subject: "%{application_name} exhibit feedback"
278
416
  contacts:
279
417
  edit:
280
- header: Edit Contact
418
+ header: Edit contact
281
419
  form:
282
420
  avatar:
283
421
  header: Avatar
@@ -296,7 +434,7 @@ en:
296
434
  title:
297
435
  placeholder: Job title most relevant to this exhibit
298
436
  new:
299
- header: Add Exhibit Contact
437
+ header: Add exhibit contact
300
438
  curation:
301
439
  header: Curation
302
440
  nav:
@@ -305,6 +443,7 @@ en:
305
443
  about_pages: About pages
306
444
  analytics: Analytics
307
445
  browse: Browse
446
+ bulk_updates: Bulk updates
308
447
  dashboard: Dashboard
309
448
  feature_pages: Feature pages
310
449
  header: Curation
@@ -313,7 +452,7 @@ en:
313
452
  translations: Translations
314
453
  custom_fields:
315
454
  edit:
316
- header: Edit Exhibit-Specific Field
455
+ header: Edit exhibit-specific field
317
456
  form:
318
457
  field_type:
319
458
  label: Type
@@ -322,19 +461,19 @@ en:
322
461
  is_multiple:
323
462
  label: Multi-valued?
324
463
  new:
325
- header: Add Exhibit-Specific Field
464
+ header: Add exhibit-specific field
326
465
  custom_search_fields:
327
466
  edit:
328
- header: Edit Exhibit-Specific Field
467
+ header: Edit exhibit-specific field
329
468
  form:
330
469
  field:
331
470
  help: Specify fields to be searched and their boost values (e.g., full_title_tesim^100 personal_name_tesim^50).
332
471
  new:
333
- header: Add Exhibit-Specific Field
472
+ header: Add exhibit-specific field
334
473
  dashboards:
335
474
  analytics:
336
475
  header: Analytics
337
- monthly_header: User Activity Over the Past Month
476
+ monthly_header: User activity over the past month
338
477
  pages:
339
478
  header: Most popular pages
340
479
  pagetitle: page title
@@ -345,21 +484,21 @@ en:
345
484
  field:
346
485
  last_edited_by: User
347
486
  title: Title
348
- updated_at: Last Edited
349
- header: Recent Site Building Activity
487
+ updated_at: Last edited
488
+ header: Recent site building activity
350
489
  reindexing_activity:
351
490
  field:
352
491
  date: Date
353
- duration: Elapsed Time
354
- items_reindexed_count: Items Indexed
492
+ duration: Elapsed time
493
+ items_reindexed_count: Items indexed
355
494
  job_status: Status
356
- user: Requested By
357
- header: Recent Item Indexing Activity
495
+ user: Requested by
496
+ header: Recent item indexing activity
358
497
  no_reindexing_activity: There has been no reindexing activity
359
498
  show:
360
499
  header: Dashboard
361
500
  solr_document_activity:
362
- header: Recently Updated Items
501
+ header: Recently updated items
363
502
  no_documents: There are no documents in this exhibit
364
503
  exhibitnavbar:
365
504
  label: Exhibit navigation
@@ -371,10 +510,10 @@ en:
371
510
  not_validated: Not validated.
372
511
  resend: Resend confirmation?
373
512
  contact:
374
- email_delete_button: Delete contact
375
- email_delete_confirmation: Delete contact email address?
376
- email_delete_error: 'Problem deleting contact email:'
377
- email_input_aria_label: Contact email %{index}
513
+ email_delete_button: Delete recipient
514
+ email_delete_confirmation: Delete recipient email address?
515
+ email_delete_error: 'Problem deleting recipient:'
516
+ email_input_aria_label: Recipient email %{index}
378
517
  delete:
379
518
  heading: Delete exhibit
380
519
  warning_html: This action is irreversible. Be sure to back up the exhibit settings and content using the %{export_link} feature before proceeding.
@@ -392,13 +531,15 @@ en:
392
531
  heading: Filter items
393
532
  instructions: You can limit the items included in this exhibit by applying a filter to your Solr index. When you apply a filter, only items with values that match the filter will be included in your exhibit. To apply a filter, enter both a field and a value that match the names used in your Solr index.
394
533
  form:
395
- add_contact_email_button: Add new contact
534
+ add_contact_email_button: Add new recipient
396
535
  fields:
397
536
  contact_emails:
398
- help_block: Each contact email will receive feedback submissions
537
+ help_block: Each recipient will receive submissions made through the feedback form
399
538
  published:
400
539
  help_block: ''
401
540
  uneditable_non_default_language: This field is not editable in the current language. Switch to the default language to edit it.
541
+ groups:
542
+ all: All
402
543
  import:
403
544
  button: Import data
404
545
  heading: Import data
@@ -408,7 +549,7 @@ en:
408
549
  unpublished: Unpublished exhibits
409
550
  user: Your exhibits
410
551
  languages:
411
- current_header: Current Languages
552
+ current_header: Current languages
412
553
  current_instructions: Each language listed below is available for translations on the Curation > Translations page. To enable exhibit visitors to change the language of the exhibit, enable the Public checkbox. To hide translations from an available language from the exhibit, disable the Public checkbox.
413
554
  heading: Languages
414
555
  modal:
@@ -436,7 +577,7 @@ en:
436
577
  exhibits_admin_invitation_mailer:
437
578
  invitation_instructions:
438
579
  accept: Accept invitation
439
- accept_invitation: " You can accept this invitation by clicking the link below."
580
+ accept_invitation: You can accept this invitation by selecting the link below.
440
581
  hello: Hello!
441
582
  ignore: If you don't want to accept the invitation, please ignore this email. Your exhibits administrator account won't be created until you access the link above.
442
583
  someone_invited_you: The Exhibits Administrator has invited you to help manage exhibits.
@@ -447,7 +588,7 @@ en:
447
588
  featured_images:
448
589
  form:
449
590
  crop_area:
450
- help: Adjust the image so that the rectangle contains the area you want to use as the %{thing}. Click "Save changes" to save the cropped area.
591
+ help_html: Adjust the image so that the rectangle contains the area you want to use as the %{thing}. Select <b>Save changes</b> to save the cropped area.
451
592
  non_iiif_alert_html: The image source must be a IIIF image. Contact your exhibits adminstrator or see the <a href="http://iiif.io">IIIF website</a> for more information about IIIF.
452
593
  source:
453
594
  exhibit:
@@ -460,7 +601,7 @@ en:
460
601
  label: Upload an image
461
602
  upload_form:
462
603
  crop_area:
463
- help: Adjust the image so that the rectangle contains the area you want to use as the %{thing}. Click "Save changes" to save the cropped area.
604
+ help_html: Adjust the image so that the rectangle contains the area you want to use as the %{thing}. Select <b>Save changes</b> to save the cropped area.
464
605
  non_iiif_alert_html: The image source must be a IIIF image. Contact your exhibits adminstrator or see the <a href="http://iiif.io">IIIF website</a> for more information about IIIF.
465
606
  source:
466
607
  exhibit:
@@ -485,33 +626,66 @@ en:
485
626
  body:
486
627
  one: "%{count} document has been indexed from the CSV file and added to the exhibit %{title}."
487
628
  other: "%{count} documents have been indexed from the CSV file and added to the exhibit %{title}."
629
+ error: 'Row %{index}: %{message}'
630
+ errors: Errors
488
631
  title: Your CSV file has just finished being processed.
489
632
  invitation_mailer:
490
633
  invitation_instructions:
491
- accept_invitation: You can accept this invitation by clicking the link below.
634
+ accept_invitation: You can accept this invitation by selecting the link below.
492
635
  hello: Hello!
493
636
  ignore: If you don't want to accept the invitation, please ignore this email. Your account won't be created until you access the link above.
494
637
  someone_invited_you: The Exhibits Administrator has invited you to help work on the "%{exhibit_name}" exhibit.
495
638
  subject: Invitation to manage \"%{exhibit_name}\"
496
639
  visit: Visit exhibit
640
+ job_trackers:
641
+ show:
642
+ headers:
643
+ details: Details
644
+ message: Message
645
+ messages:
646
+ created_by: job created by %{user}
647
+ errors:
648
+ one: "(%{count} error)"
649
+ other: "(%{count} errors)"
650
+ progress: processed %{progress} / %{total}
651
+ started: job started
652
+ status:
653
+ completed: job completed
654
+ enqueued: job enqueued
655
+ failed: job failed
656
+ in_progress: ''
657
+ missing: "(missing status)"
658
+ pending: job pending
659
+ summary:
660
+ completed: Completed %{last_updated} ago in %{duration}
661
+ enqueued: In progress for %{created_at}
662
+ failed: Failed %{last_updated} ago in %{duration}
663
+ in_progress: In progress for %{created_at}
664
+ status:
665
+ completed: Successful
666
+ enqueued: Not yet started
667
+ failed: Failed
668
+ in_progress: In progress
669
+ missing: Unknown
670
+ pending: Pending
497
671
  main_navigation:
498
672
  about: About
499
673
  browse: Browse
500
- curated_features: Curated Features
674
+ curated_features: Curated features
501
675
  metadata_configurations:
502
676
  edit:
503
677
  deselect_all: Deselect all
504
678
  exhibit_specific:
505
- header: Exhibit-Specific Fields
679
+ header: Exhibit-specific fields
506
680
  instructions: You can add metadata fields to supplement the metadata fields that are part of the repository item record.
507
681
  field:
508
682
  label: Field name
509
683
  header: Metadata
510
- instructions: Select metadata fields to display on each type of page. Click a field name to edit its display label. Drag and drop fields to specify the order in which they are displayed.
511
- order_header: Display and Order Metadata Fields
684
+ instructions: Select metadata fields to display on each type of page. Select a field name to edit its display label. Drag and drop fields to specify the order in which they are displayed.
685
+ order_header: Display and order metadata fields
512
686
  select_all: Select all
513
687
  view:
514
- show: Item Details
688
+ show: Item details
515
689
  pages:
516
690
  edit:
517
691
  header: Edit page
@@ -521,30 +695,30 @@ en:
521
695
  page_options: Options
522
696
  page_thumbnail: Thumbnail
523
697
  thumbnail:
524
- help: You can select and crop an image to visually represent this page. It will be used as the thumbnail image if you include this page using the 'Highlight Featured Pages' widget.
698
+ help: You can select and crop an image to visually represent this page. It will be used as the thumbnail image if you include this page in the Pages widget.
525
699
  title_placeholder: Title
526
700
  index:
527
701
  about_pages:
528
- header: About Pages
702
+ header: About pages
529
703
  feature_pages:
530
- header: Feature Pages
704
+ header: Feature pages
531
705
  home_pages_header: Homepage
532
706
  home_pages:
533
- header: Exhibit Home
534
- title: Exhibit Home
707
+ header: Exhibit home
708
+ title: Exhibit home
535
709
  new:
536
710
  header: New page
537
711
  order_pages:
538
712
  cancel: Cancel
539
713
  instructions: Add new pages below. Drag and drop pages to change the order in which they are displayed in the sidebar.
540
714
  new_page: Add new page
541
- pages_header: Custom Pages
715
+ pages_header: Custom pages
542
716
  save: Save
543
717
  resources:
544
718
  csv_upload:
545
719
  form:
546
720
  add_item: Add item
547
- file_label: CSV File
721
+ file_label: CSV file
548
722
  help_html: "%{link}"
549
723
  template: Download template
550
724
  title: Upload multiple items
@@ -562,7 +736,7 @@ en:
562
736
  json_upload:
563
737
  form:
564
738
  add_item: Add item
565
- file_label: JSON File
739
+ file_label: JSON file
566
740
  title: Upload raw documents
567
741
  new:
568
742
  header: Add items
@@ -582,16 +756,17 @@ en:
582
756
  role:
583
757
  admin: Admin
584
758
  curator: Curator
759
+ viewer: Viewer
585
760
  roles:
586
761
  edit_fields:
587
762
  help: Enter a valid email address
588
763
  index:
589
764
  actions: Actions
590
- email: Email Address
765
+ email: Email address
591
766
  header: Users
592
767
  invite_pending: pending
593
768
  role: Role
594
- title: Site Configuration - Users
769
+ title: Site configuration - users
595
770
  saved_search:
596
771
  id: Select a title to update a previously saved search
597
772
  label: Save this search
@@ -599,41 +774,41 @@ en:
599
774
  search:
600
775
  fields:
601
776
  abstract_tesim: Abstract
602
- corporate_name_ssm: Corporate Names
777
+ corporate_name_ssm: Corporate names
603
778
  facet:
604
- corporate_name_ssm: Corporate Names
605
- exhibit_tags: Exhibit Tags
779
+ corporate_name_ssm: Corporate names
780
+ exhibit_tags: Exhibit tags
606
781
  genre_ssim: Genre
607
782
  language_ssim: Language
608
- personal_name_ssm: Personal Names
783
+ personal_name_ssm: Personal names
609
784
  subject_geographic_ssim: Geographic
610
785
  subject_temporal_ssim: Era
611
786
  full_title_tesim: Title
612
787
  language_ssm: Language
613
788
  note_desc_note_tesim: Note
614
789
  note_mapuse_tesim: Type
615
- note_page_num_tesim: Page Number
790
+ note_page_num_tesim: Page number
616
791
  note_phys_desc_tesim: Note
617
792
  note_provenance_tesim: Provenance
618
793
  note_references_tesim: References
619
794
  note_source_tesim: Source
620
- personal_name_ssm: Personal Names
795
+ personal_name_ssm: Personal names
621
796
  search:
622
797
  all_fields: Everything
623
798
  author: Author
624
799
  title: Title
625
800
  sort:
626
- date: Date (new to old)
627
- identifier: Identifier
628
- relevance: Relevance
629
- source: Source
630
- title: Title
631
- type: Type
801
+ date: date (new to old)
802
+ identifier: identifier
803
+ relevance: relevance
804
+ source: source
805
+ title: title
806
+ type: type
632
807
  spotlight_upload_attribution_tesim: Attribution
633
808
  spotlight_upload_date_tesim: Date
634
809
  spotlight_upload_description_tesim: Description
635
- subject_geographic_tesim: Geographic Subject
636
- subject_temporal_tesim: Temporal Subject
810
+ subject_geographic_tesim: Geographic subject
811
+ subject_temporal_tesim: Temporal subject
637
812
  search_configurations:
638
813
  default_per_page:
639
814
  label: Default per page
@@ -654,7 +829,7 @@ en:
654
829
  one: "%{count} unique value"
655
830
  other: "%{count} unique values"
656
831
  facets:
657
- help: If the sidebar is visible, users can use the facets shown in the sidebar to limit a search. You can select the facets that are available for searching below. Click a facet field name to edit its display label. Drag and drop facets to specify the order they are displayed in the sidebar.
832
+ help: If the sidebar is visible, users can use the facets shown in the sidebar to limit a search. You can select the facets that are available for searching below. Select a facet field name to edit its display label. Drag and drop facets to specify the order they are displayed in the sidebar.
658
833
  sort_by:
659
834
  count: Frequency
660
835
  index: Value
@@ -666,10 +841,10 @@ en:
666
841
  instructions: You can add custom search fields to supplement the search fields that are part of the default configuration.
667
842
  header: Field-based search
668
843
  help: If the search box is displayed, you can also enable field-based search. Field-based search adds a dropdown menu to your exhibit site's search box that provides the user with an option to restrict a search query to a single metadata field.
669
- instructions: If enabled, you can select below the metadata fields that are available for searching. Click a field name to edit its display label. Drag and drop fields to specify the order they are displayed in the search box dropdown menu.
844
+ instructions: If enabled, you can select below the metadata fields that are available for searching. Select a field name to edit its display label. Drag and drop fields to specify the order they are displayed in the search box dropdown menu.
670
845
  sort:
671
846
  header: Sort fields
672
- help: Select the fields you want to be available to users for sorting results. Click a field title to change its display label. Drag and drop fields to change their order in the sort dropdown menu. The field listed first is the default sort field.
847
+ help: Select the fields you want to be available to users for sorting results. Select a field title to change its display label. Drag and drop fields to change their order in the sort dropdown menu. The field listed first is the default sort field.
673
848
  keys:
674
849
  asc: ascending
675
850
  desc: descending
@@ -681,10 +856,13 @@ en:
681
856
  sort_type_ssi: type
682
857
  searches:
683
858
  edit:
684
- header: Edit Browse Category
685
- title: Curation - Browse
859
+ header: Edit browse category
860
+ title: Curation - browse
686
861
  form:
687
862
  default_index_view_type: Default view
863
+ group:
864
+ help: You can add this browse category to any number of browse groups. When you add a browse category to a group it will be displayed when an exhibit visitor selects that browse group’s filter button on the Browse landing page.
865
+ help_no_groups: You cannot add this browse category to a browse group because no browse groups have been created. To create a browse group, use the Browse groups tab on the Curation > Browse page.
688
866
  masthead:
689
867
  help: You can select and crop an image to use as a browse category-specific masthead, instead of the default site masthead, for this browse category's detail page.
690
868
  help_secondary: To create a browse category-specific masthead, you should use an image that is at least 120 pixels tall and 1200 pixels wide. For best results use an image at least 1800 pixels wide. You can crop larger images using the cropping tool below.
@@ -694,17 +872,32 @@ en:
694
872
  help_block: Displays a search box that enables users to search within the browse category results
695
873
  label: Search box
696
874
  search_description: Description
875
+ search_group: Group
697
876
  search_masthead: Masthead
698
877
  search_thumbnail: Thumbnail
699
878
  thumbnail:
700
879
  help: You can select and crop an image to visually represent this search.
880
+ group:
881
+ category_count:
882
+ one: "%{count} category"
883
+ other: "%{count} categories"
884
+ unpublished_count:
885
+ one: "(%{count} unpublished)"
886
+ other: "(%{count} unpublished)"
887
+ zero: ''
888
+ view: View
701
889
  index:
702
- categories_header: Browse Categories
890
+ add_new_group: Add new group
891
+ cancel: Cancel
892
+ categories_header: Browse categories
893
+ categories_instructions: Use the Save search button on a search results page to create a new browse category. Select the categories you want to be displayed on the browse landing page. Drag and drop categories to change the order in which they appear on that page.
894
+ groups_header: Browse groups
895
+ groups_instructions_html: "<p>Optionally, you can create groups to organize your exhibits’ browse categories and enable exhibit visitors to filter browse categories by group. Drag and drop browse groups to change the order in which their filter buttons are displayed.</p><p>To add a browse category to a browse group, edit the browse category from the Browse categories tab.</p>"
703
896
  header: Browse
704
- instructions: Use the Save search button on a search results page to create a new browse category. Select the categories you want to be displayed on the browse landing page. Drag and drop categories to change the order in which they appear on that page.
705
897
  no_saved_searches: You can save search results while in curation mode to create browse categories, which will be displayed here.
706
898
  not_searchable_html: This exhibit is not currently searchable. To perform searches that can be saved as additional browse categories, temporarily turn on the Display search box option in the Options section of the Configuration > %{href} page.
707
- title: Curation - Browse
899
+ save: Save
900
+ title: Curation - browse
708
901
  search:
709
902
  item_count:
710
903
  one: "%{count} item"
@@ -717,17 +910,27 @@ en:
717
910
  header: Administration menu
718
911
  report_a_problem:
719
912
  honeypot_field_explanation: Ignore this text box. It is used to detect spammers. If you enter anything into this text box, your message will not be sent.
720
- title: Contact Us
913
+ reporting_from: 'Reporting from: %{url}'
914
+ title: Contact us
721
915
  sir_trevor:
722
916
  blocks:
723
917
  browse_block:
724
918
  items:
725
919
  one: "%{count} item"
726
920
  other: "%{count} items"
921
+ browse_group_categories_block:
922
+ items:
923
+ one: "%{count} item"
924
+ other: "%{count} items"
925
+ view_all: View all
727
926
  link_to_search_block:
728
927
  items:
729
928
  one: "%{count} item"
730
929
  other: "%{count} items"
930
+ solr_documents_block:
931
+ zpr_link_html: View <span class="sr-only">%{title}</span> larger
932
+ uploaded_items_block:
933
+ zpr_link_html: View <span class="sr-only">%{title}</span> larger
731
934
  sites:
732
935
  edit:
733
936
  basic_settings:
@@ -747,12 +950,10 @@ en:
747
950
  home: Exhibits
748
951
  tags:
749
952
  index:
750
- actions: Actions
751
953
  header: Tags
752
- name: Tag name
753
- no_tags: No items in this exhibit have been tagged. You can add tags to an item on the Item Details page while in curation mode.
954
+ no_tags: No items in this exhibit have been tagged. You can add tags to an item on the item details page while in curation mode.
754
955
  taggings:
755
- count: Items tagged
956
+ count: 'Items tagged: %{count}'
756
957
  topbar:
757
958
  label: Utilities
758
959
  translations:
@@ -767,16 +968,18 @@ en:
767
968
  general:
768
969
  basic_settings:
769
970
  description: Description
770
- label: Basic Settings
971
+ label: Basic settings
771
972
  subtitle: Subtitle
772
973
  title: Title
773
974
  label: General
774
975
  main_menu:
775
976
  about: About
776
977
  browse: Browse
777
- curated_features: Curated Features
978
+ curated_features: Curated features
778
979
  home: Home
779
- label: Main Menu
980
+ label: Main menu
981
+ groups:
982
+ label: Browse groups
780
983
  import:
781
984
  description: You can import and export Rails-based YAML files containing the translated label values for the currently selected language for use in internationalization tools such as Transifex and i18n-tools. This feature does not include importing or exporting translations for Pages.
782
985
  export_current_locale: Export %{language}
@@ -787,7 +990,7 @@ en:
787
990
  import_submit: Import translations
788
991
  metadata:
789
992
  exhibit_specific_fields:
790
- label: Exhibit-Specific Fields
993
+ label: Exhibit-specific fields
791
994
  label: Metadata field labels
792
995
  page:
793
996
  destroy: Delete
@@ -799,12 +1002,12 @@ en:
799
1002
  recreate_are_you_sure: Are you sure you want to recreate this page? If you recreate this page all content, including any existing translations you have made, will be replaced with the content of the English version of the page.
800
1003
  pages:
801
1004
  about_pages:
802
- label: About Pages
1005
+ label: About pages
803
1006
  feature_pages:
804
- label: Feature Pages
805
- help_html: Before exhibit visitors can view translated pages you must create, edit, and publish each page translation. When you create a translated page, a copy of the default language version of the page is made to serve as the initial translated page. You can then edit that translated page to replace the page title and any text fields with translated text. A translated page will not be visible to exhibit visitors until you publish it. To replace a translated page with a current copy of the default language version of the page, use the <i>Recreate</i> action.
1007
+ label: Feature pages
1008
+ help_html: Before exhibit visitors can view translated pages you must create, edit, and publish each page translation. When you create a translated page, a copy of the default language version of the page is made to serve as the initial translated page. You can then edit that translated page to replace the page title and any text fields with translated text. A translated page will not be visible to exhibit visitors until you publish it. To replace a translated page with a current copy of the default language version of the page, use the <b>Recreate</b> action.
806
1009
  home_page:
807
- label: Home Page
1010
+ label: Home page
808
1011
  label: Pages
809
1012
  pages_table:
810
1013
  header:
@@ -814,12 +1017,12 @@ en:
814
1017
  last_updated: "%{language} title / Last update"
815
1018
  search_fields:
816
1019
  facet_fields:
817
- label: Facet Fields
1020
+ label: Facet fields
818
1021
  field_based_search_fields:
819
- label: Field-Based Search Fields
1022
+ label: Field-based search fields
820
1023
  label: Search field labels
821
1024
  sort_fields:
822
- label: Sort Fields
1025
+ label: Sort fields
823
1026
  versions:
824
1027
  redo: Redo changes
825
1028
  undo: Undo changes