hyrax 5.2.0 → 5.3.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 (527) hide show
  1. checksums.yaml +4 -4
  2. data/.dassie/.env +5 -1
  3. data/.dassie/Gemfile +4 -2
  4. data/.dassie/app/assets/images/bulkrax/removed.png +0 -0
  5. data/.dassie/app/assets/javascripts/application.js +2 -0
  6. data/.dassie/app/assets/stylesheets/application.css +1 -0
  7. data/.dassie/app/controllers/catalog_controller.rb +1 -0
  8. data/.dassie/app/forms/admin_set_resource_form.rb +6 -0
  9. data/.dassie/app/forms/collection_resource_form.rb +5 -2
  10. data/.dassie/app/forms/generic_work_resource_form.rb +5 -2
  11. data/.dassie/app/forms/monograph_form.rb +5 -3
  12. data/.dassie/app/indexers/admin_set_resource_indexer.rb +5 -0
  13. data/.dassie/app/indexers/collection_resource_indexer.rb +3 -3
  14. data/.dassie/app/indexers/generic_work_resource_indexer.rb +6 -3
  15. data/.dassie/app/indexers/monograph_indexer.rb +6 -2
  16. data/.dassie/app/models/ability.rb +8 -0
  17. data/.dassie/app/models/collection_resource.rb +4 -2
  18. data/.dassie/app/models/concerns/bulkrax/has_local_processing.rb +8 -0
  19. data/.dassie/app/models/generic_work_resource.rb +5 -2
  20. data/.dassie/app/models/monograph.rb +5 -2
  21. data/.dassie/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
  22. data/.dassie/bin/importer +142 -0
  23. data/.dassie/bin/web +4 -0
  24. data/.dassie/config/browse_everything_providers.yml +1 -1
  25. data/.dassie/config/bulkrax_api.yml +86 -0
  26. data/.dassie/config/initializers/bulkrax.rb +92 -0
  27. data/.dassie/config/initializers/clamav.rb +2 -0
  28. data/.dassie/config/initializers/hyrax.rb +7 -1
  29. data/.dassie/config/initializers/riiif.rb +4 -80
  30. data/.dassie/config/initializers/wings.rb +1 -1
  31. data/.dassie/config/metadata_profiles/m3_profile.yaml +929 -0
  32. data/.dassie/config/puma.rb +4 -2
  33. data/.dassie/config/routes.rb +7 -0
  34. data/.dassie/config/sidekiq.yml +17 -0
  35. data/.dassie/config/uv/uv.html +63 -81
  36. data/.dassie/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb +9 -0
  37. data/.dassie/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb +5 -0
  38. data/.dassie/db/migrate/20250826142438_create_bulkrax_importers.bulkrax.rb +19 -0
  39. data/.dassie/db/migrate/20250826142439_create_bulkrax_importer_runs.bulkrax.rb +17 -0
  40. data/.dassie/db/migrate/20250826142440_create_bulkrax_entries.bulkrax.rb +17 -0
  41. data/.dassie/db/migrate/20250826142441_add_status_to_entry.bulkrax.rb +10 -0
  42. data/.dassie/db/migrate/20250826142442_add_collections_to_importer_runs.bulkrax.rb +7 -0
  43. data/.dassie/db/migrate/20250826142443_change_collection_ids_on_entries.bulkrax.rb +6 -0
  44. data/.dassie/db/migrate/20250826142444_create_bulkrax_exporters.bulkrax.rb +20 -0
  45. data/.dassie/db/migrate/20250826142445_create_bulkrax_exporter_runs.bulkrax.rb +15 -0
  46. data/.dassie/db/migrate/20250826142446_change_importer_and_exporter_to_polymorphic.bulkrax.rb +19 -0
  47. data/.dassie/db/migrate/20250826142447_add_total_collection_records_to_importer_runs.bulkrax.rb +6 -0
  48. data/.dassie/db/migrate/20250826142448_add_children_to_importer_runs.bulkrax.rb +7 -0
  49. data/.dassie/db/migrate/20250826142449_change_total_records_to_total_work_entries.bulkrax.rb +7 -0
  50. data/.dassie/db/migrate/20250826142450_change_entry_last_error.bulkrax.rb +20 -0
  51. data/.dassie/db/migrate/20250826142451_add_validate_only_to_bulkrax_importers.bulkrax.rb +6 -0
  52. data/.dassie/db/migrate/20250826142452_add_status_to_importers.bulkrax.rb +10 -0
  53. data/.dassie/db/migrate/20250826142453_remove_foreign_key_from_bulkrax_entries.bulkrax.rb +6 -0
  54. data/.dassie/db/migrate/20250826142454_add_status_to_exporters.bulkrax.rb +8 -0
  55. data/.dassie/db/migrate/20250826142455_add_invalid_record_to_importer_run.bulkrax.rb +6 -0
  56. data/.dassie/db/migrate/20250826142456_create_bulkrax_statuses.bulkrax.rb +19 -0
  57. data/.dassie/db/migrate/20250826142457_move_to_statuses.bulkrax.rb +31 -0
  58. data/.dassie/db/migrate/20250826142458_add_date_filter_and_status_to_bulkrax_exporters.bulkrax.rb +8 -0
  59. data/.dassie/db/migrate/20250826142459_add_workflow_status_to_bulkrax_exporter.bulkrax.rb +6 -0
  60. data/.dassie/db/migrate/20250826142460_remove_unused_last_error.bulkrax.rb +8 -0
  61. data/.dassie/db/migrate/20250826142461_increase_text_sizes.bulkrax.rb +13 -0
  62. data/.dassie/db/migrate/20250826142462_change_bulkrax_statuses_error_message_column_type_to_text.bulkrax.rb +6 -0
  63. data/.dassie/db/migrate/20250826142463_rename_children_counters_to_relationships.bulkrax.rb +7 -0
  64. data/.dassie/db/migrate/20250826142464_add_file_set_counters_to_importer_runs.bulkrax.rb +8 -0
  65. data/.dassie/db/migrate/20250826142465_add_import_attempts_to_entries.bulkrax.rb +6 -0
  66. data/.dassie/db/migrate/20250826142466_add_work_counters_to_importer_runs.bulkrax.rb +7 -0
  67. data/.dassie/db/migrate/20250826142467_create_bulkrax_pending_relationships.bulkrax.rb +14 -0
  68. data/.dassie/db/migrate/20250826142468_add_order_to_bulkrax_pending_relationships.bulkrax.rb +6 -0
  69. data/.dassie/db/migrate/20250826142469_add_include_thumbnails_to_bulkrax_exporters.bulkrax.rb +6 -0
  70. data/.dassie/db/migrate/20250826142470_add_generated_metadata_to_bulkrax_exporters.bulkrax.rb +6 -0
  71. data/.dassie/db/migrate/20250826142471_rename_bulkrax_importer_run_to_importer_run.bulkrax.rb +18 -0
  72. data/.dassie/db/migrate/20250826142472_add_indices_to_bulkrax.bulkrax.rb +26 -0
  73. data/.dassie/db/migrate/20250826142473_denormalize_status_message.bulkrax.rb +8 -0
  74. data/.dassie/db/migrate/20250826142474_update_identifier_index.bulkrax.rb +7 -0
  75. data/.dassie/db/migrate/20250826142475_add_index_to_metadata_bulkrax_identifier.bulkrax.rb +19 -0
  76. data/.dassie/db/migrate/20250826142476_add_file_name_to_uploaded_files.bulkrax.rb +6 -0
  77. data/.dassie/db/migrate/20250826142477_add_error_tracking_to_pending_relationships.bulkrax.rb +6 -0
  78. data/.dassie/db/migrate/20250826142478_add_last_imported_at_to_bulkrax_importers.bulkrax.rb +6 -0
  79. data/.dassie/db/migrate/20250826142479_add_next_import_at_to_bulkrax_importers.bulkrax.rb +6 -0
  80. data/.dassie/db/migrate/20250826142480_entry_error_denormalization.bulkrax.rb +8 -0
  81. data/.dassie/db/migrate/20250826142481_faster_first_entry.bulkrax.rb +8 -0
  82. data/.dassie/db/migrate/20260430000001_create_hyrax_redirect_paths.hyrax.rb +13 -0
  83. data/.dassie/db/migrate/20260521003627_add_additional_redirect_info.hyrax.rb +32 -0
  84. data/.dassie/db/schema.rb +154 -1
  85. data/.dassie/package.json +1 -1
  86. data/.dassie/rspec_split_configuration.json +835 -0
  87. data/.dassie/solr/conf/solrconfig.xml +21 -5
  88. data/.github/{ISSUE_TEMPLATE.md → ISSUE_TEMPLATE/issue_template.md} +5 -0
  89. data/.github/workflows/lint-build-test.yml +5 -1
  90. data/.github/workflows/release-charts.yml +48 -0
  91. data/.gitignore +6 -0
  92. data/.koppie/.env +5 -1
  93. data/.koppie/Gemfile +3 -1
  94. data/.koppie/app/assets/images/bulkrax/removed.png +0 -0
  95. data/.koppie/app/assets/javascripts/application.js +2 -0
  96. data/.koppie/app/assets/stylesheets/application.css +1 -0
  97. data/.koppie/app/controllers/catalog_controller.rb +1 -1
  98. data/.koppie/app/forms/collection_resource_form.rb +5 -2
  99. data/.koppie/app/forms/file_set_form.rb +5 -0
  100. data/.koppie/app/forms/generic_work_form.rb +5 -3
  101. data/.koppie/app/forms/monograph_form.rb +5 -3
  102. data/.koppie/app/indexers/collection_resource_indexer.rb +5 -2
  103. data/.koppie/app/indexers/file_set_indexer.rb +7 -0
  104. data/.koppie/app/indexers/generic_work_indexer.rb +6 -3
  105. data/.koppie/app/indexers/monograph_indexer.rb +6 -2
  106. data/.koppie/app/models/ability.rb +8 -0
  107. data/.koppie/app/models/collection_resource.rb +4 -2
  108. data/.koppie/app/models/concerns/bulkrax/has_local_processing.rb +8 -0
  109. data/.koppie/app/models/generic_work.rb +5 -2
  110. data/.koppie/app/models/monograph.rb +5 -2
  111. data/.koppie/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
  112. data/.koppie/bin/importer +142 -0
  113. data/.koppie/bin/web +4 -0
  114. data/.koppie/config/browse_everything_providers.yml +2 -0
  115. data/.koppie/config/bulkrax_api.yml +86 -0
  116. data/.koppie/config/initializers/bulkrax.rb +92 -0
  117. data/.koppie/config/initializers/clamav.rb +2 -0
  118. data/.koppie/config/initializers/hyrax.rb +11 -3
  119. data/.koppie/config/initializers/riiif.rb +4 -82
  120. data/.koppie/config/metadata_profiles/m3_profile.yaml +930 -0
  121. data/.koppie/config/routes.rb +7 -0
  122. data/.koppie/config/sidekiq.yml +2 -0
  123. data/.koppie/config/uv/uv.html +63 -81
  124. data/.koppie/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb +9 -0
  125. data/.koppie/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb +5 -0
  126. data/.koppie/db/migrate/20250826142438_create_bulkrax_importers.bulkrax.rb +19 -0
  127. data/.koppie/db/migrate/20250826142439_create_bulkrax_importer_runs.bulkrax.rb +17 -0
  128. data/.koppie/db/migrate/20250826142440_create_bulkrax_entries.bulkrax.rb +17 -0
  129. data/.koppie/db/migrate/20250826142441_add_status_to_entry.bulkrax.rb +10 -0
  130. data/.koppie/db/migrate/20250826142442_add_collections_to_importer_runs.bulkrax.rb +7 -0
  131. data/.koppie/db/migrate/20250826142443_change_collection_ids_on_entries.bulkrax.rb +6 -0
  132. data/.koppie/db/migrate/20250826142444_create_bulkrax_exporters.bulkrax.rb +20 -0
  133. data/.koppie/db/migrate/20250826142445_create_bulkrax_exporter_runs.bulkrax.rb +15 -0
  134. data/.koppie/db/migrate/20250826142446_change_importer_and_exporter_to_polymorphic.bulkrax.rb +19 -0
  135. data/.koppie/db/migrate/20250826142447_add_total_collection_records_to_importer_runs.bulkrax.rb +6 -0
  136. data/.koppie/db/migrate/20250826142448_add_children_to_importer_runs.bulkrax.rb +7 -0
  137. data/.koppie/db/migrate/20250826142449_change_total_records_to_total_work_entries.bulkrax.rb +7 -0
  138. data/.koppie/db/migrate/20250826142450_change_entry_last_error.bulkrax.rb +20 -0
  139. data/.koppie/db/migrate/20250826142451_add_validate_only_to_bulkrax_importers.bulkrax.rb +6 -0
  140. data/.koppie/db/migrate/20250826142452_add_status_to_importers.bulkrax.rb +10 -0
  141. data/.koppie/db/migrate/20250826142453_remove_foreign_key_from_bulkrax_entries.bulkrax.rb +6 -0
  142. data/.koppie/db/migrate/20250826142454_add_status_to_exporters.bulkrax.rb +8 -0
  143. data/.koppie/db/migrate/20250826142455_add_invalid_record_to_importer_run.bulkrax.rb +6 -0
  144. data/.koppie/db/migrate/20250826142456_create_bulkrax_statuses.bulkrax.rb +19 -0
  145. data/.koppie/db/migrate/20250826142457_move_to_statuses.bulkrax.rb +31 -0
  146. data/.koppie/db/migrate/20250826142458_add_date_filter_and_status_to_bulkrax_exporters.bulkrax.rb +8 -0
  147. data/.koppie/db/migrate/20250826142459_add_workflow_status_to_bulkrax_exporter.bulkrax.rb +6 -0
  148. data/.koppie/db/migrate/20250826142460_remove_unused_last_error.bulkrax.rb +8 -0
  149. data/.koppie/db/migrate/20250826142461_increase_text_sizes.bulkrax.rb +13 -0
  150. data/.koppie/db/migrate/20250826142462_change_bulkrax_statuses_error_message_column_type_to_text.bulkrax.rb +6 -0
  151. data/.koppie/db/migrate/20250826142463_rename_children_counters_to_relationships.bulkrax.rb +7 -0
  152. data/.koppie/db/migrate/20250826142464_add_file_set_counters_to_importer_runs.bulkrax.rb +8 -0
  153. data/.koppie/db/migrate/20250826142465_add_import_attempts_to_entries.bulkrax.rb +6 -0
  154. data/.koppie/db/migrate/20250826142466_add_work_counters_to_importer_runs.bulkrax.rb +7 -0
  155. data/.koppie/db/migrate/20250826142467_create_bulkrax_pending_relationships.bulkrax.rb +14 -0
  156. data/.koppie/db/migrate/20250826142468_add_order_to_bulkrax_pending_relationships.bulkrax.rb +6 -0
  157. data/.koppie/db/migrate/20250826142469_add_include_thumbnails_to_bulkrax_exporters.bulkrax.rb +6 -0
  158. data/.koppie/db/migrate/20250826142470_add_generated_metadata_to_bulkrax_exporters.bulkrax.rb +6 -0
  159. data/.koppie/db/migrate/20250826142471_rename_bulkrax_importer_run_to_importer_run.bulkrax.rb +18 -0
  160. data/.koppie/db/migrate/20250826142472_add_indices_to_bulkrax.bulkrax.rb +26 -0
  161. data/.koppie/db/migrate/20250826142473_denormalize_status_message.bulkrax.rb +8 -0
  162. data/.koppie/db/migrate/20250826142474_update_identifier_index.bulkrax.rb +7 -0
  163. data/.koppie/db/migrate/20250826142475_add_index_to_metadata_bulkrax_identifier.bulkrax.rb +19 -0
  164. data/.koppie/db/migrate/20250826142476_add_file_name_to_uploaded_files.bulkrax.rb +6 -0
  165. data/.koppie/db/migrate/20250826142477_add_error_tracking_to_pending_relationships.bulkrax.rb +6 -0
  166. data/.koppie/db/migrate/20250826142478_add_last_imported_at_to_bulkrax_importers.bulkrax.rb +6 -0
  167. data/.koppie/db/migrate/20250826142479_add_next_import_at_to_bulkrax_importers.bulkrax.rb +6 -0
  168. data/.koppie/db/migrate/20250826142480_entry_error_denormalization.bulkrax.rb +8 -0
  169. data/.koppie/db/migrate/20250826142481_faster_first_entry.bulkrax.rb +8 -0
  170. data/.koppie/db/migrate/20260430000001_create_hyrax_redirect_paths.hyrax.rb +13 -0
  171. data/.koppie/db/migrate/20260521003627_add_additional_redirect_info.hyrax.rb +32 -0
  172. data/.koppie/db/schema.rb +154 -1
  173. data/.koppie/package.json +1 -1
  174. data/.koppie/rspec_split_configuration.json +835 -0
  175. data/.koppie/solr/conf/solrconfig.xml +0 -5
  176. data/.koppie/yarn.lock +5587 -752
  177. data/.rubocop.yml +1 -0
  178. data/CONTAINERS.md +2 -0
  179. data/Dockerfile +9 -22
  180. data/Gemfile +0 -1
  181. data/Gemfile.allinson +2 -0
  182. data/README.md +1 -2
  183. data/app/actors/hyrax/actors/file_actor.rb +2 -0
  184. data/app/actors/hyrax/actors/file_set_actor.rb +1 -1
  185. data/app/assets/javascripts/hyrax/app.js.erb +143 -10
  186. data/app/assets/javascripts/hyrax/collection_select.js +68 -0
  187. data/app/assets/javascripts/hyrax/copy_permalink_button.js +28 -0
  188. data/app/assets/javascripts/hyrax/redirects.js +45 -0
  189. data/app/assets/javascripts/hyrax/relationships/control.es6 +21 -1
  190. data/app/assets/javascripts/hyrax/select_work_type.es6 +7 -2
  191. data/app/assets/javascripts/hyrax.js +3 -1
  192. data/app/assets/stylesheets/hyrax/_file-show.scss +1 -0
  193. data/app/assets/stylesheets/hyrax/_viewer.scss +8 -0
  194. data/app/assets/stylesheets/hyrax/dashboard.scss +22 -1
  195. data/app/assets/stylesheets/hyrax/sidebar.scss +98 -3
  196. data/app/authorities/qa/authorities/collections.rb +9 -9
  197. data/app/controllers/concerns/hyrax/analytics_error_handling.rb +97 -0
  198. data/app/controllers/concerns/hyrax/collections_controller_behavior.rb +3 -1
  199. data/app/controllers/concerns/hyrax/ensure_migrated_behavior.rb +50 -0
  200. data/app/controllers/concerns/hyrax/flexible_catalog_behavior.rb +206 -0
  201. data/app/controllers/concerns/hyrax/flexible_schema_behavior.rb +17 -0
  202. data/app/controllers/concerns/hyrax/redirect_to_display_url.rb +54 -0
  203. data/app/controllers/concerns/hyrax/works_controller_behavior.rb +52 -10
  204. data/app/controllers/hyrax/admin/admin_sets_controller.rb +21 -13
  205. data/app/controllers/hyrax/admin/analytics/collection_reports_controller.rb +2 -0
  206. data/app/controllers/hyrax/admin/analytics/work_reports_controller.rb +1 -0
  207. data/app/controllers/hyrax/admin/metadata_profiles_controller.rb +66 -0
  208. data/app/controllers/hyrax/batch_uploads_controller.rb +2 -0
  209. data/app/controllers/hyrax/dashboard/collections_controller.rb +27 -6
  210. data/app/controllers/hyrax/dashboard/nest_collections_controller.rb +2 -1
  211. data/app/controllers/hyrax/dashboard_controller.rb +2 -1
  212. data/app/controllers/hyrax/file_sets_controller.rb +19 -1
  213. data/app/controllers/hyrax/homepage_controller.rb +7 -0
  214. data/app/controllers/hyrax/my/works_controller.rb +2 -21
  215. data/app/controllers/hyrax/permissions_controller.rb +4 -2
  216. data/app/controllers/hyrax/redirects_controller.rb +56 -0
  217. data/app/controllers/hyrax/single_use_links_viewer_controller.rb +2 -1
  218. data/app/controllers/hyrax/transcripts_controller.rb +31 -0
  219. data/app/controllers/hyrax/uploads_controller.rb +18 -9
  220. data/app/forms/concerns/hyrax/based_near_field_behavior.rb +77 -0
  221. data/app/forms/concerns/hyrax/flexible_form_behavior.rb +37 -0
  222. data/app/forms/concerns/hyrax/redirects_field_behavior.rb +95 -0
  223. data/app/forms/concerns/hyrax/transcripts_behavior.rb +40 -0
  224. data/app/forms/hyrax/forms/admin_set_form.rb +1 -1
  225. data/app/forms/hyrax/forms/administrative_set_form.rb +3 -0
  226. data/app/forms/hyrax/forms/batch_edit_form.rb +1 -3
  227. data/app/forms/hyrax/forms/batch_upload_form.rb +14 -0
  228. data/app/forms/hyrax/forms/file_set_edit_form.rb +1 -1
  229. data/app/forms/hyrax/forms/file_set_form.rb +6 -7
  230. data/app/forms/hyrax/forms/pcdm_collection_form.rb +17 -5
  231. data/app/forms/hyrax/forms/pcdm_object_form.rb +11 -3
  232. data/app/forms/hyrax/forms/resource_batch_edit_form.rb +8 -22
  233. data/app/forms/hyrax/forms/resource_form.rb +110 -10
  234. data/app/forms/hyrax/forms.rb +1 -0
  235. data/app/helpers/hyrax/attributes_helper.rb +109 -0
  236. data/app/helpers/hyrax/blacklight_override.rb +26 -0
  237. data/app/helpers/hyrax/collections_helper.rb +2 -0
  238. data/app/helpers/hyrax/file_set_form_helper.rb +24 -0
  239. data/app/helpers/hyrax/hyrax_helper_behavior.rb +51 -2
  240. data/app/helpers/hyrax/iiif_helper.rb +11 -1
  241. data/app/helpers/hyrax/permalink_helper.rb +37 -0
  242. data/app/helpers/hyrax/redirects_tab_helper.rb +29 -0
  243. data/app/helpers/hyrax/work_form_helper.rb +9 -5
  244. data/app/helpers/hyrax/works_helper.rb +14 -0
  245. data/app/indexers/concerns/hyrax/workflow_indexer.rb +30 -0
  246. data/app/indexers/hyrax/file_set_indexer.rb +1 -0
  247. data/app/indexers/hyrax/indexers/administrative_set_indexer.rb +2 -1
  248. data/app/indexers/hyrax/indexers/file_set_indexer.rb +6 -2
  249. data/app/indexers/hyrax/indexers/pcdm_collection_indexer.rb +11 -1
  250. data/app/indexers/hyrax/indexers/pcdm_object_indexer.rb +25 -4
  251. data/app/indexers/hyrax/indexers/redirects_indexer.rb +29 -0
  252. data/app/indexers/hyrax/indexers/resource_indexer.rb +4 -0
  253. data/app/indexers/hyrax/indexers.rb +2 -0
  254. data/app/inputs/controlled_vocabulary_input.rb +7 -1
  255. data/app/jobs/content_deposit_error_event_job.rb +14 -0
  256. data/app/jobs/create_work_job.rb +2 -0
  257. data/app/jobs/migrate_files_to_valkyrie_job.rb +7 -1
  258. data/app/models/batch_upload_item.rb +4 -0
  259. data/app/models/concerns/hyrax/ability/flexible_metadata_ability.rb +10 -0
  260. data/app/models/concerns/hyrax/ability.rb +3 -1
  261. data/app/models/concerns/hyrax/collection_behavior.rb +4 -0
  262. data/app/models/concerns/hyrax/file_set/transcripts.rb +16 -0
  263. data/app/models/concerns/hyrax/file_set_behavior.rb +9 -0
  264. data/app/models/concerns/hyrax/flexibility.rb +107 -0
  265. data/app/models/concerns/hyrax/redirects_normalization.rb +38 -0
  266. data/app/models/concerns/hyrax/solr_document/characterization.rb +1 -1
  267. data/app/models/concerns/hyrax/solr_document/metadata.rb +9 -0
  268. data/app/models/concerns/hyrax/solr_document/ordered_members.rb +4 -0
  269. data/app/models/concerns/hyrax/solr_document_behavior.rb +28 -6
  270. data/app/models/concerns/hyrax/suppressible.rb +1 -1
  271. data/app/models/concerns/hyrax/valkyrie_lazy_migration.rb +1 -1
  272. data/app/models/concerns/hyrax/with_embargoes_and_leases.rb +30 -0
  273. data/app/models/concerns/hyrax/work_behavior.rb +8 -0
  274. data/app/models/hyrax/administrative_set.rb +1 -1
  275. data/app/models/hyrax/change_set.rb +3 -1
  276. data/app/models/hyrax/embargo.rb +3 -1
  277. data/app/models/hyrax/file_set.rb +4 -2
  278. data/app/models/hyrax/flexible_schema.rb +219 -0
  279. data/app/models/hyrax/lease.rb +3 -1
  280. data/app/models/hyrax/pcdm_collection.rb +4 -1
  281. data/app/models/hyrax/redirect.rb +64 -0
  282. data/app/models/hyrax/redirect_path.rb +14 -0
  283. data/app/models/hyrax/resource.rb +22 -25
  284. data/app/models/hyrax/riiif/file.rb +43 -0
  285. data/app/models/hyrax/riiif/file_resolver.rb +65 -0
  286. data/app/models/hyrax/uploaded_file.rb +9 -0
  287. data/app/models/hyrax/virus_scanner.rb +16 -3
  288. data/app/models/hyrax/work.rb +4 -1
  289. data/app/models/job_io_wrapper.rb +12 -3
  290. data/app/models/user_mailbox.rb +3 -1
  291. data/app/presenters/hyrax/admin_set_presenter.rb +11 -0
  292. data/app/presenters/hyrax/annotates_content.rb +35 -0
  293. data/app/presenters/hyrax/collection_presenter.rb +5 -1
  294. data/app/presenters/hyrax/displays_content.rb +133 -0
  295. data/app/presenters/hyrax/displays_image.rb +11 -4
  296. data/app/presenters/hyrax/displays_transcripts.rb +59 -0
  297. data/app/presenters/hyrax/file_set_presenter.rb +8 -18
  298. data/app/presenters/hyrax/google_scholar_presenter.rb +39 -0
  299. data/app/presenters/hyrax/iiif_manifest_presenter.rb +22 -4
  300. data/app/presenters/hyrax/missing_method_behavior.rb +15 -0
  301. data/app/presenters/hyrax/pcdm_member_presenter_factory.rb +2 -4
  302. data/app/presenters/hyrax/work_show_presenter.rb +56 -14
  303. data/app/renderers/hyrax/renderers/attribute_renderer.rb +6 -2
  304. data/app/renderers/hyrax/renderers/license_attribute_renderer.rb +10 -10
  305. data/app/renderers/hyrax/renderers/redirects_label_attribute_renderer.rb +25 -0
  306. data/app/renderers/hyrax/renderers/rights_statement_attribute_renderer.rb +10 -11
  307. data/app/search_builders/hyrax/dashboard/nested_collections_search_builder.rb +1 -5
  308. data/app/search_builders/hyrax/filter_by_type.rb +1 -1
  309. data/app/services/hyrax/action/create_valkyrie_work.rb +3 -2
  310. data/app/services/hyrax/authority_rendering_helper.rb +28 -0
  311. data/app/services/hyrax/authority_service.rb +107 -0
  312. data/app/services/hyrax/callbacks.rb +2 -2
  313. data/app/services/hyrax/collections/nested_collection_query_service.rb +9 -3
  314. data/app/services/hyrax/collections_service.rb +17 -0
  315. data/app/services/hyrax/custom_queries/find_by_property_value.rb +89 -0
  316. data/app/services/hyrax/edit_permissions_service.rb +4 -4
  317. data/app/services/hyrax/file_set_type_service.rb +12 -4
  318. data/app/services/hyrax/flexible_schema_validator_service.rb +153 -0
  319. data/app/services/hyrax/flexible_schema_validators/class_validator.rb +123 -0
  320. data/app/services/hyrax/flexible_schema_validators/core_metadata_validator.rb +211 -0
  321. data/app/services/hyrax/flexible_schema_validators/existing_records_validator.rb +83 -0
  322. data/app/services/hyrax/flexible_schema_validators/redirects_validator.rb +116 -0
  323. data/app/services/hyrax/flexible_schema_validators/schema_validator.rb +34 -0
  324. data/app/services/hyrax/flexible_schema_validators/sort_properties_validator.rb +54 -0
  325. data/app/services/hyrax/license_service.rb +1 -1
  326. data/app/services/hyrax/listeners/metadata_index_listener.rb +11 -0
  327. data/app/services/hyrax/m3_profile_editor.rb +32 -0
  328. data/app/services/hyrax/m3_schema_loader.rb +119 -0
  329. data/app/services/hyrax/manifest_builder_service.rb +18 -24
  330. data/app/services/hyrax/permalink_path.rb +25 -0
  331. data/app/services/hyrax/qa_select_service.rb +9 -5
  332. data/app/services/hyrax/redirect_path_normalizer.rb +58 -0
  333. data/app/services/hyrax/redirects_lookup.rb +59 -0
  334. data/app/services/hyrax/resource_permissions_visibility_propagator.rb +54 -0
  335. data/app/services/hyrax/resource_types_service.rb +3 -20
  336. data/app/services/hyrax/rights_statement_service.rb +1 -1
  337. data/app/services/hyrax/schema_loader.rb +205 -0
  338. data/app/services/hyrax/search_service.rb +1 -1
  339. data/app/services/hyrax/simple_schema_loader.rb +28 -127
  340. data/app/services/hyrax/solr_service.rb +39 -2
  341. data/app/services/hyrax/tolerant_select_service.rb +5 -3
  342. data/app/services/hyrax/valkyrie_upload.rb +2 -2
  343. data/app/services/hyrax/visibility_propagator.rb +4 -1
  344. data/app/services/hyrax/work_uploads_handler.rb +17 -9
  345. data/app/services/hyrax/workflow/workflow_factory.rb +5 -4
  346. data/app/services/migrate_resource_service.rb +7 -1
  347. data/app/uploaders/hyrax/uploaded_file_uploader.rb +2 -2
  348. data/app/utils/hyrax/data_destroyers/collection_branding_destroyer.rb +1 -1
  349. data/app/utils/hyrax/required_data_seeder.rb +1 -0
  350. data/app/utils/hyrax/required_data_seeders/collection_type_seeder.rb +1 -1
  351. data/app/utils/hyrax/required_data_seeders/flexible_profile_seeder.rb +28 -0
  352. data/app/validators/hyrax/controlled_vocabulary_validator.rb +64 -0
  353. data/app/validators/hyrax/redirect_validator.rb +128 -0
  354. data/app/views/catalog/_thumbnail_list_default.html.erb +2 -2
  355. data/app/views/collections/edit_fields/_schema_version.html.erb +1 -0
  356. data/app/views/hyrax/admin/admin_sets/_form_metadata.html.erb +24 -2
  357. data/app/views/hyrax/admin/admin_sets/_show_document_list_row.html.erb +1 -1
  358. data/app/views/hyrax/admin/admin_sets/show.html.erb +1 -1
  359. data/app/views/hyrax/admin/analytics/_analytics_error.html.erb +42 -0
  360. data/app/views/hyrax/admin/analytics/collection_reports/index.html.erb +11 -9
  361. data/app/views/hyrax/admin/analytics/work_reports/index.html.erb +60 -57
  362. data/app/views/hyrax/admin/features/index.html.erb +1 -1
  363. data/app/views/hyrax/admin/metadata_profiles/_import_modal.html.erb +20 -0
  364. data/app/views/hyrax/admin/metadata_profiles/index.html.erb +54 -0
  365. data/app/views/hyrax/base/_attribute_rows.html.erb +4 -21
  366. data/app/views/hyrax/base/_citations.html.erb +1 -0
  367. data/app/views/hyrax/base/_currently_shared.html.erb +2 -1
  368. data/app/views/hyrax/base/_file_manager_thumbnail.html.erb +1 -1
  369. data/app/views/hyrax/base/_form_member_of_collections.html.erb +6 -6
  370. data/app/views/hyrax/base/_form_redirects.html.erb +125 -0
  371. data/app/views/hyrax/base/_form_share.html.erb +7 -2
  372. data/app/views/hyrax/base/_member.html.erb +1 -1
  373. data/app/views/hyrax/base/_social_media.html.erb +1 -1
  374. data/app/views/hyrax/base/iiif_viewers/_universal_viewer.html.erb +1 -1
  375. data/app/views/hyrax/base/show.html.erb +3 -0
  376. data/app/views/hyrax/collections/_default_group.html.erb +3 -0
  377. data/app/views/hyrax/collections/_list_collections.html.erb +3 -0
  378. data/app/views/hyrax/collections/_list_works.html.erb +1 -1
  379. data/app/views/hyrax/collections/_show_document_list_row.html.erb +1 -1
  380. data/app/views/hyrax/collections/show.html.erb +4 -0
  381. data/app/views/hyrax/dashboard/_sidebar.html.erb +4 -2
  382. data/app/views/hyrax/dashboard/collections/_button_for_update_collection.html.erb +2 -1
  383. data/app/views/hyrax/dashboard/collections/_default_group.html.erb +3 -0
  384. data/app/views/hyrax/dashboard/collections/_form.html.erb +17 -0
  385. data/app/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb +7 -10
  386. data/app/views/hyrax/dashboard/collections/_list_collections.html.erb +3 -0
  387. data/app/views/hyrax/dashboard/collections/_list_works.html.erb +1 -1
  388. data/app/views/hyrax/dashboard/collections/_show_document_list_row.html.erb +1 -1
  389. data/app/views/hyrax/dashboard/profiles/_edit_primary.html.erb +1 -8
  390. data/app/views/hyrax/dashboard/profiles/_trophy_edit.html.erb +1 -1
  391. data/app/views/hyrax/dashboard/profiles/show.html.erb +5 -5
  392. data/app/views/hyrax/dashboard/sidebar/_metadata.html.erb +11 -0
  393. data/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb +1 -0
  394. data/app/views/hyrax/dashboard/works/_default_group.html.erb +3 -0
  395. data/app/views/hyrax/dashboard/works/_list_works.html.erb +4 -2
  396. data/app/views/hyrax/file_sets/_form.html.erb +16 -3
  397. data/app/views/hyrax/file_sets/_metadata.html.erb +35 -0
  398. data/app/views/hyrax/file_sets/_valkyrie_form.html.erb +37 -0
  399. data/app/views/hyrax/file_sets/edit.html.erb +14 -8
  400. data/app/views/hyrax/file_sets/media_display/_audio.html.erb +4 -0
  401. data/app/views/hyrax/file_sets/media_display/_image.html.erb +2 -2
  402. data/app/views/hyrax/file_sets/media_display/_video.html.erb +4 -0
  403. data/app/views/hyrax/homepage/_explore_collections.html.erb +1 -1
  404. data/app/views/hyrax/homepage/_featured_fields.html.erb +1 -1
  405. data/app/views/hyrax/homepage/_recent_document.html.erb +1 -1
  406. data/app/views/hyrax/homepage/robots.text.erb +17 -0
  407. data/app/views/hyrax/my/collections/_default_group.html.erb +3 -0
  408. data/app/views/hyrax/my/collections/_list_collections.html.erb +3 -0
  409. data/app/views/hyrax/my/collections/_modal_add_subcollection.html.erb +2 -2
  410. data/app/views/hyrax/my/collections/_modal_add_to_collection.html.erb +2 -2
  411. data/app/views/hyrax/my/works/_default_group.html.erb +3 -0
  412. data/app/views/hyrax/my/works/_list_works.html.erb +5 -2
  413. data/app/views/hyrax/shared/_copy_permalink.html.erb +10 -0
  414. data/app/views/hyrax/users/_user_info.html.erb +1 -6
  415. data/app/views/layouts/_head_tag_content.html.erb +2 -0
  416. data/app/views/layouts/hyrax/dashboard.html.erb +2 -1
  417. data/app/views/records/edit_fields/_contexts.html.erb +1 -0
  418. data/app/views/records/edit_fields/_license.html.erb +17 -5
  419. data/app/views/records/edit_fields/_resource_type.html.erb +16 -2
  420. data/app/views/records/edit_fields/_rights_statement.html.erb +17 -5
  421. data/app/views/records/edit_fields/_schema_version.html.erb +1 -0
  422. data/app/views/records/edit_fields/_transcript_ids.html.erb +18 -0
  423. data/app/views/records/show_fields/_rights.html.erb +1 -1
  424. data/app/views/shared/_citations.html.erb +46 -31
  425. data/app/views/shared/_schema_version.html.erb +38 -0
  426. data/bin/dev-entrypoint.sh +14 -4
  427. data/chart/hyrax/Chart.yaml +4 -4
  428. data/chart/hyrax/templates/ingress.yaml +3 -0
  429. data/chart/hyrax/values.yaml +10 -8
  430. data/config/features.rb +27 -0
  431. data/config/initializers/blacklight_dynamic_sitemap.rb +43 -0
  432. data/config/initializers/deprecation_patch.rb +27 -0
  433. data/config/initializers/hydra_works.rb +3 -0
  434. data/config/initializers/i18n_extensions.rb +197 -0
  435. data/config/initializers/storage_adapter_initializer.rb +15 -9
  436. data/config/locales/hyrax.de.yml +172 -54
  437. data/config/locales/hyrax.en.yml +183 -66
  438. data/config/locales/hyrax.es.yml +174 -49
  439. data/config/locales/hyrax.fr.yml +169 -45
  440. data/config/locales/hyrax.it.yml +172 -48
  441. data/config/locales/hyrax.pt-BR.yml +172 -54
  442. data/config/locales/hyrax.zh.yml +145 -21
  443. data/config/metadata/basic_metadata.yaml +66 -0
  444. data/config/metadata/batch_edit_metadata.yaml +119 -0
  445. data/config/metadata/file_set_metadata.yaml +19 -0
  446. data/config/metadata/redirects.yaml +15 -0
  447. data/config/metadata_profiles/m3_json_schema.json +487 -0
  448. data/config/metadata_profiles/m3_profile.yaml +954 -0
  449. data/config/routes.rb +9 -0
  450. data/docker-compose-allinson.yml +176 -0
  451. data/docker-compose-dassie.yml +14 -6
  452. data/docker-compose-koppie.yml +18 -10
  453. data/docker-compose-sirenia.yml +20 -10
  454. data/documentation/copy_permalink.md +29 -0
  455. data/documentation/developing-your-hyrax-based-app.md +2 -2
  456. data/documentation/file-ingest-characterization.md +763 -0
  457. data/documentation/flexible_metadata.md +113 -0
  458. data/documentation/forms/field_behaviors.md +297 -0
  459. data/documentation/redirects.md +428 -0
  460. data/hyrax.gemspec +7 -2
  461. data/lib/freyja/metadata_adapter.rb +1 -1
  462. data/lib/freyja/persister.rb +25 -1
  463. data/lib/generators/hyrax/collection_resource/collection_resource_generator.rb +2 -2
  464. data/lib/generators/hyrax/collection_resource/templates/collection.rb.erb +5 -1
  465. data/lib/generators/hyrax/collection_resource/templates/collection_form.rb.erb +5 -1
  466. data/lib/generators/hyrax/collection_resource/templates/collection_indexer.rb.erb +6 -1
  467. data/lib/generators/hyrax/iiif_viewer/USAGE +22 -0
  468. data/lib/generators/hyrax/iiif_viewer/iiif_viewer_generator.rb +49 -0
  469. data/lib/generators/hyrax/iiif_viewer/templates/_clover.html.erb +7 -0
  470. data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.css +3328 -0
  471. data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.html +16 -0
  472. data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.js +237 -0
  473. data/lib/generators/hyrax/install_generator.rb +25 -1
  474. data/lib/generators/hyrax/riiif_generator.rb +1 -1
  475. data/lib/generators/hyrax/templates/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
  476. data/lib/generators/hyrax/templates/config/clamav.rb +2 -0
  477. data/lib/generators/hyrax/templates/config/initializers/riiif.rb +4 -80
  478. data/lib/generators/hyrax/templates/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb.erb +9 -0
  479. data/lib/generators/hyrax/templates/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb.erb +5 -0
  480. data/lib/generators/hyrax/templates/db/migrate/20260430000001_create_hyrax_redirect_paths.rb.erb +22 -0
  481. data/lib/generators/hyrax/templates/db/migrate/20260521003627_add_additional_redirect_info.rb.erb +39 -0
  482. data/lib/generators/hyrax/templates/package.json +1 -1
  483. data/lib/generators/hyrax/templates/uv.html +60 -82
  484. data/lib/generators/hyrax/work/templates/indexer.rb.erb +1 -1
  485. data/lib/generators/hyrax/work/templates/model.rb.erb +5 -1
  486. data/lib/generators/hyrax/work_resource/templates/form.rb.erb +5 -2
  487. data/lib/generators/hyrax/work_resource/templates/indexer.rb.erb +6 -2
  488. data/lib/generators/hyrax/work_resource/templates/work.rb.erb +5 -2
  489. data/lib/generators/hyrax/work_resource/work_resource_generator.rb +1 -0
  490. data/lib/hyrax/active_fedora_dummy_model.rb +6 -0
  491. data/lib/hyrax/configuration.rb +197 -3
  492. data/lib/hyrax/deprecation.rb +31 -0
  493. data/lib/hyrax/engine.rb +2 -0
  494. data/lib/hyrax/form_fields.rb +17 -5
  495. data/lib/hyrax/indexer.rb +31 -2
  496. data/lib/hyrax/resource_sync/resource_list_writer.rb +3 -0
  497. data/lib/hyrax/schema.rb +15 -4
  498. data/lib/hyrax/specs/shared_specs/factories/administrative_sets.rb +12 -0
  499. data/lib/hyrax/specs/shared_specs/factories/hyrax_embargo.rb +1 -1
  500. data/lib/hyrax/specs/shared_specs/factories/hyrax_file_set.rb +13 -0
  501. data/lib/hyrax/specs/shared_specs/factories/hyrax_lease.rb +5 -1
  502. data/lib/hyrax/specs/shared_specs/factories/hyrax_work.rb +14 -0
  503. data/lib/hyrax/specs/shared_specs/simple_work.rb +41 -0
  504. data/lib/hyrax/specs/shared_specs.rb +1 -0
  505. data/lib/hyrax/transactions/collection_create.rb +2 -1
  506. data/lib/hyrax/transactions/collection_destroy.rb +1 -0
  507. data/lib/hyrax/transactions/collection_update.rb +2 -1
  508. data/lib/hyrax/transactions/container.rb +28 -0
  509. data/lib/hyrax/transactions/steps/apply_permission_template_on_update.rb +65 -0
  510. data/lib/hyrax/transactions/steps/apply_workflow_on_admin_set_change.rb +97 -0
  511. data/lib/hyrax/transactions/steps/ensure_admin_set.rb +1 -1
  512. data/lib/hyrax/transactions/steps/remove_redirect_paths.rb +35 -0
  513. data/lib/hyrax/transactions/steps/save.rb +10 -0
  514. data/lib/hyrax/transactions/steps/set_default_admin_set.rb +1 -1
  515. data/lib/hyrax/transactions/steps/sync_redirect_paths.rb +141 -0
  516. data/lib/hyrax/transactions/work_create.rb +2 -1
  517. data/lib/hyrax/transactions/work_destroy.rb +1 -0
  518. data/lib/hyrax/transactions/work_update.rb +4 -1
  519. data/lib/hyrax/version.rb +1 -1
  520. data/lib/hyrax.rb +61 -0
  521. data/lib/tasks/m3_profile_cleanup.rake +35 -0
  522. data/template.rb +4 -1
  523. metadata +313 -19
  524. data/.dassie/public/robots.txt +0 -1
  525. data/.koppie/public/robots.txt +0 -1
  526. data/app/forms/concerns/hyrax/basic_metadata_form_fields_behavior.rb +0 -39
  527. data/app/views/catalog/_thumbnail_list_collection.html.erb +0 -4
