hyrax 5.1.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.
- checksums.yaml +4 -4
- data/.dassie/.env +5 -1
- data/.dassie/Gemfile +5 -3
- data/.dassie/app/assets/images/bulkrax/removed.png +0 -0
- data/.dassie/app/assets/javascripts/application.js +2 -0
- data/.dassie/app/assets/stylesheets/application.css +1 -0
- data/.dassie/app/controllers/catalog_controller.rb +1 -0
- data/.dassie/app/forms/admin_set_resource_form.rb +6 -0
- data/.dassie/app/forms/collection_resource_form.rb +5 -2
- data/.dassie/app/forms/generic_work_resource_form.rb +5 -2
- data/.dassie/app/forms/monograph_form.rb +5 -3
- data/.dassie/app/indexers/admin_set_resource_indexer.rb +5 -0
- data/.dassie/app/indexers/collection_resource_indexer.rb +3 -3
- data/.dassie/app/indexers/generic_work_resource_indexer.rb +6 -3
- data/.dassie/app/indexers/monograph_indexer.rb +6 -2
- data/.dassie/app/models/ability.rb +8 -0
- data/.dassie/app/models/collection_resource.rb +4 -2
- data/.dassie/app/models/concerns/bulkrax/has_local_processing.rb +8 -0
- data/.dassie/app/models/generic_work_resource.rb +5 -2
- data/.dassie/app/models/monograph.rb +5 -2
- data/.dassie/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
- data/.dassie/bin/importer +142 -0
- data/.dassie/bin/web +4 -0
- data/.dassie/config/application.rb +1 -1
- data/.dassie/config/browse_everything_providers.yml +1 -1
- data/.dassie/config/bulkrax_api.yml +86 -0
- data/.dassie/config/initializers/bulkrax.rb +92 -0
- data/.dassie/config/initializers/clamav.rb +2 -0
- data/.dassie/config/initializers/devise.rb +1 -0
- data/.dassie/config/initializers/hyrax.rb +7 -1
- data/.dassie/config/initializers/riiif.rb +4 -80
- data/.dassie/config/initializers/wings.rb +1 -1
- data/.dassie/config/metadata_profiles/m3_profile.yaml +929 -0
- data/.dassie/config/puma.rb +4 -2
- data/.dassie/config/routes.rb +7 -0
- data/.dassie/config/sidekiq.yml +17 -0
- data/.dassie/config/uv/uv.html +63 -81
- data/.dassie/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb +9 -0
- data/.dassie/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb +5 -0
- data/.dassie/db/migrate/20250826142438_create_bulkrax_importers.bulkrax.rb +19 -0
- data/.dassie/db/migrate/20250826142439_create_bulkrax_importer_runs.bulkrax.rb +17 -0
- data/.dassie/db/migrate/20250826142440_create_bulkrax_entries.bulkrax.rb +17 -0
- data/.dassie/db/migrate/20250826142441_add_status_to_entry.bulkrax.rb +10 -0
- data/.dassie/db/migrate/20250826142442_add_collections_to_importer_runs.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142443_change_collection_ids_on_entries.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142444_create_bulkrax_exporters.bulkrax.rb +20 -0
- data/.dassie/db/migrate/20250826142445_create_bulkrax_exporter_runs.bulkrax.rb +15 -0
- data/.dassie/db/migrate/20250826142446_change_importer_and_exporter_to_polymorphic.bulkrax.rb +19 -0
- data/.dassie/db/migrate/20250826142447_add_total_collection_records_to_importer_runs.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142448_add_children_to_importer_runs.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142449_change_total_records_to_total_work_entries.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142450_change_entry_last_error.bulkrax.rb +20 -0
- data/.dassie/db/migrate/20250826142451_add_validate_only_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142452_add_status_to_importers.bulkrax.rb +10 -0
- data/.dassie/db/migrate/20250826142453_remove_foreign_key_from_bulkrax_entries.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142454_add_status_to_exporters.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142455_add_invalid_record_to_importer_run.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142456_create_bulkrax_statuses.bulkrax.rb +19 -0
- data/.dassie/db/migrate/20250826142457_move_to_statuses.bulkrax.rb +31 -0
- data/.dassie/db/migrate/20250826142458_add_date_filter_and_status_to_bulkrax_exporters.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142459_add_workflow_status_to_bulkrax_exporter.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142460_remove_unused_last_error.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142461_increase_text_sizes.bulkrax.rb +13 -0
- data/.dassie/db/migrate/20250826142462_change_bulkrax_statuses_error_message_column_type_to_text.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142463_rename_children_counters_to_relationships.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142464_add_file_set_counters_to_importer_runs.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142465_add_import_attempts_to_entries.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142466_add_work_counters_to_importer_runs.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142467_create_bulkrax_pending_relationships.bulkrax.rb +14 -0
- data/.dassie/db/migrate/20250826142468_add_order_to_bulkrax_pending_relationships.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142469_add_include_thumbnails_to_bulkrax_exporters.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142470_add_generated_metadata_to_bulkrax_exporters.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142471_rename_bulkrax_importer_run_to_importer_run.bulkrax.rb +18 -0
- data/.dassie/db/migrate/20250826142472_add_indices_to_bulkrax.bulkrax.rb +26 -0
- data/.dassie/db/migrate/20250826142473_denormalize_status_message.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142474_update_identifier_index.bulkrax.rb +7 -0
- data/.dassie/db/migrate/20250826142475_add_index_to_metadata_bulkrax_identifier.bulkrax.rb +19 -0
- data/.dassie/db/migrate/20250826142476_add_file_name_to_uploaded_files.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142477_add_error_tracking_to_pending_relationships.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142478_add_last_imported_at_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142479_add_next_import_at_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.dassie/db/migrate/20250826142480_entry_error_denormalization.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20250826142481_faster_first_entry.bulkrax.rb +8 -0
- data/.dassie/db/migrate/20260430000001_create_hyrax_redirect_paths.hyrax.rb +13 -0
- data/.dassie/db/migrate/20260521003627_add_additional_redirect_info.hyrax.rb +32 -0
- data/.dassie/db/schema.rb +263 -109
- data/.dassie/package.json +1 -1
- data/.dassie/rspec_split_configuration.json +835 -0
- data/.dassie/solr/conf/solrconfig.xml +21 -5
- data/.github/{ISSUE_TEMPLATE.md → ISSUE_TEMPLATE/issue_template.md} +5 -0
- data/.github/workflows/lint-build-test.yml +6 -2
- data/.github/workflows/release-charts.yml +48 -0
- data/.gitignore +6 -0
- data/.koppie/.env +5 -1
- data/.koppie/Gemfile +3 -1
- data/.koppie/app/assets/images/bulkrax/removed.png +0 -0
- data/.koppie/app/assets/javascripts/application.js +2 -0
- data/.koppie/app/assets/stylesheets/application.css +1 -0
- data/.koppie/app/controllers/catalog_controller.rb +1 -1
- data/.koppie/app/forms/collection_resource_form.rb +5 -2
- data/.koppie/app/forms/file_set_form.rb +5 -0
- data/.koppie/app/forms/generic_work_form.rb +5 -3
- data/.koppie/app/forms/monograph_form.rb +5 -3
- data/.koppie/app/indexers/collection_resource_indexer.rb +5 -2
- data/.koppie/app/indexers/file_set_indexer.rb +7 -0
- data/.koppie/app/indexers/generic_work_indexer.rb +6 -3
- data/.koppie/app/indexers/monograph_indexer.rb +6 -2
- data/.koppie/app/models/ability.rb +8 -0
- data/.koppie/app/models/collection_resource.rb +4 -2
- data/.koppie/app/models/concerns/bulkrax/has_local_processing.rb +8 -0
- data/.koppie/app/models/generic_work.rb +5 -2
- data/.koppie/app/models/monograph.rb +5 -2
- data/.koppie/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
- data/.koppie/bin/importer +142 -0
- data/.koppie/bin/web +4 -0
- data/.koppie/config/browse_everything_providers.yml +2 -0
- data/.koppie/config/bulkrax_api.yml +86 -0
- data/.koppie/config/initializers/bulkrax.rb +92 -0
- data/.koppie/config/initializers/clamav.rb +2 -0
- data/.koppie/config/initializers/devise.rb +1 -1
- data/.koppie/config/initializers/hyrax.rb +11 -3
- data/.koppie/config/initializers/riiif.rb +4 -82
- data/.koppie/config/metadata_profiles/m3_profile.yaml +930 -0
- data/.koppie/config/routes.rb +7 -0
- data/.koppie/config/sidekiq.yml +2 -0
- data/.koppie/config/uv/uv.html +63 -81
- data/.koppie/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb +9 -0
- data/.koppie/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb +5 -0
- data/.koppie/db/migrate/20250826142438_create_bulkrax_importers.bulkrax.rb +19 -0
- data/.koppie/db/migrate/20250826142439_create_bulkrax_importer_runs.bulkrax.rb +17 -0
- data/.koppie/db/migrate/20250826142440_create_bulkrax_entries.bulkrax.rb +17 -0
- data/.koppie/db/migrate/20250826142441_add_status_to_entry.bulkrax.rb +10 -0
- data/.koppie/db/migrate/20250826142442_add_collections_to_importer_runs.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142443_change_collection_ids_on_entries.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142444_create_bulkrax_exporters.bulkrax.rb +20 -0
- data/.koppie/db/migrate/20250826142445_create_bulkrax_exporter_runs.bulkrax.rb +15 -0
- data/.koppie/db/migrate/20250826142446_change_importer_and_exporter_to_polymorphic.bulkrax.rb +19 -0
- data/.koppie/db/migrate/20250826142447_add_total_collection_records_to_importer_runs.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142448_add_children_to_importer_runs.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142449_change_total_records_to_total_work_entries.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142450_change_entry_last_error.bulkrax.rb +20 -0
- data/.koppie/db/migrate/20250826142451_add_validate_only_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142452_add_status_to_importers.bulkrax.rb +10 -0
- data/.koppie/db/migrate/20250826142453_remove_foreign_key_from_bulkrax_entries.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142454_add_status_to_exporters.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142455_add_invalid_record_to_importer_run.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142456_create_bulkrax_statuses.bulkrax.rb +19 -0
- data/.koppie/db/migrate/20250826142457_move_to_statuses.bulkrax.rb +31 -0
- data/.koppie/db/migrate/20250826142458_add_date_filter_and_status_to_bulkrax_exporters.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142459_add_workflow_status_to_bulkrax_exporter.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142460_remove_unused_last_error.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142461_increase_text_sizes.bulkrax.rb +13 -0
- data/.koppie/db/migrate/20250826142462_change_bulkrax_statuses_error_message_column_type_to_text.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142463_rename_children_counters_to_relationships.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142464_add_file_set_counters_to_importer_runs.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142465_add_import_attempts_to_entries.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142466_add_work_counters_to_importer_runs.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142467_create_bulkrax_pending_relationships.bulkrax.rb +14 -0
- data/.koppie/db/migrate/20250826142468_add_order_to_bulkrax_pending_relationships.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142469_add_include_thumbnails_to_bulkrax_exporters.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142470_add_generated_metadata_to_bulkrax_exporters.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142471_rename_bulkrax_importer_run_to_importer_run.bulkrax.rb +18 -0
- data/.koppie/db/migrate/20250826142472_add_indices_to_bulkrax.bulkrax.rb +26 -0
- data/.koppie/db/migrate/20250826142473_denormalize_status_message.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142474_update_identifier_index.bulkrax.rb +7 -0
- data/.koppie/db/migrate/20250826142475_add_index_to_metadata_bulkrax_identifier.bulkrax.rb +19 -0
- data/.koppie/db/migrate/20250826142476_add_file_name_to_uploaded_files.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142477_add_error_tracking_to_pending_relationships.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142478_add_last_imported_at_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142479_add_next_import_at_to_bulkrax_importers.bulkrax.rb +6 -0
- data/.koppie/db/migrate/20250826142480_entry_error_denormalization.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20250826142481_faster_first_entry.bulkrax.rb +8 -0
- data/.koppie/db/migrate/20260430000001_create_hyrax_redirect_paths.hyrax.rb +13 -0
- data/.koppie/db/migrate/20260521003627_add_additional_redirect_info.hyrax.rb +32 -0
- data/.koppie/db/schema.rb +154 -1
- data/.koppie/package.json +1 -1
- data/.koppie/rspec_split_configuration.json +835 -0
- data/.koppie/solr/conf/solrconfig.xml +0 -5
- data/.koppie/yarn.lock +5587 -752
- data/.rubocop.yml +1 -0
- data/CONTAINERS.md +12 -10
- data/Dockerfile +9 -22
- data/Gemfile +1 -1
- data/Gemfile.allinson +2 -0
- data/README.md +1 -2
- data/app/actors/hyrax/actors/file_actor.rb +2 -0
- data/app/actors/hyrax/actors/file_set_actor.rb +1 -1
- data/app/assets/javascripts/hyrax/app.js.erb +143 -10
- data/app/assets/javascripts/hyrax/collection_select.js +68 -0
- data/app/assets/javascripts/hyrax/copy_permalink_button.js +28 -0
- data/app/assets/javascripts/hyrax/redirects.js +45 -0
- data/app/assets/javascripts/hyrax/relationships/control.es6 +21 -1
- data/app/assets/javascripts/hyrax/select_work_type.es6 +7 -2
- data/app/assets/javascripts/hyrax.js +3 -1
- data/app/assets/stylesheets/hyrax/_file-show.scss +1 -0
- data/app/assets/stylesheets/hyrax/_viewer.scss +8 -0
- data/app/assets/stylesheets/hyrax/dashboard.scss +22 -1
- data/app/assets/stylesheets/hyrax/sidebar.scss +98 -3
- data/app/authorities/qa/authorities/collections.rb +9 -9
- data/app/controllers/concerns/hyrax/analytics_error_handling.rb +97 -0
- data/app/controllers/concerns/hyrax/collections_controller_behavior.rb +3 -1
- data/app/controllers/concerns/hyrax/ensure_migrated_behavior.rb +50 -0
- data/app/controllers/concerns/hyrax/flexible_catalog_behavior.rb +206 -0
- data/app/controllers/concerns/hyrax/flexible_schema_behavior.rb +17 -0
- data/app/controllers/concerns/hyrax/redirect_to_display_url.rb +54 -0
- data/app/controllers/concerns/hyrax/valkyrie_downloads_controller_behavior.rb +1 -0
- data/app/controllers/concerns/hyrax/works_controller_behavior.rb +54 -11
- data/app/controllers/hyrax/admin/admin_sets_controller.rb +21 -13
- data/app/controllers/hyrax/admin/analytics/collection_reports_controller.rb +2 -0
- data/app/controllers/hyrax/admin/analytics/work_reports_controller.rb +5 -4
- data/app/controllers/hyrax/admin/metadata_profiles_controller.rb +66 -0
- data/app/controllers/hyrax/batch_uploads_controller.rb +2 -0
- data/app/controllers/hyrax/dashboard/collections_controller.rb +27 -6
- data/app/controllers/hyrax/dashboard/nest_collections_controller.rb +2 -1
- data/app/controllers/hyrax/dashboard_controller.rb +2 -1
- data/app/controllers/hyrax/file_sets_controller.rb +20 -2
- data/app/controllers/hyrax/homepage_controller.rb +7 -0
- data/app/controllers/hyrax/my/works_controller.rb +2 -21
- data/app/controllers/hyrax/permissions_controller.rb +4 -2
- data/app/controllers/hyrax/redirects_controller.rb +56 -0
- data/app/controllers/hyrax/single_use_links_viewer_controller.rb +2 -1
- data/app/controllers/hyrax/transcripts_controller.rb +31 -0
- data/app/controllers/hyrax/uploads_controller.rb +18 -9
- data/app/forms/concerns/hyrax/based_near_field_behavior.rb +77 -0
- data/app/forms/concerns/hyrax/flexible_form_behavior.rb +37 -0
- data/app/forms/concerns/hyrax/redirects_field_behavior.rb +95 -0
- data/app/forms/concerns/hyrax/transcripts_behavior.rb +40 -0
- data/app/forms/hyrax/forms/admin_set_form.rb +1 -1
- data/app/forms/hyrax/forms/administrative_set_form.rb +3 -0
- data/app/forms/hyrax/forms/batch_edit_form.rb +1 -3
- data/app/forms/hyrax/forms/batch_upload_form.rb +14 -0
- data/app/forms/hyrax/forms/file_set_edit_form.rb +1 -1
- data/app/forms/hyrax/forms/file_set_form.rb +6 -7
- data/app/forms/hyrax/forms/pcdm_collection_form.rb +17 -5
- data/app/forms/hyrax/forms/pcdm_object_form.rb +11 -3
- data/app/forms/hyrax/forms/resource_batch_edit_form.rb +8 -22
- data/app/forms/hyrax/forms/resource_form.rb +110 -10
- data/app/forms/hyrax/forms.rb +1 -0
- data/app/helpers/hyrax/attributes_helper.rb +109 -0
- data/app/helpers/hyrax/blacklight_override.rb +26 -0
- data/app/helpers/hyrax/collections_helper.rb +2 -0
- data/app/helpers/hyrax/file_set_form_helper.rb +24 -0
- data/app/helpers/hyrax/hyrax_helper_behavior.rb +53 -4
- data/app/helpers/hyrax/iiif_helper.rb +11 -1
- data/app/helpers/hyrax/permalink_helper.rb +37 -0
- data/app/helpers/hyrax/redirects_tab_helper.rb +29 -0
- data/app/helpers/hyrax/trophy_helper.rb +1 -1
- data/app/helpers/hyrax/work_form_helper.rb +9 -5
- data/app/helpers/hyrax/works_helper.rb +14 -0
- data/app/indexers/concerns/hyrax/workflow_indexer.rb +30 -0
- data/app/indexers/hyrax/file_set_indexer.rb +1 -0
- data/app/indexers/hyrax/indexers/administrative_set_indexer.rb +2 -1
- data/app/indexers/hyrax/indexers/file_set_indexer.rb +6 -2
- data/app/indexers/hyrax/indexers/pcdm_collection_indexer.rb +11 -1
- data/app/indexers/hyrax/indexers/pcdm_object_indexer.rb +25 -4
- data/app/indexers/hyrax/indexers/redirects_indexer.rb +29 -0
- data/app/indexers/hyrax/indexers/resource_indexer.rb +4 -0
- data/app/indexers/hyrax/indexers.rb +2 -0
- data/app/inputs/controlled_vocabulary_input.rb +7 -1
- data/app/jobs/concerns/hyrax/queued_job_behavior.rb +22 -0
- data/app/jobs/content_deposit_error_event_job.rb +14 -0
- data/app/jobs/create_work_job.rb +2 -0
- data/app/jobs/hyrax/propagate_change_depositor_job.rb +1 -1
- data/app/jobs/hyrax/queued_delete_job.rb +11 -0
- data/app/jobs/hyrax/queued_indexing_job.rb +11 -0
- data/app/jobs/migrate_files_to_valkyrie_job.rb +39 -21
- data/app/jobs/migrate_sipity_entity_job.rb +21 -0
- data/app/models/batch_upload_item.rb +4 -0
- data/app/models/concerns/hyrax/ability/flexible_metadata_ability.rb +10 -0
- data/app/models/concerns/hyrax/ability.rb +7 -3
- data/app/models/concerns/hyrax/collection_behavior.rb +4 -0
- data/app/models/concerns/hyrax/file_set/transcripts.rb +16 -0
- data/app/models/concerns/hyrax/file_set_behavior.rb +9 -0
- data/app/models/concerns/hyrax/flexibility.rb +107 -0
- data/app/models/concerns/hyrax/redirects_normalization.rb +38 -0
- data/app/models/concerns/hyrax/solr_document/characterization.rb +1 -1
- data/app/models/concerns/hyrax/solr_document/metadata.rb +9 -0
- data/app/models/concerns/hyrax/solr_document/ordered_members.rb +4 -0
- data/app/models/concerns/hyrax/solr_document_behavior.rb +28 -3
- data/app/models/concerns/hyrax/suppressible.rb +1 -1
- data/app/models/concerns/hyrax/valkyrie_lazy_migration.rb +1 -1
- data/app/models/concerns/hyrax/with_embargoes_and_leases.rb +30 -0
- data/app/models/concerns/hyrax/work_behavior.rb +8 -0
- data/app/models/hyrax/administrative_set.rb +1 -1
- data/app/models/hyrax/change_set.rb +3 -1
- data/app/models/hyrax/embargo.rb +3 -1
- data/app/models/hyrax/file_metadata.rb +22 -7
- data/app/models/hyrax/file_set.rb +4 -2
- data/app/models/hyrax/flexible_schema.rb +219 -0
- data/app/models/hyrax/lease.rb +3 -1
- data/app/models/hyrax/pcdm_collection.rb +4 -1
- data/app/models/hyrax/redirect.rb +64 -0
- data/app/models/hyrax/redirect_path.rb +14 -0
- data/app/models/hyrax/resource.rb +22 -25
- data/app/models/hyrax/riiif/file.rb +43 -0
- data/app/models/hyrax/riiif/file_resolver.rb +65 -0
- data/app/models/hyrax/uploaded_file.rb +9 -0
- data/app/models/hyrax/virus_scanner.rb +16 -3
- data/app/models/hyrax/work.rb +4 -1
- data/app/models/job_io_wrapper.rb +12 -3
- data/app/models/user_mailbox.rb +3 -1
- data/app/presenters/hyrax/admin_set_presenter.rb +11 -0
- data/app/presenters/hyrax/annotates_content.rb +35 -0
- data/app/presenters/hyrax/collection_presenter.rb +5 -1
- data/app/presenters/hyrax/displays_content.rb +133 -0
- data/app/presenters/hyrax/displays_image.rb +11 -4
- data/app/presenters/hyrax/displays_transcripts.rb +59 -0
- data/app/presenters/hyrax/file_set_presenter.rb +8 -18
- data/app/presenters/hyrax/google_scholar_presenter.rb +39 -0
- data/app/presenters/hyrax/iiif_manifest_presenter.rb +22 -4
- data/app/presenters/hyrax/missing_method_behavior.rb +15 -0
- data/app/presenters/hyrax/pcdm_member_presenter_factory.rb +2 -4
- data/app/presenters/hyrax/work_show_presenter.rb +56 -14
- data/app/renderers/hyrax/renderers/attribute_renderer.rb +6 -2
- data/app/renderers/hyrax/renderers/license_attribute_renderer.rb +10 -10
- data/app/renderers/hyrax/renderers/redirects_label_attribute_renderer.rb +25 -0
- data/app/renderers/hyrax/renderers/rights_statement_attribute_renderer.rb +10 -11
- data/app/search_builders/hyrax/dashboard/nested_collections_search_builder.rb +1 -5
- data/app/search_builders/hyrax/filter_by_type.rb +1 -1
- data/app/services/hyrax/action/create_valkyrie_work.rb +3 -2
- data/app/services/hyrax/analytics/ga4/base.rb +1 -1
- data/app/services/hyrax/analytics/ga4.rb +5 -1
- data/app/services/hyrax/authority_rendering_helper.rb +28 -0
- data/app/services/hyrax/authority_service.rb +107 -0
- data/app/services/hyrax/callbacks.rb +2 -2
- data/app/services/hyrax/change_depositor_service.rb +1 -1
- data/app/services/hyrax/characterization/valkyrie_characterization_service.rb +21 -13
- data/app/services/hyrax/collections/nested_collection_query_service.rb +9 -3
- data/app/services/hyrax/collections_service.rb +17 -0
- data/app/services/hyrax/custom_queries/find_by_property_value.rb +89 -0
- data/app/services/hyrax/custom_queries/find_ids_by_model.rb +31 -6
- data/app/services/hyrax/edit_permissions_service.rb +11 -10
- data/app/services/hyrax/file_set_type_service.rb +12 -4
- data/app/services/hyrax/flexible_schema_validator_service.rb +153 -0
- data/app/services/hyrax/flexible_schema_validators/class_validator.rb +123 -0
- data/app/services/hyrax/flexible_schema_validators/core_metadata_validator.rb +211 -0
- data/app/services/hyrax/flexible_schema_validators/existing_records_validator.rb +83 -0
- data/app/services/hyrax/flexible_schema_validators/redirects_validator.rb +116 -0
- data/app/services/hyrax/flexible_schema_validators/schema_validator.rb +34 -0
- data/app/services/hyrax/flexible_schema_validators/sort_properties_validator.rb +54 -0
- data/app/services/hyrax/license_service.rb +1 -1
- data/app/services/hyrax/listeners/metadata_index_listener.rb +11 -0
- data/app/services/hyrax/m3_profile_editor.rb +32 -0
- data/app/services/hyrax/m3_schema_loader.rb +119 -0
- data/app/services/hyrax/manifest_builder_service.rb +18 -24
- data/app/services/hyrax/permalink_path.rb +25 -0
- data/app/services/hyrax/qa_select_service.rb +9 -5
- data/app/services/hyrax/redirect_path_normalizer.rb +58 -0
- data/app/services/hyrax/redirects_lookup.rb +59 -0
- data/app/services/hyrax/resource_permissions_visibility_propagator.rb +54 -0
- data/app/services/hyrax/resource_types_service.rb +3 -20
- data/app/services/hyrax/rights_statement_service.rb +1 -1
- data/app/services/hyrax/schema_loader.rb +205 -0
- data/app/services/hyrax/search_service.rb +1 -1
- data/app/services/hyrax/simple_schema_loader.rb +28 -127
- data/app/services/hyrax/solr_service.rb +39 -2
- data/app/services/hyrax/tolerant_select_service.rb +5 -3
- data/app/services/hyrax/valkyrie_upload.rb +2 -2
- data/app/services/hyrax/visibility_propagator.rb +4 -1
- data/app/services/hyrax/work_uploads_handler.rb +17 -9
- data/app/services/hyrax/workflow/workflow_factory.rb +5 -4
- data/app/services/migrate_resource_service.rb +8 -2
- data/app/uploaders/hyrax/uploaded_file_uploader.rb +2 -2
- data/app/utils/hyrax/data_destroyers/collection_branding_destroyer.rb +1 -1
- data/app/utils/hyrax/required_data_seeder.rb +1 -0
- data/app/utils/hyrax/required_data_seeders/collection_type_seeder.rb +1 -1
- data/app/utils/hyrax/required_data_seeders/flexible_profile_seeder.rb +28 -0
- data/app/validators/hyrax/controlled_vocabulary_validator.rb +64 -0
- data/app/validators/hyrax/redirect_validator.rb +128 -0
- data/app/views/_user_util_links.html.erb +2 -1
- data/app/views/catalog/_thumbnail_list_default.html.erb +2 -2
- data/app/views/collections/edit_fields/_schema_version.html.erb +1 -0
- data/app/views/hyrax/admin/admin_sets/_form_metadata.html.erb +24 -2
- data/app/views/hyrax/admin/admin_sets/_show_document_list_row.html.erb +1 -1
- data/app/views/hyrax/admin/admin_sets/show.html.erb +1 -1
- data/app/views/hyrax/admin/analytics/_analytics_error.html.erb +42 -0
- data/app/views/hyrax/admin/analytics/collection_reports/_top_collections.html.erb +3 -7
- data/app/views/hyrax/admin/analytics/collection_reports/index.html.erb +11 -9
- data/app/views/hyrax/admin/analytics/work_reports/_top_file_set_downloads.html.erb +3 -6
- data/app/views/hyrax/admin/analytics/work_reports/_top_works.html.erb +2 -3
- data/app/views/hyrax/admin/analytics/work_reports/_work_files.html.erb +1 -6
- data/app/views/hyrax/admin/analytics/work_reports/index.html.erb +60 -57
- data/app/views/hyrax/admin/features/index.html.erb +1 -1
- data/app/views/hyrax/admin/metadata_profiles/_import_modal.html.erb +20 -0
- data/app/views/hyrax/admin/metadata_profiles/index.html.erb +54 -0
- data/app/views/hyrax/base/_attribute_rows.html.erb +4 -21
- data/app/views/hyrax/base/_citations.html.erb +1 -0
- data/app/views/hyrax/base/_currently_shared.html.erb +2 -1
- data/app/views/hyrax/base/_file_manager_thumbnail.html.erb +1 -1
- data/app/views/hyrax/base/_form_member_of_collections.html.erb +6 -6
- data/app/views/hyrax/base/_form_redirects.html.erb +125 -0
- data/app/views/hyrax/base/_form_share.html.erb +7 -2
- data/app/views/hyrax/base/_member.html.erb +1 -1
- data/app/views/hyrax/base/_social_media.html.erb +3 -1
- data/app/views/hyrax/base/iiif_viewers/_universal_viewer.html.erb +1 -1
- data/app/views/hyrax/base/show.html.erb +3 -0
- data/app/views/hyrax/collections/_default_group.html.erb +3 -0
- data/app/views/hyrax/collections/_list_collections.html.erb +3 -0
- data/app/views/hyrax/collections/_list_works.html.erb +1 -1
- data/app/views/hyrax/collections/_show_document_list_row.html.erb +1 -1
- data/app/views/hyrax/collections/show.html.erb +4 -0
- data/app/views/hyrax/dashboard/_sidebar.html.erb +4 -2
- data/app/views/hyrax/dashboard/collections/_button_for_update_collection.html.erb +2 -1
- data/app/views/hyrax/dashboard/collections/_default_group.html.erb +3 -0
- data/app/views/hyrax/dashboard/collections/_form.html.erb +17 -0
- data/app/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb +7 -10
- data/app/views/hyrax/dashboard/collections/_list_collections.html.erb +3 -0
- data/app/views/hyrax/dashboard/collections/_list_works.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_show_document_list_menu.html.erb +13 -12
- data/app/views/hyrax/dashboard/collections/_show_document_list_row.html.erb +1 -1
- data/app/views/hyrax/dashboard/profiles/_edit_primary.html.erb +1 -8
- data/app/views/hyrax/dashboard/profiles/_trophy_edit.html.erb +1 -1
- data/app/views/hyrax/dashboard/profiles/show.html.erb +5 -5
- data/app/views/hyrax/dashboard/sidebar/_metadata.html.erb +11 -0
- data/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb +1 -0
- data/app/views/hyrax/dashboard/works/_default_group.html.erb +3 -0
- data/app/views/hyrax/dashboard/works/_list_works.html.erb +4 -2
- data/app/views/hyrax/file_sets/_form.html.erb +16 -3
- data/app/views/hyrax/file_sets/_metadata.html.erb +35 -0
- data/app/views/hyrax/file_sets/_valkyrie_form.html.erb +37 -0
- data/app/views/hyrax/file_sets/edit.html.erb +14 -8
- data/app/views/hyrax/file_sets/media_display/_audio.html.erb +4 -0
- data/app/views/hyrax/file_sets/media_display/_image.html.erb +2 -2
- data/app/views/hyrax/file_sets/media_display/_video.html.erb +4 -0
- data/app/views/hyrax/homepage/_explore_collections.html.erb +1 -1
- data/app/views/hyrax/homepage/_featured_fields.html.erb +1 -1
- data/app/views/hyrax/homepage/_recent_document.html.erb +1 -1
- data/app/views/hyrax/homepage/robots.text.erb +17 -0
- data/app/views/hyrax/my/_admin_set_action_menu.html.erb +31 -27
- data/app/views/hyrax/my/_collection_action_menu.html.erb +40 -35
- data/app/views/hyrax/my/_work_action_menu.html.erb +23 -22
- data/app/views/hyrax/my/collections/_default_group.html.erb +3 -0
- data/app/views/hyrax/my/collections/_list_collections.html.erb +3 -0
- data/app/views/hyrax/my/collections/_modal_add_subcollection.html.erb +2 -2
- data/app/views/hyrax/my/collections/_modal_add_to_collection.html.erb +2 -2
- data/app/views/hyrax/my/works/_default_group.html.erb +3 -0
- data/app/views/hyrax/my/works/_list_works.html.erb +5 -2
- data/app/views/hyrax/shared/_copy_permalink.html.erb +10 -0
- data/app/views/hyrax/users/_user_info.html.erb +1 -6
- data/app/views/layouts/_head_tag_content.html.erb +2 -0
- data/app/views/layouts/hyrax/dashboard.html.erb +2 -1
- data/app/views/records/edit_fields/_contexts.html.erb +1 -0
- data/app/views/records/edit_fields/_license.html.erb +17 -5
- data/app/views/records/edit_fields/_resource_type.html.erb +16 -2
- data/app/views/records/edit_fields/_rights_statement.html.erb +17 -5
- data/app/views/records/edit_fields/_schema_version.html.erb +1 -0
- data/app/views/records/edit_fields/_transcript_ids.html.erb +18 -0
- data/app/views/records/show_fields/_rights.html.erb +1 -1
- data/app/views/shared/_citations.html.erb +46 -31
- data/app/views/shared/_schema_version.html.erb +38 -0
- data/bin/dev-entrypoint.sh +14 -4
- data/chart/hyrax/Chart.yaml +4 -4
- data/chart/hyrax/templates/ingress.yaml +3 -0
- data/chart/hyrax/values.yaml +10 -8
- data/config/features.rb +77 -40
- data/config/initializers/blacklight_dynamic_sitemap.rb +43 -0
- data/config/initializers/deprecation_patch.rb +27 -0
- data/config/initializers/hydra_works.rb +3 -0
- data/config/initializers/i18n_extensions.rb +197 -0
- data/config/initializers/indexing_adapter_initializer.rb +4 -0
- data/config/initializers/new_framework_defaults_7_2.rb +6 -4
- data/config/initializers/reform_rails_6_1_monkey_patch.rb +29 -0
- data/config/initializers/storage_adapter_initializer.rb +15 -9
- data/config/locales/hyrax.de.yml +172 -54
- data/config/locales/hyrax.en.yml +183 -66
- data/config/locales/hyrax.es.yml +174 -49
- data/config/locales/hyrax.fr.yml +169 -45
- data/config/locales/hyrax.it.yml +172 -48
- data/config/locales/hyrax.pt-BR.yml +172 -54
- data/config/locales/hyrax.zh.yml +145 -21
- data/config/metadata/basic_metadata.yaml +66 -0
- data/config/metadata/batch_edit_metadata.yaml +119 -0
- data/config/metadata/core_metadata.yaml +1 -0
- data/config/metadata/file_set_metadata.yaml +19 -0
- data/config/metadata/redirects.yaml +15 -0
- data/config/metadata_profiles/m3_json_schema.json +487 -0
- data/config/metadata_profiles/m3_profile.yaml +954 -0
- data/config/routes.rb +9 -0
- data/docker-compose-allinson.yml +176 -0
- data/docker-compose-dassie.yml +18 -10
- data/docker-compose-koppie.yml +18 -10
- data/docker-compose-sirenia.yml +20 -10
- data/documentation/copy_permalink.md +29 -0
- data/documentation/developing-your-hyrax-based-app.md +2 -2
- data/documentation/file-ingest-characterization.md +763 -0
- data/documentation/flexible_metadata.md +113 -0
- data/documentation/forms/field_behaviors.md +297 -0
- data/documentation/redirects.md +428 -0
- data/hyrax.gemspec +9 -4
- data/lib/freyja/metadata_adapter.rb +1 -1
- data/lib/freyja/persister.rb +36 -5
- data/lib/generators/hyrax/collection_resource/collection_resource_generator.rb +2 -2
- data/lib/generators/hyrax/collection_resource/templates/collection.rb.erb +5 -1
- data/lib/generators/hyrax/collection_resource/templates/collection_form.rb.erb +5 -1
- data/lib/generators/hyrax/collection_resource/templates/collection_indexer.rb.erb +6 -1
- data/lib/generators/hyrax/iiif_viewer/USAGE +22 -0
- data/lib/generators/hyrax/iiif_viewer/iiif_viewer_generator.rb +49 -0
- data/lib/generators/hyrax/iiif_viewer/templates/_clover.html.erb +7 -0
- data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.css +3328 -0
- data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.html +16 -0
- data/lib/generators/hyrax/iiif_viewer/templates/clover/clover.js +237 -0
- data/lib/generators/hyrax/install_generator.rb +25 -1
- data/lib/generators/hyrax/riiif_generator.rb +1 -1
- data/lib/generators/hyrax/templates/app/views/blacklight_dynamic_sitemap/sitemap/show.xml.builder +22 -0
- data/lib/generators/hyrax/templates/config/clamav.rb +2 -0
- data/lib/generators/hyrax/templates/config/initializers/riiif.rb +4 -80
- data/lib/generators/hyrax/templates/db/migrate/20240606205215_create_hyrax_flexible_schemas.rb.erb +9 -0
- data/lib/generators/hyrax/templates/db/migrate/20240606205216_add_contexts_to_hyrax_flexible_schemas.rb.erb +5 -0
- data/lib/generators/hyrax/templates/db/migrate/20260430000001_create_hyrax_redirect_paths.rb.erb +22 -0
- data/lib/generators/hyrax/templates/db/migrate/20260521003627_add_additional_redirect_info.rb.erb +39 -0
- data/lib/generators/hyrax/templates/package.json +1 -1
- data/lib/generators/hyrax/templates/uv.html +60 -82
- data/lib/generators/hyrax/work/templates/indexer.rb.erb +1 -1
- data/lib/generators/hyrax/work/templates/model.rb.erb +5 -1
- data/lib/generators/hyrax/work_resource/templates/form.rb.erb +5 -2
- data/lib/generators/hyrax/work_resource/templates/indexer.rb.erb +6 -2
- data/lib/generators/hyrax/work_resource/templates/work.rb.erb +5 -2
- data/lib/generators/hyrax/work_resource/work_resource_generator.rb +1 -0
- data/lib/hyrax/active_fedora_dummy_model.rb +6 -0
- data/lib/hyrax/configuration.rb +219 -10
- data/lib/hyrax/controlled_vocabulary/importer/language.rb +5 -1
- data/lib/hyrax/deprecation.rb +31 -0
- data/lib/hyrax/engine.rb +2 -0
- data/lib/hyrax/form_fields.rb +17 -5
- data/lib/hyrax/indexer.rb +31 -2
- data/lib/hyrax/resource_sync/resource_list_writer.rb +3 -0
- data/lib/hyrax/schema.rb +15 -4
- data/lib/hyrax/specs/shared_specs/factories/administrative_sets.rb +12 -0
- data/lib/hyrax/specs/shared_specs/factories/hyrax_embargo.rb +1 -1
- data/lib/hyrax/specs/shared_specs/factories/hyrax_file_set.rb +13 -0
- data/lib/hyrax/specs/shared_specs/factories/hyrax_lease.rb +5 -1
- data/lib/hyrax/specs/shared_specs/factories/hyrax_work.rb +14 -0
- data/lib/hyrax/specs/shared_specs/simple_work.rb +41 -0
- data/lib/hyrax/specs/shared_specs.rb +1 -0
- data/lib/hyrax/transactions/collection_create.rb +2 -1
- data/lib/hyrax/transactions/collection_destroy.rb +1 -0
- data/lib/hyrax/transactions/collection_update.rb +2 -1
- data/lib/hyrax/transactions/container.rb +28 -0
- data/lib/hyrax/transactions/steps/add_file_sets.rb +2 -1
- data/lib/hyrax/transactions/steps/apply_permission_template_on_update.rb +65 -0
- data/lib/hyrax/transactions/steps/apply_workflow_on_admin_set_change.rb +97 -0
- data/lib/hyrax/transactions/steps/ensure_admin_set.rb +1 -1
- data/lib/hyrax/transactions/steps/remove_redirect_paths.rb +35 -0
- data/lib/hyrax/transactions/steps/save.rb +10 -0
- data/lib/hyrax/transactions/steps/set_default_admin_set.rb +1 -1
- data/lib/hyrax/transactions/steps/sync_redirect_paths.rb +141 -0
- data/lib/hyrax/transactions/work_create.rb +2 -1
- data/lib/hyrax/transactions/work_destroy.rb +1 -0
- data/lib/hyrax/transactions/work_update.rb +4 -1
- data/lib/hyrax/version.rb +1 -1
- data/lib/hyrax.rb +62 -0
- data/lib/tasks/m3_profile_cleanup.rake +35 -0
- data/lib/valkyrie/indexing/redis_queue/indexing_adapter.rb +144 -0
- data/lib/wings/valkyrie/query_service.rb +3 -4
- data/template.rb +4 -1
- metadata +327 -25
- data/.dassie/public/robots.txt +0 -1
- data/.github/workflows/main.yml +0 -17
- data/.koppie/public/robots.txt +0 -1
- data/app/forms/concerns/hyrax/basic_metadata_form_fields_behavior.rb +0 -39
- data/app/views/catalog/_thumbnail_list_collection.html.erb +0 -4
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
<% if render_transcript_ids_field?(curation_concern) %>
|
|
2
|
+
<div class="row">
|
|
3
|
+
<div class="col-md-12 mt-2">
|
|
4
|
+
<fieldset id="file-set-transcripts">
|
|
5
|
+
<legend>
|
|
6
|
+
<%= t("simple_form.labels.file_set.transcript_ids") %>
|
|
7
|
+
</legend>
|
|
8
|
+
<div class="form-group">
|
|
9
|
+
<span class="form-text"><%= sanitize(t("simple_form.hints.file_set.transcript_ids")) %></span>
|
|
10
|
+
<%= f.select :transcript_ids,
|
|
11
|
+
transcript_ids_select_options,
|
|
12
|
+
{ include_blank: true },
|
|
13
|
+
{ class: 'form-control', multiple: true } %>
|
|
14
|
+
</div>
|
|
15
|
+
</fieldset>
|
|
16
|
+
</div>
|
|
17
|
+
</div>
|
|
18
|
+
<% end %>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
<% service = Hyrax::LicenseService.new %>
|
|
2
2
|
<% record.rights.each do |r| %>
|
|
3
|
-
<%= link_to_field('rights', r, service.label(r)) %> <%= iconify_auto_link(r, false) %><br />
|
|
3
|
+
<%= link_to_field('rights', r, service.label(r) { r }) %> <%= iconify_auto_link(r, false) %><br />
|
|
4
4
|
<% end %>
|
|
@@ -4,50 +4,65 @@
|
|
|
4
4
|
<meta name="twitter:creator" content="<%= @presenter.tweeter %>" />
|
|
5
5
|
<meta property="og:site_name" content="<%= application_name %>" />
|
|
6
6
|
<meta property="og:type" content="object" />
|
|
7
|
-
<meta property="og:title" content="<%= @presenter.title.first %>" />
|
|
8
|
-
<meta property="og:description" content="<%= @presenter.description.first
|
|
7
|
+
<meta property="og:title" content="<%= Array(@presenter.title).first %>" />
|
|
8
|
+
<meta property="og:description" content="<%= Array(@presenter.description).first&.truncate(200) || Array(@presenter.title).first %>" />
|
|
9
9
|
<meta property="og:image" content="<%= @presenter.download_url %>" />
|
|
10
10
|
<meta property="og:url" content="<%= polymorphic_url([main_app, @presenter]) %>" />
|
|
11
|
-
<meta name="twitter:data1" content="<%= @presenter.keyword.join(', ') %>" />
|
|
11
|
+
<meta name="twitter:data1" content="<%= Array(@presenter.keyword).join(', ') %>" />
|
|
12
12
|
<meta name="twitter:label1" content="Keywords" />
|
|
13
|
-
<meta name="twitter:data2" content="<%= @presenter.rights_statement.first %>" />
|
|
13
|
+
<meta name="twitter:data2" content="<%= Array(@presenter.rights_statement).first %>" />
|
|
14
14
|
<meta name="twitter:label2" content="Rights Statement" />
|
|
15
15
|
<% end %>
|
|
16
16
|
|
|
17
17
|
<% gscholar = Hyrax::GoogleScholarPresenter.new(@presenter) %>
|
|
18
18
|
|
|
19
19
|
<% if gscholar.scholarly? %>
|
|
20
|
-
<% content_for(:gscholar_meta) do %>
|
|
21
|
-
|
|
22
|
-
|
|
20
|
+
<% content_for(:gscholar_meta) do %>
|
|
21
|
+
<meta name="description" content="<%= gscholar.description %>" />
|
|
22
|
+
<meta name="citation_title" content="<%= gscholar.title %>" />
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
<% gscholar.authors.each do |author| %>
|
|
25
|
+
<meta name="citation_author" content="<%= author %>" />
|
|
26
|
+
<% end %>
|
|
27
27
|
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
<% if gscholar.publication_date.present? %>
|
|
29
|
+
<meta name="citation_publication_date" content="<%= gscholar.publication_date %>" />
|
|
30
|
+
<% end %>
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
32
|
+
<% if gscholar.pdf_url.present? %>
|
|
33
|
+
<meta name="citation_pdf_url" content="<%= gscholar.pdf_url %>" />
|
|
34
|
+
<% end %>
|
|
35
35
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
36
|
+
<% if gscholar.keywords.present? %>
|
|
37
|
+
<meta name="citation_keywords" content="<%= gscholar.keywords %>" />
|
|
38
|
+
<% end %>
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
<% if gscholar.publisher.present? %>
|
|
41
|
+
<meta name="citation_publisher" content="<%= gscholar.publisher %>" />
|
|
42
|
+
<% end %>
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
<%
|
|
44
|
+
<% if gscholar.degree_grantor.present? %>
|
|
45
|
+
<meta name="citation_dissertation_institution" content="<%= gscholar.degree_grantor %>" />
|
|
46
|
+
<% end %>
|
|
47
|
+
|
|
48
|
+
<% if gscholar.journal_title.present? %>
|
|
49
|
+
<meta name="citation_journal_title" content="<%= gscholar.journal_title %>" />
|
|
50
|
+
<% end %>
|
|
51
|
+
|
|
52
|
+
<% if gscholar.volume.present? %>
|
|
53
|
+
<meta name="citation_volume" content="<%= gscholar.volume %>" />
|
|
54
|
+
<% end %>
|
|
55
|
+
|
|
56
|
+
<% if gscholar.issue.present? %>
|
|
57
|
+
<meta name="citation_issue" content="<%= gscholar.issue %>" />
|
|
58
|
+
<% end %>
|
|
59
|
+
|
|
60
|
+
<% if gscholar.first_page.present? %>
|
|
61
|
+
<meta name="citation_firstpage" content="<%= gscholar.first_page %>" />
|
|
62
|
+
<% end %>
|
|
63
|
+
|
|
64
|
+
<% if gscholar.last_page.present? %>
|
|
65
|
+
<meta name="citation_lastpage" content="<%= gscholar.last_page %>" />
|
|
66
|
+
<% end %>
|
|
67
|
+
<% end %>
|
|
53
68
|
<% end %>
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
<% schema_version = SolrDocument.find(f.object.id).schema_version if action_name == 'edit' %>
|
|
2
|
+
<% schema_version = Hyrax::FlexibleSchema.current_schema_id if action_name == 'new' %>
|
|
3
|
+
<% updating = (schema_version.to_f < @latest_schema_version.to_f) ? 'updating' : '' %>
|
|
4
|
+
|
|
5
|
+
<div class='pull-right'>
|
|
6
|
+
<% if schema_version.present? %>
|
|
7
|
+
<div class='schema-version text-center'>
|
|
8
|
+
<span>Created On Version</span>
|
|
9
|
+
<h4><%= schema_version.to_f %></h4>
|
|
10
|
+
</div>
|
|
11
|
+
<% end %>
|
|
12
|
+
<div class='schema-version text-center <%= updating %>'>
|
|
13
|
+
<span>Version After Save</span>
|
|
14
|
+
<h4><%= @latest_schema_version %></h4>
|
|
15
|
+
</div>
|
|
16
|
+
</div>
|
|
17
|
+
|
|
18
|
+
<style>
|
|
19
|
+
.schema-version{
|
|
20
|
+
background:#FFF;
|
|
21
|
+
border-radius:8px;
|
|
22
|
+
box-shadow: 3px 3px 2px rgba(0, 0, 0, 0.2);
|
|
23
|
+
padding:20px 5px;
|
|
24
|
+
margin-bottom: 5px;
|
|
25
|
+
min-width: 10em;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.schema-version.updating {
|
|
29
|
+
background-color: lightgreen;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.schema_version h4 {
|
|
33
|
+
font-size: 14px;
|
|
34
|
+
}
|
|
35
|
+
.schema_version span {
|
|
36
|
+
font-size: 10px;
|
|
37
|
+
}
|
|
38
|
+
</style>
|
data/bin/dev-entrypoint.sh
CHANGED
|
@@ -4,11 +4,18 @@ set -e
|
|
|
4
4
|
mkdir -p $RAILS_ROOT/tmp/pids
|
|
5
5
|
rm -f $RAILS_ROOT/tmp/pids/*
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
if [ -n "${BUNDLE_PATH}" ]; then
|
|
8
|
+
# Copy gems installed in the image to /app/bundle so they are retained over stack down/ups.
|
|
9
|
+
FULL_BUNDLE_PATH=$(ruby -e "require 'bundler'; puts Bundler.bundle_path")
|
|
10
|
+
echo "Copying gems to $FULL_BUNDLE_PATH"
|
|
11
|
+
mkdir -p $FULL_BUNDLE_PATH
|
|
12
|
+
cp -Ru /usr/local/bundle/* $FULL_BUNDLE_PATH
|
|
13
|
+
elif [ "$(id -u)" -eq 0 ]; then
|
|
14
|
+
# Gems coming from git need to be owned by the user, which is root for dev environment
|
|
15
|
+
echo "Ensuring root owns /usr/local/bundle"
|
|
16
|
+
chown -R 0 /usr/local/bundle
|
|
17
|
+
fi
|
|
8
18
|
|
|
9
|
-
# Copy gems installed in the image to the dev bundle
|
|
10
|
-
mkdir -p /app/bundle/ruby/$RUBY_MAJOR.0
|
|
11
|
-
cp -Rn /usr/local/bundle/* /app/bundle/ruby/$RUBY_MAJOR.0
|
|
12
19
|
bundle install
|
|
13
20
|
yarn install
|
|
14
21
|
|
|
@@ -17,5 +24,8 @@ yarn install
|
|
|
17
24
|
|
|
18
25
|
db-migrate-seed.sh
|
|
19
26
|
|
|
27
|
+
# Update and run ClamAV
|
|
28
|
+
[ "$HYRAX_CLAMAV" = "true" ] && freshclam && clamd
|
|
29
|
+
|
|
20
30
|
# Run the command
|
|
21
31
|
exec "$@"
|
data/chart/hyrax/Chart.yaml
CHANGED
|
@@ -2,12 +2,12 @@ apiVersion: v2
|
|
|
2
2
|
name: hyrax
|
|
3
3
|
description: An open-source, Samvera-powered digital repository system
|
|
4
4
|
type: application
|
|
5
|
-
version: 3.7.
|
|
6
|
-
appVersion: 5.
|
|
5
|
+
version: 3.7.3
|
|
6
|
+
appVersion: 5.2.0
|
|
7
7
|
dependencies:
|
|
8
8
|
- name: fcrepo
|
|
9
|
-
version: 2.0.
|
|
10
|
-
repository: oci://ghcr.io/samvera
|
|
9
|
+
version: 2.0.2
|
|
10
|
+
repository: oci://ghcr.io/samvera-labs/charts
|
|
11
11
|
condition: fcrepo.enabled
|
|
12
12
|
- name: memcached
|
|
13
13
|
version: 6.6.0
|
|
@@ -18,6 +18,9 @@ metadata:
|
|
|
18
18
|
{{- toYaml . | nindent 4 }}
|
|
19
19
|
{{- end }}
|
|
20
20
|
spec:
|
|
21
|
+
{{- if .Values.ingress.ingressClassName }}
|
|
22
|
+
ingressClassName: {{ .Values.ingress.ingressClassName }}
|
|
23
|
+
{{- end }}
|
|
21
24
|
{{- if .Values.ingress.tls }}
|
|
22
25
|
tls:
|
|
23
26
|
{{- range .Values.ingress.tls }}
|
data/chart/hyrax/values.yaml
CHANGED
|
@@ -235,7 +235,7 @@ fcrepo:
|
|
|
235
235
|
postgresql:
|
|
236
236
|
enabled: false
|
|
237
237
|
image:
|
|
238
|
-
repository:
|
|
238
|
+
repository: bitnamilegacy/postgresql
|
|
239
239
|
tag: 12.17.0-debian-11-r28
|
|
240
240
|
|
|
241
241
|
# configuration for an external/existing fits service;
|
|
@@ -252,13 +252,13 @@ fits:
|
|
|
252
252
|
memcached:
|
|
253
253
|
enabled: false
|
|
254
254
|
image:
|
|
255
|
-
repository:
|
|
255
|
+
repository: bitnamilegacy/memcached
|
|
256
256
|
tag: 1.6.15-debian-11-r12
|
|
257
257
|
|
|
258
258
|
minio:
|
|
259
259
|
enabled: false
|
|
260
260
|
image:
|
|
261
|
-
repository:
|
|
261
|
+
repository: bitnamilegacy/minio
|
|
262
262
|
tag: 2022.7.4-debian-11-r0
|
|
263
263
|
auth:
|
|
264
264
|
rootUser: hyrax-access-key
|
|
@@ -270,7 +270,7 @@ minio:
|
|
|
270
270
|
postgresql:
|
|
271
271
|
enabled: true
|
|
272
272
|
image:
|
|
273
|
-
repository:
|
|
273
|
+
repository: bitnamilegacy/postgresql
|
|
274
274
|
tag: 12.11.0-debian-11-r12
|
|
275
275
|
auth:
|
|
276
276
|
database: hyrax
|
|
@@ -292,7 +292,7 @@ postgresql:
|
|
|
292
292
|
nginx:
|
|
293
293
|
enabled: false
|
|
294
294
|
image:
|
|
295
|
-
repository:
|
|
295
|
+
repository: bitnamilegacy/nginx
|
|
296
296
|
tag: 1.23.0-debian-11-r1
|
|
297
297
|
# this needs to be set since templates/ingress.yaml tries to
|
|
298
298
|
# evaluate .Values.nginx.service.port, and it needs to at least evaluate to
|
|
@@ -430,11 +430,10 @@ nginx:
|
|
|
430
430
|
# }
|
|
431
431
|
# }
|
|
432
432
|
|
|
433
|
-
|
|
434
433
|
redis:
|
|
435
434
|
enabled: true
|
|
436
435
|
image:
|
|
437
|
-
repository:
|
|
436
|
+
repository: bitnamilegacy/redis
|
|
438
437
|
tag: 7.0.2-debian-11-r7
|
|
439
438
|
auth:
|
|
440
439
|
password: mysecret
|
|
@@ -442,7 +441,7 @@ redis:
|
|
|
442
441
|
solr:
|
|
443
442
|
enabled: true
|
|
444
443
|
image:
|
|
445
|
-
repository:
|
|
444
|
+
repository: bitnamilegacy/solr
|
|
446
445
|
tag: 8.11.2-debian-11-r4
|
|
447
446
|
containerPorts:
|
|
448
447
|
http: 8983
|
|
@@ -458,6 +457,9 @@ solr:
|
|
|
458
457
|
enabled: true
|
|
459
458
|
zookeeper:
|
|
460
459
|
enabled: true
|
|
460
|
+
image:
|
|
461
|
+
repository: bitnamilegacy/zookeeper
|
|
462
|
+
tag: 3.8.2-debian-11-r9
|
|
461
463
|
persistence:
|
|
462
464
|
enabled: true
|
|
463
465
|
|
data/config/features.rb
CHANGED
|
@@ -6,46 +6,83 @@ Flipflop.configure do
|
|
|
6
6
|
strategy Hyrax::Strategies::YamlStrategy, config: Hyrax.config.feature_config_path
|
|
7
7
|
strategy :default
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
9
|
+
group :site_configuration do
|
|
10
|
+
feature :cache_work_iiif_manifest,
|
|
11
|
+
default: false,
|
|
12
|
+
description: "Use Rails.cache to cache the JSON document for IIIF manifests"
|
|
13
|
+
|
|
14
|
+
feature :iiif_av,
|
|
15
|
+
title: "IIIF A/V Support",
|
|
16
|
+
default: false,
|
|
17
|
+
description: "Enable support for A/V content in IIIF v3 manifests."
|
|
18
|
+
|
|
19
|
+
feature :iiif_pdf,
|
|
20
|
+
title: "IIIF PDF Support",
|
|
21
|
+
default: false,
|
|
22
|
+
description: "Enable support for PDF content in IIIF v3 manifests."
|
|
23
|
+
|
|
24
|
+
feature :hide_private_items,
|
|
25
|
+
default: false,
|
|
26
|
+
description: "Do not show the private items."
|
|
27
|
+
|
|
28
|
+
feature :hide_social_buttons,
|
|
29
|
+
default: false,
|
|
30
|
+
description: "Do not show social media share buttons."
|
|
31
|
+
|
|
32
|
+
feature :hide_users_list,
|
|
33
|
+
default: true,
|
|
34
|
+
description: "Do not show users list unless user has authenticated."
|
|
35
|
+
|
|
36
|
+
feature :read_only,
|
|
37
|
+
default: false,
|
|
38
|
+
description: "Put the system into read-only mode. Deposits, edits, approvals and anything that makes a change to the data will be disabled."
|
|
39
|
+
|
|
40
|
+
feature :validate_local_controlled_vocabulary,
|
|
41
|
+
default: false,
|
|
42
|
+
description: "Validate local controlled vocabulary."
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
group :repository_management do
|
|
46
|
+
feature :active_deposit_agreement_acceptance,
|
|
47
|
+
default: Hyrax.config.active_deposit_agreement_acceptance?,
|
|
48
|
+
description: "Require an active acceptance of the deposit agreement by checking a checkbox"
|
|
49
|
+
|
|
50
|
+
# Note, if this is deactivated, a default admin set will be created and all
|
|
51
|
+
# works will be assigned to it when they are created.
|
|
52
|
+
feature :assign_admin_set,
|
|
53
|
+
default: true,
|
|
54
|
+
description: "Ability to assign uploaded items to an admin set"
|
|
55
|
+
|
|
56
|
+
feature :batch_upload,
|
|
57
|
+
default: false,
|
|
58
|
+
description: "Enable uploading batches of works"
|
|
59
|
+
|
|
60
|
+
feature :proxy_deposit,
|
|
61
|
+
default: true,
|
|
62
|
+
description: "Depositors may designate proxies to deposit works on their behalf"
|
|
63
|
+
|
|
64
|
+
feature :show_deposit_agreement,
|
|
65
|
+
default: true,
|
|
66
|
+
description: "Show a deposit agreement to users creating works"
|
|
67
|
+
|
|
68
|
+
feature :transfer_works,
|
|
69
|
+
default: true,
|
|
70
|
+
description: "Depositors may transfer their works to another user"
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
group :experimental_features do
|
|
74
|
+
# See documentation/redirects.md for the redirects feature.
|
|
75
|
+
if Hyrax.config.redirects_enabled?
|
|
76
|
+
feature :redirects,
|
|
77
|
+
default: false,
|
|
78
|
+
description: "Enable per-record URL redirects from legacy paths to the canonical Hyku URL."
|
|
79
|
+
end
|
|
80
|
+
|
|
81
|
+
feature :copy_permalink_button,
|
|
82
|
+
default: false,
|
|
83
|
+
description: "Show a 'Copy permalink' button on work and collection show pages that copies the record's canonical UUID-based URL to the clipboard."
|
|
84
|
+
end
|
|
85
|
+
|
|
49
86
|
rescue Flipflop::StrategyError, Flipflop::FeatureError => err
|
|
50
87
|
Hyrax.logger.warn "Ignoring #{err}: #{err.message}"
|
|
51
88
|
end
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
require 'hyrax/model_registry'
|
|
3
|
+
|
|
4
|
+
def build_model_exclusion_filter
|
|
5
|
+
classes_to_exclude = Hyrax::ModelRegistry.file_set_class_names + Hyrax::ModelRegistry.admin_set_class_names + ["Hyrax::FileMetadata"]
|
|
6
|
+
classes_to_exclude.map! { |klass| klass.gsub(/^::/, '') }.uniq!
|
|
7
|
+
"-has_model_ssim:(\"#{classes_to_exclude.join('" OR "')}\")"
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
BlacklightDynamicSitemap::Engine.config.tap do |config|
|
|
11
|
+
config.unique_id_field = 'id'
|
|
12
|
+
|
|
13
|
+
model_exclusion_filter = build_model_exclusion_filter
|
|
14
|
+
config.modify_show_params = lambda { |_id, default_params|
|
|
15
|
+
default_params.merge(
|
|
16
|
+
fl: "#{default_params[:fl]},has_model_ssim",
|
|
17
|
+
fq: (default_params[:fq] || []) + [
|
|
18
|
+
'read_access_group_ssim:public',
|
|
19
|
+
model_exclusion_filter
|
|
20
|
+
]
|
|
21
|
+
)
|
|
22
|
+
}
|
|
23
|
+
config.modify_index_params = lambda { |default_params|
|
|
24
|
+
default_params.merge(
|
|
25
|
+
fq: (default_params[:fq] || []) + [
|
|
26
|
+
'read_access_group_ssim:public',
|
|
27
|
+
model_exclusion_filter
|
|
28
|
+
]
|
|
29
|
+
)
|
|
30
|
+
}
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
Rails.application.config.after_initialize do
|
|
34
|
+
# New UUID-based apps can use the id field directly for efficient sitemap generation.
|
|
35
|
+
# Apps using Noids need to add hashed_id_ssi to Solr (see gem documentation).
|
|
36
|
+
BlacklightDynamicSitemap::Engine.config.hashed_id_field = if Hyrax.config.enable_noids?
|
|
37
|
+
# Noid IDs use alphanumeric characters - need separate hashed field
|
|
38
|
+
'hashed_id_ssi'
|
|
39
|
+
else
|
|
40
|
+
# UUID IDs are hex-based - can use id field directly
|
|
41
|
+
'id'
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
#
|
|
3
|
+
# OVERRIDE deprecation v1.1.0 – handle calls using either the deprecation gem method signature
|
|
4
|
+
# or newer Rails method signatues.
|
|
5
|
+
# see: https://github.com/samvera/hyrax/issues/7303
|
|
6
|
+
# Remove when: dependencies no longer pull in the deprecation gem
|
|
7
|
+
|
|
8
|
+
module Deprecation
|
|
9
|
+
module DeprecationWarningPatch
|
|
10
|
+
def warn(*args)
|
|
11
|
+
# if the first argument being passed is a string,
|
|
12
|
+
# the caller is using the Rails-style signature,
|
|
13
|
+
# so we need to pass a dummy first argument to
|
|
14
|
+
# the older gem method
|
|
15
|
+
if args.first.is_a?(String)
|
|
16
|
+
super(nil, *args)
|
|
17
|
+
else
|
|
18
|
+
super(*args)
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
using_deprecation_gem = Object.const_source_location('Deprecation').first.match?('gems/deprecation')
|
|
25
|
+
|
|
26
|
+
# Only patch if we're using the separate deprecation gem
|
|
27
|
+
Deprecation.singleton_class.prepend(Deprecation::DeprecationWarningPatch) if using_deprecation_gem
|