curation_concerns 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +7 -9
- data/.rspec +1 -1
- data/.rubocop.yml +185 -0
- data/.travis.yml +0 -10
- data/CONTRIBUTING.md +117 -0
- data/Gemfile +5 -2
- data/README.md +18 -11
- data/Rakefile +23 -11
- data/VERSION +1 -1
- data/app/assets/images/audio.png +0 -0
- data/app/assets/images/loading.gif +0 -0
- data/app/assets/images/progressbar.gif +0 -0
- data/app/assets/javascripts/curation_concerns/application.js +2 -8
- data/app/assets/javascripts/curation_concerns/curation_concerns.js +1 -15
- data/app/assets/javascripts/curation_concerns/facet_mine.js +4 -10
- data/app/assets/javascripts/curation_concerns/fileupload.js +6 -0
- data/app/assets/javascripts/curation_concerns/uploader.js +183 -0
- data/app/assets/stylesheets/curation_concerns/_curation_concerns.scss +3 -0
- data/app/assets/stylesheets/curation_concerns/_positioning.scss +6 -0
- data/app/assets/stylesheets/curation_concerns/fileupload/jquery.fileupload-ui.scss +86 -0
- data/app/assets/stylesheets/curation_concerns/fileupload/thumbnail-scaling.css +3 -0
- data/app/assets/stylesheets/curation_concerns/fileupload.scss +48 -0
- data/app/assets/stylesheets/curation_concerns/modules/attributes.scss +10 -0
- data/app/assets/stylesheets/curation_concerns/modules/embargoes.scss +1 -1
- data/app/assets/stylesheets/curation_concerns/modules/forms.scss +0 -10
- data/app/assets/stylesheets/curation_concerns/modules/search_results.scss +7 -8
- data/app/controllers/concerns/curation_concerns/api.rb +77 -0
- data/app/controllers/concerns/curation_concerns/application_controller_behavior.rb +30 -12
- data/app/controllers/concerns/curation_concerns/catalog_controller.rb +9 -276
- data/app/controllers/concerns/curation_concerns/collections_controller_behavior.rb +51 -40
- data/app/controllers/concerns/curation_concerns/curation_concern_controller.rb +60 -30
- data/app/controllers/concerns/curation_concerns/download_behavior.rb +51 -37
- data/app/controllers/concerns/curation_concerns/embargoes_controller_behavior.rb +29 -29
- data/app/controllers/concerns/curation_concerns/file_sets_controller_behavior.rb +198 -0
- data/app/controllers/concerns/curation_concerns/leases_controller_behavior.rb +27 -20
- data/app/controllers/concerns/curation_concerns/manages_embargoes.rb +2 -7
- data/app/controllers/concerns/curation_concerns/parent_container.rb +20 -4
- data/app/controllers/concerns/curation_concerns/single_use_links_controller_behavior.rb +48 -0
- data/app/controllers/concerns/curation_concerns/single_use_links_viewer_controller_behavior.rb +75 -0
- data/app/controllers/concerns/curation_concerns/themed_layout_controller.rb +0 -1
- data/app/controllers/concerns/curation_concerns/upload_sets_controller_behavior.rb +38 -0
- data/app/controllers/concerns/curation_concerns/welcome_controller_behavior.rb +8 -0
- data/app/controllers/concerns/curation_concerns/without_namespace.rb +2 -1
- data/app/controllers/curation_concerns/classify_concerns_controller.rb +9 -9
- data/app/controllers/curation_concerns/file_sets_controller.rb +5 -0
- data/app/controllers/curation_concerns/permissions_controller.rb +2 -3
- data/app/controllers/curation_concerns/single_use_links_controller.rb +5 -0
- data/app/controllers/curation_concerns/single_use_links_viewer_controller.rb +21 -0
- data/app/controllers/downloads_controller.rb +0 -1
- data/app/controllers/embargoes_controller.rb +0 -2
- data/app/controllers/leases_controller.rb +0 -2
- data/app/controllers/registrations_controller.rb +1 -2
- data/app/controllers/upload_sets_controller.rb +3 -0
- data/app/controllers/welcome_controller.rb +3 -0
- data/app/forms/curation_concerns/forms/collection_edit_form.rb +18 -2
- data/app/forms/curation_concerns/forms/file_set_edit_form.rb +15 -0
- data/app/forms/curation_concerns/forms/work_form.rb +57 -0
- data/app/helpers/curation_concerns/ability_helper.rb +24 -24
- data/app/helpers/curation_concerns/catalog_helper.rb +9 -8
- data/app/helpers/curation_concerns/collections_helper.rb +9 -12
- data/app/helpers/curation_concerns/embargo_helper.rb +0 -2
- data/app/helpers/curation_concerns/file_set_helper.rb +31 -0
- data/app/helpers/curation_concerns/lease_helper.rb +0 -3
- data/app/helpers/curation_concerns/main_app_helpers.rb +1 -3
- data/app/helpers/curation_concerns/render_constraints_helper.rb +5 -5
- data/app/helpers/curation_concerns/search_paths_helper.rb +5 -7
- data/app/helpers/curation_concerns/title_helper.rb +3 -7
- data/app/helpers/curation_concerns/url_helper.rb +4 -6
- data/app/inputs/multifile_input.rb +8 -0
- data/app/jobs/visibility_copy_job.rb +22 -0
- data/app/presenters/curation_concerns/collection_presenter.rb +14 -32
- data/app/presenters/curation_concerns/embargo_presenter.rb +26 -0
- data/app/presenters/curation_concerns/file_set_presenter.rb +34 -0
- data/app/presenters/curation_concerns/lease_presenter.rb +30 -0
- data/app/presenters/curation_concerns/model_proxy.rb +27 -0
- data/app/presenters/curation_concerns/permission_badge.rb +61 -0
- data/app/presenters/curation_concerns/presenter_factory.rb +45 -0
- data/app/presenters/curation_concerns/presents_attributes.rb +25 -0
- data/app/presenters/curation_concerns/version_list_presenter.rb +18 -0
- data/app/presenters/curation_concerns/version_presenter.rb +27 -0
- data/app/presenters/curation_concerns/work_show_presenter.rb +33 -0
- data/app/renderers/curation_concerns/attribute_renderer.rb +75 -0
- data/app/search_builders/curation_concerns/deactivated_embargo_search_builder.rb +10 -0
- data/app/search_builders/curation_concerns/deactivated_lease_search_builder.rb +10 -0
- data/app/search_builders/curation_concerns/embargo_search_builder.rb +23 -0
- data/app/search_builders/curation_concerns/expired_embargo_search_builder.rb +11 -0
- data/app/search_builders/curation_concerns/expired_lease_search_builder.rb +11 -0
- data/app/search_builders/curation_concerns/lease_search_builder.rb +23 -0
- data/app/search_builders/curation_concerns/search_builder.rb +10 -16
- data/app/services/curation_concerns/curation_concern.rb +0 -5
- data/app/services/curation_concerns/embargo_service.rb +26 -4
- data/app/services/curation_concerns/lease_service.rb +14 -5
- data/app/services/curation_concerns/parent_service.rb +19 -0
- data/app/services/curation_concerns/restriction_service.rb +24 -0
- data/app/services/rights_service.rb +14 -0
- data/app/views/catalog/_action_menu_partials/_collection.html.erb +1 -1
- data/app/views/catalog/_action_menu_partials/_default.html.erb +5 -3
- data/app/views/catalog/_document_list.html.erb +1 -1
- data/app/views/catalog/index.html.erb +1 -35
- data/app/views/collections/_edit_descriptions.html.erb +3 -4
- data/app/views/collections/_form.html.erb +1 -1
- data/app/views/collections/_form_permission.html.erb +1 -1
- data/app/views/collections/_search_form.html.erb +10 -0
- data/app/views/collections/_show_actions.html.erb +3 -3
- data/app/views/collections/_sort_and_per_page.html.erb +2 -2
- data/app/views/collections/show.html.erb +6 -6
- data/app/views/curation_concerns/base/_attribute_rows.html.erb +7 -0
- data/app/views/curation_concerns/base/_attributes.html.erb +6 -13
- data/app/views/curation_concerns/base/_form.html.erb +4 -5
- data/app/views/curation_concerns/base/_form_descriptive_fields.erb +2 -4
- data/app/views/curation_concerns/base/_form_files_and_links.html.erb +3 -5
- data/app/views/curation_concerns/base/_form_permission.html.erb +13 -26
- data/app/views/curation_concerns/base/_form_permission_note.html.erb +15 -0
- data/app/views/curation_concerns/base/_form_permission_under_embargo.html.erb +2 -2
- data/app/views/curation_concerns/base/_form_permission_under_lease.html.erb +2 -2
- data/app/views/curation_concerns/base/_form_representative_image.html.erb +16 -4
- data/app/views/curation_concerns/base/_form_rights.html.erb +17 -0
- data/app/views/curation_concerns/base/_form_supplementary_fields.html.erb +4 -9
- data/app/views/curation_concerns/base/_related_files.html.erb +4 -4
- data/app/views/curation_concerns/base/_representative_media.html.erb +2 -4
- data/app/views/curation_concerns/base/_versioning.html.erb +23 -0
- data/app/views/curation_concerns/base/show.html.erb +13 -10
- data/app/views/curation_concerns/base/show.json.jbuilder +1 -0
- data/app/views/curation_concerns/base/versions.html.erb +6 -0
- data/app/views/curation_concerns/file_sets/_actions.html.erb +16 -0
- data/app/views/curation_concerns/file_sets/_file_set.html.erb +12 -0
- data/app/views/curation_concerns/{generic_files → file_sets}/_form.html.erb +7 -7
- data/app/views/curation_concerns/file_sets/_multiple_upload.html.erb +3 -0
- data/app/views/curation_concerns/{generic_files → file_sets}/edit.html.erb +0 -0
- data/app/views/curation_concerns/file_sets/jq_upload.json.jbuilder +8 -0
- data/app/views/curation_concerns/file_sets/media_display/_audio.html.erb +6 -0
- data/app/views/curation_concerns/file_sets/media_display/_default.html.erb +4 -0
- data/app/views/curation_concerns/file_sets/media_display/_image.html.erb +8 -0
- data/app/views/curation_concerns/file_sets/media_display/_office_document.html.erb +7 -0
- data/app/views/curation_concerns/file_sets/media_display/_pdf.html.erb +7 -0
- data/app/views/curation_concerns/file_sets/media_display/_video.html.erb +6 -0
- data/app/views/curation_concerns/file_sets/show.html.erb +15 -0
- data/app/views/curation_concerns/file_sets/show.json.jbuilder +1 -0
- data/app/views/curation_concerns/file_sets/upload/_alerts.html.erb +19 -0
- data/app/views/curation_concerns/file_sets/upload/_form.html.erb +6 -0
- data/app/views/curation_concerns/file_sets/upload/_form_fields.html.erb +45 -0
- data/app/views/curation_concerns/file_sets/upload/_script_templates.html.erb +61 -0
- data/app/views/curation_concerns/single_use_links/new_download.html.erb +5 -0
- data/app/views/curation_concerns/single_use_links/new_show.html.erb +5 -0
- data/app/views/curation_concerns/single_use_links_viewer/show.html.erb +10 -0
- data/app/views/error/single_use_error.html.erb +19 -0
- data/app/views/layouts/error.html.erb +33 -0
- data/app/views/leases/_list_expired_active_leases.html.erb +6 -1
- data/app/views/records/_rights_modal.html.erb +1 -0
- data/app/views/records/edit_fields/_default.html.erb +5 -0
- data/app/views/records/show_fields/_default.html.erb +6 -0
- data/app/views/shared/_add_content.html.erb +2 -14
- data/app/views/shared/_add_works.html.erb +14 -0
- data/app/views/shared/_my_actions.html.erb +9 -1
- data/app/views/shared/_site_actions.html.erb +1 -1
- data/app/views/shared/_site_search.html.erb +7 -7
- data/app/views/upload_sets/_edit.js.erb +15 -0
- data/app/views/upload_sets/_metadata.html.erb +50 -0
- data/app/views/upload_sets/_more_metadata.html.erb +7 -0
- data/app/views/upload_sets/edit.html.erb +26 -0
- data/app/views/{catalog/_home_text.html.erb → welcome/index.html.erb} +1 -0
- data/config/initializers/simple_form.rb +14 -0
- data/config/jetty.yml +5 -0
- data/config/locales/curation_concerns.en.yml +25 -4
- data/config/routes.rb +5 -0
- data/curation_concerns.gemspec +4 -6
- data/lib/curation_concerns/callbacks/registry.rb +48 -0
- data/lib/curation_concerns/callbacks.rb +26 -0
- data/lib/curation_concerns/controller_resource.rb +4 -4
- data/lib/curation_concerns/engine.rb +4 -2
- data/lib/curation_concerns/rails/routes.rb +23 -19
- data/lib/curation_concerns/single_use_error.rb +3 -0
- data/lib/curation_concerns/spec_support.rb +0 -2
- data/lib/curation_concerns/version.rb +1 -1
- data/lib/curation_concerns.rb +1 -2
- data/lib/generators/curation_concerns/install_generator.rb +34 -30
- data/lib/generators/curation_concerns/templates/catalog_controller.rb +236 -0
- data/lib/generators/curation_concerns/templates/config/authorities/rights.yml +19 -0
- data/lib/generators/curation_concerns/templates/{curation_concerns.css.scss → curation_concerns.scss} +0 -0
- data/lib/generators/curation_concerns/work/templates/actor_spec.rb.erb +1 -1
- data/lib/generators/curation_concerns/work/templates/controller_spec.rb.erb +1 -1
- data/lib/generators/curation_concerns/work/templates/form.rb.erb +8 -0
- data/lib/generators/curation_concerns/work/templates/form_spec.rb.erb +10 -0
- data/lib/generators/curation_concerns/work/templates/model.rb.erb +2 -2
- data/lib/generators/curation_concerns/work/templates/model_spec.rb.erb +1 -1
- data/lib/generators/curation_concerns/work/work_generator.rb +31 -26
- data/spec/abilities/collection_abilities_spec.rb +13 -13
- data/spec/abilities/embargo_and_lease_ability_spec.rb +23 -0
- data/spec/abilities/file_set_abilities_spec.rb +67 -0
- data/spec/abilities/generic_work_abilities_spec.rb +12 -12
- data/spec/actors/curation_concerns/embargo_actor_spec.rb +38 -0
- data/spec/actors/curation_concerns/file_set_actor_spec.rb +180 -0
- data/spec/actors/curation_concerns/lease_actor_spec.rb +39 -0
- data/spec/actors/curation_concerns/manages_embargoes_actor_spec.rb +44 -38
- data/spec/actors/curation_concerns/work_actor_spec.rb +121 -63
- data/spec/controllers/catalog_controller_spec.rb +30 -32
- data/spec/controllers/curation_concerns/classify_concerns_controller_spec.rb +2 -3
- data/spec/controllers/curation_concerns/collections_controller_spec.rb +93 -76
- data/spec/controllers/curation_concerns/file_sets_controller_json_spec.rb +106 -0
- data/spec/controllers/curation_concerns/file_sets_controller_spec.rb +237 -0
- data/spec/controllers/curation_concerns/generic_works_controller_json_spec.rb +85 -0
- data/spec/controllers/curation_concerns/generic_works_controller_spec.rb +84 -72
- data/spec/controllers/curation_concerns/permissions_controller_spec.rb +8 -11
- data/spec/controllers/curation_concerns/single_use_links_controller_spec.rb +79 -0
- data/spec/controllers/curation_concerns/single_use_links_viewer_controller_spec.rb +74 -0
- data/spec/controllers/downloads_controller_spec.rb +49 -24
- data/spec/controllers/embargoes_controller_spec.rb +42 -51
- data/spec/controllers/leases_controller_spec.rb +53 -42
- data/spec/controllers/upload_sets_controller_spec.rb +76 -0
- data/spec/controllers/welcome_controller_spec.rb +12 -0
- data/spec/factories/collections.rb +5 -1
- data/spec/factories/{generic_files.rb → file_sets.rb} +6 -6
- data/spec/factories/generic_works.rb +5 -6
- data/spec/factories/users.rb +2 -4
- data/spec/features/add_file_spec.rb +11 -12
- data/spec/features/catalog_search_spec.rb +43 -0
- data/spec/features/collection_spec.rb +61 -46
- data/spec/features/create_work_spec.rb +26 -19
- data/spec/features/embargo_spec.rb +13 -12
- data/spec/features/lease_spec.rb +15 -16
- data/spec/features/update_file_spec.rb +11 -13
- data/spec/features/work_generator_spec.rb +34 -26
- data/spec/{helpers/curation_concerns/.keep → fixtures/empty_file.txt} +0 -0
- data/spec/fixtures/test.pdf +0 -0
- data/spec/forms/collection_edit_form_spec.rb +53 -9
- data/spec/forms/file_set_edit_form_spec.rb +53 -0
- data/spec/forms/work_form_spec.rb +54 -0
- data/spec/helpers/catalog_helper_spec.rb +9 -10
- data/spec/helpers/configuration_helper_spec.rb +1 -2
- data/spec/helpers/curation_concerns/collections_helper_spec.rb +8 -9
- data/spec/helpers/curation_concerns/file_set_helper_spec.rb +61 -0
- data/spec/helpers/render_constraints_helper_spec.rb +4 -4
- data/spec/helpers/url_helper_spec.rb +8 -7
- data/spec/indexers/collection_indexer_spec.rb +14 -0
- data/spec/indexers/file_set_indexing_service_spec.rb +69 -0
- data/spec/indexers/generic_work_indexing_service_spec.rb +22 -0
- data/spec/inputs/multifile_input_spec.rb +32 -0
- data/spec/jobs/active_fedora_id_based_job_spec.rb +10 -8
- data/spec/jobs/audit_job_spec.rb +28 -20
- data/spec/jobs/characterize_job_spec.rb +10 -15
- data/spec/jobs/create_derivatives_job_spec.rb +11 -9
- data/spec/jobs/import_url_job_spec.rb +14 -21
- data/spec/jobs/ingest_file_job_spec.rb +45 -0
- data/spec/jobs/ingest_local_file_job_spec.rb +13 -15
- data/spec/jobs/upload_set_update_job_spec.rb +30 -0
- data/spec/jobs/visibility_copy_job_spec.rb +61 -0
- data/spec/lib/curation_concerns/callbacks/registry_spec.rb +54 -0
- data/spec/lib/curation_concerns/callbacks_spec.rb +27 -0
- data/spec/lib/curation_concerns/messages_spec.rb +29 -30
- data/spec/lib/curation_concerns/readable_permissions_spec.rb +18 -20
- data/spec/lib/curation_concerns/writable_permissions_spec.rb +2 -4
- data/spec/matchers/metadata_field_matchers.rb +1 -1
- data/spec/matchers/response_matchers.rb +2 -2
- data/spec/matchers.rb +3 -2
- data/spec/models/checksum_audit_log_spec.rb +37 -32
- data/spec/models/curation_concerns/collection_behavior_spec.rb +50 -37
- data/spec/models/curation_concerns/file_set/derivatives_spec.rb +84 -0
- data/spec/models/curation_concerns/work_behavior_spec.rb +53 -0
- data/spec/models/file_set_spec.rb +601 -0
- data/spec/models/generic_work_spec.rb +15 -14
- data/spec/models/single_use_link_spec.rb +69 -0
- data/spec/models/solr_document_spec.rb +67 -0
- data/spec/models/upload_set_spec.rb +39 -0
- data/spec/models/user_spec.rb +7 -8
- data/spec/presenters/curation_concerns/collection_presenter_spec.rb +8 -24
- data/spec/presenters/curation_concerns/file_set_presenter_spec.rb +59 -0
- data/spec/presenters/curation_concerns/permission_badge_spec.rb +29 -0
- data/spec/presenters/curation_concerns/presenter_factory_spec.rb +29 -0
- data/spec/presenters/curation_concerns/version_list_presenter_spec.rb +32 -0
- data/spec/presenters/curation_concerns/version_presenter_spec.rb +51 -0
- data/spec/presenters/curation_concerns/work_show_presenter_spec.rb +35 -0
- data/spec/presenters/embargo_presenter_spec.rb +48 -0
- data/spec/presenters/lease_presenter_spec.rb +48 -0
- data/spec/renderers/curation_concerns/attribute_renderer_spec.rb +14 -0
- data/spec/routing/curation_concerns/routes_spec.rb +38 -12
- data/spec/routing/route_spec.rb +38 -39
- data/spec/search_builders/curation_concerns/embargo_search_builder_spec.rb +17 -0
- data/spec/search_builders/curation_concerns/lease_search_builder_spec.rb +17 -0
- data/spec/search_builders/curation_concerns/search_builder_spec.rb +60 -0
- data/spec/services/derivative_path_spec.rb +16 -0
- data/spec/services/embargo_service_spec.rb +15 -14
- data/spec/services/file_set_audit_service_spec.rb +71 -0
- data/spec/services/lease_service_spec.rb +13 -13
- data/spec/services/lock_manager_spec.rb +12 -0
- data/spec/services/parent_service_spec.rb +13 -0
- data/spec/services/persist_derivatives_spec.rb +24 -0
- data/spec/services/persist_directly_contained_output_file_service_spec.rb +14 -0
- data/spec/services/repository_audit_service_spec.rb +8 -7
- data/spec/services/rights_service_spec.rb +17 -0
- data/spec/services/thumbnail_path_service_spec.rb +43 -0
- data/spec/services/versioning_service_spec.rb +8 -9
- data/spec/spec_helper.rb +21 -13
- data/spec/support/curation_concerns/factory_helpers.rb +1 -0
- data/spec/support/features/fixture_file_upload.rb +3 -1
- data/spec/support/features/session_helpers.rb +3 -4
- data/spec/support/features.rb +1 -4
- data/spec/support/input_support.rb +11 -0
- data/spec/support/matchers/api_responses.rb +22 -0
- data/spec/support/shared/shared_examples_has_dc_metadata.rb +0 -2
- data/spec/support/shared/shared_examples_is_embargoable.rb +1 -3
- data/spec/support/shared/shared_examples_with_access_rights.rb +13 -16
- data/spec/tasks/rake_spec.rb +9 -11
- data/spec/test_app_templates/Gemfile.extra +4 -1
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +3 -35
- data/spec/views/catalog/index.html.erb_spec.rb +7 -10
- data/spec/views/curation_concerns/base/_attributes.html.erb_spec.rb +9 -6
- data/spec/views/curation_concerns/base/_form_permission.html.erb_spec.rb +13 -0
- data/spec/views/curation_concerns/base/show.html.erb_spec.rb +35 -15
- data/spec/views/curation_concerns/base/show.json.jbuilder_spec.rb +21 -0
- data/spec/views/curation_concerns/file_sets/_file_set.html.erb_spec.rb +37 -0
- data/spec/views/curation_concerns/file_sets/show.json.jbuilder_spec.rb +21 -0
- data/spec/views/curation_concerns/permissions/confirm.html.erb_spec.rb +6 -6
- data/spec/views/error/single_use_error.html.erb_spec.rb +8 -0
- data/spec/views/layouts/error.html.erb_spec.rb +8 -0
- data/spec/views/shared/_add_content.html.erb_spec.rb +33 -20
- data/spec/views/shared/_my_actions.html.erb_spec.rb +18 -6
- data/spec/views/single_use_links/new_download.html.erb_spec.rb +29 -0
- data/spec/views/single_use_links_viewer/show.html.erb_spec.rb +32 -0
- data/tasks/jetty.rake +1 -1
- data/vendor/assets/javascrips/fileupload/jquery.fileupload-process.js +175 -0
- data/vendor/assets/javascrips/fileupload/jquery.fileupload-ui.js +710 -0
- data/vendor/assets/javascrips/fileupload/jquery.fileupload-validate.js +122 -0
- data/vendor/assets/javascrips/fileupload/jquery.fileupload.js +1477 -0
- data/vendor/assets/javascrips/fileupload/locale.js +27 -0
- data/vendor/assets/javascrips/fileupload/tmpl.js +87 -0
- metadata +242 -213
- data/app/assets/javascripts/curation_concerns/help_modal.js +0 -36
- data/app/assets/javascripts/curation_concerns/link_groups.js.coffee +0 -123
- data/app/assets/javascripts/curation_concerns/link_users.js.coffee +0 -126
- data/app/assets/javascripts/curation_concerns/proxy_rights.js.coffee +0 -95
- data/app/assets/javascripts/curation_concerns/proxy_submission.js +0 -23
- data/app/assets/javascripts/curation_concerns/select_works.js.coffee +0 -20
- data/app/controllers/catalog_controller.rb +0 -3
- data/app/controllers/concerns/curation_concerns/generic_files_controller_behavior.rb +0 -149
- data/app/controllers/curation_concerns/generic_files_controller.rb +0 -13
- data/app/datastreams/curation_concerns/generic_work_rdf_properties.rb +0 -57
- data/app/datastreams/generic_work_metadata.rb +0 -3
- data/app/forms/curation_concerns/forms/generic_file_edit_form.rb +0 -15
- data/app/forms/curation_concerns/forms/generic_work_edit_form.rb +0 -9
- data/app/helpers/curation_concerns/attribute_helper.rb +0 -67
- data/app/helpers/curation_concerns/generic_file_helper.rb +0 -19
- data/app/helpers/curation_concerns/thumbnail_helper.rb +0 -11
- data/app/presenters/curation_concerns/generic_file_presenter.rb +0 -14
- data/app/presenters/curation_concerns/generic_work_presenter.rb +0 -13
- data/app/views/catalog/_index_default.html.erb +0 -17
- data/app/views/collections/_form_representative_image.html.erb +0 -13
- data/app/views/collections/_identifier_and_action.html.erb +0 -15
- data/app/views/curation_concerns/base/_form_content_license.html.erb +0 -16
- data/app/views/curation_concerns/base/_form_editors.html.erb +0 -15
- data/app/views/curation_concerns/generic_files/_actions.html.erb +0 -16
- data/app/views/curation_concerns/generic_files/_generic_file.html.erb +0 -12
- data/app/views/curation_concerns/generic_files/_media_display.html.erb +0 -19
- data/app/views/curation_concerns/generic_files/jq_upload.json.jbuilder +0 -8
- data/app/views/curation_concerns/generic_files/show.html.erb +0 -15
- data/app/workers/visibility_copy_worker.rb +0 -30
- data/curation_concerns-models/.gitignore +0 -17
- data/curation_concerns-models/Gemfile +0 -4
- data/curation_concerns-models/LICENSE.md +0 -177
- data/curation_concerns-models/README.md +0 -42
- data/curation_concerns-models/Rakefile +0 -1
- data/curation_concerns-models/app/actors/concerns/curation_concerns/manages_embargoes_actor.rb +0 -99
- data/curation_concerns-models/app/actors/curation_concerns/base_actor.rb +0 -90
- data/curation_concerns-models/app/actors/curation_concerns/generic_file_actor.rb +0 -150
- data/curation_concerns-models/app/actors/curation_concerns/work_actor_behavior.rb +0 -88
- data/curation_concerns-models/app/jobs/active_fedora_id_based_job.rb +0 -22
- data/curation_concerns-models/app/jobs/active_fedora_pid_based_job.rb +0 -6
- data/curation_concerns-models/app/jobs/audit_job.rb +0 -58
- data/curation_concerns-models/app/jobs/characterize_job.rb +0 -11
- data/curation_concerns-models/app/jobs/copy_permissions_job.rb +0 -24
- data/curation_concerns-models/app/jobs/create_derivatives_job.rb +0 -15
- data/curation_concerns-models/app/jobs/import_url_job.rb +0 -56
- data/curation_concerns-models/app/jobs/ingest_local_file_job.rb +0 -48
- data/curation_concerns-models/app/jobs/resolrize_job.rb +0 -9
- data/curation_concerns-models/app/models/checksum_audit_log.rb +0 -21
- data/curation_concerns-models/app/models/concerns/curation_concerns/ability.rb +0 -34
- data/curation_concerns-models/app/models/concerns/curation_concerns/basic_metadata.rb +0 -87
- data/curation_concerns-models/app/models/concerns/curation_concerns/collection_behavior.rb +0 -47
- data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/belongs_to_works.rb +0 -53
- data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/characterization.rb +0 -89
- data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/content.rb +0 -8
- data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/export.rb +0 -343
- data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/full_text_indexing.rb +0 -12
- data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/indexing.rb +0 -14
- data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file/versions.rb +0 -16
- data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file.rb +0 -5
- data/curation_concerns-models/app/models/concerns/curation_concerns/generic_file_behavior.rb +0 -44
- data/curation_concerns-models/app/models/concerns/curation_concerns/generic_work_behavior.rb +0 -38
- data/curation_concerns-models/app/models/concerns/curation_concerns/has_representative.rb +0 -14
- data/curation_concerns-models/app/models/concerns/curation_concerns/human_readable_type.rb +0 -23
- data/curation_concerns-models/app/models/concerns/curation_concerns/permissions/readable.rb +0 -19
- data/curation_concerns-models/app/models/concerns/curation_concerns/permissions/writable.rb +0 -75
- data/curation_concerns-models/app/models/concerns/curation_concerns/permissions.rb +0 -7
- data/curation_concerns-models/app/models/concerns/curation_concerns/serializers.rb +0 -15
- data/curation_concerns-models/app/models/concerns/curation_concerns/solr_document_behavior.rb +0 -135
- data/curation_concerns-models/app/models/concerns/curation_concerns/user.rb +0 -65
- data/curation_concerns-models/app/models/concerns/curation_concerns/with_basic_metadata.rb +0 -98
- data/curation_concerns-models/app/models/concerns/curation_concerns/with_generic_files.rb +0 -29
- data/curation_concerns-models/app/models/curation_concerns/classify_concern.rb +0 -47
- data/curation_concerns-models/app/models/curation_concerns/quick_classification_query.rb +0 -31
- data/curation_concerns-models/app/models/datastreams/fits_datastream.rb +0 -148
- data/curation_concerns-models/app/models/version_committer.rb +0 -2
- data/curation_concerns-models/app/services/curation_concerns/characterization_service.rb +0 -71
- data/curation_concerns-models/app/services/curation_concerns/full_text_extraction_service.rb +0 -38
- data/curation_concerns-models/app/services/curation_concerns/generic_file_audit_service.rb +0 -85
- data/curation_concerns-models/app/services/curation_concerns/generic_file_indexing_service.rb +0 -14
- data/curation_concerns-models/app/services/curation_concerns/generic_work_indexing_service.rb +0 -16
- data/curation_concerns-models/app/services/curation_concerns/noid.rb +0 -23
- data/curation_concerns-models/app/services/curation_concerns/repository_audit_service.rb +0 -9
- data/curation_concerns-models/app/services/curation_concerns/versioning_service.rb +0 -27
- data/curation_concerns-models/config/locales/curation_concerns.en.yml +0 -6
- data/curation_concerns-models/curation_concerns-models.gemspec +0 -34
- data/curation_concerns-models/lib/curation_concerns/messages.rb +0 -66
- data/curation_concerns-models/lib/curation_concerns/models/engine.rb +0 -61
- data/curation_concerns-models/lib/curation_concerns/models/resque.rb +0 -36
- data/curation_concerns-models/lib/curation_concerns/models/utils.rb +0 -22
- data/curation_concerns-models/lib/curation_concerns/models/version.rb +0 -5
- data/curation_concerns-models/lib/curation_concerns/models.rb +0 -32
- data/curation_concerns-models/lib/generators/curation_concerns/models/abstract_migration_generator.rb +0 -30
- data/curation_concerns-models/lib/generators/curation_concerns/models/clamav_generator.rb +0 -19
- data/curation_concerns-models/lib/generators/curation_concerns/models/fulltext_generator.rb +0 -28
- data/curation_concerns-models/lib/generators/curation_concerns/models/install_generator.rb +0 -70
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/app/models/collection.rb +0 -4
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/app/models/generic_file.rb +0 -4
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/clamav.rb +0 -1
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/curation_concerns.rb +0 -123
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/mime_types.rb +0 -6
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/redis.yml +0 -9
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/redis_config.rb +0 -32
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/resque-pool.yml +0 -1
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/resque_admin.rb +0 -10
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/config/resque_config.rb +0 -5
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/migrations/create_checksum_audit_logs.rb +0 -19
- data/curation_concerns-models/lib/generators/curation_concerns/models/templates/migrations/create_version_committers.rb +0 -15
- data/curation_concerns-models/lib/tasks/curation_concerns-models_tasks.rake +0 -75
- data/curation_concerns-models/lib/tasks/migrate.rake +0 -13
- data/curation_concerns-models/lib/tasks/resque.rake +0 -13
- data/curation_concerns-models/lib/tasks/solr_reindex.rake +0 -8
- data/lib/curation_concerns/configuration.rb +0 -74
- data/lib/generators/curation_concerns/templates/curation_concerns_config.rb +0 -2
- data/solr_conf/conf/solrconfig.xml +0 -223
- data/spec/abilities/generic_file_abilities_spec.rb +0 -62
- data/spec/actors/curation_concerns/generic_file_actor_spec.rb +0 -116
- data/spec/controllers/curation_concerns/generic_files_controller_spec.rb +0 -251
- data/spec/forms/generic_file_edit_form_spec.rb +0 -33
- data/spec/helpers/thumbnail_helper_spec.rb +0 -21
- data/spec/jobs/copy_permissions_job_spec.rb +0 -49
- data/spec/jobs/curation_concerns_resque_queue_spec.rb +0 -49
- data/spec/models/curation_concerns/generic_file/derivatives_spec.rb +0 -88
- data/spec/models/curation_concerns/generic_work_behavior_spec.rb +0 -35
- data/spec/models/fits_datastream_spec.rb +0 -127
- data/spec/models/generic_file_spec.rb +0 -619
- data/spec/presenters/curation_concerns/generic_file_presenter_spec.rb +0 -16
- data/spec/services/characterization_service_spec.rb +0 -30
- data/spec/services/full_text_extraction_service_spec.rb +0 -5
- data/spec/services/generic_file_audit_service_spec.rb +0 -71
- data/spec/services/generic_file_indexing_service_spec.rb +0 -57
- data/spec/services/generic_work_indexing_service_spec.rb +0 -18
- data/spec/workers/visibility_copy_worker_spec.rb +0 -70
- data/vendor/assets/javascripts/handlebars.js +0 -2278
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.autocomplete.js +0 -602
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.core.js +0 -356
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.effect-highlight.js +0 -50
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.effect.js +0 -1276
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.menu.js +0 -610
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.position.js +0 -498
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.widget.js +0 -528
- data/vendor/assets/javascripts/jquery.tokeninput.js +0 -1061
- data/vendor/assets/stylesheets/jquery-ui-lightness.css +0 -474
- data/vendor/assets/stylesheets/token-input-facebook.css +0 -122
- data/vendor/assets/stylesheets/token-input-mac.css +0 -204
- data/vendor/assets/stylesheets/token-input.css +0 -127
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
if (navigator.userAgent.match("MSIE"))
|
|
2
|
+
$("#new_file_set").validate();
|
|
3
|
+
|
|
4
|
+
$('#permissions_display').show();
|
|
5
|
+
|
|
6
|
+
confirmation_needed = true;
|
|
7
|
+
window.onbeforeunload = confirmExit;
|
|
8
|
+
|
|
9
|
+
function confirmExit(){
|
|
10
|
+
if(confirmation_needed){
|
|
11
|
+
// if you return a string it will be displayed in between "don't navigate away"
|
|
12
|
+
// and "click Ok to navigate away or cancel to stay put" in the confirm dialog
|
|
13
|
+
return "Your metadata has not been saved.";
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
<h2>Individual Titles </h2>
|
|
2
|
+
<div id="" class="well">
|
|
3
|
+
<div class="row">
|
|
4
|
+
<div class="col-sm-8">
|
|
5
|
+
<h3>Applies to individual files uploaded</h3>
|
|
6
|
+
<%= content_tag :p, t('curation_concerns.upload_set.help.title'), class: "help-block" %>
|
|
7
|
+
<% @upload_set.file_sets.sort { |a,b| a.label.downcase <=> b.label.downcase }.each_with_index do |gen_f, index| %>
|
|
8
|
+
<div class="form-group">
|
|
9
|
+
<%= f.input_label :title, as: :multi_value_with_help, label: "Title #{index + 1}" %>
|
|
10
|
+
<div id="additional_title_clone">
|
|
11
|
+
<%= f.text_field :title, name: "title[#{gen_f.id}][]", value: gen_f.label, class: 'form-control', required: true %>
|
|
12
|
+
</div>
|
|
13
|
+
</div>
|
|
14
|
+
<% end %>
|
|
15
|
+
</div>
|
|
16
|
+
|
|
17
|
+
<div class="col-sm-4">
|
|
18
|
+
<!-- put metadata about file being edited here -->
|
|
19
|
+
</div>
|
|
20
|
+
</div>
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
<%= hidden_field_tag(:extra_description_count, "1") %>
|
|
24
|
+
<div id="descriptions_display">
|
|
25
|
+
<h2>Bulk Descriptions</h2>
|
|
26
|
+
<div class="well">
|
|
27
|
+
<div class="row">
|
|
28
|
+
<div class="col-sm-6">
|
|
29
|
+
<h3>Applies to all files just uploaded</h3>
|
|
30
|
+
<%= f.input :resource_type, as: :select_with_help, collection: Sufia.config.resource_types,
|
|
31
|
+
input_html: { class: 'form-control', multiple: true } %>
|
|
32
|
+
|
|
33
|
+
<%= f.input :tag, as: :multi_value_with_help %>
|
|
34
|
+
|
|
35
|
+
<%= f.input :creator, as: :multi_value_with_help %>
|
|
36
|
+
|
|
37
|
+
<%= f.input :rights, as: :select_with_modal_help, collection: RightsService.select_options,
|
|
38
|
+
input_html: { class: 'form-control', multiple: true } %>
|
|
39
|
+
|
|
40
|
+
<%= render "file_sets/rights_modal" %>
|
|
41
|
+
|
|
42
|
+
<button id="show_addl_descriptions" class="btn btn-default" aria-label="reveal additional metadata description fields">Show Additional Fields</button>
|
|
43
|
+
<!-- hidden on initial load -->
|
|
44
|
+
|
|
45
|
+
<%= render 'more_metadata', f: f %>
|
|
46
|
+
|
|
47
|
+
</div> <!-- /col-sm-8 -->
|
|
48
|
+
</div> <!-- /row -->
|
|
49
|
+
</div><!-- /well -->
|
|
50
|
+
</div> <!-- /row -->
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<div id="more_descriptions">
|
|
2
|
+
<button id="hide_addl_descriptions" class="btn btn-default" aria-label="hide additional metadata description fields">Hide Additional Fields</button>
|
|
3
|
+
<% (f.object.terms - [:title, :creator, :rights, :tag, :resource_type]).each do |term| %>
|
|
4
|
+
<%# <%= f.input term, as: :multi_value_with_help, input_html: { required: false} %>
|
|
5
|
+
<%= render_edit_field_partial(term, f: f) %>
|
|
6
|
+
<% end %>
|
|
7
|
+
</div> <!-- /more_descriptions -->
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
<%= javascript_tag do %>
|
|
2
|
+
<%= render partial: "edit", formats: [:js] %>
|
|
3
|
+
<% end %>
|
|
4
|
+
|
|
5
|
+
<h1>Apply Metadata</h1>
|
|
6
|
+
<p>
|
|
7
|
+
The information you provide for Title will be applied to the corresponding file only; however all other
|
|
8
|
+
information you provide will be applied <em>to the entire set of files that were uploaded together</em> you have just
|
|
9
|
+
deposited into <%= t('curation_concerns.product_name') %>. You may edit individual files from
|
|
10
|
+
<%= link_to "<i class='glyphicon glyphicon-dashboard'></i> #{t('curation_concerns.bread_crumb.works_list')}".html_safe, main_app.curation_concerns_generic_works_path %>
|
|
11
|
+
once this step is finished. <span class="required"><abbr title="required">*</abbr></span> indicates required fields.
|
|
12
|
+
</p>
|
|
13
|
+
<%= simple_form_for [main_app, @upload_set, @form], html: { multipart: true }, builder: Sufia::FormBuilder do |f| %>
|
|
14
|
+
|
|
15
|
+
<%= render 'metadata', f: f %>
|
|
16
|
+
|
|
17
|
+
<%#= render 'file_sets/permission_form', f: f, upload_set: @upload_set %>
|
|
18
|
+
|
|
19
|
+
<div id="permissions_submit">
|
|
20
|
+
<%= button_tag type: 'submit', class: 'btn btn-primary btn-lg',
|
|
21
|
+
onclick: "confirmation_needed = false;", id: "upload_submit", name: "update_permission" do %>
|
|
22
|
+
<i class="glyphicon glyphicon-floppy-disk"></i> Save
|
|
23
|
+
<% end %>
|
|
24
|
+
</div>
|
|
25
|
+
|
|
26
|
+
<% end %>
|
|
@@ -20,6 +20,20 @@ SimpleForm.setup do |config|
|
|
|
20
20
|
end
|
|
21
21
|
end
|
|
22
22
|
|
|
23
|
+
config.wrappers :horizontal_file_input, tag: 'div', class: 'form-group', error_class: 'has-error' do |b|
|
|
24
|
+
b.use :html5
|
|
25
|
+
b.use :placeholder
|
|
26
|
+
b.optional :maxlength
|
|
27
|
+
b.optional :readonly
|
|
28
|
+
b.use :label, class: 'col-sm-3 control-label'
|
|
29
|
+
|
|
30
|
+
b.wrapper tag: 'div', class: 'col-sm-9' do |ba|
|
|
31
|
+
ba.use :input
|
|
32
|
+
ba.use :error, wrap_with: { tag: 'span', class: 'help-block' }
|
|
33
|
+
ba.use :hint, wrap_with: { tag: 'p', class: 'help-block' }
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
|
|
23
37
|
# Wrappers for forms and inputs using the Twitter Bootstrap toolkit.
|
|
24
38
|
# Check the Bootstrap docs (http://getbootstrap.com/css/)
|
|
25
39
|
# to learn about the different styles for forms and inputs,
|
data/config/jetty.yml
ADDED
|
@@ -7,6 +7,7 @@ en:
|
|
|
7
7
|
division:
|
|
8
8
|
name: "Your Division at Institution"
|
|
9
9
|
homepage_url: "#"
|
|
10
|
+
document_language: "en"
|
|
10
11
|
google_analytics_id: ""
|
|
11
12
|
institution:
|
|
12
13
|
name: "Your Institution"
|
|
@@ -17,10 +18,8 @@ en:
|
|
|
17
18
|
q:
|
|
18
19
|
label: "Search Repository"
|
|
19
20
|
placeholder: "Type keywords in here"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
legend: "Content Editors"
|
|
23
|
-
caption: "Who should be able to make changes to this work?"
|
|
21
|
+
bread_crumb:
|
|
22
|
+
works_list: "the works browser"
|
|
24
23
|
messages:
|
|
25
24
|
success:
|
|
26
25
|
single: "has been saved."
|
|
@@ -36,6 +35,26 @@ en:
|
|
|
36
35
|
tag: "could not be updated. You do not have sufficient privileges to edit them."
|
|
37
36
|
title: "Files failed"
|
|
38
37
|
subject: "Batch upload permission denied"
|
|
38
|
+
api:
|
|
39
|
+
accepted:
|
|
40
|
+
default: "Your request has been accepted for processing, but processing is not complete. See job for more info."
|
|
41
|
+
unauthorized:
|
|
42
|
+
default: "You must be logged in to do that!"
|
|
43
|
+
forbidden:
|
|
44
|
+
default: "You are not authorized to access this content."
|
|
45
|
+
success:
|
|
46
|
+
default: "Your request was processed successfully."
|
|
47
|
+
deleted:
|
|
48
|
+
default: "Deleted the Resource"
|
|
49
|
+
not_found:
|
|
50
|
+
default: "Could not find a resource that matches your request."
|
|
51
|
+
unprocessable_entity:
|
|
52
|
+
default: "The resource you attempted to modify cannot be modified according to your request."
|
|
53
|
+
empty_file: "The file you uploaded has no content."
|
|
54
|
+
bad_request:
|
|
55
|
+
default: "Unable to process your request. See errors for more info."
|
|
56
|
+
internal_error:
|
|
57
|
+
default: "The server encountered an error."
|
|
39
58
|
blacklight:
|
|
40
59
|
search:
|
|
41
60
|
fields:
|
|
@@ -86,6 +105,7 @@ en:
|
|
|
86
105
|
hints:
|
|
87
106
|
defaults:
|
|
88
107
|
description: 'Please keep your description to 300 words or fewer.'
|
|
108
|
+
files: 'A PDF is preferred.'
|
|
89
109
|
labels:
|
|
90
110
|
defaults:
|
|
91
111
|
lease_expiration_date: 'until'
|
|
@@ -94,3 +114,4 @@ en:
|
|
|
94
114
|
visibility_after_embargo: 'then open it up to'
|
|
95
115
|
visibility_during_lease: 'Is available for'
|
|
96
116
|
visibility_after_lease: 'then restrict it to'
|
|
117
|
+
files: 'Upload a file'
|
data/config/routes.rb
CHANGED
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
CurationConcerns::Engine.routes.draw do
|
|
2
|
+
get 'single_use_link/show/:id' => 'single_use_links_viewer#show', as: :show_single_use_link
|
|
3
|
+
get 'single_use_link/download/:id' => 'single_use_links_viewer#download', as: :download_single_use_link
|
|
4
|
+
get 'single_use_link/generate_download/:id' => 'single_use_links#new_download', as: :generate_download_single_use_link
|
|
5
|
+
get 'single_use_link/generate_show/:id' => 'single_use_links#new_show', as: :generate_show_single_use_link
|
|
6
|
+
|
|
2
7
|
# mount BrowseEverything::Engine => '/remote_files/browse'
|
|
3
8
|
resources :classify_concerns, only: [:new, :create]
|
|
4
9
|
end
|
data/curation_concerns.gemspec
CHANGED
|
@@ -14,19 +14,17 @@ Gem::Specification.new do |spec|
|
|
|
14
14
|
spec.homepage = ""
|
|
15
15
|
spec.license = "APACHE2"
|
|
16
16
|
|
|
17
|
-
spec.files = `git ls-files -
|
|
17
|
+
spec.files = `git ls-files | grep -v ^curation_concerns-models`.split($\)
|
|
18
18
|
spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
|
|
19
19
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
|
20
20
|
spec.require_paths = ["lib"]
|
|
21
21
|
|
|
22
22
|
spec.add_dependency 'hydra-head', '~> 9.0'
|
|
23
23
|
spec.add_dependency "breadcrumbs_on_rails", "~> 2.3.0"
|
|
24
|
-
spec.add_dependency "
|
|
24
|
+
spec.add_dependency "jquery-ui-rails"
|
|
25
25
|
spec.add_dependency "simple_form", '~> 3.1.0'
|
|
26
26
|
spec.add_dependency 'curation_concerns-models', version
|
|
27
|
-
spec.add_dependency 'hydra-
|
|
28
|
-
spec.add_dependency 'hydra-derivatives' # allow hydra-works to specify the version
|
|
29
|
-
spec.add_dependency 'hydra-editor'
|
|
27
|
+
spec.add_dependency 'hydra-editor', '~> 1.1'
|
|
30
28
|
spec.add_dependency 'blacklight_advanced_search', ['>= 5.1.4', '< 6.0']
|
|
31
29
|
|
|
32
30
|
spec.add_development_dependency "devise", "~> 3.0"
|
|
@@ -38,7 +36,7 @@ Gem::Specification.new do |spec|
|
|
|
38
36
|
spec.add_development_dependency "rspec-rails"
|
|
39
37
|
spec.add_development_dependency 'rspec-html-matchers'
|
|
40
38
|
spec.add_development_dependency 'rspec-activemodel-mocks', '~> 1.0'
|
|
41
|
-
spec.add_development_dependency "capybara"
|
|
39
|
+
spec.add_development_dependency "capybara", '~> 2.5'
|
|
42
40
|
spec.add_development_dependency "poltergeist", ">= 1.5.0"
|
|
43
41
|
spec.add_development_dependency "factory_girl"
|
|
44
42
|
spec.add_development_dependency "database_cleaner", "< 1.1.0"
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
module CurationConcerns
|
|
2
|
+
module Callbacks
|
|
3
|
+
class Registry
|
|
4
|
+
attr_reader :callbacks
|
|
5
|
+
|
|
6
|
+
def initialize
|
|
7
|
+
@callbacks = {}
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
# Enables a callback by specifying one or more hooks.
|
|
11
|
+
def enable(hook, *more_hooks)
|
|
12
|
+
([hook] + more_hooks).each { |h| @callbacks[h] ||= nil }
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
# Returns all enabled callback hooks.
|
|
16
|
+
def enabled
|
|
17
|
+
@callbacks.keys
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# Returns true if the callback hook has been enabled.
|
|
21
|
+
def enabled?(hook)
|
|
22
|
+
@callbacks.key? hook
|
|
23
|
+
end
|
|
24
|
+
|
|
25
|
+
# Defines a callback for a given hook.
|
|
26
|
+
def set(hook, &block)
|
|
27
|
+
raise NoBlockGiven, "a block is required when setting a callback" unless block_given?
|
|
28
|
+
@callbacks[hook] = proc(&block)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
# Returns true if a callback has been defined for a given hook.
|
|
32
|
+
def set?(hook)
|
|
33
|
+
enabled?(hook) && @callbacks[hook].respond_to?(:call)
|
|
34
|
+
end
|
|
35
|
+
|
|
36
|
+
# Runs the callback defined for a given hook, with the arguments provided
|
|
37
|
+
def run(hook, *args)
|
|
38
|
+
raise NotEnabled unless enabled?(hook)
|
|
39
|
+
return nil unless set?(hook)
|
|
40
|
+
@callbacks[hook].call(*args)
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
# Custom exceptions
|
|
45
|
+
class NotEnabled < StandardError; end
|
|
46
|
+
class NoBlockGiven < StandardError; end
|
|
47
|
+
end
|
|
48
|
+
end
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
require 'active_support/concern'
|
|
2
|
+
require 'curation_concerns/callbacks/registry'
|
|
3
|
+
|
|
4
|
+
module CurationConcerns
|
|
5
|
+
module Callbacks
|
|
6
|
+
extend ActiveSupport::Concern
|
|
7
|
+
|
|
8
|
+
included do
|
|
9
|
+
# Define class instance variable as endpoint to the
|
|
10
|
+
# Callback::Registry api.
|
|
11
|
+
@callback = Registry.new
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
module ClassMethods
|
|
15
|
+
# Reader for class instance variable containing callback definitions.
|
|
16
|
+
def callback
|
|
17
|
+
@callback
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
# Accessor to Callback::Registry api for instances.
|
|
22
|
+
def callback
|
|
23
|
+
self.class.callback
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
end
|
|
@@ -2,9 +2,9 @@ module CurationConcerns
|
|
|
2
2
|
class ControllerResource < CanCan::ControllerResource
|
|
3
3
|
protected
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
5
|
+
# Override resource_params to make this a nop. CurationConcerns uses actors to assign attributes
|
|
6
|
+
def resource_params
|
|
7
|
+
{}
|
|
8
|
+
end
|
|
9
9
|
end
|
|
10
10
|
end
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
-
#Load blacklight which will give curation_concerns views a higher preference than those in blacklight
|
|
1
|
+
# Load blacklight which will give curation_concerns views a higher preference than those in blacklight
|
|
2
2
|
require 'blacklight'
|
|
3
3
|
require 'curation_concerns/models'
|
|
4
4
|
require 'hydra-collections'
|
|
5
5
|
require 'hydra-editor'
|
|
6
|
+
require 'jquery-ui-rails'
|
|
7
|
+
require 'qa'
|
|
6
8
|
|
|
7
9
|
module CurationConcerns
|
|
8
10
|
class Engine < ::Rails::Engine
|
|
@@ -10,7 +12,7 @@ module CurationConcerns
|
|
|
10
12
|
require 'breadcrumbs_on_rails'
|
|
11
13
|
|
|
12
14
|
config.autoload_paths += %W(
|
|
13
|
-
|
|
15
|
+
#{config.root}/lib
|
|
14
16
|
)
|
|
15
17
|
|
|
16
18
|
initializer 'curation_concerns.initialize' do
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
module ActionDispatch::Routing
|
|
2
2
|
class Mapper
|
|
3
|
-
|
|
4
3
|
def curation_concerns_basic_routes
|
|
5
4
|
resources :downloads, only: :show
|
|
5
|
+
# Batch edit routes
|
|
6
|
+
get 'upload_sets/:id/edit' => 'upload_sets#edit', as: :edit_upload_set
|
|
7
|
+
post 'upload_sets/:id' => 'upload_sets#update', as: :upload_set_file_sets
|
|
8
|
+
|
|
6
9
|
namespace :curation_concerns, path: :concern do
|
|
7
|
-
CurationConcerns.
|
|
10
|
+
CurationConcerns.config.registered_curation_concern_types.map(&:tableize).each do |curation_concern_name|
|
|
8
11
|
namespaced_resources curation_concern_name, except: [:index]
|
|
9
12
|
end
|
|
10
13
|
resources :permissions, only: [] do
|
|
@@ -13,8 +16,8 @@ module ActionDispatch::Routing
|
|
|
13
16
|
post :copy
|
|
14
17
|
end
|
|
15
18
|
end
|
|
16
|
-
resources :
|
|
17
|
-
resources :
|
|
19
|
+
resources :file_sets, only: [:new, :create], path: 'container/:parent_id/file_sets'
|
|
20
|
+
resources :file_sets, only: [:show, :edit, :update, :destroy] do
|
|
18
21
|
member do
|
|
19
22
|
get :versions
|
|
20
23
|
put :rollback
|
|
@@ -41,7 +44,7 @@ module ActionDispatch::Routing
|
|
|
41
44
|
end
|
|
42
45
|
end
|
|
43
46
|
|
|
44
|
-
# kmr added :show to make tests pass
|
|
47
|
+
# kmr added :show to make tests pass
|
|
45
48
|
def curation_concerns_embargo_management
|
|
46
49
|
resources :embargoes, only: [:index, :edit, :destroy] do
|
|
47
50
|
collection do
|
|
@@ -56,21 +59,22 @@ module ActionDispatch::Routing
|
|
|
56
59
|
end
|
|
57
60
|
|
|
58
61
|
private
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
62
|
+
|
|
63
|
+
# Namespaces routes appropriately
|
|
64
|
+
# @example route_namespaced_target("curation_concerns/generic_work") is equivalent to
|
|
65
|
+
# namespace "curation_concerns" do
|
|
66
|
+
# resources "generic_work", except: [:index]
|
|
67
|
+
# end
|
|
68
|
+
def namespaced_resources(target, opts = {})
|
|
69
|
+
if target.include?('/')
|
|
70
|
+
the_namespace = target[0..target.index('/') - 1]
|
|
71
|
+
new_target = target[target.index('/') + 1..-1]
|
|
72
|
+
namespace the_namespace do
|
|
73
|
+
namespaced_resources(new_target, opts)
|
|
74
|
+
end
|
|
75
|
+
else
|
|
76
|
+
resources target, opts
|
|
70
77
|
end
|
|
71
|
-
else
|
|
72
|
-
resources target, opts
|
|
73
78
|
end
|
|
74
|
-
end
|
|
75
79
|
end
|
|
76
80
|
end
|
|
@@ -6,5 +6,3 @@ spec_directory = File.expand_path('../../../spec', __FILE__)
|
|
|
6
6
|
# Dir["#{spec_directory}/factories/**/*.rb"].each { |f| require f }
|
|
7
7
|
Dir["#{spec_directory}/support/curation_concerns/*.rb"].each { |f| require f }
|
|
8
8
|
Dir["#{spec_directory}/support/shared/*.rb"].each { |f| require f }
|
|
9
|
-
|
|
10
|
-
|
data/lib/curation_concerns.rb
CHANGED
|
@@ -2,45 +2,40 @@ require 'rails/generators'
|
|
|
2
2
|
|
|
3
3
|
module CurationConcerns
|
|
4
4
|
class Install < Rails::Generators::Base
|
|
5
|
-
|
|
6
5
|
source_root File.expand_path('../templates', __FILE__)
|
|
7
6
|
|
|
8
|
-
argument :model_name, type: :string
|
|
9
|
-
desc "
|
|
7
|
+
argument :model_name, type: :string, default: 'user'
|
|
8
|
+
desc ''"
|
|
10
9
|
This generator makes the following changes to your application:
|
|
11
10
|
1. Runs installers for blacklight & hydra-head (which also install & configure devise)
|
|
12
11
|
2. Runs curation_concerns:models:install
|
|
13
|
-
3.
|
|
14
|
-
4.
|
|
15
|
-
5. Adds
|
|
12
|
+
3. Adds controller behavior to the application controller
|
|
13
|
+
4. Injects CurationConcerns routes
|
|
14
|
+
5. Adds CurationConcerns abilities into the Ability class
|
|
16
15
|
6. Copies the catalog controller into the local app
|
|
17
16
|
7. Adds CurationConcerns::SolrDocumentBehavior to app/models/solr_document.rb
|
|
18
|
-
|
|
17
|
+
8. Adds config/authorities/rights.yml to the application
|
|
18
|
+
"''
|
|
19
19
|
|
|
20
20
|
def run_required_generators
|
|
21
|
-
say_status(
|
|
22
|
-
generate
|
|
23
|
-
say_status(
|
|
24
|
-
generate
|
|
25
|
-
say_status(
|
|
21
|
+
say_status('warning', '[CurationConcerns] GENERATING BLACKLIGHT', :yellow)
|
|
22
|
+
generate 'blacklight:install --devise'
|
|
23
|
+
say_status('warning', '[CurationConcerns] GENERATING HYDRA-HEAD', :yellow)
|
|
24
|
+
generate 'hydra:head -f'
|
|
25
|
+
say_status('warning', '[CurationConcerns] GENERATING CURATION_CONCERNS MODELS', :yellow)
|
|
26
26
|
generate "curation_concerns:models:install#{options[:force] ? ' -f' : ''}"
|
|
27
27
|
end
|
|
28
28
|
|
|
29
|
-
def remove_catalog_controller
|
|
30
|
-
say_status("warning", "Removing Blacklight's generated CatalogController...", :yellow)
|
|
31
|
-
remove_file('app/controllers/catalog_controller.rb')
|
|
32
|
-
end
|
|
33
|
-
|
|
34
29
|
def inject_application_controller_behavior
|
|
35
|
-
inject_into_file 'app/controllers/application_controller.rb', :
|
|
36
|
-
"\n # Adds CurationConcerns behaviors to the application controller.\n"
|
|
30
|
+
inject_into_file 'app/controllers/application_controller.rb', after: /Hydra::Controller::ControllerBehavior\s*\n/ do
|
|
31
|
+
"\n # Adds CurationConcerns behaviors to the application controller.\n" \
|
|
37
32
|
" include CurationConcerns::ApplicationControllerBehavior\n"
|
|
38
33
|
end
|
|
39
34
|
end
|
|
40
35
|
|
|
41
36
|
def replace_blacklight_layout
|
|
42
37
|
gsub_file 'app/controllers/application_controller.rb', /layout 'blacklight'/,
|
|
43
|
-
|
|
38
|
+
"include CurationConcerns::ThemedLayoutController\n with_themed_layout '1_column'\n"
|
|
44
39
|
end
|
|
45
40
|
|
|
46
41
|
# def insert_builder
|
|
@@ -58,9 +53,14 @@ module CurationConcerns
|
|
|
58
53
|
# END Blacklight stuff
|
|
59
54
|
|
|
60
55
|
def inject_routes
|
|
61
|
-
|
|
56
|
+
# Remove root route that was added by blacklight generator
|
|
57
|
+
gsub_file 'config/routes.rb', /root (:to =>|to:) "catalog#index"/, ''
|
|
58
|
+
|
|
59
|
+
inject_into_file 'config/routes.rb', after: /devise_for :users\s*\n/ do
|
|
62
60
|
" mount Hydra::Collections::Engine => '/'\n"\
|
|
63
61
|
" mount CurationConcerns::Engine, at: '/'\n"\
|
|
62
|
+
" resources :welcome, only: 'index'\n"\
|
|
63
|
+
" root to: 'welcome#index'\n"\
|
|
64
64
|
" curation_concerns_collections\n"\
|
|
65
65
|
" curation_concerns_basic_routes\n"\
|
|
66
66
|
" curation_concerns_embargo_management\n"\
|
|
@@ -68,18 +68,22 @@ module CurationConcerns
|
|
|
68
68
|
end
|
|
69
69
|
|
|
70
70
|
def inject_ability
|
|
71
|
-
inject_into_file 'app/models/ability.rb', :
|
|
71
|
+
inject_into_file 'app/models/ability.rb', after: /Hydra::Ability\s*\n/ do
|
|
72
72
|
" include CurationConcerns::Ability\n"\
|
|
73
73
|
" self.ability_logic += [:everyone_can_create_curation_concerns]\n\n"
|
|
74
74
|
end
|
|
75
75
|
end
|
|
76
76
|
|
|
77
|
+
def catalog_controller
|
|
78
|
+
copy_file "catalog_controller.rb", "app/controllers/catalog_controller.rb"
|
|
79
|
+
end
|
|
80
|
+
|
|
77
81
|
# Add behaviors to the SolrDocument model
|
|
78
82
|
def inject_solr_document_behavior
|
|
79
|
-
file_path =
|
|
80
|
-
if File.
|
|
83
|
+
file_path = 'app/models/solr_document.rb'
|
|
84
|
+
if File.exist?(file_path)
|
|
81
85
|
inject_into_file file_path, after: /include Blacklight::Solr::Document.*$/ do
|
|
82
|
-
"\n # Adds CurationConcerns behaviors to the SolrDocument.\n"
|
|
86
|
+
"\n # Adds CurationConcerns behaviors to the SolrDocument.\n" \
|
|
83
87
|
" include CurationConcerns::SolrDocumentBehavior\n"
|
|
84
88
|
end
|
|
85
89
|
else
|
|
@@ -88,16 +92,16 @@ module CurationConcerns
|
|
|
88
92
|
end
|
|
89
93
|
|
|
90
94
|
def assets
|
|
91
|
-
copy_file
|
|
92
|
-
copy_file
|
|
95
|
+
copy_file 'curation_concerns.scss', 'app/assets/stylesheets/curation_concerns.scss'
|
|
96
|
+
copy_file 'curation_concerns.js', 'app/assets/javascripts/curation_concerns.js'
|
|
93
97
|
end
|
|
94
98
|
|
|
95
99
|
def add_helper
|
|
96
|
-
copy_file
|
|
100
|
+
copy_file 'curation_concerns_helper.rb', 'app/helpers/curation_concerns_helper.rb'
|
|
97
101
|
end
|
|
98
102
|
|
|
99
|
-
def
|
|
100
|
-
copy_file "
|
|
103
|
+
def rights_config
|
|
104
|
+
copy_file "config/authorities/rights.yml", "config/authorities/rights.yml"
|
|
101
105
|
end
|
|
102
106
|
end
|
|
103
107
|
end
|