@@ -24,12 +24,12 @@ zh:
24
24
  suppressed_bsi: 状况
25
25
  visibility_ssi: 公开度
26
26
  show:
27
- admin_set: '管理集内:'
27
+ admin_set: "管理集内:"
28
28
  based_near_label: 地点
29
29
  contributor: 贡献者
30
30
  keyword: 关键词
31
31
  filters:
32
- title: '筛选:'
32
+ title: "筛选:"
33
33
  start_over: 清除筛选
34
34
  download:
35
35
  one: 和 1 个下载
@@ -41,6 +41,13 @@ zh:
41
41
  carrierwave_processing_error: 图片大小不能调整。
42
42
  extension_blacklist_error: "%{extension} 的文件不能上传, 限制上传的扩展类型: %{prohibited_types}"
43
43
  extension_whitelist_error: "%{extension} 的文件不能上传, 可上传的扩展类型: %{allowed_types}"
44
+ redirect:
45
+ already_taken: '"%{path}" 已被另一个作品或集合使用。'
46
+ blank: 重定向路径不能为空。
47
+ intra_record_duplicate: '"%{path}" 在此记录中列出多次。'
48
+ invalid_format: '"%{path}" 不是有效路径。路径必须以 "/" 开头,且不能包含空格、"?" 或 "#"。'
49
+ multiple_display_url: 每条记录最多只能将一个重定向条目标记为显示 URL。
50
+ reserved_prefix: '"%{path}" 不能使用。该路径已被应用程序保留,不能用作别名。'
44
51
  helpers:
