hyrax 3.3.0 → 4.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.circleci/config.yml +41 -52
- data/.dassie/.env +2 -1
- data/.dassie/Gemfile +4 -4
- data/.dassie/app/assets/javascripts/application.js +8 -4
- data/.dassie/app/assets/stylesheets/application.css +1 -1
- data/.dassie/app/assets/stylesheets/hyrax.scss +1 -2
- data/.dassie/app/controllers/application_controller.rb +1 -3
- data/.dassie/app/controllers/catalog_controller.rb +23 -19
- data/.dassie/app/forms/collection_resource_form.rb +8 -0
- data/.dassie/app/indexers/collection_resource_indexer.rb +8 -0
- data/.dassie/app/models/collection_resource.rb +35 -0
- data/.dassie/app/models/user.rb +0 -3
- data/.dassie/config/application.rb +1 -1
- data/.dassie/config/initializers/file_services.rb +4 -0
- data/.dassie/config/initializers/hyrax.rb +12 -1
- data/.dassie/config/initializers/riiif.rb +1 -1
- data/.dassie/config/metadata/collection_resource.yaml +23 -0
- data/.dassie/db/schema.rb +5 -5
- data/.dassie/db/seeds.rb +74 -17
- data/.dassie/package.json +7 -7
- data/.dassie/spec/forms/collection_resource_form_spec.rb +13 -0
- data/.dassie/spec/indexers/collection_resource_indexer_spec.rb +14 -0
- data/.dassie/spec/models/collection_resource_spec.rb +13 -0
- data/.engine_cart.yml +2 -39
- data/.env +1 -0
- data/.github/release.yml +26 -0
- data/.gitignore +3 -0
- data/.regen +2 -1
- data/.rubocop.yml +1 -1
- data/.rubocop_fixme.yml +22 -3
- data/CONTAINERS.md +18 -13
- data/CONTRIBUTING.md +22 -24
- data/Dockerfile +4 -3
- data/Rakefile +0 -4
- data/app/actors/hyrax/actors/base_actor.rb +1 -1
- data/app/actors/hyrax/actors/create_with_remote_files_actor.rb +5 -11
- data/app/actors/hyrax/actors/file_actor.rb +9 -35
- data/app/actors/hyrax/actors/file_set_actor.rb +13 -62
- data/app/actors/hyrax/actors/transfer_request_actor.rb +3 -7
- data/app/assets/javascripts/hyrax/analytics_events.js +8 -2
- data/app/assets/javascripts/hyrax/app.js.erb +1 -1
- data/app/assets/javascripts/hyrax/autocomplete/linked_data.es6 +1 -3
- data/app/assets/javascripts/hyrax/batch.js +2 -2
- data/app/assets/javascripts/hyrax/batch_edit.js +4 -4
- data/app/assets/javascripts/hyrax/batch_select_all.js +13 -13
- data/app/assets/javascripts/hyrax/browse_everything.js +4 -2
- data/app/assets/javascripts/hyrax/collection_types.es6 +1 -1
- data/app/assets/javascripts/hyrax/collections/editor.es6 +5 -1
- data/app/assets/javascripts/hyrax/collections_v2.es6 +13 -0
- data/app/assets/javascripts/hyrax/dashboard_actions.js +5 -5
- data/app/assets/javascripts/hyrax/editor/controlled_vocabulary.es6 +3 -3
- data/app/assets/javascripts/hyrax/editor.es6 +3 -3
- data/app/assets/javascripts/hyrax/facets.js +6 -4
- data/app/assets/javascripts/hyrax/file_manager/member.es6 +1 -1
- data/app/assets/javascripts/hyrax/file_manager/save_manager.es6 +2 -2
- data/app/assets/javascripts/hyrax/file_manager/sorting.es6 +2 -2
- data/app/assets/javascripts/hyrax/file_manager.es6 +2 -17
- data/app/assets/javascripts/hyrax/notification.es6 +1 -1
- data/app/assets/javascripts/hyrax/permissions/registry.es6 +4 -4
- data/app/assets/javascripts/hyrax/permissions/user_controls.es6 +3 -1
- data/app/assets/javascripts/hyrax/relationships/confirm_remove_dialog.es6 +1 -1
- data/app/assets/javascripts/hyrax/relationships/control.es6 +2 -2
- data/app/assets/javascripts/hyrax/relationships/registry_entry.es6 +1 -1
- data/app/assets/javascripts/hyrax/reports-buttons.js +9 -9
- data/app/assets/javascripts/hyrax/save_work/required_fields.es6 +1 -1
- data/app/assets/javascripts/hyrax/save_work/save_work_control.es6 +6 -6
- data/app/assets/javascripts/hyrax/save_work/uploaded_files.es6 +2 -2
- data/app/assets/javascripts/hyrax/single_use_links_manager.js +1 -1
- data/app/assets/javascripts/hyrax/skip_to_content.js +1 -1
- data/app/assets/javascripts/hyrax/sorting.js +1 -1
- data/app/assets/javascripts/hyrax/trophy.js +1 -1
- data/app/assets/javascripts/hyrax/uploader.js +3 -3
- data/app/assets/javascripts/hyrax.js +1 -19
- data/app/assets/stylesheets/_bootstrap-default-overrides.scss +4 -4
- data/app/assets/stylesheets/hyrax/_accessibility.scss +1 -1
- data/app/assets/stylesheets/hyrax/_badge.scss +7 -0
- data/app/assets/stylesheets/hyrax/_batch-edit.scss +8 -8
- data/app/assets/stylesheets/hyrax/_browse_everything_overrides.scss +1 -1
- data/app/assets/stylesheets/hyrax/_buttons.scss +31 -1
- data/app/assets/stylesheets/hyrax/_card.scss +10 -0
- data/app/assets/stylesheets/hyrax/_catalog.scss +22 -48
- data/app/assets/stylesheets/hyrax/_collection_types.scss +1 -1
- data/app/assets/stylesheets/hyrax/_collections.scss +13 -13
- data/app/assets/stylesheets/hyrax/_facets.scss +46 -0
- data/app/assets/stylesheets/hyrax/_featured.scss +1 -1
- data/app/assets/stylesheets/hyrax/_file-listing.scss +3 -3
- data/app/assets/stylesheets/hyrax/_file_manager.scss +17 -17
- data/app/assets/stylesheets/hyrax/_file_sets.scss +1 -1
- data/app/assets/stylesheets/hyrax/_file_upload.scss +4 -4
- data/app/assets/stylesheets/hyrax/_fixedsticky.scss +1 -1
- data/app/assets/stylesheets/hyrax/_footer.scss +3 -3
- data/app/assets/stylesheets/hyrax/_form-progress.scss +9 -9
- data/app/assets/stylesheets/hyrax/_form.scss +3 -4
- data/app/assets/stylesheets/hyrax/_forms.scss +62 -29
- data/app/assets/stylesheets/hyrax/_header.scss +0 -17
- data/app/assets/stylesheets/hyrax/_home-page.scss +13 -51
- data/app/assets/stylesheets/hyrax/_html.scss +11 -0
- data/app/assets/stylesheets/hyrax/_hyrax.scss +16 -14
- data/app/assets/stylesheets/hyrax/_nestable.scss +1 -1
- data/app/assets/stylesheets/hyrax/_select_work_type.scss +2 -2
- data/app/assets/stylesheets/hyrax/_styles.scss +9 -14
- data/app/assets/stylesheets/hyrax/_users.scss +2 -2
- data/app/assets/stylesheets/hyrax/_variables.scss +20 -1
- data/app/assets/stylesheets/hyrax/_work-show.scss +21 -13
- data/app/assets/stylesheets/hyrax/blacklight_gallery.scss +75 -2
- data/app/assets/stylesheets/hyrax/dashboard.scss +70 -95
- data/app/assets/stylesheets/hyrax/sidebar.scss +39 -19
- data/app/controllers/concerns/hyrax/collections_controller_behavior.rb +10 -3
- data/app/controllers/concerns/hyrax/controller.rb +21 -0
- data/app/controllers/concerns/hyrax/works_controller_behavior.rb +87 -68
- data/app/controllers/hyrax/admin/admin_sets_controller.rb +105 -19
- data/app/controllers/hyrax/admin/permission_template_accesses_controller.rb +12 -19
- data/app/controllers/hyrax/batch_edits_controller.rb +13 -4
- data/app/controllers/hyrax/batch_uploads_controller.rb +4 -0
- data/app/controllers/hyrax/citations_controller.rb +1 -1
- data/app/controllers/hyrax/dashboard/collections_controller.rb +176 -83
- data/app/controllers/hyrax/dashboard/nest_collections_controller.rb +0 -32
- data/app/controllers/hyrax/file_sets_controller.rb +3 -0
- data/app/controllers/hyrax/homepage_controller.rb +0 -1
- data/app/controllers/hyrax/my_controller.rb +0 -6
- data/app/controllers/hyrax/single_use_links_controller.rb +1 -2
- data/app/controllers/hyrax/single_use_links_viewer_controller.rb +1 -1
- data/app/forms/hyrax/forms/administrative_set_form.rb +19 -1
- data/app/forms/hyrax/forms/batch_edit_form.rb +1 -1
- data/app/forms/hyrax/forms/dashboard/nest_collection_form.rb +21 -6
- data/app/forms/hyrax/forms/pcdm_collection_form.rb +30 -2
- data/app/forms/hyrax/forms/permission_template_form.rb +17 -9
- data/app/forms/hyrax/forms/resource_form.rb +23 -5
- data/app/forms/hyrax/forms/widgets/admin_set_visibility.rb +1 -1
- data/app/helpers/hyrax/collections_helper.rb +14 -0
- data/app/helpers/hyrax/facets_helper.rb +150 -0
- data/app/helpers/hyrax/hyrax_helper_behavior.rb +5 -5
- data/app/helpers/hyrax/membership_helper.rb +1 -1
- data/app/helpers/hyrax/trophy_helper.rb +1 -1
- data/app/indexers/hyrax/administrative_set_indexer.rb +8 -2
- data/app/indexers/hyrax/basic_metadata_indexer.rb +3 -9
- data/app/indexers/hyrax/deep_indexing_service.rb +1 -1
- data/app/indexers/hyrax/file_set_indexer.rb +1 -0
- data/app/indexers/hyrax/pcdm_collection_indexer.rb +3 -2
- data/app/indexers/hyrax/thumbnail_indexer.rb +31 -0
- data/app/indexers/hyrax/valkyrie_file_set_indexer.rb +6 -6
- data/app/indexers/hyrax/valkyrie_indexer.rb +4 -2
- data/app/indexers/hyrax/valkyrie_work_indexer.rb +13 -0
- data/app/inputs/controlled_vocabulary_input.rb +2 -0
- data/app/jobs/change_depositor_event_job.rb +47 -0
- data/app/jobs/characterize_job.rb +40 -3
- data/app/jobs/concerns/hyrax/members_permission_job_behavior.rb +1 -1
- data/app/jobs/create_derivatives_job.rb +4 -2
- data/app/jobs/hyrax/propagate_change_depositor_job.rb +32 -0
- data/app/jobs/import_url_job.rb +4 -6
- data/app/jobs/ingest_local_file_job.rb +5 -13
- data/app/jobs/inherit_permissions_job.rb +2 -6
- data/app/jobs/valkyrie_create_derivatives_job.rb +25 -0
- data/app/jobs/valkyrie_ingest_job.rb +41 -35
- data/app/models/admin_set.rb +2 -2
- data/app/models/collection_branding_info.rb +8 -6
- data/app/models/concerns/hyrax/collection_behavior.rb +4 -4
- data/app/models/concerns/hyrax/file_set/characterization.rb +7 -1
- data/app/models/concerns/hyrax/file_set_behavior.rb +1 -1
- data/app/models/concerns/hyrax/in_admin_set.rb +0 -7
- data/app/models/concerns/hyrax/solr_document/metadata.rb +1 -0
- data/app/models/concerns/hyrax/solr_document_behavior.rb +9 -3
- data/app/models/concerns/hyrax/user.rb +14 -3
- data/app/models/concerns/hyrax/work_behavior.rb +1 -2
- data/app/models/content_block.rb +0 -6
- data/app/models/featured_work_list.rb +0 -1
- data/app/models/hyrax/administrative_set.rb +36 -1
- data/app/models/hyrax/collection_type.rb +2 -2
- data/app/models/hyrax/file_metadata.rb +36 -2
- data/app/models/hyrax/file_set.rb +43 -4
- data/app/models/hyrax/group.rb +19 -0
- data/app/models/hyrax/pcdm_collection.rb +56 -1
- data/app/models/hyrax/permission_template.rb +5 -34
- data/app/models/hyrax/work.rb +91 -0
- data/app/models/job_io_wrapper.rb +1 -1
- data/app/models/proxy_deposit_request.rb +1 -1
- data/app/presenters/hyrax/admin/repository_object_presenter.rb +0 -2
- data/app/presenters/hyrax/admin_set_presenter.rb +2 -2
- data/app/presenters/hyrax/collapsable_section_presenter.rb +2 -2
- data/app/presenters/hyrax/collection_presenter.rb +1 -1
- data/app/presenters/hyrax/fixity_status_presenter.rb +2 -2
- data/app/presenters/hyrax/member_presenter_factory.rb +2 -4
- data/app/presenters/hyrax/menu_presenter.rb +1 -1
- data/app/presenters/hyrax/pcdm_member_presenter_factory.rb +2 -2
- data/app/presenters/hyrax/permission_badge.rb +7 -7
- data/app/presenters/hyrax/work_show_presenter.rb +10 -6
- data/app/presenters/hyrax/workflow_presenter.rb +1 -1
- data/app/renderers/hyrax/renderers/external_link_attribute_renderer.rb +1 -1
- data/app/search_builders/hyrax/dashboard/collections_search_builder.rb +2 -2
- data/app/search_builders/hyrax/dashboard/managed_search_filters.rb +44 -4
- data/app/search_builders/hyrax/dashboard/nested_collections_search_builder.rb +2 -2
- data/app/search_builders/hyrax/deposit_search_builder.rb +1 -1
- data/app/search_builders/hyrax/my/collections_search_builder.rb +11 -4
- data/app/search_builders/hyrax/nested_collections_parent_search_builder.rb +10 -1
- data/app/search_builders/hyrax/single_result.rb +1 -1
- data/app/search_builders/hyrax/stats/work_status_search_builder.rb +1 -1
- data/app/services/hyrax/access_control_list.rb +20 -6
- data/app/services/hyrax/adapters/nesting_index_adapter.rb +4 -4
- data/app/services/hyrax/admin_set_create_service.rb +21 -37
- data/app/services/hyrax/change_content_depositor_service.rb +2 -2
- data/app/services/hyrax/change_depositor_service.rb +70 -0
- data/app/services/hyrax/characterization/valkyrie_characterization_service.rb +4 -6
- data/app/services/hyrax/collection_member_service.rb +1 -2
- data/app/services/hyrax/collections/collection_member_service.rb +3 -5
- data/app/services/hyrax/collections/nested_collection_query_service.rb +24 -12
- data/app/services/hyrax/collections/search_service.rb +0 -1
- data/app/services/hyrax/custom_queries/navigators/child_file_sets_navigator.rb +45 -0
- data/app/services/hyrax/custom_queries/navigators/child_filesets_navigator.rb +7 -2
- data/app/services/hyrax/custom_queries/navigators/parent_work_navigator.rb +54 -0
- data/app/services/hyrax/custom_queries.rb +25 -0
- data/app/services/hyrax/default_middleware_stack.rb +3 -0
- data/app/services/hyrax/file_set_csv_service.rb +1 -1
- data/app/services/hyrax/file_set_derivatives_service.rb +21 -2
- data/app/services/hyrax/file_set_type_service.rb +2 -5
- data/app/services/hyrax/graph_exporter.rb +3 -8
- data/app/services/hyrax/iiif_authorization_service.rb +1 -1
- data/app/services/hyrax/listeners/file_metadata_listener.rb +20 -1
- data/app/services/hyrax/listeners/member_cleanup_listener.rb +27 -11
- data/app/services/hyrax/listeners/metadata_index_listener.rb +39 -0
- data/app/services/hyrax/listeners/proxy_deposit_listener.rb +14 -8
- data/app/services/hyrax/location_service.rb +33 -0
- data/app/services/hyrax/multiple_membership_checker.rb +46 -1
- data/app/services/hyrax/resource_visibility_propagator.rb +1 -1
- data/app/services/hyrax/search_service.rb +1 -81
- data/app/services/hyrax/simple_schema_loader.rb +5 -1
- data/app/services/hyrax/solr_query_service.rb +12 -7
- data/app/services/hyrax/statistics/depositors/summary.rb +1 -3
- data/app/services/hyrax/thumbnail_path_service.rb +1 -1
- data/app/services/hyrax/valkyrie_persist_derivatives.rb +50 -0
- data/app/services/hyrax/valkyrie_upload.rb +106 -0
- data/app/services/hyrax/work_query_service.rb +1 -1
- data/app/services/hyrax/work_uploads_handler.rb +0 -10
- data/app/services/hyrax/workflow/workflow_importer.rb +7 -9
- data/app/services/hyrax/workflow/workflow_schema.rb +3 -5
- data/app/services/hyrax/working_directory.rb +2 -0
- data/app/strategies/hyrax/strategies/yaml_strategy.rb +4 -6
- data/app/uploaders/hyrax/uploaded_file_uploader.rb +4 -4
- data/app/utils/hyrax/data_destroyers/collection_branding_destroyer.rb +29 -0
- data/app/utils/hyrax/data_destroyers/collection_types_destroyer.rb +26 -0
- data/app/utils/hyrax/data_destroyers/default_admin_set_id_cache_destroyer.rb +26 -0
- data/app/utils/hyrax/data_destroyers/featured_works_destroyer.rb +27 -0
- data/app/utils/hyrax/data_destroyers/permission_templates_destroyer.rb +30 -0
- data/app/utils/hyrax/data_destroyers/repository_metadata_destroyer.rb +42 -0
- data/app/utils/hyrax/data_destroyers/stats_destroyer.rb +33 -0
- data/app/utils/hyrax/data_maintenance.rb +51 -0
- data/app/utils/hyrax/required_data_seeder.rb +21 -0
- data/app/utils/hyrax/required_data_seeders/collection_seeder.rb +26 -0
- data/app/utils/hyrax/required_data_seeders/collection_type_seeder.rb +36 -0
- data/app/utils/hyrax/test_data_seeder.rb +24 -0
- data/app/utils/hyrax/test_data_seeders/collection_seeder.rb +91 -0
- data/app/utils/hyrax/test_data_seeders/collection_type_seeder.rb +72 -0
- data/app/utils/hyrax/test_data_seeders/user_seeder.rb +52 -0
- data/app/validators/hyrax/collection_membership_validator.rb +39 -0
- data/app/views/_controls.html.erb +14 -18
- data/app/views/_logo.html.erb +0 -1
- data/app/views/_masthead.html.erb +8 -18
- data/app/views/_user_util_links.html.erb +16 -18
- data/app/views/catalog/_document.html.erb +2 -2
- data/app/views/catalog/_document_list.html.erb +1 -1
- data/app/views/catalog/_facet_limit.html.erb +1 -1
- data/app/views/catalog/_index_gallery_collection_wrapper.html.erb +1 -1
- data/app/views/catalog/_index_header_list_collection.html.erb +2 -2
- data/app/views/catalog/_index_header_list_default.html.erb +9 -2
- data/app/views/catalog/_index_list_default.html.erb +7 -5
- data/app/views/catalog/_search_form.html.erb +13 -15
- data/app/views/catalog/_thumbnail_list_collection.html.erb +2 -2
- data/app/views/catalog/_thumbnail_list_default.html.erb +9 -4
- data/app/views/catalog/facet.html.erb +21 -0
- data/app/views/catalog/index.html.erb +6 -4
- data/app/views/collections/edit_fields/_based_near.html.erb +7 -7
- data/app/views/hyrax/admin/admin_sets/_form.html.erb +16 -16
- data/app/views/hyrax/admin/admin_sets/_form_participant_table.html.erb +35 -33
- data/app/views/hyrax/admin/admin_sets/_form_participants.html.erb +11 -10
- data/app/views/hyrax/admin/admin_sets/_form_visibility.html.erb +26 -26
- data/app/views/hyrax/admin/admin_sets/_form_workflow.erb +6 -6
- data/app/views/hyrax/admin/admin_sets/_show_actions.html.erb +3 -3
- data/app/views/hyrax/admin/admin_sets/_show_document_list_row.html.erb +9 -9
- data/app/views/hyrax/admin/admin_sets/index.html.erb +3 -3
- data/app/views/hyrax/admin/admin_sets/show.html.erb +4 -4
- data/app/views/hyrax/admin/analytics/_date_range_form.html.erb +3 -3
- data/app/views/hyrax/admin/analytics/collection_reports/_custom_range.html.erb +3 -3
- data/app/views/hyrax/admin/analytics/collection_reports/_monthly_summary.html.erb +3 -3
- data/app/views/hyrax/admin/analytics/collection_reports/_summary.html.erb +3 -3
- data/app/views/hyrax/admin/analytics/collection_reports/_top_collections.html.erb +7 -7
- data/app/views/hyrax/admin/analytics/collection_reports/index.html.erb +6 -6
- data/app/views/hyrax/admin/analytics/collection_reports/show.html.erb +10 -10
- data/app/views/hyrax/admin/analytics/work_reports/_custom_range.html.erb +3 -3
- data/app/views/hyrax/admin/analytics/work_reports/_monthly_summary.html.erb +3 -3
- data/app/views/hyrax/admin/analytics/work_reports/_summary.html.erb +3 -3
- data/app/views/hyrax/admin/analytics/work_reports/_top_file_set_downloads.html.erb +5 -5
- data/app/views/hyrax/admin/analytics/work_reports/_top_works.html.erb +7 -7
- data/app/views/hyrax/admin/analytics/work_reports/_work_counts.html.erb +4 -4
- data/app/views/hyrax/admin/analytics/work_reports/_work_files.html.erb +5 -5
- data/app/views/hyrax/admin/analytics/work_reports/index.html.erb +7 -7
- data/app/views/hyrax/admin/analytics/work_reports/show.html.erb +10 -10
- data/app/views/hyrax/admin/appearances/show.html.erb +2 -2
- data/app/views/hyrax/admin/collection_types/_form.html.erb +24 -23
- data/app/views/hyrax/admin/collection_types/_form_appearance.html.erb +2 -2
- data/app/views/hyrax/admin/collection_types/_form_participants.html.erb +4 -4
- data/app/views/hyrax/admin/collection_types/_form_settings.html.erb +9 -9
- data/app/views/hyrax/admin/collection_types/index.html.erb +7 -7
- data/app/views/hyrax/admin/features/index.html.erb +3 -3
- data/app/views/hyrax/admin/stats/_new_users.html.erb +1 -1
- data/app/views/hyrax/admin/stats/show.html.erb +4 -6
- data/app/views/hyrax/admin/users/index.html.erb +3 -3
- data/app/views/hyrax/admin/workflow_roles/index.html.erb +8 -8
- data/app/views/hyrax/admin/workflows/index.html.erb +13 -13
- data/app/views/hyrax/base/_citations.html.erb +6 -6
- data/app/views/hyrax/base/_currently_shared.html.erb +3 -3
- data/app/views/hyrax/base/_file_manager_actions.html.erb +5 -3
- data/app/views/hyrax/base/_file_manager_member.html.erb +5 -5
- data/app/views/hyrax/base/_file_manager_member_resource_options.html.erb +6 -6
- data/app/views/hyrax/base/_file_manager_members.html.erb +1 -1
- data/app/views/hyrax/base/_file_manager_thumbnail.html.erb +1 -1
- data/app/views/hyrax/base/_form.html.erb +1 -1
- data/app/views/hyrax/base/_form_child_work_relationships.html.erb +4 -4
- data/app/views/hyrax/base/_form_files.html.erb +9 -9
- data/app/views/hyrax/base/_form_member_of_collections.html.erb +3 -3
- data/app/views/hyrax/base/_form_metadata.html.erb +1 -1
- data/app/views/hyrax/base/_form_permission.html.erb +30 -20
- data/app/views/hyrax/base/_form_permission_under_embargo.html.erb +1 -1
- data/app/views/hyrax/base/_form_permission_under_lease.html.erb +1 -1
- data/app/views/hyrax/base/_form_progress.html.erb +6 -6
- data/app/views/hyrax/base/_form_relationships.html.erb +1 -1
- data/app/views/hyrax/base/_form_rendering.html.erb +1 -1
- data/app/views/hyrax/base/_form_representative.html.erb +1 -1
- data/app/views/hyrax/base/_form_share.html.erb +6 -6
- data/app/views/hyrax/base/_form_thumbnail.html.erb +1 -1
- data/app/views/hyrax/base/_form_visibility_component.html.erb +15 -15
- data/app/views/hyrax/base/_guts4form.html.erb +12 -20
- data/app/views/hyrax/base/_member.html.erb +1 -1
- data/app/views/hyrax/base/_metadata.html.erb +1 -1
- data/app/views/hyrax/base/_show_actions.html.erb +9 -9
- data/app/views/hyrax/base/_work_button_row.html.erb +16 -15
- data/app/views/hyrax/base/_workflow_actions.html.erb +10 -10
- data/app/views/hyrax/base/_workflow_actions_widget.erb +1 -1
- data/app/views/hyrax/base/file_manager.html.erb +4 -5
- data/app/views/hyrax/base/inspect_work.html.erb +1 -1
- data/app/views/hyrax/base/show.html.erb +12 -12
- data/app/views/hyrax/base/unavailable.html.erb +2 -2
- data/app/views/hyrax/batch_edits/_check_all.html.erb +0 -1
- data/app/views/hyrax/batch_edits/_delete_selected.html.erb +1 -1
- data/app/views/hyrax/batch_edits/edit.html.erb +26 -18
- data/app/views/hyrax/collections/_bookmark_control.html.erb +2 -2
- data/app/views/hyrax/collections/_list_collections.html.erb +6 -6
- data/app/views/hyrax/collections/_list_works.html.erb +3 -1
- data/app/views/hyrax/collections/_search_form.html.erb +4 -4
- data/app/views/hyrax/collections/_show_document_list_row.html.erb +5 -2
- data/app/views/hyrax/collections/_sort_and_per_page.html.erb +3 -3
- data/app/views/hyrax/collections/_view_type_group.html.erb +2 -2
- data/app/views/hyrax/contact_form/new.html.erb +12 -13
- data/app/views/hyrax/content_blocks/_form.html.erb +29 -23
- data/app/views/hyrax/content_blocks/templates/agreement.html.erb +3 -3
- data/app/views/hyrax/dashboard/_admin_sets.html.erb +22 -28
- data/app/views/hyrax/dashboard/_index_partials/_current_proxy_rights.html.erb +2 -2
- data/app/views/hyrax/dashboard/_index_partials/_proxy_rights.html.erb +4 -4
- data/app/views/hyrax/dashboard/_index_partials/_transfers.html.erb +2 -2
- data/app/views/hyrax/dashboard/_repository_growth.html.erb +28 -28
- data/app/views/hyrax/dashboard/_resource_type_graph.html.erb +4 -4
- data/app/views/hyrax/dashboard/_sidebar.html.erb +3 -3
- data/app/views/hyrax/dashboard/_tabs.html.erb +6 -2
- data/app/views/hyrax/dashboard/_user_activity.html.erb +22 -19
- data/app/views/hyrax/dashboard/_visibility_graph.html.erb +4 -4
- data/app/views/hyrax/dashboard/_work_type_graph.html.erb +4 -4
- data/app/views/hyrax/dashboard/collections/_batch_edits_actions.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_bookmark_control.html.erb +2 -2
- data/app/views/hyrax/dashboard/collections/_default_group.html.erb +2 -2
- data/app/views/hyrax/dashboard/collections/_edit_actions.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_form.html.erb +48 -33
- data/app/views/hyrax/dashboard/collections/_form_branding.html.erb +20 -19
- data/app/views/hyrax/dashboard/collections/_form_discovery.html.erb +14 -7
- data/app/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb +7 -7
- data/app/views/hyrax/dashboard/collections/_form_share.html.erb +13 -11
- data/app/views/hyrax/dashboard/collections/_form_share_table.html.erb +34 -31
- data/app/views/hyrax/dashboard/collections/_list_collections.html.erb +3 -3
- data/app/views/hyrax/dashboard/collections/_list_works.html.erb +3 -1
- data/app/views/hyrax/dashboard/collections/_modal_remove_from_collection.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_modal_remove_sub_collection.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_show_add_items_actions.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_show_descriptions.html.erb +5 -3
- data/app/views/hyrax/dashboard/collections/_show_document_list_menu.html.erb +4 -4
- data/app/views/hyrax/dashboard/collections/_show_document_list_row.html.erb +12 -10
- data/app/views/hyrax/dashboard/collections/_show_parent_collection_row.html.erb +2 -2
- data/app/views/hyrax/dashboard/collections/_sort_and_per_page.html.erb +4 -4
- data/app/views/hyrax/dashboard/collections/_subcollection_list.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_work_action_menu.html.erb +10 -10
- data/app/views/hyrax/dashboard/collections/show.html.erb +4 -4
- data/app/views/hyrax/dashboard/profiles/_edit_primary.html.erb +21 -21
- data/app/views/hyrax/dashboard/profiles/_trophy_edit.html.erb +5 -5
- data/app/views/hyrax/dashboard/profiles/_zotero.html.erb +2 -2
- data/app/views/hyrax/dashboard/profiles/edit.html.erb +2 -2
- data/app/views/hyrax/dashboard/profiles/show.html.erb +3 -3
- data/app/views/hyrax/dashboard/show_admin.html.erb +36 -34
- data/app/views/hyrax/dashboard/show_user.html.erb +16 -16
- data/app/views/hyrax/dashboard/sidebar/_activity.html.erb +11 -11
- data/app/views/hyrax/dashboard/sidebar/_configuration.html.erb +8 -8
- data/app/views/hyrax/dashboard/sidebar/_repository_content.html.erb +3 -1
- data/app/views/hyrax/dashboard/sidebar/_tasks.html.erb +5 -1
- data/app/views/hyrax/dashboard/works/_default_group.html.erb +1 -1
- data/app/views/hyrax/dashboard/works/_list_works.html.erb +5 -2
- data/app/views/hyrax/depositors/index.html.erb +2 -2
- data/app/views/hyrax/embargoes/edit.html.erb +11 -11
- data/app/views/hyrax/embargoes/index.html.erb +18 -6
- data/app/views/hyrax/file_sets/_actions.html.erb +7 -8
- data/app/views/hyrax/file_sets/_descriptions.html.erb +1 -1
- data/app/views/hyrax/file_sets/_extra_fields_modal.html.erb +1 -1
- data/app/views/hyrax/file_sets/_form.html.erb +1 -1
- data/app/views/hyrax/file_sets/_permission_form.html.erb +33 -29
- data/app/views/hyrax/file_sets/_show_actions.html.erb +2 -2
- data/app/views/hyrax/file_sets/_show_details.html.erb +27 -17
- data/app/views/hyrax/file_sets/_single_use_link_rows.html.erb +2 -2
- data/app/views/hyrax/file_sets/_single_use_links.html.erb +2 -2
- data/app/views/hyrax/file_sets/_versioning.html.erb +9 -9
- data/app/views/hyrax/file_sets/edit.html.erb +17 -11
- data/app/views/hyrax/file_sets/media_display/_image.html.erb +4 -4
- data/app/views/hyrax/file_sets/show.html.erb +2 -2
- data/app/views/hyrax/homepage/_announcement.html.erb +2 -2
- data/app/views/hyrax/homepage/_explore_collections.html.erb +6 -4
- data/app/views/hyrax/homepage/_featured_fields.html.erb +1 -1
- data/app/views/hyrax/homepage/_featured_works.html.erb +1 -1
- data/app/views/hyrax/homepage/_home_content.html.erb +24 -10
- data/app/views/hyrax/homepage/_marketing.html.erb +1 -1
- data/app/views/hyrax/homepage/_recent_document.html.erb +4 -1
- data/app/views/hyrax/homepage/_sortable_featured.html.erb +3 -3
- data/app/views/hyrax/homepage/index.html.erb +4 -4
- data/app/views/hyrax/leases/edit.html.erb +11 -11
- data/app/views/hyrax/leases/index.html.erb +18 -6
- data/app/views/hyrax/my/_admin_set_action_menu.html.erb +5 -5
- data/app/views/hyrax/my/_collection_action_menu.html.erb +6 -6
- data/app/views/hyrax/my/_constraints.html.erb +2 -2
- data/app/views/hyrax/my/_document_list.html.erb +1 -1
- data/app/views/hyrax/my/_facet_layout.html.erb +1 -2
- data/app/views/hyrax/my/_facet_limit.html.erb +4 -4
- data/app/views/hyrax/my/_facet_pagination.html.erb +1 -22
- data/app/views/hyrax/my/_facet_pivot.html.erb +1 -1
- data/app/views/hyrax/my/_facet_selected.html.erb +1 -1
- data/app/views/hyrax/my/_search_form.html.erb +7 -8
- data/app/views/hyrax/my/_sort_and_per_page.html.erb +10 -12
- data/app/views/hyrax/my/_work_action_menu.html.erb +12 -14
- data/app/views/hyrax/my/collections/_default_group.html.erb +2 -2
- data/app/views/hyrax/my/collections/_facets.html.erb +2 -2
- data/app/views/hyrax/my/collections/_list_collections.html.erb +3 -3
- 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/collections/_modal_collection_types_to_create.html.erb +5 -5
- data/app/views/hyrax/my/collections/_modal_delete_collection.html.erb +1 -1
- data/app/views/hyrax/my/collections/_modal_delete_empty_collection.html.erb +1 -1
- data/app/views/hyrax/my/collections/_modal_delete_selected_collections.html.erb +1 -1
- data/app/views/hyrax/my/collections/_tabs.html.erb +11 -4
- data/app/views/hyrax/my/collections/index.html.erb +6 -5
- data/app/views/hyrax/my/facet.html.erb +17 -16
- data/app/views/hyrax/my/index.html.erb +2 -2
- data/app/views/hyrax/my/works/_batch_actions.html.erb +1 -1
- data/app/views/hyrax/my/works/_default_group.html.erb +1 -1
- data/app/views/hyrax/my/works/_facets.html.erb +2 -2
- data/app/views/hyrax/my/works/_list_works.html.erb +7 -9
- data/app/views/hyrax/my/works/_tabs.html.erb +9 -4
- data/app/views/hyrax/my/works/index.html.erb +22 -18
- data/app/views/hyrax/notifications/_notifications.html.erb +1 -1
- data/app/views/hyrax/notifications/index.html.erb +4 -4
- data/app/views/hyrax/operations/index.html.erb +1 -1
- data/app/views/hyrax/operations/show.html.erb +2 -2
- data/app/views/hyrax/pages/_form.html.erb +76 -64
- data/app/views/hyrax/permissions/confirm.html.erb +4 -4
- data/app/views/hyrax/permissions/confirm_access.html.erb +4 -4
- data/app/views/hyrax/stats/file.html.erb +1 -1
- data/app/views/hyrax/stats/work.html.erb +1 -1
- data/app/views/hyrax/transfers/_received.html.erb +4 -4
- data/app/views/hyrax/transfers/index.html.erb +8 -8
- data/app/views/hyrax/uploads/_js_templates.html.erb +14 -14
- data/app/views/hyrax/uploads/_js_templates_branding.html.erb +5 -5
- data/app/views/hyrax/uploads/_js_templates_versioning.html.erb +15 -15
- data/app/views/hyrax/users/_activity.html.erb +3 -3
- data/app/views/hyrax/users/_contributions.html.erb +3 -3
- data/app/views/hyrax/users/_left_sidebar.html.erb +1 -1
- data/app/views/hyrax/users/_profile_tabs.html.erb +16 -8
- data/app/views/hyrax/users/_search_form.html.erb +2 -2
- data/app/views/hyrax/users/_user.html.erb +5 -5
- data/app/views/hyrax/users/_user_info.html.erb +4 -4
- data/app/views/hyrax/users/_vitals.html.erb +3 -3
- data/app/views/hyrax/users/show.html.erb +2 -2
- data/app/views/layouts/hyrax/dashboard.html.erb +4 -4
- data/app/views/layouts/hyrax.html.erb +4 -3
- data/app/views/shared/_appearance_styles.html.erb +8 -8
- data/app/views/shared/_footer.html.erb +1 -1
- data/app/views/shared/_locale_picker.html.erb +5 -8
- data/app/views/shared/_nav_safety_modal.html.erb +2 -2
- data/app/views/shared/_select_work_type_modal.html.erb +2 -2
- data/chart/hyrax/Chart.yaml +11 -7
- data/chart/hyrax/README.md +22 -1
- data/chart/hyrax/templates/_helpers.tpl +4 -0
- data/chart/hyrax/templates/cron-embargo.yaml +5 -0
- data/chart/hyrax/templates/cron-lease.yaml +5 -0
- data/chart/hyrax/templates/deployment-worker.yaml +11 -0
- data/chart/hyrax/templates/ingress.yaml +7 -6
- data/chart/hyrax/values.yaml +152 -0
- data/config/features.rb +48 -50
- data/config/initializers/listeners.rb +0 -1
- data/config/initializers/{valkryrie_storage.rb → storage_adapter_initializer.rb} +5 -0
- data/config/locales/hyrax.de.yml +22 -21
- data/config/locales/hyrax.en.yml +34 -32
- data/config/locales/hyrax.es.yml +16 -15
- data/config/locales/hyrax.fr.yml +9 -8
- data/config/locales/hyrax.it.yml +9 -8
- data/config/locales/hyrax.pt-BR.yml +8 -7
- data/config/locales/hyrax.zh.yml +8 -7
- data/config/metadata/basic_metadata.yaml +2 -0
- data/config/metadata/core_metadata.yaml +1 -1
- data/docker-compose.yml +49 -43
- data/documentation/developing-your-hyrax-based-app.md +1 -1
- data/documentation/legacyREADME.md +1 -1
- data/hyrax.gemspec +15 -22
- data/karma.conf.js +104 -0
- data/lib/generators/hyrax/assets_generator.rb +2 -5
- data/lib/generators/hyrax/collection_resource/USAGE +20 -0
- data/lib/generators/hyrax/collection_resource/collection_resource_generator.rb +133 -0
- data/lib/generators/hyrax/collection_resource/templates/collection.rb.erb +34 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_form.rb.erb +7 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_form_spec.rb.erb +13 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_indexer.rb.erb +7 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_indexer_spec.rb.erb +13 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_metadata.yaml +22 -0
- data/lib/generators/hyrax/collection_resource/templates/collection_spec.rb.erb +12 -0
- data/lib/generators/hyrax/install_generator.rb +9 -24
- data/lib/generators/hyrax/templates/catalog_controller.rb +20 -13
- data/lib/generators/hyrax/templates/config/initializers/riiif.rb +1 -1
- data/lib/generators/hyrax/templates/config/locales/hyrax.de.yml +1 -1
- data/lib/generators/hyrax/templates/config/locales/hyrax.en.yml +1 -1
- data/lib/generators/hyrax/templates/config/locales/hyrax.es.yml +1 -1
- data/lib/generators/hyrax/templates/config/locales/hyrax.fr.yml +1 -1
- data/lib/generators/hyrax/templates/config/locales/hyrax.it.yml +1 -1
- data/lib/generators/hyrax/templates/config/locales/hyrax.pt-BR.yml +1 -1
- data/lib/generators/hyrax/templates/config/locales/hyrax.zh.yml +1 -1
- data/lib/generators/hyrax/templates/hyrax.scss +1 -2
- data/lib/generators/hyrax/templates/package.json +7 -8
- data/lib/hyrax/administrative_set_name.rb +18 -0
- data/lib/hyrax/collection_name.rb +2 -0
- data/lib/hyrax/configuration.rb +22 -40
- data/lib/hyrax/controlled_vocabularies/location.rb +9 -2
- data/lib/hyrax/controlled_vocabularies/resource_label_caching.rb +42 -0
- data/lib/hyrax/controlled_vocabularies.rb +1 -0
- data/lib/hyrax/engine.rb +1 -2
- data/lib/hyrax/publisher.rb +45 -0
- data/lib/hyrax/schema.rb +16 -13
- data/lib/hyrax/specs/capybara.rb +6 -4
- data/lib/hyrax/specs/shared_specs/hydra_works.rb +11 -5
- data/lib/hyrax/specs/shared_specs/indexers.rb +117 -3
- data/lib/hyrax/transactions/admin_set_create.rb +2 -1
- data/lib/hyrax/transactions/admin_set_destroy.rb +22 -0
- data/lib/hyrax/transactions/admin_set_update.rb +21 -0
- data/lib/hyrax/transactions/collection_destroy.rb +22 -0
- data/lib/hyrax/transactions/collection_update.rb +5 -2
- data/lib/hyrax/transactions/container.rb +76 -56
- data/lib/hyrax/transactions/steps/change_depositor.rb +46 -0
- data/lib/hyrax/transactions/steps/check_for_empty_admin_set.rb +36 -0
- data/lib/hyrax/transactions/steps/delete_access_control.rb +32 -0
- data/lib/hyrax/transactions/steps/delete_resource.rb +19 -3
- data/lib/hyrax/transactions/steps/save.rb +24 -6
- data/lib/hyrax/transactions/steps/save_access_control.rb +2 -2
- data/lib/hyrax/transactions/steps/save_collection_banner.rb +59 -0
- data/lib/hyrax/transactions/steps/save_collection_logo.rb +109 -0
- data/lib/hyrax/transactions/steps/set_user_as_creator.rb +41 -0
- data/lib/hyrax/transactions/steps/update_work_members.rb +51 -0
- data/lib/hyrax/transactions/work_create.rb +1 -1
- data/lib/hyrax/transactions/work_destroy.rb +2 -1
- data/lib/hyrax/transactions/{update_work.rb → work_update.rb} +4 -3
- data/lib/hyrax/version.rb +1 -1
- data/lib/valkyrie/indexing/solr/indexing_adapter.rb +1 -1
- data/lib/wings/active_fedora_converter/file_metadata_node.rb +48 -0
- data/lib/wings/active_fedora_converter/instance_builder.rb +68 -0
- data/lib/wings/active_fedora_converter.rb +3 -3
- data/lib/wings/attribute_transformer.rb +5 -1
- data/lib/wings/services/custom_queries/find_file_metadata.rb +19 -8
- data/lib/wings/setup.rb +3 -1
- data/lib/wings/valkyrie/persister.rb +4 -1
- data/lib/wings/valkyrie/query_service.rb +6 -7
- data/lib/wings/valkyrie/storage.rb +7 -1
- data/package.json +11 -0
- data/tasks/hyrax_dev.rake +32 -0
- data/template.rb +1 -1
- data/vendor/assets/javascripts/dataTables.bootstrap4.js +184 -0
- data/vendor/assets/javascripts/fileupload/jquery.fileupload-ui.js +1 -1
- data/vendor/assets/javascripts/fileupload/jquery.fileupload.js +2 -2
- data/vendor/assets/javascripts/fileupload/jquery.iframe-transport.js +1 -1
- data/vendor/assets/javascripts/handlebars.js +5214 -0
- data/vendor/assets/javascripts/jquery-ui.js +19057 -0
- data/vendor/assets/javascripts/jquery.dataTables.js +15336 -0
- data/vendor/assets/javascripts/morris/morris.min.js +9 -1
- data/vendor/assets/javascripts/morris/raphael-min.js +4 -6
- data/vendor/assets/javascripts/nestable.js +1 -1
- data/vendor/assets/stylesheets/dataTables.bootstrap4.css +307 -0
- data/vendor/assets/stylesheets/jquery-ui.css +1315 -0
- data/vendor/assets/stylesheets/morris.css +3 -0
- metadata +162 -155
- data/app/actors/hyrax/actors/initialize_workflow_actor.rb +0 -35
- data/app/helpers/hyrax/url_helper.rb +0 -13
- data/app/jobs/content_depositor_change_event_job.rb +0 -47
- data/app/models/concerns/hyrax/with_file_sets.rb +0 -17
- data/lib/hyrax/transactions/create_work.rb +0 -62
- data/lib/hyrax/transactions/destroy_work.rb +0 -25
- data/lib/hyrax/transactions/steps/apply_collection_permission_template.rb +0 -32
- data/lib/hyrax/transactions/steps/apply_permission_template.rb +0 -30
- data/lib/hyrax/transactions/steps/apply_visibility.rb +0 -39
- data/lib/hyrax/transactions/steps/destroy_work.rb +0 -25
- data/lib/hyrax/transactions/steps/ensure_permission_template.rb +0 -27
- data/lib/hyrax/transactions/steps/save_work.rb +0 -35
- data/lib/wings/services/file_converter_service.rb +0 -19
- data/lib/wings/services/file_metadata_builder.rb +0 -94
- data/vendor/assets/javascripts/handlebars-v4.0.5.js +0 -4612
- data/vendor/assets/stylesheets/morris.js/0.5.1/morris.css +0 -2
@@ -4,7 +4,8 @@ module Hyrax
|
|
4
4
|
include Hyrax::CollectionsControllerBehavior
|
5
5
|
|
6
6
|
before_action :authenticate_user!
|
7
|
-
load_and_authorize_resource
|
7
|
+
load_and_authorize_resource instance_name: :admin_set,
|
8
|
+
class: Hyrax.config.admin_set_model
|
8
9
|
|
9
10
|
# Catch permission errors
|
10
11
|
rescue_from Hydra::AccessDenied, CanCan::AccessDenied, with: :deny_adminset_access
|
@@ -61,28 +62,52 @@ module Hyrax
|
|
61
62
|
end
|
62
63
|
|
63
64
|
def update
|
64
|
-
|
65
|
-
|
65
|
+
case @admin_set
|
66
|
+
when Valkyrie::Resource
|
67
|
+
valkyrie_update
|
66
68
|
else
|
67
|
-
|
68
|
-
render :edit
|
69
|
+
active_fedora_update
|
69
70
|
end
|
70
71
|
end
|
71
72
|
|
73
|
+
def after_create
|
74
|
+
Hyrax::SolrService.commit
|
75
|
+
redirect_to hyrax.edit_admin_admin_set_path(admin_set_id),
|
76
|
+
notice: I18n.t('new_admin_set',
|
77
|
+
scope: 'hyrax.admin.admin_sets.form.permission_update_notices',
|
78
|
+
name: @admin_set.title.first)
|
79
|
+
end
|
80
|
+
|
81
|
+
def after_create_error(err_msg: "")
|
82
|
+
msg = "Failed to create admin set: #{err_msg}"
|
83
|
+
setup_form
|
84
|
+
flash[:error] = msg
|
85
|
+
Hyrax.logger.error(msg)
|
86
|
+
render :new
|
87
|
+
end
|
88
|
+
|
72
89
|
def create
|
73
|
-
|
74
|
-
|
90
|
+
case @admin_set
|
91
|
+
when Valkyrie::Resource
|
92
|
+
valkyrie_create
|
75
93
|
else
|
76
|
-
|
77
|
-
render :new
|
94
|
+
active_fedora_create
|
78
95
|
end
|
79
96
|
end
|
80
97
|
|
81
98
|
def destroy
|
82
|
-
|
99
|
+
case @admin_set
|
100
|
+
when Valkyrie::Resource
|
101
|
+
transactions['admin_set_resource.destroy'].call(@admin_set).value_or do |failure|
|
102
|
+
redirect_to hyrax.admin_admin_set_path(admin_set_id), alert: failure.first
|
103
|
+
end
|
83
104
|
after_delete_success
|
84
105
|
else
|
85
|
-
|
106
|
+
if @admin_set.destroy
|
107
|
+
after_delete_success
|
108
|
+
else
|
109
|
+
redirect_to hyrax.admin_admin_set_path(admin_set_id), alert: @admin_set.errors.full_messages.to_sentence
|
110
|
+
end
|
86
111
|
end
|
87
112
|
end
|
88
113
|
|
@@ -98,12 +123,50 @@ module Hyrax
|
|
98
123
|
|
99
124
|
private
|
100
125
|
|
101
|
-
def
|
102
|
-
|
126
|
+
def valkyrie_update
|
127
|
+
@admin_set = form.validate(admin_set_params) && transactions['admin_set_resource.update'].call(form).value_or do |_failure|
|
128
|
+
setup_form # probably should do some real error handling here
|
129
|
+
render :edit
|
130
|
+
end
|
131
|
+
redirect_to update_referer, notice: I18n.t('updated_admin_set', scope: 'hyrax.admin.admin_sets.form.permission_update_notices', name: @admin_set.title.first)
|
132
|
+
end
|
133
|
+
|
134
|
+
def active_fedora_update
|
135
|
+
if @admin_set.update(admin_set_params)
|
136
|
+
redirect_to update_referer, notice: I18n.t('updated_admin_set', scope: 'hyrax.admin.admin_sets.form.permission_update_notices', name: @admin_set.title.first)
|
137
|
+
else
|
138
|
+
setup_form
|
139
|
+
render :edit
|
140
|
+
end
|
103
141
|
end
|
104
142
|
|
105
|
-
def
|
106
|
-
|
143
|
+
def update_referer
|
144
|
+
hyrax.edit_admin_admin_set_path(admin_set_id) + (params[:referer_anchor] || '')
|
145
|
+
end
|
146
|
+
|
147
|
+
def valkyrie_create
|
148
|
+
form.validate(admin_set_params) &&
|
149
|
+
@admin_set = transactions['change_set.create_admin_set']
|
150
|
+
.with_step_args(
|
151
|
+
'change_set.set_user_as_creator' => { user: current_user },
|
152
|
+
'admin_set_resource.apply_collection_type_permissions' => { user: current_user }
|
153
|
+
)
|
154
|
+
.call(form).value_or do |_failure|
|
155
|
+
setup_form # probably should do some real error handling here
|
156
|
+
render :edit
|
157
|
+
end
|
158
|
+
@admin_set = admin_set_create_service.call!(admin_set: @admin_set, creating_user: current_user)
|
159
|
+
after_create
|
160
|
+
rescue RuntimeError => err
|
161
|
+
after_create_error(err_msg: err.message)
|
162
|
+
end
|
163
|
+
|
164
|
+
def active_fedora_create
|
165
|
+
updated_admin_set = admin_set_create_service.call!(admin_set: admin_set_resource, creating_user: current_user)
|
166
|
+
@admin_set = Wings::ActiveFedoraConverter.convert(resource: updated_admin_set)
|
167
|
+
after_create
|
168
|
+
rescue RuntimeError => err
|
169
|
+
after_create_error(err_msg: err.message)
|
107
170
|
end
|
108
171
|
|
109
172
|
def setup_form
|
@@ -116,7 +179,13 @@ module Hyrax
|
|
116
179
|
|
117
180
|
# initialize the form object
|
118
181
|
def form
|
119
|
-
@form ||=
|
182
|
+
@form ||=
|
183
|
+
case @admin_set
|
184
|
+
when Valkyrie::Resource
|
185
|
+
Hyrax::Forms::ResourceForm.for(@admin_set)
|
186
|
+
else
|
187
|
+
form_class.new(@admin_set, current_ability, repository)
|
188
|
+
end
|
120
189
|
end
|
121
190
|
|
122
191
|
def action_breadcrumb
|
@@ -129,7 +198,11 @@ module Hyrax
|
|
129
198
|
end
|
130
199
|
|
131
200
|
def admin_set_params
|
132
|
-
|
201
|
+
if Hyrax.config.admin_set_class < ActiveFedora::Base
|
202
|
+
form_class.model_attributes(params[:admin_set])
|
203
|
+
else
|
204
|
+
params.permit(admin_set: {})[:admin_set]
|
205
|
+
end
|
133
206
|
end
|
134
207
|
|
135
208
|
def repository_class
|
@@ -137,13 +210,26 @@ module Hyrax
|
|
137
210
|
end
|
138
211
|
|
139
212
|
def after_delete_success
|
140
|
-
if request.referer
|
213
|
+
if request.referer&.include? "my/collections"
|
141
214
|
redirect_to hyrax.my_collections_path, notice: t(:'hyrax.admin.admin_sets.delete.notification')
|
142
|
-
elsif request.referer
|
215
|
+
elsif request.referer&.include? "collections"
|
143
216
|
redirect_to hyrax.dashboard_collections_path, notice: t(:'hyrax.admin.admin_sets.delete.notification')
|
144
217
|
else
|
145
218
|
redirect_to hyrax.my_collections_path, notice: t(:'hyrax.admin.admin_sets.delete.notification')
|
146
219
|
end
|
147
220
|
end
|
221
|
+
|
222
|
+
def admin_set_id
|
223
|
+
@admin_set&.id&.to_s
|
224
|
+
end
|
225
|
+
|
226
|
+
def admin_set_resource
|
227
|
+
case @admin_set
|
228
|
+
when Valkyrie::Resource
|
229
|
+
@admin_set
|
230
|
+
else
|
231
|
+
@admin_set.valkyrie_resource
|
232
|
+
end
|
233
|
+
end
|
148
234
|
end
|
149
235
|
end
|
@@ -5,11 +5,11 @@ module Hyrax
|
|
5
5
|
load_and_authorize_resource class: 'Hyrax::PermissionTemplateAccess'
|
6
6
|
|
7
7
|
def destroy
|
8
|
+
authorize! :destroy, @permission_template_access
|
8
9
|
ActiveRecord::Base.transaction do
|
9
|
-
@permission_template_access.destroy
|
10
|
+
@permission_template_access.destroy
|
10
11
|
remove_access!
|
11
12
|
end
|
12
|
-
|
13
13
|
if @permission_template_access.destroyed?
|
14
14
|
after_destroy_success
|
15
15
|
else
|
@@ -19,38 +19,31 @@ module Hyrax
|
|
19
19
|
|
20
20
|
private
|
21
21
|
|
22
|
-
|
23
|
-
# because we don't want to prevent the ability to remove the whole
|
24
|
-
# PermissionTemplate and all of its associated PermissionTemplateAccesses
|
25
|
-
# @return [Boolean] true if it's valid
|
26
|
-
def valid_delete?
|
27
|
-
return true unless @permission_template_access.admin_group?
|
28
|
-
@permission_template_access.errors[:base] <<
|
29
|
-
t('hyrax.admin.admin_sets.form.permission_destroy_errors.admin_group')
|
30
|
-
false
|
31
|
-
end
|
32
|
-
|
33
|
-
def after_destroy_success
|
22
|
+
def after_destroy_error
|
34
23
|
if source.admin_set?
|
24
|
+
@permission_template_access.errors[:base] <<
|
25
|
+
t('hyrax.admin.admin_sets.form.permission_destroy_errors.participants')
|
35
26
|
redirect_to hyrax.edit_admin_admin_set_path(source_id,
|
36
27
|
anchor: 'participants'),
|
37
|
-
|
28
|
+
alert: @permission_template_access.errors.full_messages.to_sentence
|
38
29
|
else
|
30
|
+
@permission_template_access.errors[:base] <<
|
31
|
+
t('hyrax.dashboard.collections.form.permission_update_errors.sharing')
|
39
32
|
redirect_to hyrax.edit_dashboard_collection_path(source_id,
|
40
33
|
anchor: 'sharing'),
|
41
|
-
|
34
|
+
alert: @permission_template_access.errors.full_messages.to_sentence
|
42
35
|
end
|
43
36
|
end
|
44
37
|
|
45
|
-
def
|
38
|
+
def after_destroy_success
|
46
39
|
if source.admin_set?
|
47
40
|
redirect_to hyrax.edit_admin_admin_set_path(source_id,
|
48
41
|
anchor: 'participants'),
|
49
|
-
|
42
|
+
notice: translate('participants', scope: 'hyrax.admin.admin_sets.form.permission_update_notices')
|
50
43
|
else
|
51
44
|
redirect_to hyrax.edit_dashboard_collection_path(source_id,
|
52
45
|
anchor: 'sharing'),
|
53
|
-
|
46
|
+
notice: translate('sharing', scope: 'hyrax.dashboard.collections.form.permission_update_notices')
|
54
47
|
end
|
55
48
|
end
|
56
49
|
|
@@ -39,8 +39,11 @@ module Hyrax
|
|
39
39
|
|
40
40
|
def destroy_collection
|
41
41
|
batch.each do |doc_id|
|
42
|
-
|
43
|
-
|
42
|
+
resource = Hyrax.query_service.find_by(id: Valkyrie::ID.new(doc_id))
|
43
|
+
transactions['collection_resource.destroy']
|
44
|
+
.with_step_args('collection_resource.delete' => { user: current_user })
|
45
|
+
.call(resource)
|
46
|
+
.value!
|
44
47
|
end
|
45
48
|
flash[:notice] = "Batch delete complete"
|
46
49
|
after_destroy_collection
|
@@ -51,7 +54,7 @@ module Hyrax
|
|
51
54
|
obj.attributes = work_params(admin_set_id: obj.admin_set_id).except(*visibility_params)
|
52
55
|
obj.date_modified = Time.current.ctime
|
53
56
|
|
54
|
-
InheritPermissionsJob.perform_now(obj
|
57
|
+
InheritPermissionsJob.perform_now(obj)
|
55
58
|
VisibilityCopyJob.perform_now(obj)
|
56
59
|
|
57
60
|
obj.save
|
@@ -83,7 +86,13 @@ module Hyrax
|
|
83
86
|
end
|
84
87
|
|
85
88
|
def destroy_batch
|
86
|
-
batch.each
|
89
|
+
batch.each do |id|
|
90
|
+
resource = Hyrax.query_service.find_by(id: Valkyrie::ID.new(id))
|
91
|
+
transactions['work_resource.destroy']
|
92
|
+
.with_step_args('work_resource.delete' => { user: current_user })
|
93
|
+
.call(resource)
|
94
|
+
.value!
|
95
|
+
end
|
87
96
|
after_update
|
88
97
|
end
|
89
98
|
|
@@ -44,6 +44,10 @@ module Hyrax
|
|
44
44
|
end
|
45
45
|
|
46
46
|
def build_form
|
47
|
+
add_breadcrumb t('hyrax.controls.home'), root_path
|
48
|
+
add_breadcrumb t('hyrax.dashboard.breadcrumbs.admin'), hyrax.dashboard_path
|
49
|
+
add_breadcrumb t('hyrax.admin.sidebar.works'), hyrax.my_works_path
|
50
|
+
add_breadcrumb t('hyrax.batch_uploads.new.breadcrumb'), request.path
|
47
51
|
super
|
48
52
|
@form.payload_concern = params[:payload_concern]
|
49
53
|
end
|
@@ -2,8 +2,8 @@
|
|
2
2
|
module Hyrax
|
3
3
|
class CitationsController < ApplicationController
|
4
4
|
include WorksControllerBehavior
|
5
|
+
include DenyAccessOverrideBehavior
|
5
6
|
include Breadcrumbs
|
6
|
-
include SingularSubresourceController
|
7
7
|
|
8
8
|
# Overrides decide_layout from WorksControllerBehavior
|
9
9
|
with_themed_layout '1_column'
|
@@ -43,13 +43,10 @@ module Hyrax
|
|
43
43
|
# The search builder to find the collections' members
|
44
44
|
self.membership_service_class = Collections::CollectionMemberSearchService
|
45
45
|
|
46
|
-
load_and_authorize_resource except: [:index],
|
46
|
+
load_and_authorize_resource except: [:index, :create],
|
47
47
|
instance_name: :collection,
|
48
48
|
class: Hyrax.config.collection_model
|
49
49
|
|
50
|
-
skip_load_resource only: :create if
|
51
|
-
Hyrax.config.collection_class < ActiveFedora::Base
|
52
|
-
|
53
50
|
def deny_collection_access(exception)
|
54
51
|
if exception.action == :edit
|
55
52
|
redirect_to(url_for(action: 'show'), alert: 'You do not have sufficient privileges to edit this document')
|
@@ -83,95 +80,66 @@ module Hyrax
|
|
83
80
|
|
84
81
|
def edit
|
85
82
|
form
|
83
|
+
collection_type
|
86
84
|
end
|
87
85
|
|
88
86
|
def after_create
|
89
|
-
|
90
|
-
|
91
|
-
set_default_permissions
|
92
|
-
# if we are creating the new collection as a subcollection (via the nested collections controller),
|
93
|
-
# we pass the parent_id through a hidden field in the form and link the two after the create.
|
94
|
-
link_parent_collection(params[:parent_id]) unless params[:parent_id].nil?
|
95
|
-
end
|
96
|
-
respond_to do |format|
|
97
|
-
Hyrax::SolrService.commit
|
98
|
-
format.html { redirect_to edit_dashboard_collection_path(@collection), notice: t('hyrax.dashboard.my.action.collection_create_success') }
|
99
|
-
format.json { render json: @collection, status: :created, location: dashboard_collection_path(@collection) }
|
100
|
-
end
|
87
|
+
Deprecation.warn("Method `#after_create` will be removed in Hyrax 4.0.")
|
88
|
+
after_create_response # call private method for processing
|
101
89
|
end
|
102
90
|
|
103
91
|
def after_create_error
|
104
|
-
|
105
|
-
|
106
|
-
format.html { render action: 'new' }
|
107
|
-
format.json { render json: @collection.errors, status: :unprocessable_entity }
|
108
|
-
end
|
92
|
+
Deprecation.warn("Method `#after_create_error` will be removed in Hyrax 4.0.")
|
93
|
+
after_create_errors("") # call private method for processing
|
109
94
|
end
|
110
95
|
|
111
96
|
def create
|
112
|
-
return valkyrie_create if @collection.is_a?(Valkyrie::Resource)
|
113
97
|
# Manual load and authorize necessary because Cancan will pass in all
|
114
98
|
# form attributes. When `permissions_attributes` are present the
|
115
99
|
# collection is saved without a value for `has_model.`
|
116
100
|
@collection = Hyrax.config.collection_class.new
|
117
101
|
authorize! :create, @collection
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
@collection.apply_depositor_metadata(current_user.user_key)
|
123
|
-
@collection.visibility = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE unless @collection.discoverable?
|
124
|
-
if @collection.save
|
125
|
-
after_create
|
126
|
-
add_members_to_collection unless batch.empty?
|
102
|
+
|
103
|
+
case @collection
|
104
|
+
when ActiveFedora::Base
|
105
|
+
create_active_fedora_collection
|
127
106
|
else
|
128
|
-
|
107
|
+
create_valkyrie_collection
|
129
108
|
end
|
130
109
|
end
|
131
110
|
|
132
111
|
def after_update
|
133
|
-
|
134
|
-
|
135
|
-
format.json { render json: @collection, status: :updated, location: dashboard_collection_path(@collection) }
|
136
|
-
end
|
112
|
+
Deprecation.warn("Method `#after_update` will be removed in Hyrax 4.0.")
|
113
|
+
after_update_response # call private method for processing
|
137
114
|
end
|
138
115
|
|
139
116
|
def after_update_error
|
140
|
-
|
141
|
-
|
142
|
-
format.html { render action: 'edit' }
|
143
|
-
format.json { render json: @collection.errors, status: :unprocessable_entity }
|
144
|
-
end
|
117
|
+
Deprecation.warn("Method `#after_update_error` will be removed in Hyrax 4.0.")
|
118
|
+
after_update_errors(@collection.errors) # call private method for processing
|
145
119
|
end
|
146
120
|
|
147
121
|
def update
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
end
|
152
|
-
|
153
|
-
process_member_changes
|
154
|
-
|
155
|
-
return valkyrie_update if @collection.is_a?(Valkyrie::Resource)
|
156
|
-
|
157
|
-
@collection.visibility = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE unless @collection.discoverable?
|
158
|
-
# we don't have to reindex the full graph when updating collection
|
159
|
-
@collection.reindex_extent = Hyrax::Adapters::NestingIndexAdapter::LIMITED_REINDEX
|
160
|
-
if @collection.update(collection_params.except(:members))
|
161
|
-
after_update
|
122
|
+
case @collection
|
123
|
+
when ActiveFedora::Base
|
124
|
+
update_active_fedora_collection
|
162
125
|
else
|
163
|
-
|
126
|
+
update_valkyrie_collection
|
164
127
|
end
|
165
128
|
end
|
166
129
|
|
130
|
+
def process_branding
|
131
|
+
process_banner_input
|
132
|
+
process_logo_input
|
133
|
+
end
|
134
|
+
|
167
135
|
def after_destroy(_id)
|
168
136
|
# leaving id to avoid changing the method's parameters prior to release
|
169
137
|
respond_to do |format|
|
170
138
|
format.html do
|
171
|
-
redirect_to my_collections_path,
|
139
|
+
redirect_to hyrax.my_collections_path,
|
172
140
|
notice: t('hyrax.dashboard.my.action.collection_delete_success')
|
173
141
|
end
|
174
|
-
format.json { head :no_content, location: my_collections_path }
|
142
|
+
format.json { head :no_content, location: hyrax.my_collections_path }
|
175
143
|
end
|
176
144
|
end
|
177
145
|
|
@@ -188,8 +156,7 @@ module Hyrax
|
|
188
156
|
def destroy
|
189
157
|
case @collection
|
190
158
|
when Valkyrie::Resource
|
191
|
-
|
192
|
-
after_destroy(params[:id])
|
159
|
+
valkyrie_destroy
|
193
160
|
else
|
194
161
|
if @collection.destroy
|
195
162
|
after_destroy(params[:id])
|
@@ -217,28 +184,82 @@ module Hyrax
|
|
217
184
|
|
218
185
|
private
|
219
186
|
|
220
|
-
def
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
187
|
+
def create_active_fedora_collection
|
188
|
+
# Coming from the UI, a collection type gid should always be present. Coming from the API, if a collection type gid is not specified,
|
189
|
+
# use the default collection type (provides backward compatibility with versions < Hyrax 2.1.0)
|
190
|
+
@collection.collection_type_gid = params[:collection_type_gid].presence || default_collection_type.to_global_id
|
191
|
+
@collection.attributes = collection_params.except(:members, :parent_id, :collection_type_gid)
|
192
|
+
@collection.apply_depositor_metadata(current_user.user_key)
|
193
|
+
@collection.visibility = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE unless @collection.discoverable?
|
194
|
+
if @collection.save
|
195
|
+
after_create_response
|
196
|
+
else
|
197
|
+
after_create_errors(@collection.errors)
|
198
|
+
end
|
199
|
+
end
|
200
|
+
|
201
|
+
def create_valkyrie_collection
|
202
|
+
return after_create_errors(form_err_msg(form)) unless form.validate(collection_params)
|
203
|
+
|
204
|
+
result =
|
205
|
+
transactions['change_set.create_collection']
|
206
|
+
.with_step_args(
|
207
|
+
'change_set.set_user_as_depositor' => { user: current_user },
|
208
|
+
'change_set.add_to_collections' => { collection_ids: Array(params[:parent_id]) },
|
209
|
+
'collection_resource.apply_collection_type_permissions' => { user: current_user }
|
210
|
+
)
|
211
|
+
.call(form)
|
212
|
+
|
213
|
+
@collection = result.value_or { return after_create_errors(result.failure.first) }
|
214
|
+
after_create_response
|
215
|
+
end
|
216
|
+
|
217
|
+
def update_active_fedora_collection
|
218
|
+
process_member_changes
|
219
|
+
process_branding
|
220
|
+
|
221
|
+
@collection.visibility = Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE unless @collection.discoverable?
|
222
|
+
# we don't have to reindex the full graph when updating collection
|
223
|
+
@collection.reindex_extent = Hyrax::Adapters::NestingIndexAdapter::LIMITED_REINDEX
|
224
|
+
if @collection.update(collection_params.except(:members))
|
225
|
+
after_update_response
|
226
|
+
else
|
227
|
+
after_update_errors(@collection.errors)
|
228
|
+
end
|
229
|
+
end
|
230
|
+
|
231
|
+
def update_valkyrie_collection
|
232
|
+
return after_update_errors(form_err_msg(form)) unless form.validate(collection_params)
|
233
|
+
|
234
|
+
result = transactions['change_set.update_collection']
|
235
|
+
.with_step_args(
|
236
|
+
'collection_resource.save_collection_banner' => { update_banner_file_ids: params["banner_files"],
|
237
|
+
banner_unchanged_indicator: params["banner_unchanged"] },
|
238
|
+
'collection_resource.save_collection_logo' => { update_logo_file_ids: params["logo_files"],
|
239
|
+
alttext_values: params["alttext"],
|
240
|
+
linkurl_values: params["linkurl"] }
|
227
241
|
)
|
228
|
-
|
229
|
-
|
242
|
+
.call(form)
|
243
|
+
@collection = result.value_or { return after_update_errors(result.failure.first) }
|
230
244
|
|
231
|
-
|
232
|
-
|
233
|
-
|
245
|
+
process_member_changes
|
246
|
+
after_update_response
|
247
|
+
end
|
248
|
+
|
249
|
+
def valkyrie_destroy
|
250
|
+
if transactions['collection_resource.destroy'].call(@collection).success?
|
251
|
+
after_destroy(params[:id])
|
252
|
+
else
|
253
|
+
after_destroy_error(params[:id])
|
254
|
+
end
|
234
255
|
end
|
235
256
|
|
236
|
-
def
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
257
|
+
def form_err_msg(form)
|
258
|
+
errmsg = []
|
259
|
+
form.errors.messages.each do |fld, err|
|
260
|
+
errmsg << "#{fld} #{err.to_sentence}"
|
261
|
+
end
|
262
|
+
errmsg.to_sentence
|
242
263
|
end
|
243
264
|
|
244
265
|
def default_collection_type
|
@@ -332,7 +353,10 @@ module Hyrax
|
|
332
353
|
def process_logo_records(uploaded_file_ids)
|
333
354
|
public_files = []
|
334
355
|
uploaded_file_ids.each_with_index do |ufi, i|
|
335
|
-
|
356
|
+
# If the user has chosen a new logo, the ufi will be an integer
|
357
|
+
# If the logo was previously chosen, the ufi will be a path
|
358
|
+
# If it is a path, update the rec, else create a new rec
|
359
|
+
if !ufi.match(/\D/).nil?
|
336
360
|
update_logo_info(ufi, params["alttext"][i], verify_linkurl(params["linkurl"][i]))
|
337
361
|
public_files << ufi
|
338
362
|
else # brand new one, insert in the database
|
@@ -367,9 +391,7 @@ module Hyrax
|
|
367
391
|
end
|
368
392
|
|
369
393
|
def presenter
|
370
|
-
@presenter ||=
|
371
|
-
presenter_class.new(curation_concern, current_ability)
|
372
|
-
end
|
394
|
+
@presenter ||= presenter_class.new(curation_concern, current_ability)
|
373
395
|
end
|
374
396
|
|
375
397
|
def curation_concern
|
@@ -490,7 +512,9 @@ module Hyrax
|
|
490
512
|
@form ||=
|
491
513
|
case @collection
|
492
514
|
when Valkyrie::Resource
|
493
|
-
Hyrax::Forms::ResourceForm.for(@collection)
|
515
|
+
form = Hyrax::Forms::ResourceForm.for(@collection)
|
516
|
+
form.prepopulate!
|
517
|
+
form
|
494
518
|
else
|
495
519
|
form_class.new(@collection, current_ability, repository)
|
496
520
|
end
|
@@ -553,6 +577,75 @@ module Hyrax
|
|
553
577
|
def valid_url?(url)
|
554
578
|
(url =~ URI.regexp(['http', 'https']))
|
555
579
|
end
|
580
|
+
|
581
|
+
def after_create_response
|
582
|
+
if @collection.is_a?(ActiveFedora::Base)
|
583
|
+
form
|
584
|
+
set_default_permissions
|
585
|
+
# if we are creating the new collection as a subcollection (via the nested collections controller),
|
586
|
+
# we pass the parent_id through a hidden field in the form and link the two after the create.
|
587
|
+
link_parent_collection(params[:parent_id]) unless params[:parent_id].nil?
|
588
|
+
end
|
589
|
+
respond_to do |format|
|
590
|
+
Hyrax::SolrService.commit
|
591
|
+
format.html { redirect_to edit_dashboard_collection_path(@collection), notice: t('hyrax.dashboard.my.action.collection_create_success') }
|
592
|
+
format.json { render json: @collection, status: :created, location: dashboard_collection_path(@collection) }
|
593
|
+
end
|
594
|
+
add_members_to_collection unless batch.empty?
|
595
|
+
end
|
596
|
+
|
597
|
+
def after_create_errors_for_active_fedora(errors)
|
598
|
+
form
|
599
|
+
respond_to do |format|
|
600
|
+
format.html do
|
601
|
+
flash[:error] = errors.to_s
|
602
|
+
render action: 'new'
|
603
|
+
end
|
604
|
+
format.json { render json: @collection.errors, status: :unprocessable_entity }
|
605
|
+
end
|
606
|
+
end
|
607
|
+
|
608
|
+
def after_create_errors(errors) # for valkyrie
|
609
|
+
return after_create_errors_for_active_fedora(errors) if @collection.is_a? ActiveFedora::Base
|
610
|
+
respond_to do |wants|
|
611
|
+
wants.html do
|
612
|
+
flash[:error] = errors.to_s
|
613
|
+
render 'new', status: :unprocessable_entity
|
614
|
+
end
|
615
|
+
wants.json do
|
616
|
+
render_json_response(response_type: :unprocessable_entity, options: { errors: errors })
|
617
|
+
end
|
618
|
+
end
|
619
|
+
end
|
620
|
+
|
621
|
+
def after_update_response
|
622
|
+
respond_to do |format|
|
623
|
+
format.html { redirect_to update_referer, notice: t('hyrax.dashboard.my.action.collection_update_success') }
|
624
|
+
format.json { render json: @collection, status: :updated, location: dashboard_collection_path(@collection) }
|
625
|
+
end
|
626
|
+
end
|
627
|
+
|
628
|
+
def after_update_errors_for_active_fedora(errors)
|
629
|
+
form
|
630
|
+
respond_to do |format|
|
631
|
+
format.html do
|
632
|
+
flash[:error] = errors.to_s
|
633
|
+
render action: 'edit'
|
634
|
+
end
|
635
|
+
format.json { render json: @collection.errors, status: :unprocessable_entity }
|
636
|
+
end
|
637
|
+
end
|
638
|
+
|
639
|
+
def after_update_errors(errors) # for valkyrie
|
640
|
+
return after_update_errors_for_active_fedora(errors) if @collection.is_a? ActiveFedora::Base
|
641
|
+
respond_to do |wants|
|
642
|
+
wants.html do
|
643
|
+
flash[:error] = errors.to_s
|
644
|
+
render 'edit', status: :unprocessable_entity
|
645
|
+
end
|
646
|
+
wants.json { render_json_response(response_type: :unprocessable_entity, options: { errors: errors }) }
|
647
|
+
end
|
648
|
+
end
|
556
649
|
end
|
557
650
|
end
|
558
651
|
end
|