hyrax 3.6.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 -61
- 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/models/user.rb +0 -3
- data/.dassie/config/analytics.yml +2 -4
- data/.dassie/config/application.rb +1 -1
- data/.dassie/config/initializers/riiif.rb +1 -1
- data/.dassie/db/schema.rb +5 -5
- data/.dassie/package.json +7 -7
- data/.engine_cart.yml +2 -39
- data/.env +1 -0
- data/.github/workflows/main.yml +17 -0
- data/.github/workflows/release.yml +17 -0
- data/.regen +1 -1
- data/.rubocop.yml +1 -1
- data/CONTRIBUTING.md +22 -24
- data/Dockerfile +1 -1
- data/Rakefile +0 -4
- data/app/actors/hyrax/actors/base_actor.rb +1 -1
- data/app/actors/hyrax/actors/collections_membership_actor.rb +1 -1
- data/app/actors/hyrax/actors/create_with_remote_files_actor.rb +5 -11
- data/app/actors/hyrax/actors/embargo_actor.rb +4 -11
- data/app/actors/hyrax/actors/file_actor.rb +9 -37
- data/app/actors/hyrax/actors/file_set_actor.rb +13 -62
- data/app/actors/hyrax/actors/lease_actor.rb +4 -11
- data/app/assets/javascripts/hyrax/analytics_events.js +38 -88
- data/app/assets/javascripts/hyrax/app.js.erb +2 -2
- 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/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/control.es6 +1 -8
- 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 +9 -0
- data/app/controllers/concerns/hyrax/embargoes_controller_behavior.rb +2 -11
- data/app/controllers/concerns/hyrax/leases_controller_behavior.rb +2 -11
- data/app/controllers/concerns/hyrax/manages_embargoes.rb +1 -13
- data/app/controllers/concerns/hyrax/works_controller_behavior.rb +4 -9
- data/app/controllers/hyrax/admin/analytics/collection_reports_controller.rb +2 -2
- data/app/controllers/hyrax/admin/analytics/work_reports_controller.rb +1 -1
- data/app/controllers/hyrax/admin/strategies_controller.rb +1 -1
- data/app/controllers/hyrax/admin/workflows_controller.rb +3 -48
- data/app/controllers/hyrax/batch_edits_controller.rb +1 -1
- data/app/controllers/hyrax/dashboard/collections_controller.rb +2 -1
- data/app/controllers/hyrax/dashboard/nest_collections_controller.rb +0 -32
- data/app/controllers/hyrax/downloads_controller.rb +1 -16
- data/app/controllers/hyrax/file_sets_controller.rb +4 -10
- data/app/controllers/hyrax/homepage_controller.rb +0 -1
- data/app/controllers/hyrax/my_controller.rb +0 -6
- data/app/controllers/hyrax/permissions_controller.rb +1 -1
- data/app/controllers/hyrax/single_use_links_controller.rb +1 -2
- data/app/controllers/hyrax/transfers_controller.rb +2 -0
- data/app/controllers/hyrax/workflow_actions_controller.rb +2 -3
- data/app/forms/hyrax/forms/collection_form.rb +1 -1
- data/app/forms/hyrax/forms/dashboard/nest_collection_form.rb +0 -2
- data/app/forms/hyrax/forms/file_set_edit_form.rb +1 -1
- data/app/forms/hyrax/forms/file_set_form.rb +35 -8
- data/app/forms/hyrax/forms/resource_form.rb +32 -36
- data/app/helpers/hyrax/embargo_helper.rb +0 -11
- data/app/helpers/hyrax/facets_helper.rb +150 -0
- data/app/helpers/hyrax/hyrax_helper_behavior.rb +5 -5
- data/app/helpers/hyrax/lease_helper.rb +0 -11
- data/app/indexers/hyrax/basic_metadata_indexer.rb +3 -9
- data/app/indexers/hyrax/pcdm_collection_indexer.rb +0 -1
- data/app/indexers/hyrax/valkyrie_file_set_indexer.rb +8 -2
- data/app/jobs/characterize_job.rb +4 -7
- data/app/jobs/content_event_job.rb +1 -1
- data/app/jobs/create_derivatives_job.rb +4 -2
- data/app/jobs/ingest_local_file_job.rb +5 -13
- data/app/jobs/inherit_permissions_job.rb +1 -5
- data/app/models/admin_set.rb +0 -8
- data/app/models/concerns/hyrax/collection_behavior.rb +2 -3
- data/app/models/concerns/hyrax/collection_nesting.rb +1 -10
- data/app/models/concerns/hyrax/file_set_behavior.rb +1 -2
- data/app/models/concerns/hyrax/in_admin_set.rb +0 -7
- data/app/models/concerns/hyrax/user.rb +3 -3
- data/app/models/concerns/hyrax/work_behavior.rb +1 -3
- data/app/models/content_block.rb +0 -6
- data/app/models/hyrax/embargo.rb +1 -1
- data/app/models/hyrax/file_metadata.rb +1 -1
- data/app/models/hyrax/file_set.rb +3 -3
- data/app/models/hyrax/lease.rb +1 -1
- data/app/models/hyrax/permission_template.rb +0 -35
- data/app/models/proxy_deposit_request.rb +1 -1
- data/app/presenters/hyrax/admin/repository_object_presenter.rb +0 -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/menu_presenter.rb +1 -1
- data/app/presenters/hyrax/permission_badge.rb +8 -9
- data/app/presenters/hyrax/version_list_presenter.rb +1 -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/nested_collections_search_builder.rb +5 -13
- data/app/search_builders/hyrax/deposit_search_builder.rb +1 -1
- 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/adapters/nesting_index_adapter.rb +1 -1
- data/app/services/hyrax/analytics/google.rb +15 -23
- data/app/services/hyrax/analytics/matomo.rb +3 -4
- data/app/services/hyrax/collection_member_service.rb +1 -2
- data/app/services/hyrax/collections/nested_collection_query_service.rb +1 -1
- data/app/services/hyrax/collections/search_service.rb +0 -1
- data/app/services/hyrax/custom_queries.rb +25 -0
- data/app/services/hyrax/edit_permissions_service.rb +3 -21
- data/app/services/hyrax/embargo_manager.rb +0 -9
- data/app/services/hyrax/file_set_csv_service.rb +1 -1
- data/app/services/hyrax/graph_exporter.rb +3 -8
- data/app/services/hyrax/iiif_authorization_service.rb +1 -1
- data/app/services/hyrax/lease_manager.rb +0 -9
- data/app/services/hyrax/listeners/file_metadata_listener.rb +0 -11
- data/app/services/hyrax/search_service.rb +1 -81
- data/app/services/hyrax/solr_query_service.rb +4 -4
- data/app/services/hyrax/statistics/depositors/summary.rb +1 -3
- data/app/services/hyrax/user_stat_importer.rb +0 -2
- data/app/services/hyrax/valkyrie_upload.rb +13 -1
- data/app/services/hyrax/versioning_service.rb +9 -77
- data/app/services/hyrax/visibility_propagator.rb +5 -5
- data/app/services/hyrax/work_query_service.rb +1 -1
- data/app/services/hyrax/workflow/actionable_objects.rb +3 -28
- data/app/services/hyrax/workflow/permission_query.rb +2 -23
- data/app/services/hyrax/working_directory.rb +2 -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 +1 -1
- 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 +3 -3
- data/app/views/catalog/facet.html.erb +21 -0
- data/app/views/catalog/index.html.erb +6 -4
- 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 +9 -8
- data/app/views/hyrax/admin/admin_sets/_form_visibility.html.erb +24 -24
- data/app/views/hyrax/admin/admin_sets/_form_workflow.erb +5 -5
- 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 +7 -7
- 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 +8 -8
- 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 +6 -6
- 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 +80 -55
- 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_child_work_relationships.html.erb +3 -3
- 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 +7 -7
- 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 +16 -20
- 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 +10 -10
- data/app/views/hyrax/base/_work_button_row.html.erb +17 -16
- 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/_edit_actions.html.erb +1 -1
- data/app/views/hyrax/dashboard/collections/_form.html.erb +30 -22
- data/app/views/hyrax/dashboard/collections/_form_branding.html.erb +19 -19
- data/app/views/hyrax/dashboard/collections/_form_discovery.html.erb +8 -4
- data/app/views/hyrax/dashboard/collections/_form_for_select_collection.html.erb +7 -7
- data/app/views/hyrax/dashboard/collections/_form_share.html.erb +11 -9
- data/app/views/hyrax/dashboard/collections/_form_share_table.html.erb +34 -31
- data/app/views/hyrax/dashboard/collections/_list_collections.html.erb +1 -1
- 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/_list_works.html.erb +4 -1
- data/app/views/hyrax/depositors/index.html.erb +2 -2
- data/app/views/hyrax/embargoes/edit.html.erb +14 -14
- data/app/views/hyrax/embargoes/index.html.erb +18 -6
- data/app/views/hyrax/file_sets/_actions.html.erb +5 -6
- 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.html.erb +1 -1
- data/app/views/hyrax/file_sets/_permission_form.html.erb +39 -30
- data/app/views/hyrax/file_sets/_show_actions.html.erb +3 -3
- 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 +19 -13
- 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 +14 -14
- 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 -25
- 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 +4 -5
- data/app/views/hyrax/my/collections/_facets.html.erb +2 -2
- data/app/views/hyrax/my/collections/_list_collections.html.erb +1 -1
- 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 +3 -3
- 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/_facets.html.erb +2 -2
- data/app/views/hyrax/my/works/_list_works.html.erb +6 -7
- data/app/views/hyrax/my/works/_tabs.html.erb +6 -6
- data/app/views/hyrax/my/works/index.html.erb +20 -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/transfers/new.html.erb +1 -1
- 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/_head_tag_content.html.erb +2 -5
- 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/config/locales/hyrax.de.yml +5 -6
- data/config/locales/hyrax.en.yml +4 -15
- data/config/locales/hyrax.es.yml +6 -7
- data/config/locales/hyrax.fr.yml +8 -9
- data/config/locales/hyrax.it.yml +6 -7
- data/config/locales/hyrax.pt-BR.yml +6 -7
- data/config/locales/hyrax.zh.yml +6 -7
- data/docker-compose.yml +2 -1
- data/documentation/developing-your-hyrax-based-app.md +2 -2
- data/documentation/legacyREADME.md +3 -3
- data/hyrax.gemspec +13 -24
- data/karma.conf.js +104 -0
- data/lib/generators/hyrax/assets_generator.rb +2 -5
- data/lib/generators/hyrax/install_generator.rb +9 -33
- data/lib/generators/hyrax/templates/catalog_controller.rb +20 -13
- data/lib/generators/hyrax/templates/config/analytics.yml +0 -3
- data/lib/generators/hyrax/templates/config/initializers/riiif.rb +1 -1
- data/lib/generators/hyrax/templates/config/locales/hyrax.pt-BR.yml +1 -1
- data/lib/generators/hyrax/templates/hyrax.scss +1 -2
- data/lib/generators/hyrax/templates/package.json +7 -8
- data/lib/hyrax/active_fedora_dummy_model.rb +0 -13
- data/lib/hyrax/configuration.rb +2 -49
- data/lib/hyrax/engine.rb +1 -2
- data/lib/hyrax/errors.rb +0 -2
- data/lib/hyrax/publisher.rb +0 -4
- data/lib/hyrax/specs/capybara.rb +5 -3
- data/lib/hyrax/specs/shared_specs/factories/strategies/valkyrie_resource.rb +0 -6
- data/lib/hyrax/specs/shared_specs/indexers.rb +0 -5
- data/lib/hyrax/transactions/container.rb +0 -54
- data/lib/hyrax/version.rb +1 -1
- data/lib/valkyrie/indexing/solr/indexing_adapter.rb +1 -1
- data/lib/wings/valkyrie/persister.rb +2 -1
- data/lib/wings/valkyrie/storage.rb +2 -6
- 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 +95 -218
- data/app/actors/hyrax/actors/initialize_workflow_actor.rb +0 -35
- data/app/forms/hyrax/forms/embargo.rb +0 -13
- data/app/forms/hyrax/forms/lease.rb +0 -13
- data/app/forms/hyrax/forms/pcdm_object_form.rb +0 -46
- data/app/forms/hyrax/forms/work_embargo_form.rb +0 -35
- data/app/forms/hyrax/forms/work_lease_form.rb +0 -35
- data/app/helpers/hyrax/url_helper.rb +0 -13
- data/app/jobs/content_depositor_change_event_job.rb +0 -48
- data/app/models/concerns/hyrax/with_file_sets.rb +0 -17
- data/app/services/hyrax/analytics/ga4.rb +0 -204
- data/app/services/hyrax/file_set_file_service.rb +0 -55
- data/app/services/hyrax/work_resource_query_service.rb +0 -45
- data/app/views/hyrax/admin/workflows/_tabs.html.erb +0 -9
- data/app/views/shared/_ga4.html.erb +0 -10
- data/config/metadata/file_set_metadata.yaml +0 -130
- data/lib/hyrax/transactions/create_work.rb +0 -65
- data/lib/hyrax/transactions/destroy_work.rb +0 -28
- data/lib/hyrax/transactions/steps/apply_collection_permission_template.rb +0 -34
- data/lib/hyrax/transactions/steps/apply_permission_template.rb +0 -32
- data/lib/hyrax/transactions/steps/apply_visibility.rb +0 -41
- data/lib/hyrax/transactions/steps/destroy_work.rb +0 -27
- data/lib/hyrax/transactions/steps/ensure_permission_template.rb +0 -29
- data/lib/hyrax/transactions/steps/save_work.rb +0 -38
- data/lib/hyrax/transactions/update_work.rb +0 -19
- 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
data/CONTRIBUTING.md
CHANGED
@@ -11,17 +11,6 @@ experience for all its members, whether they are at a formal gathering, in
|
|
11
11
|
a social setting, or taking part in activities online. Please see our
|
12
12
|
[Code of Conduct](CODE_OF_CONDUCT.md) for more information.
|
13
13
|
|
14
|
-
## Samvera Community Intellectual Property Licensing and Ownership
|
15
|
-
|
16
|
-
All code contributors must have an Individual Contributor License Agreement
|
17
|
-
(iCLA) on file with the Samvera Steering Group. If the contributor works for
|
18
|
-
an institution, the institution must have a Corporate Contributor License
|
19
|
-
Agreement (cCLA) on file.
|
20
|
-
|
21
|
-
https://wiki.lyrasis.org/display/samvera/Samvera+Community+Intellectual+Property+Licensing+and+Ownership
|
22
|
-
|
23
|
-
You should also add yourself to the `CONTRIBUTORS.md` file in the root of the project.
|
24
|
-
|
25
14
|
## Language
|
26
15
|
|
27
16
|
The language we use matters. Today, tomorrow, and for years to come
|
@@ -67,15 +56,22 @@ further details.
|
|
67
56
|
|
68
57
|
* Fork the repository on GitHub
|
69
58
|
* Create a topic branch from where you want to base your work.
|
70
|
-
* This is usually the
|
71
|
-
* To quickly create a topic branch based on
|
72
|
-
* Then checkout the new branch with `git checkout fix/
|
73
|
-
* Please avoid working directly on the `
|
59
|
+
* This is usually the `main` branch.
|
60
|
+
* To quickly create a topic branch based on `main`; `git branch fix/main/my_contribution main`
|
61
|
+
* Then checkout the new branch with `git checkout fix/main/my_contribution`.
|
62
|
+
* Please avoid working directly on the `main` branch.
|
63
|
+
* Please do not create a branch called `master`. (See note below.)
|
74
64
|
* You may find the [hub suite of commands](https://github.com/defunkt/hub) helpful
|
75
65
|
* Make sure you have added sufficient tests and documentation for your changes.
|
76
66
|
* Test functionality with RSpec; Test features / UI with Capybara.
|
77
67
|
* Run _all_ the tests to assure nothing else was accidentally broken.
|
78
68
|
|
69
|
+
NOTE: This repository follows the [Samvera Community Code of Conduct](https://samvera.atlassian.net/wiki/spaces/samvera/pages/405212316/Code+of+Conduct)
|
70
|
+
and [language recommendations](#language).
|
71
|
+
Please ***do not*** create a branch called `master` for this repository or as part of
|
72
|
+
your pull request; the branch will either need to be removed or renamed before it can
|
73
|
+
be considered for inclusion in the code base and history of this repository.
|
74
|
+
|
79
75
|
### Documenting Code
|
80
76
|
|
81
77
|
* All new public methods, modules, and classes should include inline documentation in [YARD](http://yardoc.org/).
|
@@ -131,15 +127,15 @@ further details.
|
|
131
127
|
### Submitting Changes
|
132
128
|
|
133
129
|
* Read the article ["Using Pull Requests"](https://help.github.com/articles/using-pull-requests) on GitHub.
|
134
|
-
* Make sure your branch is up to date with its parent branch (i.e.
|
135
|
-
* `git checkout
|
130
|
+
* Make sure your branch is up to date with its parent branch (i.e. main)
|
131
|
+
* `git checkout main`
|
136
132
|
* `git pull --rebase`
|
137
133
|
* `git checkout <your-branch>`
|
138
|
-
* `git rebase
|
134
|
+
* `git rebase main`
|
139
135
|
* It is a good idea to run your tests again.
|
140
136
|
* If you've made more than one commit take a moment to consider whether squashing commits together would help improve their logical grouping.
|
141
137
|
* [Detailed Walkthrough of One Pull Request per Commit](http://ndlib.github.io/practices/one-commit-per-pull-request/)
|
142
|
-
* `git rebase --interactive
|
138
|
+
* `git rebase --interactive main` ([See Github help](https://help.github.com/articles/interactive-rebase))
|
143
139
|
* Squashing your branch's changes into one commit is "good form" and helps the person merging your request to see everything that is going on.
|
144
140
|
* Push your changes to a topic branch in your fork of the repository.
|
145
141
|
* Submit a pull request from your fork to the project.
|
@@ -149,12 +145,14 @@ further details.
|
|
149
145
|
We adopted [Github's Pull Request Review](https://help.github.com/articles/about-pull-request-reviews/) for our repositories.
|
150
146
|
Common checks that may occur in our repositories:
|
151
147
|
|
152
|
-
1.
|
153
|
-
2.
|
148
|
+
1. [CircleCI](https://circleci.com/gh/samvera) - where our automated tests are running
|
149
|
+
2. RuboCop/Bixby - where we check for style violations
|
150
|
+
3. Approval Required - Github enforces at least one person approve a pull request. Also, all reviewers that have chimed in must approve.
|
151
|
+
4. CodeClimate - is our code remaining healthy (at least according to static code analysis)
|
154
152
|
|
155
153
|
If one or more of the required checks failed (or are incomplete), the code should not be merged (and the UI will not allow it). If all of the checks have passed, then anyone on the project (including the pull request submitter) may merge the code.
|
156
154
|
|
157
|
-
*Example: Carolyn submits a pull request, Justin reviews the pull request and approves. However, Justin is still waiting on other checks (
|
155
|
+
*Example: Carolyn submits a pull request, Justin reviews the pull request and approves. However, Justin is still waiting on other checks (CI tests are usually the culprit), so he does not merge the pull request. Eventually, all of the checks pass. At this point, Carolyn or anyone else may merge the pull request.*
|
158
156
|
|
159
157
|
#### Things to Consider When Reviewing
|
160
158
|
|
@@ -171,7 +169,7 @@ This is your chance for a mentoring moment of another developer. Take time to gi
|
|
171
169
|
* Do new or changed methods, modules, and classes have documentation?
|
172
170
|
* Does the commit contain more than it should? Are two separate concerns being addressed in one commit?
|
173
171
|
* Does the description of the new/changed specs match your understanding of what the spec is doing?
|
174
|
-
* Did the
|
172
|
+
* Did the Continuous Integration tests complete successfully?
|
175
173
|
|
176
174
|
If you are uncertain, bring other contributors into the conversation by assigning them as a reviewer.
|
177
175
|
|
@@ -180,4 +178,4 @@ If you are uncertain, bring other contributors into the conversation by assignin
|
|
180
178
|
* [General GitHub documentation](http://help.github.com/)
|
181
179
|
* [GitHub pull request documentation](https://help.github.com/articles/about-pull-requests/)
|
182
180
|
* [Pro Git](http://git-scm.com/book) is both a free and excellent book about Git.
|
183
|
-
* [A Git Config for Contributing](http://ndlib.github.io/practices/my-typical-per-project-git-config/)
|
181
|
+
* [A Git Config for Contributing](http://ndlib.github.io/practices/my-typical-per-project-git-config/)
|
data/Dockerfile
CHANGED
data/Rakefile
CHANGED
@@ -9,10 +9,6 @@ end
|
|
9
9
|
|
10
10
|
Bundler::GemHelper.install_tasks
|
11
11
|
|
12
|
-
import "#{Gem.loaded_specs['jasmine'].full_gem_path}/lib/jasmine/tasks/jasmine.rake"
|
13
|
-
|
14
|
-
# Set up the test application prior to running jasmine tasks.
|
15
|
-
task 'jasmine:require' => :setup_test_server
|
16
12
|
task :setup_test_server do
|
17
13
|
require 'engine_cart'
|
18
14
|
EngineCart.load_application!
|
@@ -37,7 +37,7 @@ module Hyrax
|
|
37
37
|
# @return [Boolean] true if destroy was successful
|
38
38
|
def destroy(env)
|
39
39
|
env.curation_concern.in_collection_ids.each do |id|
|
40
|
-
destination_collection =
|
40
|
+
destination_collection = ::Collection.find(id)
|
41
41
|
destination_collection.members.delete(env.curation_concern)
|
42
42
|
destination_collection.update_index
|
43
43
|
end
|
@@ -70,7 +70,7 @@ module Hyrax
|
|
70
70
|
# along side the FileSets on the show page
|
71
71
|
def add(env, id)
|
72
72
|
collection = Hyrax.config.collection_class.find(id)
|
73
|
-
collection.
|
73
|
+
collection.reindex_extent = Hyrax::Adapters::NestingIndexAdapter::LIMITED_REINDEX
|
74
74
|
|
75
75
|
return unless env.current_ability.can?(:deposit, collection)
|
76
76
|
env.curation_concern.member_of_collections << collection
|
@@ -93,19 +93,13 @@ module Hyrax
|
|
93
93
|
|
94
94
|
def create_file_from_url(uri, file_name, auth_header)
|
95
95
|
import_url = URI.decode_www_form_component(uri.to_s)
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
file_set = Hyrax.persister.save(resource: Hyrax::FileSet.new(import_url: import_url, label: file_name))
|
100
|
-
use_valkyrie = true
|
101
|
-
else
|
102
|
-
file_set = ::FileSet.new(import_url: import_url, label: file_name)
|
103
|
-
end
|
104
|
-
__create_file_from_url(file_set: file_set, uri: uri, auth_header: auth_header, use_valkyrie: use_valkyrie)
|
96
|
+
file_set = ::FileSet.new(import_url: import_url, label: file_name)
|
97
|
+
|
98
|
+
__create_file_from_url(file_set: file_set, uri: uri, auth_header: auth_header)
|
105
99
|
end
|
106
100
|
|
107
|
-
def __create_file_from_url(file_set:, uri:, auth_header
|
108
|
-
actor = file_set_actor_class.new(file_set, user
|
101
|
+
def __create_file_from_url(file_set:, uri:, auth_header:)
|
102
|
+
actor = file_set_actor_class.new(file_set, user)
|
109
103
|
actor.create_metadata(visibility: curation_concern.visibility)
|
110
104
|
actor.attach_to_work(curation_concern)
|
111
105
|
file_set.save! if file_set.respond_to?(:save!)
|
@@ -12,17 +12,10 @@ module Hyrax
|
|
12
12
|
# Update the visibility of the work to match the correct state of the embargo, then clear the embargo date, etc.
|
13
13
|
# Saves the embargo and the work
|
14
14
|
def destroy
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
embargo_manager.nullify
|
20
|
-
else
|
21
|
-
work.embargo_visibility! # If the embargo has lapsed, update the current visibility.
|
22
|
-
work.deactivate_embargo!
|
23
|
-
work.embargo.save!
|
24
|
-
work.save!
|
25
|
-
end
|
15
|
+
work.embargo_visibility! # If the embargo has lapsed, update the current visibility.
|
16
|
+
work.deactivate_embargo!
|
17
|
+
work.embargo.save!
|
18
|
+
work.save!
|
26
19
|
end
|
27
20
|
end
|
28
21
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
-
require 'wings/services/file_metadata_builder'
|
3
2
|
|
4
3
|
module Hyrax
|
5
4
|
module Actors
|
@@ -11,8 +10,7 @@ module Hyrax
|
|
11
10
|
# @param [FileSet] file_set the parent FileSet
|
12
11
|
# @param [Symbol, #to_sym] relation the type/use for the file
|
13
12
|
# @param [User] user the user to record as the Agent acting upon the file
|
14
|
-
def initialize(file_set, relation, user
|
15
|
-
@use_valkyrie = use_valkyrie
|
13
|
+
def initialize(file_set, relation, user)
|
16
14
|
@file_set = file_set
|
17
15
|
@relation = normalize_relation(relation)
|
18
16
|
@user = user
|
@@ -25,7 +23,14 @@ module Hyrax
|
|
25
23
|
# @see IngestJob
|
26
24
|
# @todo create a job to monitor the temp directory (or in a multi-worker system, directories!) to prune old files that have made it into the repo
|
27
25
|
def ingest_file(io)
|
28
|
-
|
26
|
+
Hydra::Works::AddFileToFileSet.call(file_set,
|
27
|
+
io,
|
28
|
+
relation,
|
29
|
+
versioning: false)
|
30
|
+
return false unless file_set.save
|
31
|
+
repository_file = related_file
|
32
|
+
create_version(repository_file, user)
|
33
|
+
CharacterizeJob.perform_later(file_set, repository_file.id, pathhint(io))
|
29
34
|
end
|
30
35
|
|
31
36
|
# Reverts file and spawns async job to characterize and create derivatives.
|
@@ -63,39 +68,6 @@ module Hyrax
|
|
63
68
|
file_set.public_send(normalize_relation(relation)) || raise("No #{relation} returned for FileSet #{file_set.id}")
|
64
69
|
end
|
65
70
|
|
66
|
-
def perform_ingest_file_through_active_fedora(io)
|
67
|
-
# Skip versioning because versions will be minted by VersionCommitter as necessary during save_characterize_and_record_committer.
|
68
|
-
Hydra::Works::AddFileToFileSet.call(file_set,
|
69
|
-
io,
|
70
|
-
relation,
|
71
|
-
versioning: false)
|
72
|
-
return false unless file_set.save
|
73
|
-
repository_file = related_file
|
74
|
-
create_version(repository_file, user)
|
75
|
-
CharacterizeJob.perform_later(file_set, repository_file.id, pathhint(io))
|
76
|
-
end
|
77
|
-
|
78
|
-
def perform_ingest_file_through_valkyrie(io) # rubocop:disable Metrics/AbcSize, Metrics/MethodLength
|
79
|
-
Deprecation.warn "FileActor support for Valkyrie was experimental and " \
|
80
|
-
"is slated to be removed in favor of WorkUploadsHandler."
|
81
|
-
file =
|
82
|
-
begin
|
83
|
-
Hyrax.storage_adapter.upload(resource: file_set, file: io, original_filename: io.original_name, use: relation)
|
84
|
-
rescue StandardError => err
|
85
|
-
Rails.logger.error("Failed to save file_metadata through valkyrie: #{err.message}")
|
86
|
-
return false
|
87
|
-
end
|
88
|
-
file_metadata = Hyrax.custom_queries.find_file_metadata_by(id: file.id)
|
89
|
-
create_version(file_metadata, user)
|
90
|
-
|
91
|
-
file_set.file_ids << file_metadata.id
|
92
|
-
file_set.original_file_id = file_metadata.id
|
93
|
-
Hyrax.persister.save(resource: file_set)
|
94
|
-
Hyrax.publisher.publish('object.metadata.updated', object: file_set, user: user)
|
95
|
-
CharacterizeJob.perform_later(file_set, file_metadata.id.to_s, pathhint(io))
|
96
|
-
file_metadata
|
97
|
-
end
|
98
|
-
|
99
71
|
def normalize_relation(relation)
|
100
72
|
use_valkyrie ? normalize_relation_for_valkyrie(relation) : normalize_relation_for_active_fedora(relation)
|
101
73
|
end
|
@@ -4,10 +4,9 @@ module Hyrax
|
|
4
4
|
# Actions are decoupled from controller logic so that they may be called from a controller or a background job.
|
5
5
|
class FileSetActor # rubocop:disable Metrics/ClassLength
|
6
6
|
include Lockable
|
7
|
-
attr_reader :file_set, :user, :attributes
|
7
|
+
attr_reader :file_set, :user, :attributes
|
8
8
|
|
9
|
-
def initialize(file_set, user
|
10
|
-
@use_valkyrie = use_valkyrie
|
9
|
+
def initialize(file_set, user)
|
11
10
|
@file_set = file_set
|
12
11
|
@user = user
|
13
12
|
end
|
@@ -71,42 +70,17 @@ module Hyrax
|
|
71
70
|
def attach_to_work(work, file_set_params = {})
|
72
71
|
acquire_lock_for(work.id) do
|
73
72
|
# Ensure we have an up-to-date copy of the members association, so that we append to the end of the list.
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
73
|
+
work.reload unless work.new_record?
|
74
|
+
file_set.visibility = work.visibility unless assign_visibility?(file_set_params)
|
75
|
+
work.ordered_members << file_set
|
76
|
+
work.representative = file_set if work.representative_id.blank?
|
77
|
+
work.thumbnail = file_set if work.thumbnail_id.blank?
|
78
|
+
# Save the work so the association between the work and the file_set is persisted (head_id)
|
79
|
+
# NOTE: the work may not be valid, in which case this save doesn't do anything.
|
80
|
+
work.save
|
79
81
|
Hyrax.config.callback.run(:after_create_fileset, file_set, user, warn: false)
|
80
82
|
end
|
81
83
|
end
|
82
|
-
alias attach_file_to_work attach_to_work
|
83
|
-
deprecation_deprecate attach_file_to_work: "use attach_to_work instead"
|
84
|
-
|
85
|
-
def attach_to_valkyrie_work(work, file_set_params)
|
86
|
-
work = Hyrax.query_service.find_by(id: work.id) unless work.new_record
|
87
|
-
file_set.visibility = work.visibility unless assign_visibility?(file_set_params)
|
88
|
-
fs = Hyrax.persister.save(resource: file_set)
|
89
|
-
Hyrax.publisher.publish('object.metadata.updated', object: fs, user: user)
|
90
|
-
work.member_ids << fs.id
|
91
|
-
work.representative_id = fs.id if work.representative_id.blank?
|
92
|
-
work.thumbnail_id = fs.id if work.thumbnail_id.blank?
|
93
|
-
# Save the work so the association between the work and the file_set is persisted (head_id)
|
94
|
-
# NOTE: the work may not be valid, in which case this save doesn't do anything.
|
95
|
-
Hyrax.persister.save(resource: work)
|
96
|
-
Hyrax.publisher.publish('object.metadata.updated', object: work, user: user)
|
97
|
-
end
|
98
|
-
|
99
|
-
# Adds a FileSet to the work using ore:Aggregations.
|
100
|
-
def attach_to_af_work(work, file_set_params)
|
101
|
-
work.reload unless work.new_record?
|
102
|
-
file_set.visibility = work.visibility unless assign_visibility?(file_set_params)
|
103
|
-
work.ordered_members << file_set
|
104
|
-
work.representative = file_set if work.representative_id.blank?
|
105
|
-
work.thumbnail = file_set if work.thumbnail_id.blank?
|
106
|
-
# Save the work so the association between the work and the file_set is persisted (head_id)
|
107
|
-
# NOTE: the work may not be valid, in which case this save doesn't do anything.
|
108
|
-
work.save
|
109
|
-
end
|
110
84
|
|
111
85
|
# @param [String] revision_id the revision to revert to
|
112
86
|
# @param [Symbol, #to_sym] relation
|
@@ -144,8 +118,7 @@ module Hyrax
|
|
144
118
|
end
|
145
119
|
|
146
120
|
def build_file_actor(relation)
|
147
|
-
|
148
|
-
file_actor_class.new(fs, relation, user, use_valkyrie: use_valkyrie)
|
121
|
+
file_actor_class.new(file_set, relation, user)
|
149
122
|
end
|
150
123
|
|
151
124
|
# uses create! because object must be persisted to serialize for jobs
|
@@ -194,32 +167,10 @@ module Hyrax
|
|
194
167
|
work.save!
|
195
168
|
end
|
196
169
|
|
197
|
-
# switches between using valkyrie to save or active fedora to save
|
198
170
|
def perform_save(object)
|
199
|
-
|
200
|
-
|
201
|
-
saved_resource = Hyrax.persister.save(resource: obj_to_save)
|
202
|
-
# return the same type of object that was passed in
|
203
|
-
saved_object_to_return = valkyrie_object?(object) ? saved_resource : Wings::ActiveFedoraConverter.new(resource: saved_resource).convert
|
204
|
-
else
|
205
|
-
obj_to_save.save
|
206
|
-
saved_object_to_return = obj_to_save
|
207
|
-
end
|
208
|
-
saved_object_to_return
|
209
|
-
end
|
210
|
-
|
211
|
-
# if passed a resource or if use_valkyrie==true, object to act on is the valkyrie resource
|
212
|
-
def object_to_act_on(object)
|
213
|
-
return object if valkyrie_object?(object)
|
214
|
-
use_valkyrie ? object.valkyrie_resource : object
|
215
|
-
end
|
216
|
-
|
217
|
-
# determine if the object is a valkyrie resource
|
218
|
-
def valkyrie_object?(object)
|
219
|
-
object.is_a? Valkyrie::Resource
|
171
|
+
object.save
|
172
|
+
object
|
220
173
|
end
|
221
|
-
# rubocop:enable Metrics/AbcSize
|
222
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
223
174
|
end
|
224
175
|
end
|
225
176
|
end
|
@@ -12,17 +12,10 @@ module Hyrax
|
|
12
12
|
# Update the visibility of the work to match the correct state of the lease, then clear the lease date, etc.
|
13
13
|
# Saves the lease and the work
|
14
14
|
def destroy
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
lease_manager.nullify
|
20
|
-
else
|
21
|
-
work.lease_visibility! # If the lease has lapsed, update the current visibility.
|
22
|
-
work.deactivate_lease!
|
23
|
-
work.lease.save!
|
24
|
-
work.save!
|
25
|
-
end
|
15
|
+
work.lease_visibility! # If the lease has lapsed, update the current visibility.
|
16
|
+
work.deactivate_lease!
|
17
|
+
work.lease.save!
|
18
|
+
work.save!
|
26
19
|
end
|
27
20
|
end
|
28
21
|
end
|
@@ -1,125 +1,75 @@
|
|
1
1
|
class TrackingTags {
|
2
2
|
constructor(provider) {
|
3
3
|
this.provider = provider
|
4
|
-
switch(this.provider) {
|
5
|
-
case 'matomo':
|
6
|
-
this.tracker = new MatomoTagTracker();
|
7
|
-
break;
|
8
|
-
case 'google':
|
9
|
-
this.tracker = new UATagTracker();
|
10
|
-
break;
|
11
|
-
case 'ga4':
|
12
|
-
this.tracker = new GA4TagTracker();
|
13
|
-
break;
|
14
|
-
default:
|
15
|
-
console.error('Unsupport analytics provider ' + this.provider + ', supported values are: matomo, google, ga4');
|
16
|
-
}
|
17
|
-
}
|
18
|
-
|
19
|
-
// Track an event with the configured provider
|
20
|
-
trackTagEvent(category, action, name) {
|
21
|
-
this.tracker.trackEvent(category, action, name);
|
22
4
|
}
|
23
5
|
|
24
|
-
// Track a page view with the configured provider
|
25
|
-
trackPageView() {
|
26
|
-
this.tracker.trackPageView();
|
27
|
-
}
|
28
|
-
|
29
|
-
// Deprecated: use trackTagEvent and trackPageView instead.
|
30
6
|
analytics() {
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
if (params[0] == 'trackPageView' || params[0] == '_trackPageView') {
|
37
|
-
this.tracker.trackPageView();
|
38
|
-
} else {
|
39
|
-
this.tracker.trackTagEvent(params[1], params[2], params[3]);
|
7
|
+
if(this.provider === "matomo") {
|
8
|
+
return _paq;
|
9
|
+
}
|
10
|
+
else {
|
11
|
+
return _gaq;
|
40
12
|
}
|
41
13
|
}
|
42
14
|
|
43
|
-
// Deprecated
|
44
15
|
pageView() {
|
45
|
-
|
16
|
+
if(this.provider === "matomo") {
|
17
|
+
return 'trackPageView'
|
18
|
+
} else {
|
19
|
+
return '_trackPageview'
|
20
|
+
}
|
46
21
|
}
|
47
22
|
|
48
|
-
// Deprecated
|
49
23
|
trackEvent() {
|
50
|
-
|
51
|
-
|
52
|
-
}
|
53
|
-
|
54
|
-
|
55
|
-
trackEvent(category, action, name) {
|
56
|
-
gtag('event', action, {
|
57
|
-
'category': category,
|
58
|
-
'label': name
|
59
|
-
});
|
60
|
-
}
|
61
|
-
|
62
|
-
trackPageView() {
|
63
|
-
// No operation necessary, this event is automatically collected
|
64
|
-
}
|
65
|
-
}
|
66
|
-
|
67
|
-
class UATagTracker {
|
68
|
-
trackEvent(category, action, name) {
|
69
|
-
_gaq.push(['_trackEvent', category, action, name]);
|
70
|
-
}
|
71
|
-
|
72
|
-
trackPageView() {
|
73
|
-
_gaq.push(['_trackPageView']);
|
74
|
-
}
|
75
|
-
}
|
76
|
-
|
77
|
-
class MatomoTagTracker {
|
78
|
-
trackEvent(category, action, name) {
|
79
|
-
_paq.push(['trackEvent', category, action, name]);
|
80
|
-
}
|
81
|
-
|
82
|
-
trackPageView() {
|
83
|
-
_paq.push(['trackPageView']);
|
24
|
+
if(this.provider === "matomo") {
|
25
|
+
return 'trackEvent'
|
26
|
+
} else {
|
27
|
+
return '_trackEvent'
|
28
|
+
}
|
84
29
|
}
|
85
30
|
}
|
86
31
|
|
87
32
|
function trackPageView() {
|
88
|
-
window.trackingTags.
|
33
|
+
window.trackingTags.analytics().push([window.trackingTags.pageView()]);
|
89
34
|
}
|
90
35
|
|
91
36
|
function trackAnalyticsEvents() {
|
92
37
|
$('span.analytics-event').each(function(){
|
93
|
-
var eventSpan = $(this)
|
94
|
-
window.trackingTags.
|
38
|
+
var eventSpan = $(this)
|
39
|
+
window.trackingTags.analytics().push([window.trackingTags.trackEvent(), eventSpan.data('category'), eventSpan.data('action'), eventSpan.data('name')]);
|
95
40
|
})
|
96
41
|
}
|
97
42
|
|
98
43
|
function setupTracking() {
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
44
|
+
var provider = $('meta[name="analytics-provider"]').prop('content')
|
45
|
+
if (provider === undefined) {
|
46
|
+
return;
|
47
|
+
}
|
48
|
+
window.trackingTags = new TrackingTags(provider)
|
49
|
+
trackPageView()
|
50
|
+
trackAnalyticsEvents()
|
106
51
|
}
|
107
52
|
|
108
53
|
if (typeof Turbolinks !== 'undefined') {
|
109
54
|
$(document).on('turbolinks:load', function() {
|
110
|
-
setupTracking()
|
111
|
-
})
|
55
|
+
setupTracking()
|
56
|
+
})
|
112
57
|
} else {
|
113
58
|
$(document).on('ready', function() {
|
114
|
-
setupTracking()
|
115
|
-
})
|
59
|
+
setupTracking()
|
60
|
+
})
|
116
61
|
}
|
117
62
|
|
118
63
|
$(document).on('click', '#file_download', function(e) {
|
119
|
-
|
120
|
-
|
64
|
+
var provider = $('meta[name="analytics-provider"]').prop('content')
|
65
|
+
if (provider === undefined) {
|
66
|
+
return;
|
67
|
+
}
|
68
|
+
window.trackingTags = new TrackingTags(provider)
|
69
|
+
window.trackingTags.analytics().push([trackingTags.trackEvent(), 'file-set', 'file-set-download', $(this).data('label')]);
|
70
|
+
window.trackingTags.analytics().push([trackingTags.trackEvent(), 'file-set-in-work', 'file-set-in-work-download', $(this).data('work-id')]);
|
121
71
|
$(this).data('collection-ids').forEach(function (collection) {
|
122
|
-
window.trackingTags.
|
123
|
-
window.trackingTags.
|
72
|
+
window.trackingTags.analytics().push([trackingTags.trackEvent(), 'file-set-in-collection', 'file-set-in-collection-download', collection]);
|
73
|
+
window.trackingTags.analytics().push([trackingTags.trackEvent(), 'work-in-collection', 'work-in-collection-download', collection]);
|
124
74
|
});
|
125
75
|
});
|
@@ -92,7 +92,7 @@ Hyrax = {
|
|
92
92
|
// Popover help modals. Used on the user profile page.
|
93
93
|
popovers: function () {
|
94
94
|
$("a[data-toggle=popover]").popover({html: true})
|
95
|
-
.click
|
95
|
+
.on("click", function () {
|
96
96
|
return false;
|
97
97
|
});
|
98
98
|
},
|
@@ -104,7 +104,7 @@ Hyrax = {
|
|
104
104
|
// On the edit work page
|
105
105
|
new PermissionsControl($("#share"), 'tmpl-work-grant');
|
106
106
|
// On the edit fileset page
|
107
|
-
new PermissionsControl($("#permission"), 'tmpl-file-set-grant'
|
107
|
+
new PermissionsControl($("#permission"), 'tmpl-file-set-grant');
|
108
108
|
// On the batch edit page
|
109
109
|
new PermissionsControl($("#form_permissions"), 'tmpl-work-grant');
|
110
110
|
// On the edit collection page
|
@@ -1,10 +1,10 @@
|
|
1
1
|
Blacklight.onLoad(function() {
|
2
|
-
$('#show_addl_descriptions').click
|
2
|
+
$('#show_addl_descriptions').on('click', function() {
|
3
3
|
$('#more_descriptions').show();
|
4
4
|
$('#show_addl_descriptions').hide();
|
5
5
|
return false;
|
6
6
|
});
|
7
|
-
$('#hide_addl_descriptions').click
|
7
|
+
$('#hide_addl_descriptions').on('click', function() {
|
8
8
|
$('#more_descriptions').hide();
|
9
9
|
$('#show_addl_descriptions').show();
|
10
10
|
return false;
|
@@ -9,7 +9,7 @@ function batch_edit_init () {
|
|
9
9
|
var key = Pair[0];
|
10
10
|
var val = Pair[1];
|
11
11
|
if (Result[key] != null) {
|
12
|
-
if(
|
12
|
+
if(!Array.isArray(Result[key])) Result[key] = [Result[key]];
|
13
13
|
Result[key].push(val);
|
14
14
|
} else
|
15
15
|
Result[key] = val;
|
@@ -159,9 +159,9 @@ function batch_edit_init () {
|
|
159
159
|
setTimeout(ajaxManager.runNow(), 100);
|
160
160
|
}
|
161
161
|
|
162
|
-
$("#permissions_visibility_save").click
|
163
|
-
$("#permissions_roles_save").click
|
164
|
-
$(".field-save").click
|
162
|
+
$("#permissions_visibility_save").on('click', runSave);
|
163
|
+
$("#permissions_roles_save").on( 'click', runSave);
|
164
|
+
$(".field-save").on('click', runSave);
|
165
165
|
}
|
166
166
|
|
167
167
|
Blacklight.onLoad(function() {
|