45
52
  action:
46
53
  accept: 接受
@@ -55,6 +62,11 @@ zh:
55
62
  new: 添加新集合
56
63
  delete: 删除
57
64
  edit: 编辑
65
+ hyrax_metadata_profile:
66
+ hint: 导入新配置文件将覆盖现有配置文件
67
+ import: 导入元数据配置文件
68
+ import_metadata_profile: 导入配置文件
69
+ submit: 进口
58
70
  less: 减
59
71
  more: 更多
60
72
  refresh: 刷新
@@ -94,6 +106,7 @@ zh:
94
106
  note: 授予新角色的用户只能在授予该角色后存储的作品获得角色。
95
107
  permission_destroy_errors:
96
108
  admin_group: 无法删除存储库管理员组
109
+ participants: 管理集的参与者权限删除失败。
97
110
  permission_update_errors:
98
111
  error: 权限模板的更新选项无效。
99
112
  no_date: 所选发布项需要一个日期。
@@ -139,9 +152,9 @@ zh:
139
152
  title: 观众
140
153
  type: 类型
141
154
  form_participants:
142
- add_group: '添加小组:'
155
+ add_group: "添加小组:"
143
156
  add_participants: 添加参与者
144
- add_user: '添加用户:'
157
+ add_user: "添加用户:"
145
158
  current_participants: 目前参与者
