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
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
$(function(){
|
|
2
|
-
var $window = $(window),
|
|
3
|
-
$modal = $('#ajax-modal'),
|
|
4
|
-
resolution = screen.width + 'x' + screen.height,
|
|
5
|
-
viewport = $window.width() + 'x' + $window.height(),
|
|
6
|
-
current_url = document.location.href;
|
|
7
|
-
|
|
8
|
-
function populateHelpForm(){
|
|
9
|
-
// Removing the "NOT" portion
|
|
10
|
-
$('#help-js strong').remove();
|
|
11
|
-
$('#help_request_javascript_enabled').val(1);
|
|
12
|
-
|
|
13
|
-
$('#help-resolution').text(resolution);
|
|
14
|
-
$('#help_request_resolution').val(resolution);
|
|
15
|
-
|
|
16
|
-
$('#help-viewport').text(viewport);
|
|
17
|
-
$('#help_request_view_port').val(viewport);
|
|
18
|
-
|
|
19
|
-
$('#help-url').text(current_url);
|
|
20
|
-
$('#help_request_current_url').val(current_url);
|
|
21
|
-
}
|
|
22
|
-
populateHelpForm();
|
|
23
|
-
|
|
24
|
-
$('.request-help').on('click', function(event){
|
|
25
|
-
event.preventDefault();
|
|
26
|
-
|
|
27
|
-
$('body').modalmanager('loading');
|
|
28
|
-
|
|
29
|
-
setTimeout(function(){
|
|
30
|
-
$modal.load('/help_requests/new #new_help_request', function(){
|
|
31
|
-
$modal.modal();
|
|
32
|
-
populateHelpForm();
|
|
33
|
-
});
|
|
34
|
-
}, 1000);
|
|
35
|
-
});
|
|
36
|
-
});
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
(($, window, document) ->
|
|
2
|
-
$this = undefined
|
|
3
|
-
|
|
4
|
-
# default settings
|
|
5
|
-
_settings =
|
|
6
|
-
default: 'cool!'
|
|
7
|
-
|
|
8
|
-
_remover = $("<button class=\"btn btn-danger remove\"><i class=\"icon-white glyphicon-minus\"></i><span>Remove</span></button>")
|
|
9
|
-
_adder = $("<button class=\"btn btn-success add\"><i class=\"icon-white glyphicon-plus\"></i><span>Add</span></button>")
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
# This is your public API (no leading underscore, see?)
|
|
13
|
-
# All public methods must return $this so your plugin is chainable.
|
|
14
|
-
methods =
|
|
15
|
-
init: (options) ->
|
|
16
|
-
$this = $(@)
|
|
17
|
-
# The settings object is available under its name: _settings. Let's
|
|
18
|
-
# expand it with any custom options the user provided.
|
|
19
|
-
$.extend _settings, (options or {})
|
|
20
|
-
# Do anything that actually inits your plugin, if needed, right now!
|
|
21
|
-
# An important thing to keep in mind, is that jQuery plugins should be
|
|
22
|
-
# built so that one can apply them to more than one element, like so:
|
|
23
|
-
#
|
|
24
|
-
# $('.matching-elements, #another-one').foobar()
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
#This code sets up all the "Add" and "Remove" buttons for the autocomplete fields.
|
|
28
|
-
|
|
29
|
-
#For each autocomplete set on the page, add the "Add" and "Remove" buttons
|
|
30
|
-
$this.each (index, el) ->
|
|
31
|
-
$('.autocomplete-groups').each (index, el) ->
|
|
32
|
-
_internals.autocompleteGroups(el)
|
|
33
|
-
|
|
34
|
-
#Make sure these buttons have unique id's
|
|
35
|
-
_adder.id = "adder_" + index
|
|
36
|
-
_remover.id = "remover_" + index
|
|
37
|
-
|
|
38
|
-
#Add the "Remove" button
|
|
39
|
-
$('.field-wrapper:not(:last-child) .field-controls', this).append(_remover.clone())
|
|
40
|
-
|
|
41
|
-
#Add the "Add" button
|
|
42
|
-
$('.field-controls:last', this).append(_adder.clone())
|
|
43
|
-
|
|
44
|
-
#Bind the buttons to onClick events
|
|
45
|
-
$(el).on 'click', 'button.add', (e) ->
|
|
46
|
-
_internals.addToList(this)
|
|
47
|
-
$(el).on 'click', 'button.remove', (e) ->
|
|
48
|
-
_internals.removeFromList(this)
|
|
49
|
-
|
|
50
|
-
return $this
|
|
51
|
-
|
|
52
|
-
# This method is often overlooked.
|
|
53
|
-
destroy: ->
|
|
54
|
-
# Do anything to clean it up (nullify references, unbind events…).
|
|
55
|
-
return $this
|
|
56
|
-
|
|
57
|
-
_internals =
|
|
58
|
-
addToList: (el) ->
|
|
59
|
-
$activeControls = $(el).closest('.field-controls')
|
|
60
|
-
$listing = $activeControls.closest('.listing')
|
|
61
|
-
$('.add', $activeControls).remove()
|
|
62
|
-
$removeControl = _remover.clone()
|
|
63
|
-
$activeControls.prepend($removeControl)
|
|
64
|
-
_internals.newRow($listing, el)
|
|
65
|
-
false
|
|
66
|
-
|
|
67
|
-
newRow: ($listing, el) ->
|
|
68
|
-
$listing.append _internals.newListItem($('li', $listing).size(), $listing, el)
|
|
69
|
-
_internals.autocompleteGroups($('.autocomplete-groups:last', $listing))
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
removeFromList: (el) ->
|
|
73
|
-
$currentGroup = $(el).closest('li')
|
|
74
|
-
$listing = $currentGroup.closest('.listing')
|
|
75
|
-
$currentGroup.hide()
|
|
76
|
-
# set the destroy flag
|
|
77
|
-
$('input:not([value])', $currentGroup).val('true')
|
|
78
|
-
false
|
|
79
|
-
|
|
80
|
-
newListItem: (index, el) ->
|
|
81
|
-
## We have multiple places in a view where we need these autocomplete fields
|
|
82
|
-
## (Work edit view for example), so we don't want to use the first #entry-template.
|
|
83
|
-
## Using .closest isn't working, but this seems to for now.
|
|
84
|
-
source = $(el).parent().children().html()
|
|
85
|
-
template = Handlebars.compile(source)
|
|
86
|
-
template({index: index})
|
|
87
|
-
|
|
88
|
-
addExistingGroup: ($listItem, value, label) ->
|
|
89
|
-
source = $listItem.parent().prev().html()
|
|
90
|
-
template = Handlebars.compile(source)
|
|
91
|
-
$list = $listItem.closest('ul')
|
|
92
|
-
$('input[required]', $list).removeAttr('required')
|
|
93
|
-
$listItem.replaceWith template({index: $('li', $list).index($listItem), value: value, label: label})
|
|
94
|
-
_internals.newRow($list)
|
|
95
|
-
|
|
96
|
-
autocompleteGroups: (el) ->
|
|
97
|
-
$targetElement = $(el)
|
|
98
|
-
$targetElement.autocomplete
|
|
99
|
-
source: (request, response) ->
|
|
100
|
-
$targetElement.data('url')
|
|
101
|
-
$.getJSON $targetElement.data('url'), { q: request.term + "*" }, ( data, status, xhr ) ->
|
|
102
|
-
matches = []
|
|
103
|
-
$.each data.response.docs, (idx, val) ->
|
|
104
|
-
matches.push {label: val['title_tesim'][0], value: val['id']}
|
|
105
|
-
response( matches )
|
|
106
|
-
minLength: 2
|
|
107
|
-
focus: ( event, ui ) ->
|
|
108
|
-
$targetElement.val(ui.item.label)
|
|
109
|
-
event.preventDefault()
|
|
110
|
-
select: ( event, ui ) ->
|
|
111
|
-
_internals.addExistingGroup($targetElement.closest('li'), ui.item.value, ui.item.label)
|
|
112
|
-
$targetElement.val('')
|
|
113
|
-
event.preventDefault()
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
$.fn.linkGroups = (method) ->
|
|
117
|
-
if methods[method]
|
|
118
|
-
methods[method].apply this, Array::slice.call(arguments, 1)
|
|
119
|
-
else if typeof method is "object" or not method
|
|
120
|
-
methods.init.apply this, arguments
|
|
121
|
-
else
|
|
122
|
-
$.error "Method " + method + " does not exist on jquery.linkGroups"
|
|
123
|
-
) jQuery, window, document
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
(($, window, document) ->
|
|
2
|
-
$this = undefined
|
|
3
|
-
|
|
4
|
-
# default settings
|
|
5
|
-
_settings =
|
|
6
|
-
default: 'cool!'
|
|
7
|
-
|
|
8
|
-
_remover = $("<button class=\"btn btn-danger remove\"><i class=\"icon-white icon-minus\"></i><span>Remove</span></button>")
|
|
9
|
-
_adder = $("<button class=\"btn btn-success add\"><i class=\"icon-white icon-plus\"></i><span>Add</span></button>")
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
# This is your public API (no leading underscore, see?)
|
|
13
|
-
# All public methods must return $this so your plugin is chainable.
|
|
14
|
-
methods =
|
|
15
|
-
init: (options) ->
|
|
16
|
-
$this = $(@)
|
|
17
|
-
# The settings object is available under its name: _settings. Let's
|
|
18
|
-
# expand it with any custom options the user provided.
|
|
19
|
-
$.extend _settings, (options or {})
|
|
20
|
-
# Do anything that actually inits your plugin, if needed, right now!
|
|
21
|
-
# An important thing to keep in mind, is that jQuery plugins should be
|
|
22
|
-
# built so that one can apply them to more than one element, like so:
|
|
23
|
-
#
|
|
24
|
-
# $('.matching-elements, #another-one').foobar()
|
|
25
|
-
#
|
|
26
|
-
|
|
27
|
-
#This code sets up all the "Add" and "Remove" buttons for the autocomplete fields.
|
|
28
|
-
|
|
29
|
-
#For each autocomplete set on the page, add the "Add" and "Remove" buttons
|
|
30
|
-
$this.each (index, el) ->
|
|
31
|
-
$('.autocomplete-users').each (index, el) ->
|
|
32
|
-
_internals.autocompleteUsers(el)
|
|
33
|
-
|
|
34
|
-
#Make sure these buttons have unique id's
|
|
35
|
-
_adder.id = "adder_" + index
|
|
36
|
-
_remover.id = "remover_" + index
|
|
37
|
-
|
|
38
|
-
#Add the "Remove" button
|
|
39
|
-
$('.field-wrapper:not(:last-child) .field-controls', this).append(_remover.clone())
|
|
40
|
-
|
|
41
|
-
#Add the "Add" button
|
|
42
|
-
$('.field-controls:last', this).append(_adder.clone())
|
|
43
|
-
|
|
44
|
-
#Bind the buttons to onClick events
|
|
45
|
-
$(el).on 'click', 'button.add', (e) ->
|
|
46
|
-
_internals.addToList(this)
|
|
47
|
-
$(el).on 'click', 'button.remove', (e) ->
|
|
48
|
-
_internals.removeFromList(this)
|
|
49
|
-
|
|
50
|
-
return $this
|
|
51
|
-
|
|
52
|
-
# This method is often overlooked.
|
|
53
|
-
destroy: ->
|
|
54
|
-
# Do anything to clean it up (nullify references, unbind events…).
|
|
55
|
-
return $this
|
|
56
|
-
|
|
57
|
-
_internals =
|
|
58
|
-
addToList: (el) ->
|
|
59
|
-
$activeControls = $(el).closest('.field-controls')
|
|
60
|
-
$listing = $activeControls.closest('.listing')
|
|
61
|
-
$('.add', $activeControls).remove()
|
|
62
|
-
$removeControl = _remover.clone()
|
|
63
|
-
$activeControls.prepend($removeControl)
|
|
64
|
-
_internals.newRow($listing, el)
|
|
65
|
-
false
|
|
66
|
-
|
|
67
|
-
newRow: ($listing, el) ->
|
|
68
|
-
$listing.append _internals.newListItem($('li', $listing).size(), $listing, el)
|
|
69
|
-
_internals.autocompleteUsers($('.autocomplete-users:last', $listing))
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
removeFromList: (el) ->
|
|
73
|
-
$currentUser = $(el).closest('li')
|
|
74
|
-
$listing = $currentUser.closest('.listing')
|
|
75
|
-
$currentUser.hide()
|
|
76
|
-
# set the destroy flag
|
|
77
|
-
$('input:not([value])', $currentUser).val('true')
|
|
78
|
-
false
|
|
79
|
-
|
|
80
|
-
newListItem: (index, el) ->
|
|
81
|
-
## We have multiple places in a view where we need these autocomplete fields
|
|
82
|
-
## (Work edit view for example), so we don't want to use the first #entry-template.
|
|
83
|
-
## Using .closest isn't working, but this seems to for now.
|
|
84
|
-
source = $(el).parent().children().html()
|
|
85
|
-
template = Handlebars.compile(source)
|
|
86
|
-
template({index: index})
|
|
87
|
-
|
|
88
|
-
addExistingUser: ($listItem, value, label) ->
|
|
89
|
-
## We have multiple places in a view where we need these autocomplete fields
|
|
90
|
-
## (Work edit view for example), so we don't want to use the first #existing-user-template.
|
|
91
|
-
## Using .closest isn't working, but this seems to for now.
|
|
92
|
-
source = $listItem.parent().prev().html()
|
|
93
|
-
template = Handlebars.compile(source)
|
|
94
|
-
$list = $listItem.closest('ul')
|
|
95
|
-
$('input[required]', $list).removeAttr('required')
|
|
96
|
-
$listItem.replaceWith template({index: $('li', $list).index($listItem), value: value, label: label})
|
|
97
|
-
_internals.newRow($list)
|
|
98
|
-
|
|
99
|
-
autocompleteUsers: (el) ->
|
|
100
|
-
$targetElement = $(el)
|
|
101
|
-
$targetElement.autocomplete
|
|
102
|
-
source: (request, response) ->
|
|
103
|
-
$targetElement.data('url')
|
|
104
|
-
$.getJSON $targetElement.data('url'), { q: request.term + "*" }, ( data, status, xhr ) ->
|
|
105
|
-
matches = []
|
|
106
|
-
$.each data.response.docs, (idx, val) ->
|
|
107
|
-
matches.push {label: val['name_tesim'][0], value: val['id']}
|
|
108
|
-
response( matches )
|
|
109
|
-
minLength: 2
|
|
110
|
-
focus: ( event, ui ) ->
|
|
111
|
-
$targetElement.val(ui.item.label)
|
|
112
|
-
event.preventDefault()
|
|
113
|
-
select: ( event, ui ) ->
|
|
114
|
-
_internals.addExistingUser($targetElement.closest('li'), ui.item.value, ui.item.label)
|
|
115
|
-
$targetElement.val('')
|
|
116
|
-
event.preventDefault()
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
$.fn.linkUsers = (method) ->
|
|
120
|
-
if methods[method]
|
|
121
|
-
methods[method].apply this, Array::slice.call(arguments, 1)
|
|
122
|
-
else if typeof method is "object" or not method
|
|
123
|
-
methods.init.apply this, arguments
|
|
124
|
-
else
|
|
125
|
-
$.error "Method " + method + " does not exist on jquery.linkUsers"
|
|
126
|
-
) jQuery, window, document
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
(($, window, document) ->
|
|
2
|
-
$this = undefined
|
|
3
|
-
|
|
4
|
-
# default settings
|
|
5
|
-
_settings =
|
|
6
|
-
default: 'cool!'
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
# This is your public API (no leading underscore, see?)
|
|
10
|
-
# All public methods must return $this so your plugin is chainable.
|
|
11
|
-
methods =
|
|
12
|
-
init: (options) ->
|
|
13
|
-
$this = $(@)
|
|
14
|
-
# The settings object is available under its name: _settings. Let's
|
|
15
|
-
# expand it with any custom options the user provided.
|
|
16
|
-
$.extend _settings, (options or {})
|
|
17
|
-
# Do anything that actually inits your plugin, if needed, right now!
|
|
18
|
-
# An important thing to keep in mind, is that jQuery plugins should be
|
|
19
|
-
# built so that one can apply them to more than one element, like so:
|
|
20
|
-
#
|
|
21
|
-
# $('.matching-elements, #another-one').foobar()
|
|
22
|
-
#
|
|
23
|
-
$this.each (index, el) ->
|
|
24
|
-
$('#user').each (index, el) ->
|
|
25
|
-
_internals.autocompleteUsers(el)
|
|
26
|
-
|
|
27
|
-
$(el).on 'click', '.remove-proxy-button', _internals.removeContributor
|
|
28
|
-
|
|
29
|
-
return $this
|
|
30
|
-
|
|
31
|
-
# This method is often overlooked.
|
|
32
|
-
destroy: ->
|
|
33
|
-
# Do anything to clean it up (nullify references, unbind events…).
|
|
34
|
-
return $this
|
|
35
|
-
|
|
36
|
-
_internals =
|
|
37
|
-
addContributor: (name, id) ->
|
|
38
|
-
source = $("#tmpl-proxy-row").html()
|
|
39
|
-
template = Handlebars.compile(source)
|
|
40
|
-
row = template({name: name, id: id})
|
|
41
|
-
$('#authorizedProxies tbody', $this).append(row)
|
|
42
|
-
|
|
43
|
-
# if (settings.afterAdd) {
|
|
44
|
-
# settings.afterAdd(this, cloneElem)
|
|
45
|
-
# }
|
|
46
|
-
|
|
47
|
-
$.ajax({
|
|
48
|
-
type: "POST",
|
|
49
|
-
url: 'depositors',
|
|
50
|
-
dataType: 'json',
|
|
51
|
-
data: {grantee_id: id}
|
|
52
|
-
})
|
|
53
|
-
|
|
54
|
-
false
|
|
55
|
-
|
|
56
|
-
removeContributor: ->
|
|
57
|
-
# remove the row
|
|
58
|
-
$.ajax({
|
|
59
|
-
url: $(this).closest('a').prop('href'),
|
|
60
|
-
type: "post",
|
|
61
|
-
dataType: "json",
|
|
62
|
-
data: {"_method":"delete"}
|
|
63
|
-
})
|
|
64
|
-
$(this).closest('tr').remove()
|
|
65
|
-
false
|
|
66
|
-
|
|
67
|
-
autocompleteUsers: (el) ->
|
|
68
|
-
# Remove the choice from the search widget and put it in the table.
|
|
69
|
-
$targetElement = $(el)
|
|
70
|
-
$targetElement.autocomplete
|
|
71
|
-
source: (request, response) ->
|
|
72
|
-
$targetElement.data('url')
|
|
73
|
-
$.getJSON $targetElement.data('url'), { q: request.term, user: true}, ( data, status, xhr ) ->
|
|
74
|
-
matches = []
|
|
75
|
-
$.each data.response.docs, (idx, val) ->
|
|
76
|
-
matches.push {label: val['name_tesim'][0], value: val['id']}
|
|
77
|
-
response( matches )
|
|
78
|
-
minLength: 2
|
|
79
|
-
focus: ( event, ui ) ->
|
|
80
|
-
$targetElement.val(ui.item.label)
|
|
81
|
-
event.preventDefault()
|
|
82
|
-
select: ( event, ui ) ->
|
|
83
|
-
_internals.addContributor(ui.item.label, ui.item.value)
|
|
84
|
-
$targetElement.val('')
|
|
85
|
-
event.preventDefault()
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
$.fn.proxyRights = (method) ->
|
|
89
|
-
if methods[method]
|
|
90
|
-
methods[method].apply this, Array::slice.call(arguments, 1)
|
|
91
|
-
else if typeof method is "object" or not method
|
|
92
|
-
methods.init.apply this, arguments
|
|
93
|
-
else
|
|
94
|
-
$.error "Method " + method + " does not exist on jquery.proxyRights"
|
|
95
|
-
) jQuery, window, document
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This Javascript/JQuery method is used for the population of the contributor field
|
|
3
|
-
* when a proxy user is making a deposit on behalf of someone else. The method gets the selected
|
|
4
|
-
* person on behalf of whom the proxy person is making the deposit and places that person's name in
|
|
5
|
-
* a Contributor field and clicks the contributor Add button.
|
|
6
|
-
*/
|
|
7
|
-
function updateContributors(){
|
|
8
|
-
|
|
9
|
-
// Get the selected owner name from the owner control.
|
|
10
|
-
// If it is 'Myself', then pluck the name from the display name on the dropdown menu in the title bar of the page.
|
|
11
|
-
// If 'nothing' was selected, do nothing and return.
|
|
12
|
-
|
|
13
|
-
var ownerName = $("[id*='_owner'] option:selected").text();
|
|
14
|
-
if (ownerName == 'Myself') {
|
|
15
|
-
ownerName = $(".user-display-name").text().trim();
|
|
16
|
-
}
|
|
17
|
-
else if (ownerName === "") { return; }
|
|
18
|
-
|
|
19
|
-
// Put that name into the "Add" Contributor control and force a click of the Add button.
|
|
20
|
-
// Note that the last Contributor control is always the one into which a new user is entered.
|
|
21
|
-
$('input[id$=_contributor]').last().val(ownerName);
|
|
22
|
-
$("div[class*=_contributor] .add").click();
|
|
23
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
jQuery ->
|
|
2
|
-
$('.autocomplete').each( (index, el) ->
|
|
3
|
-
$targetElement = $(el)
|
|
4
|
-
$targetElement.tokenInput $targetElement.data("url"), {
|
|
5
|
-
theme: 'facebook'
|
|
6
|
-
prePopulate: $('.autocomplete').data('load')
|
|
7
|
-
jsonContainer: "docs"
|
|
8
|
-
propertyToSearch: "title"
|
|
9
|
-
preventDuplicates: true
|
|
10
|
-
tokenValue: "pid"
|
|
11
|
-
onResult: (results) ->
|
|
12
|
-
pidsToFilter = $targetElement.data('exclude')
|
|
13
|
-
$.each(results.docs, (index, value) ->
|
|
14
|
-
# Filter out anything listed in data-exclude. ie. the current object.
|
|
15
|
-
if (pidsToFilter.indexOf(value.pid) > -1)
|
|
16
|
-
results.docs.splice(index, 1)
|
|
17
|
-
)
|
|
18
|
-
return results
|
|
19
|
-
}
|
|
20
|
-
)
|
|
@@ -1,149 +0,0 @@
|
|
|
1
|
-
module CurationConcerns
|
|
2
|
-
module GenericFilesControllerBehavior
|
|
3
|
-
extend ActiveSupport::Concern
|
|
4
|
-
|
|
5
|
-
included do
|
|
6
|
-
include CurationConcerns::ThemedLayoutController
|
|
7
|
-
with_themed_layout '1_column'
|
|
8
|
-
load_and_authorize_resource class: ::GenericFile
|
|
9
|
-
helper_method :curation_concern
|
|
10
|
-
include CurationConcerns::ParentContainer
|
|
11
|
-
end
|
|
12
|
-
|
|
13
|
-
def curation_concern
|
|
14
|
-
@generic_file
|
|
15
|
-
end
|
|
16
|
-
|
|
17
|
-
# routed to /files/new
|
|
18
|
-
def new
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
# routed to /files/:id/edit
|
|
22
|
-
def edit
|
|
23
|
-
# @generic_file.initialize_fields
|
|
24
|
-
@groups = current_user.groups
|
|
25
|
-
end
|
|
26
|
-
|
|
27
|
-
# routed to /files (POST)
|
|
28
|
-
def create
|
|
29
|
-
create_from_upload(params)
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
def create_from_upload(params)
|
|
33
|
-
# check error condition No files
|
|
34
|
-
return json_error("Error! No file to save") if !params.has_key?(:files)
|
|
35
|
-
|
|
36
|
-
file = params[:files].detect {|f| f.respond_to?(:original_filename) }
|
|
37
|
-
if !file
|
|
38
|
-
json_error "Error! No file for upload", 'unknown file', :status => :unprocessable_entity
|
|
39
|
-
elsif (empty_file?(file))
|
|
40
|
-
json_error "Error! Zero Length File!", file.original_filename
|
|
41
|
-
else
|
|
42
|
-
process_file(file)
|
|
43
|
-
end
|
|
44
|
-
rescue RSolr::Error::Http => error
|
|
45
|
-
logger.error "GenericFilesController::create rescued #{error.class}\n\t#{error.to_s}\n #{error.backtrace.join("\n")}\n\n"
|
|
46
|
-
json_error "Error occurred while creating generic file."
|
|
47
|
-
ensure
|
|
48
|
-
# remove the tempfile (only if it is a temp file)
|
|
49
|
-
file.tempfile.delete if file.respond_to?(:tempfile)
|
|
50
|
-
end
|
|
51
|
-
|
|
52
|
-
# routed to /files/:id
|
|
53
|
-
def show
|
|
54
|
-
end
|
|
55
|
-
|
|
56
|
-
def destroy
|
|
57
|
-
@generic_file.destroy
|
|
58
|
-
redirect_to [main_app, :curation_concerns, @generic_file.generic_works.first], notice: "The file has been deleted."
|
|
59
|
-
end
|
|
60
|
-
|
|
61
|
-
# routed to /files/:id (PUT)
|
|
62
|
-
def update
|
|
63
|
-
success = if wants_to_revert?
|
|
64
|
-
actor.revert_content(params[:revision])
|
|
65
|
-
elsif params.has_key? :files
|
|
66
|
-
actor.update_content(params[:files].first)
|
|
67
|
-
elsif params.has_key? :generic_file
|
|
68
|
-
update_metadata
|
|
69
|
-
end
|
|
70
|
-
if success
|
|
71
|
-
redirect_to [main_app, :curation_concerns, @generic_file], notice:
|
|
72
|
-
"The file #{view_context.link_to(@generic_file, [main_app, :curation_concerns, @generic_file])} has been updated."
|
|
73
|
-
else
|
|
74
|
-
render action: 'edit'
|
|
75
|
-
end
|
|
76
|
-
rescue RSolr::Error::Http => error
|
|
77
|
-
flash[:error] = error.message
|
|
78
|
-
logger.error "GenericFilesController::update rescued #{error.class}\n\t#{error.message}\n #{error.backtrace.join("\n")}\n\n"
|
|
79
|
-
render action: 'edit'
|
|
80
|
-
end
|
|
81
|
-
|
|
82
|
-
# this is provided so that implementing application can override this behavior and map params to different attributes
|
|
83
|
-
def update_metadata
|
|
84
|
-
# attrs_without_visibility_info = actor.interpret_visibility(attributes)
|
|
85
|
-
file_attributes = CurationConcerns::Forms::GenericFileEditForm.model_attributes(attributes)
|
|
86
|
-
actor.update_metadata(file_attributes, attributes)
|
|
87
|
-
end
|
|
88
|
-
|
|
89
|
-
protected
|
|
90
|
-
|
|
91
|
-
def wants_to_revert?
|
|
92
|
-
params.has_key?(:revision) && params[:revision] != @generic_file.latest_content_version.label
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
def actor
|
|
96
|
-
@actor ||= ::CurationConcerns::GenericFileActor.new(@generic_file, current_user)
|
|
97
|
-
end
|
|
98
|
-
|
|
99
|
-
def attributes
|
|
100
|
-
# params.fetch(:generic_file, {}).dup # use a copy of the hash so that original params stays untouched when interpret_visibility modifies things
|
|
101
|
-
params.fetch(:generic_file, {}).permit!.dup # use a copy of the hash so that original params stays untouched when interpret_visibility modifies things
|
|
102
|
-
end
|
|
103
|
-
|
|
104
|
-
def json_error(error, name=nil, additional_arguments={})
|
|
105
|
-
args = {:error => error}
|
|
106
|
-
args[:name] = name if name
|
|
107
|
-
render additional_arguments.merge({:json => [args]})
|
|
108
|
-
end
|
|
109
|
-
|
|
110
|
-
def _prefixes
|
|
111
|
-
# This allows us to use the unauthorized and form_permission template in curation_concerns/base
|
|
112
|
-
@_prefixes ||= super + ['curation_concerns/base']
|
|
113
|
-
end
|
|
114
|
-
|
|
115
|
-
def empty_file?(file)
|
|
116
|
-
(file.respond_to?(:tempfile) && file.tempfile.size == 0) || (file.respond_to?(:size) && file.size == 0)
|
|
117
|
-
end
|
|
118
|
-
|
|
119
|
-
def process_file(file)
|
|
120
|
-
update_metadata_from_upload_screen
|
|
121
|
-
actor.create_metadata(params[:batch_id], parent_id, params[:generic_file])
|
|
122
|
-
if actor.create_content(file)
|
|
123
|
-
respond_to do |format|
|
|
124
|
-
format.html {
|
|
125
|
-
if request.xhr?
|
|
126
|
-
render 'jq_upload', formats: 'json', content_type: 'text/html'
|
|
127
|
-
else
|
|
128
|
-
redirect_to [main_app, :curation_concerns, @generic_file.generic_works.first]
|
|
129
|
-
end
|
|
130
|
-
}
|
|
131
|
-
format.json {
|
|
132
|
-
render 'jq_upload'
|
|
133
|
-
}
|
|
134
|
-
end
|
|
135
|
-
else
|
|
136
|
-
msg = @generic_file.errors.full_messages.join(', ')
|
|
137
|
-
flash[:error] = msg
|
|
138
|
-
json_error "Error creating generic file: #{msg}"
|
|
139
|
-
end
|
|
140
|
-
end
|
|
141
|
-
|
|
142
|
-
# this is provided so that implementing application can override this behavior and map params to different attributes
|
|
143
|
-
def update_metadata_from_upload_screen
|
|
144
|
-
# Relative path is set by the jquery uploader when uploading a directory
|
|
145
|
-
@generic_file.relative_path = params[:relative_path] if params[:relative_path]
|
|
146
|
-
end
|
|
147
|
-
|
|
148
|
-
end
|
|
149
|
-
end
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
module CurationConcerns
|
|
2
|
-
class GenericFilesController < ApplicationController
|
|
3
|
-
include CurationConcerns::GenericFilesControllerBehavior
|
|
4
|
-
|
|
5
|
-
def generic_file_params
|
|
6
|
-
if params.has_key?(:generic_file)
|
|
7
|
-
params.require(:generic_file).permit!
|
|
8
|
-
end
|
|
9
|
-
end
|
|
10
|
-
|
|
11
|
-
end
|
|
12
|
-
end
|
|
13
|
-
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
module CurationConcerns::GenericWorkRdfProperties
|
|
2
|
-
extend ActiveSupport::Concern
|
|
3
|
-
included do
|
|
4
|
-
property :part_of, predicate: RDF::DC.isPartOf
|
|
5
|
-
property :resource_type, predicate: RDF::DC.type do |index|
|
|
6
|
-
index.as :stored_searchable, :facetable
|
|
7
|
-
end
|
|
8
|
-
property :title, predicate: RDF::DC.title do |index|
|
|
9
|
-
index.as :stored_searchable, :facetable
|
|
10
|
-
end
|
|
11
|
-
property :creator, predicate: RDF::DC.creator do |index|
|
|
12
|
-
index.as :stored_searchable, :facetable
|
|
13
|
-
end
|
|
14
|
-
property :contributor, predicate: RDF::DC.contributor do |index|
|
|
15
|
-
index.as :stored_searchable, :facetable
|
|
16
|
-
end
|
|
17
|
-
property :description, predicate: RDF::DC.description do |index|
|
|
18
|
-
index.type :text
|
|
19
|
-
index.as :stored_searchable
|
|
20
|
-
end
|
|
21
|
-
property :relation, predicate: RDF::DC.relation
|
|
22
|
-
property :rights, predicate: RDF::DC.rights do |index|
|
|
23
|
-
index.as :stored_searchable
|
|
24
|
-
end
|
|
25
|
-
property :publisher, predicate: RDF::DC.publisher do |index|
|
|
26
|
-
index.as :stored_searchable, :facetable
|
|
27
|
-
end
|
|
28
|
-
property :created, predicate: RDF::DC.created
|
|
29
|
-
|
|
30
|
-
property :date, predicate: RDF::DC.date do |index|
|
|
31
|
-
index.type :date
|
|
32
|
-
index.as :stored_sortable
|
|
33
|
-
end
|
|
34
|
-
property :date_uploaded, predicate: RDF::DC.dateSubmitted do |index|
|
|
35
|
-
index.type :date
|
|
36
|
-
index.as :stored_sortable
|
|
37
|
-
end
|
|
38
|
-
property :date_modified, predicate: RDF::DC.modified do |index|
|
|
39
|
-
index.type :date
|
|
40
|
-
index.as :stored_sortable
|
|
41
|
-
end
|
|
42
|
-
property :subject, predicate: RDF::DC.subject do |index|
|
|
43
|
-
index.as :stored_searchable, :facetable
|
|
44
|
-
end
|
|
45
|
-
property :language, predicate: RDF::DC.language do |index|
|
|
46
|
-
index.as :stored_searchable, :facetable
|
|
47
|
-
end
|
|
48
|
-
property :identifier, predicate: RDF::DC.identifier do |index|
|
|
49
|
-
index.as :stored_searchable
|
|
50
|
-
end
|
|
51
|
-
property :bibliographic_citation, predicate: RDF::DC.bibliographicCitation
|
|
52
|
-
property :source, predicate: RDF::DC.source
|
|
53
|
-
property :coverage, predicate: RDF::DC.coverage
|
|
54
|
-
property :type, predicate: RDF::DC.type
|
|
55
|
-
property :content_format, predicate: RDF::DC.format
|
|
56
|
-
end
|
|
57
|
-
end
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
module CurationConcerns
|
|
2
|
-
module Forms
|
|
3
|
-
class GenericFileEditForm < GenericFilePresenter
|
|
4
|
-
include HydraEditor::Form
|
|
5
|
-
include HydraEditor::Form::Permissions
|
|
6
|
-
self.required_fields = [:title, :creator, :tag, :rights]
|
|
7
|
-
|
|
8
|
-
# def self.build_permitted_params
|
|
9
|
-
# super.merge {
|
|
10
|
-
# :visibility, :visibility_during_embargo, :embargo_release_date, :visibility_after_embargo, :visibility_during_lease, :lease_expiration_date, :visibility_after_lease }
|
|
11
|
-
# end
|
|
12
|
-
end
|
|
13
|
-
end
|
|
14
|
-
end
|
|
15
|
-
|