146
159
  form_visibility:
147
160
  cancel: 取消
@@ -154,7 +167,7 @@ zh:
154
167
  varies:
155
168
  any: 存储者可以选择任何延迟发布时间
156
169
  between: 存储者可以选择最近时间
157
- description: '允许存储者设置发布日期:'
170
+ description: "允许存储者设置发布日期:"
158
171
  embargo:
159
172
  1yr: 存储一年之后
160
173
  2yrs: 存储两年之后
@@ -163,7 +176,7 @@ zh:
163
176
  select: 选择延迟发布期限..
164
177
  period: 存储者可以选择延迟发布期限:
165
178
  visibility:
166
- description: '发布日期之后, 管理集内的作品可以被发现和下载:'
179
+ description: "发布日期之后, 管理集内的作品可以被发现和下载:"
167
180
  everyone: 公开 -- 管理集内的所有作品会公开
168
181
  institution: 机构 -- 所有作品只对机构内的认证用户公开
169
182
  restricted: 私有 -- 所有作品只会对存储库的管理员和此管理集的管理员与评审员公开
@@ -246,6 +259,48 @@ zh:
246
259
  reset_date_range: 重置日期范围
247
260
  set_date_range: 设置报告日期范围
248
261
  start_date: 开始日期
262
+ errors:
263
+ authentication:
264
+ documentation_url: https://samvera.atlassian.net/wiki/spaces/hyku/pages/3185147970/Google+Analytics+4+GA4+Support
265
+ message: 使用 Google Analytics 进行身份验证时出现问题。请检查您的凭据。
266
+ title: 身份验证错误
267
+ troubleshooting_steps:
268
+ - 确保您的“google-analytics.json”(或等效)凭证文件格式正确且包含有效信息。
269
+ - 验证您的 Google Cloud 项目中是否启用了该服务帐号。
270
+ documentation_html: 有关更多信息,请参阅<a href='%{url}' target='_blank' rel='noopener noreferrer'>文档</a>。
271
+ general:
272
+ documentation_url: https://samvera.atlassian.net/wiki/spaces/hyku/pages/3185147970/Google+Analytics+4+GA4+Support
273
+ message: Google Analytics 配置存在问题,需要管理员注意。
274
+ title: 分析配置问题
275
+ troubleshooting_steps:
276
+ - 请联系您的系统管理员来检查 Google Analytics 配置
277
+ - 验证服务帐户凭据是否已正确配置
278
+ - 确保 Google Analytics(分析)媒体资源设置正确
279
+ invalid_property:
280
+ documentation_url: https://samvera.atlassian.net/wiki/spaces/hyku/pages/3185147970/Google+Analytics+4+GA4+Support
281
+ message: Google Analytics(分析)媒体资源 ID 无效。Google Analytics(分析)4 要求使用数字媒体资源 ID。
282
+ title: 无效的属性 ID
283
+ troubleshooting_steps:
284
+ - 检查您的 Google Analytics 4 设置并确保您使用的是数字属性 ID,而不是测量 ID(以“G-”开头)。
285
+ - 验证应用程序设置中的属性 ID 是否配置正确。
286
+ permission:
287
+ documentation_url: https://samvera.atlassian.net/wiki/spaces/hyku/pages/3185147970/Google+Analytics+4+GA4+Support
288
+ message: 系统无法访问您的 Google Analytics(分析)数据。这通常意味着服务帐号电子邮件需要被授予访问您的 Google Analytics(分析)资源的权限。
289
+ title: 需要分析访问权限
290
+ troubleshooting_steps:
291
+ - 在您的 Google Analytics 帐户中,转到管理员 → 帐户 → 帐户访问管理
292
+ - 点击“+”按钮添加新用户
293
+ - 输入您的凭据文件中的服务帐户电子邮件地址(如下所示:your-service-account@project-name.iam.gserviceaccount.com)
294
+ - 将角色设置为“查看者”,然后单击“添加”
295
+ - 等待几分钟以使更改生效,然后刷新此页面
296
+ quota_exceeded:
297
+ documentation_url: https://developers.google.com/analytics/devguides/reporting/data/v1/limits-quotas
298
+ message: 已超出 Google Analytics API 的请求速率。请稍后重试。
299
+ title: 超出配额
300
+ troubleshooting_steps:
301
+ - 查看 Google Analytics API 配额限制和您的使用情况。
302
+ - 如果您在短时间内发出许多请求,请考虑为 API 请求实施退避策略。
303
+ troubleshooting_steps: 故障排除步骤
249
304
  work_reports:
250
305
  custom_range:
251
306
  date_range_heading: 自定义日期范围
@@ -410,6 +465,7 @@ zh:
410
465
  content_blocks: 内容块
411
466
  dashboard: 仪表盘
412
467
  delete_all: 删除所有
468
+ metadata_profiles: 元数据配置文件
413
469
  notifications: 通知
414
470
  pages: 网页
415
471
  profile: 个人资料
@@ -429,7 +485,7 @@ zh:
429
485
  stats:
430
486
  deposited_form:
431
487
  end_label: 结束 [默认到此刻]
432
- heading: '展示存储的文件:'
488
+ heading: "展示存储的文件:"
433
489
  start_label: 开始
434
490
  repository_objects:
435
491
  series:
@@ -468,14 +524,22 @@ zh:
468
524
  name: 名称
469
525
  roles: 角色
470
526
  user: 用户
471
- new_role: '授予角色:'
527
+ new_role: "授予角色:"
472
528
  no_roles: 没有角色
473
529
  workflows:
474
530
  index:
475
531
  header: 审查提交
532
+ heading:
533
+ depositor: 储户
534
+ status: 地位
535
+ submission_date: 提交日期
536
+ work: 工作
476
537
  tabs:
477
538
  published: 已出版
478
539
  under_review: 在审查中
540
+ works_listing: 作品列表
541
+ works_published: 已发布<strong>%{total_count} 部作品</strong>
542
+ works_under_review: "<strong>%{total_count} 作品</strong>正在审核中"
479
543
  api:
480
544
  accepted:
481
545
  default: 您的请求已被接受,还在处理中,详细信息请见后台作业。
@@ -495,7 +559,7 @@ zh:
495
559
  default: 您必须要先登录才可以做!
496
560
  unprocessable_entity:
497
561
  default: 您试着要修改的资源按照您的请求无法被修改。
498
- background_attribution_html: ''
562
+ background_attribution_html: ""
499
563
  base:
500
564
  attributes:
501
565
  table_attribute_name: 属性名称
@@ -505,13 +569,14 @@ zh:
505
569
  citations:
506
570
  citations: 引文
507
571
  endnote: 的EndNote
508
- header: '引文:'
572
+ header: "引文:"
509
573
  mendeley: Mendeley
510
574
  zotero: Zotero只
511
575
  currently_shared:
512
576
  currently_sharing: 目前与之共享
513
577
  table_title_access: 访问权限
514
- table_title_user: 人/组
578
+ table_title_user: 用户/组
579
+ table_title_action: 操作
515
580
  file_manager:
516
581
  back_to: 回到
517
582
  toolbar: 工具条
@@ -587,6 +652,11 @@ zh:
587
652
  help_html: 选择代表这项工作的媒体文件。
588
653
  legend_html: 代表媒体
589
654
  form_share:
655
+ access_options:
656
+ creator: 创建者
657
+ depositor: 储户
658
+ manager: 经理
659
+ viewer: 查看器
590
660
  access_type_to_grant: 要授予的访问类型
591
661
  account_label_without_suffix: "%{account_label}(没有%{suffix}部分)"
592
662
  add_sharing: 添加共享
@@ -601,8 +671,8 @@ zh:
601
671
  help_html: 选择要用作此作品缩略图的文件。
602
672
  legend_html: 缩略图
603
673
  form_visibility_component:
674
+ subtitle_html: "<small>谁应该能够查看或下载此内容?</ small>"
604
675
  visibility: 可见性
605
- subtitle_html: <small>谁应该能够查看或下载此内容?</ small>
606
676
  inspect_work:
607
677
  back_to: 回到
608
678
  entity_id: 实体ID
@@ -631,7 +701,7 @@ zh:
631
701
  empty: 该 %{type} 目前未纳入任何收藏集内。
632
702
  header: 关联
633
703
  relationships_parent_row:
634
- label: '属于 %{type}:'
704
+ label: "属于 %{type}:"
635
705
  share_with:
636
706
  definition_heading: 许可定义
637
707
  definitions_html: "<strong>查看/下载:</strong>可以从%{application_name}中访问此文件(内容和元数据)。 <br /> <strong>编辑:</strong>可以<strong>编辑</strong>此文件(包括内容和元数据)。您只能将此权限授予%{institution_name}用户和/或组。"
@@ -827,6 +897,9 @@ zh:
827
897
  contact: 联系
828
898
  help: 帮助
829
899
  home: 首页
900
+ copy_permalink:
901
+ button: 复制永久链接
902
+ success: 已复制!
830
903
  dashboard:
831
904
  additional_notifications: 见所有通知
832
905
  admin_sets:
@@ -855,6 +928,7 @@ zh:
855
928
  form:
856
929
  permission_update_errors:
857
930
  error: 无效的权限模板更新选项。
931
+ sharing: 该收藏集的共享选项更新失败。
858
932
  permission_update_notices:
859
933
  participants: 收藏的分享选项已更新。
860
934
  sharing: 收藏的分享选项已更新。
@@ -995,11 +1069,13 @@ zh:
995
1069
  heading_actions:
996
1070
  close: 关闭
997
1071
  create_work: 创建作品
1072
+ select_admin_set: 存入管理集
998
1073
  select_type_of_work: 选择作品类型
999
1074
  manage_proxies: 管理代理
1000
1075
  managed:
1001
1076
  collections: 管理集合
1002
1077
  works: 托管作品
1078
+ metadata_profiles: 元数据配置文件
1003
1079
  my:
1004
1080
  action:
1005
1081
  add_to_collection: 添加到收藏
@@ -1041,19 +1117,19 @@ zh:
1041
1117
  collection_list:
1042
1118
  description: 描述:
1043
1119
  edit_access: 编辑访问:
1044
- groups: '群:'
1120
+ groups: "群:"
1045
1121
  managed_access:
1046
1122
  deposit: 存款
1047
1123
  manage: 管理
1048
1124
  view: 视图
1049
- users: '用户:'
1125
+ users: "用户:"
1050
1126
  collections: 你的收藏集
1051
1127
  collections_report: 收藏报告
1052
1128
  facet_label:
1053
- collections: '筛选您的收藏集:'
1054
- highlighted: '筛选您的收藏精品:'
1055
- shared: '筛选您的分享:'
1056
- works: '筛选作品:'
1129
+ collections: "筛选您的收藏集:"
1130
+ highlighted: "筛选您的收藏精品:"
1131
+ shared: "筛选您的分享:"
1132
+ works: "筛选作品:"
1057
1133
  heading:
1058
1134
  access: 访问
1059
1135
  action: 行动
@@ -1066,6 +1142,7 @@ zh:
1066
1142
  highlighted: 重点
1067
1143
  items: 项目
1068
1144
  last_modified: 上一次更改
1145
+ profile_version: 配置文件版本
1069
1146
  title: 标题
1070
1147
  type: 类型
1071
1148
  visibility: 公开度
@@ -1142,6 +1219,7 @@ zh:
1142
1219
  files: 文件已存储
1143
1220
  heading: 您的【下载?】统计
1144
1221
  joined_on: 加入上
1222
+ work_views: 元数据视图
1145
1223
  works: 已建立的作品
1146
1224
  tabs:
1147
1225
  admin_sets: 管理集
@@ -1263,6 +1341,11 @@ zh:
1263
1341
  cancel: 取消
1264
1342
  save: 保存
1265
1343
  title: 标题
1344
+ valkyrie_form:
1345
+ attach_to: 附加到%{parent}
1346
+ cancel: 取消
1347
+ save: 保存
1348
+ title: 标题
1266
1349
  groups_description:
1267
1350
  description_html: 标有"选择一个群"的下拉框内是您所属的一组用户管理群的清单。您可以选择一个特定的群,指定对%{application_name}中文件的访问级别,类似于添加用户访问级别。
1268
1351
  permission:
@@ -1301,6 +1384,8 @@ zh:
1301
1384
  file_details: 文件的详细信息
1302
1385
  fixity_check: 固定性检查
1303
1386
  not_yet_characterized: 没有特征
1387
+ metadata:
1388
+ metadata: 元数据
1304
1389
  versioning:
1305
1390
  choose_file: 选择新版本文件
1306
1391
  current: 当前版本
@@ -1314,6 +1399,18 @@ zh:
1314
1399
  save: 保存修订
1315
1400
  save_your_note: 您必须点击“保存修订版”还原此文件的先前版本
1316
1401
  upload: 上传新版本
1402
+ flexible_schema_validators:
1403
+ redirects_validator:
1404
+ errors:
1405
+ invalid_available_on: "m3 配置文件的 `redirects` 属性必须在此配置文件中声明的至少一个作品或收藏类上可用"
1406
+ invalid_type: "m3 配置文件的 `redirects` 属性必须声明 `type: hash`(实际为 `%{actual_type}`)"
1407
+ property_required: "启用重定向功能时,m3 配置文件必须声明 `redirects` 属性"
1408
+ warnings:
1409
+ config_disabled: "m3 配置文件声明了 `redirects` 属性,但 Hyrax.config.redirects_enabled? 为 false;该属性将被忽略"
1410
+ flipflop_disabled: "m3 配置文件声明了 `redirects` 属性,但 :redirects 功能标志已关闭;该属性将被忽略"
1411
+ sort_properties_validator:
1412
+ warnings:
1413
+ message: "%{property} 必须在 %{classes} 上定义才能支持该属性的排序,除非您已在其他字段上索引了 %{property}_ssi。"
1317
1414
  help:
1318
1415
  header: 用户支持
1319
1416
  override_text: 用 app/views/static/help.html.erb 取代此文件。
@@ -1493,6 +1590,7 @@ zh:
1493
1590
  owner:
1494
1591
  edit: 编辑权限
1495
1592
  read: 查看/下载
1593
+ read_only: 由于维护原因,存储库处于只读模式。目前无法进行任何提交或编辑。
1496
1594
  search:
1497
1595
  button:
1498
1596
  html: <span class="fa fa-search"></span> 转到
@@ -1545,6 +1643,8 @@ zh:
1545
1643
  link_expired_not_found: 单次使用链接已过期或未找到
1546
1644
  link_not_found: 单用链接未找到
1547
1645
  sort_label: 对清单中单件排序
1646
+ sr:
1647
+ thumbnail: 默认代表性图片
1548
1648
  static:
1549
1649
  mendeley:
1550
1650
  contact_form: 联系表
@@ -1691,6 +1791,8 @@ zh:
1691
1791
  search_form:
1692
1792
  go: 走
1693
1793
  search_users: 搜索用户
1794
+ virus_scanner:
1795
+ virus_detected: 在 %{filename} 中检测到病毒。该文件尚未保存。
1694
1796
  visibility:
1695
1797
  authenticated:
1696
1798
  note_html: 访问仅限于%{institution}
@@ -1710,13 +1812,15 @@ zh:
1710
1812
  note_html: 非公开保留分享权限。
1711
1813
  text: 非公开
1712
1814
  restricted_title_attr: 更改此资源的公开度
1815
+ unknown:
1816
+ text: 未知
1713
1817
  work_button_row:
1714
1818
  attach_child: 附上孩子
1715
1819
  workflow:
1716
1820
  default:
1717
1821
  deposit: 存储
1718
1822
  load:
1719
- state_error: '工作流程:%{workflow_name}尚未更新。 您在移除%{entity_count}条目的状况: %{state_name}。 在包含有效条目时,状况不能被移除!'
1823
+ state_error: "工作流程:%{workflow_name}尚未更新。 您在移除%{entity_count}条目的状况: %{state_name}。 在包含有效条目时,状况不能被移除!"
1720
1824
  unauthorized: 该作品目前还在审批中,目前不可用
1721
1825
  unauthorized_parent: 该文件当前不可用,因为其父级工作尚未完成批准过程
1722
1826
  works:
@@ -1731,6 +1835,26 @@ zh:
1731
1835
  in_collections: 集合
1732
1836
  in_other_works: 在其它作品中包括的这件作品
1733
1837
  in_this_work: 这件作品包括的其它作品
1838
+ redirects:
1839
+ add_label: 添加另一个别名
1840
+ caption: 此资源的 URL 别名列表
1841
+ display_url:
1842
+ help_html: 可以选择将一个别名标记为<em>显示 URL</em>。设置后,记录的永久 UUID URL 将重定向到所选别名。保留为"无"以将 UUID URL 作为目标。
1843
+ none_label: 无(使用记录的 UUID URL)
1844
+ row_label: '使用 "%{path}" 作为显示 URL'
1845
+ errors_heading: 请更正以下别名错误
1846
+ header:
1847
+ actions: 操作
1848
+ display_url: 显示 URL
1849
+ path: 路径
1850
+ heading: URL 别名
1851
+ help_html: '注册应重定向到此记录的旧 URL 路径。每个路径将从本站点的根目录解析。保留的 Hyrax 路由(例如 <code>/concern</code>、<code>/dashboard</code>)不能使用。'
1852
+ new_path_label: 新别名路径
1853
+ path_label: 别名路径
1854
+ placeholder:
1855
+ path: 输入旧路径...
1856
+ remove_label: 删除
1857
+ remove_with_path_label: '删除 %{path}'
1734
1858
  tab:
1735
1859
  files: 文件
1736
1860
  metadata: 描述
@@ -1775,7 +1899,7 @@ zh:
1775
1899
  require_membership: 作品必须至少属于这种类型的一个集合
1776
1900
  sharable: 允许用户为他们管理的收藏分配收藏管理员,存储者和查看者
1777
1901
  share_applies_to_new_works: 当直接在集合中创建新作品时,根据其集合角色为新作品授予共享用户和组的权限。
1778
- title: ''
1902
+ title: ""
1779
1903
  defaults:
1780
1904
  abstract: 研究文章,论文,评论,会议程序或对特定主题的任何深入分析的简要概述。
1781
1905
  access_right: 包含有关谁可以访问资源或其安全状态指示的信息。
@@ -9,6 +9,8 @@ attributes:
9
9
  - "abstract_sim"
10
10
  - "abstract_tesim"
11
11
  predicate: http://purl.org/dc/terms/abstract
12
+ view:
13
+ html_dl: true
12
14
  access_right:
13
15
  type: string
14
16
  multiple: true
@@ -18,6 +20,8 @@ attributes:
18
20
  - "access_right_sim"
19
21
  - "access_right_tesim"
20
22
  predicate: http://purl.org/dc/terms/accessRights
23
+ view:
24
+ html_dl: true
21
25
  alternative_title:
22
26
  type: string
23
27
  multiple: true
@@ -27,6 +31,8 @@ attributes:
27
31
  - "alternative_title_sim"
28
32
  - "alternative_title_tesim"
29
33
  predicate: http://purl.org/dc/terms/alternative
34
+ view:
35
+ html_dl: true
30
36
  arkivo_checksum:
31
37
  type: string
32
38
  multiple: false
@@ -42,6 +48,9 @@ attributes:
42
48
  - "based_near_sim"
43
49
  - "based_near_tesim"
44
50
  predicate: http://xmlns.com/foaf/0.1/based_near
51
+ view:
52
+ render_term: 'based_near_label'
53
+ html_dl: true
45
54
  bibliographic_citation:
46
55
  type: string
47
56
  multiple: true
@@ -51,6 +60,8 @@ attributes:
51
60
  - "bibliographic_citation_sim"
52
61
  - "bibliographic_citation_tesim"
53
62
  predicate: http://purl.org/dc/terms/bibliographicCitation
63
+ view:
64
+ html_dl: true
54
65
  contributor:
55
66
  type: string
56
67
  multiple: true
@@ -60,6 +71,9 @@ attributes:
60
71
  - "contributor_tesim"
61
72
  - "contributor_sim"
62
73
  predicate: http://purl.org/dc/elements/1.1/contributor
74
+ view:
75
+ render_as: "faceted"
76
+ html_dl: true
63
77
  creator:
64
78
  type: string
65
79
  multiple: true
@@ -70,6 +84,9 @@ attributes:
70
84
  - "creator_sim"
71
85
  - "creator_tesim"
72
86
  predicate: http://purl.org/dc/elements/1.1/creator
87
+ view:
88
+ render_as: "faceted"
89
+ html_dl: true
73
90
  date_created:
74
91
  type: date_time
75
92
  multiple: true
@@ -79,6 +96,23 @@ attributes:
79
96
  - "date_created_sim"
80
97
  - "date_created_tesim"
81
98
  predicate: http://purl.org/dc/terms/created
99
+ view:
100
+ render_as: "linked"
101
+ search_field: 'date_created_tesim'
102
+ html_dl: true
103
+ date_modified:
104
+ type: date_time
105
+ predicate: http://purl.org/dc/terms/modified
106
+ view:
107
+ label:
108
+ de: 'Zuletzt geändert'
109
+ en: 'Last modified'
110
+ es: 'Última modificación'
111
+ fr: 'Dernière modification'
112
+ it: 'Ultima modifica'
113
+ pt-BR: 'Última modificação'
114
+ zh: '最新修改'
115
+ html_dl: true
82
116
  description:
83
117
  type: string
84
118
  multiple: true
@@ -97,6 +131,10 @@ attributes:
97
131
  - "identifier_sim"
98
132
  - "identifier_tesim"
99
133
  predicate: http://purl.org/dc/terms/identifier
134
+ view:
135
+ render_as: "linked"
136
+ search_field: 'identifier_tesim'
137
+ html_dl: true
100
138
  import_url:
101
139
  type: string
102
140
  predicate: http://scholarsphere.psu.edu/ns#importUrl
@@ -109,6 +147,9 @@ attributes:
109
147
  form:
110
148
  primary: false
111
149
  predicate: http://schema.org/keywords
150
+ view:
151
+ render_as: "faceted"
152
+ html_dl: true
112
153
  publisher:
113
154
  type: string
114
155
  multiple: true
@@ -118,6 +159,9 @@ attributes:
118
159
  - "publisher_sim"
119
160
  - "publisher_tesim"
120
161
  predicate: http://purl.org/dc/elements/1.1/publisher
162
+ view:
163
+ render_as: "faceted"
164
+ html_dl: true
121
165
  label:
122
166
  type: string
123
167
  form:
@@ -135,6 +179,9 @@ attributes:
135
179
  - "language_sim"
136
180
  - "language_tesim"
137
181
  predicate: http://purl.org/dc/elements/1.1/language
182
+ view:
183
+ render_as: "faceted"
184
+ html_dl: true
138
185
  license:
139
186
  type: string
140
187
  multiple: true
@@ -144,6 +191,9 @@ attributes:
144
191
  - "license_sim"
145
192
  - "license_tesim"
146
193
  predicate: http://purl.org/dc/terms/license
194
+ view:
195
+ render_as: "license"
196
+ html_dl: true
147
197
  relative_path:
148
198
  type: string
149
199
  predicate: http://scholarsphere.psu.edu/ns#relativePath
@@ -156,6 +206,9 @@ attributes:
156
206
  - "related_url_sim"
157
207
  - "related_url_tesim"
158
208
  predicate: http://www.w3.org/2000/01/rdf-schema#seeAlso
209
+ view:
210
+ render_as: "external_link"
211
+ html_dl: true
159
212
  resource_type:
160
213
  type: string
161
214
  multiple: true
@@ -165,6 +218,9 @@ attributes:
165
218
  - "resource_type_sim"
166
219
  - "resource_type_tesim"
167
220
  predicate: http://purl.org/dc/terms/type
221
+ view:
222
+ render_as: "faceted"
223
+ html_dl: true
168
224
  rights_notes:
169
225
  type: string
170
226
  multiple: true
@@ -174,6 +230,8 @@ attributes:
174
230
  - "rights_notes_sim"
175
231
  - "rights_notes_tesim"
176
232
  predicate: http://purl.org/dc/elements/1.1/rights
233
+ view:
234
+ html_dl: true
177
235
  rights_statement:
178
236
  type: string
179
237
  multiple: true
@@ -182,6 +240,9 @@ attributes:
182
240
  index_keys:
183
241
  - "rights_statement_sim"
184
242
  - "rights_statement_tesim"
243
+ view:
244
+ html_dl: true
245
+ render_as: "rights_statement"
185
246
  predicate: http://www.europeana.eu/schemas/edm/rights
186
247
  source:
187
248
  type: string
@@ -192,6 +253,8 @@ attributes:
192
253
  - "source_sim"
193
254
  - "source_tesim"
194
255
  predicate: http://purl.org/dc/terms/source
256
+ view:
257
+ html_dl: true
195
258
  subject:
196
259
  type: string
197
260
  multiple: true
@@ -201,3 +264,6 @@ attributes:
201
264
  form:
202
265
  primary: false
203
266
  predicate: http://purl.org/dc/elements/1.1/subject
267
+ view:
268
+ render_as: "faceted"
269
+ html_dl: true