worthwhile 0.0.1.alpha → 0.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/.rspec +1 -0
- data/.travis.yml +19 -0
- data/Gemfile +7 -11
- data/README.md +8 -12
- data/Rakefile +17 -2
- data/app/actors/concerns/worthwhile/manages_embargoes_actor.rb +79 -0
- data/app/actors/curation_concern/base_actor.rb +68 -0
- data/app/actors/curation_concern/generic_file_actor.rb +40 -0
- data/app/actors/curation_concern/generic_work_actor.rb +92 -0
- data/app/actors/curation_concern/linked_resource_actor.rb +4 -0
- data/app/assets/images/default.png +0 -0
- data/app/assets/images/nope.png +0 -0
- data/app/assets/javascripts/.gitkeep +0 -0
- data/app/assets/javascripts/modernizr.js +3 -0
- data/app/assets/javascripts/worthwhile/.gitkeep +0 -0
- data/app/assets/javascripts/worthwhile/accept_contributor_agreement.js +15 -0
- data/app/assets/javascripts/worthwhile/application.js +18 -0
- data/app/assets/javascripts/worthwhile/browse_everything_implement.js +7 -0
- data/app/assets/javascripts/worthwhile/embargoes.js +17 -0
- data/app/assets/javascripts/worthwhile/facet_mine.js +22 -0
- data/app/assets/javascripts/worthwhile/help_modal.js +36 -0
- data/app/assets/javascripts/worthwhile/link_groups.js.coffee +123 -0
- data/app/assets/javascripts/worthwhile/link_users.js.coffee +126 -0
- data/app/assets/javascripts/worthwhile/manage_repeating_fields.js +74 -0
- data/app/assets/javascripts/worthwhile/proxy_rights.js.coffee +95 -0
- data/app/assets/javascripts/worthwhile/proxy_submission.js +23 -0
- data/app/assets/javascripts/worthwhile/select_works.js.coffee +20 -0
- data/app/assets/javascripts/worthwhile/worthwhile.js +45 -0
- data/app/assets/stylesheets/worthwhile.css.scss +23 -0
- data/app/assets/stylesheets/worthwhile/_global-variables.css.scss +5 -0
- data/app/assets/stylesheets/worthwhile/_modules.css.scss +14 -0
- data/app/assets/stylesheets/worthwhile/_positioning.css.scss +138 -0
- data/app/assets/stylesheets/worthwhile/_theme.css.scss +46 -0
- data/app/assets/stylesheets/worthwhile/_typography.css.scss +142 -0
- data/app/assets/stylesheets/worthwhile/_variables_bootstrap.css.scss +7 -0
- data/app/assets/stylesheets/worthwhile/_worthwhile.css.scss +7 -0
- data/app/assets/stylesheets/worthwhile/downloads.css.scss +3 -0
- data/app/assets/stylesheets/worthwhile/help_requests.css.scss +3 -0
- data/app/assets/stylesheets/worthwhile/modules/accessibility.css.scss +50 -0
- data/app/assets/stylesheets/worthwhile/modules/accordion.css.scss +33 -0
- data/app/assets/stylesheets/worthwhile/modules/attributes.css.scss +26 -0
- data/app/assets/stylesheets/worthwhile/modules/classify_work.css.scss +100 -0
- data/app/assets/stylesheets/worthwhile/modules/collections.css.scss +42 -0
- data/app/assets/stylesheets/worthwhile/modules/embargoes.css.scss +15 -0
- data/app/assets/stylesheets/worthwhile/modules/emphatic_action_area.css.scss +14 -0
- data/app/assets/stylesheets/worthwhile/modules/forms.css.scss +116 -0
- data/app/assets/stylesheets/worthwhile/modules/multi_value_fields.css.scss +52 -0
- data/app/assets/stylesheets/worthwhile/modules/pagination.css.scss +4 -0
- data/app/assets/stylesheets/worthwhile/modules/search_results.css.scss +55 -0
- data/app/assets/stylesheets/worthwhile/modules/site_actions.css.scss +53 -0
- data/app/assets/stylesheets/worthwhile/modules/site_search.css.scss +46 -0
- data/app/controllers/catalog_controller.rb +3 -0
- data/app/controllers/collections_controller.rb +59 -0
- data/app/controllers/concerns/worthwhile/application_controller_behavior.rb +23 -0
- data/app/controllers/concerns/worthwhile/catalog_controller.rb +347 -0
- data/app/controllers/concerns/worthwhile/curation_concern_controller.rb +131 -0
- data/app/controllers/concerns/worthwhile/files_controller.rb +149 -0
- data/app/controllers/concerns/worthwhile/manages_embargoes.rb +22 -0
- data/app/controllers/concerns/worthwhile/parent_container.rb +31 -0
- data/app/controllers/concerns/worthwhile/themed_layout_controller.rb +31 -0
- data/app/controllers/concerns/worthwhile/without_namespace.rb +15 -0
- data/app/controllers/curation_concern/generic_files_controller.rb +6 -0
- data/app/controllers/curation_concern/generic_works_controller.rb +6 -0
- data/app/controllers/curation_concern/linked_resources_controller.rb +68 -0
- data/app/controllers/curation_concern/permissions_controller.rb +19 -0
- data/app/controllers/downloads_controller.rb +4 -0
- data/app/controllers/embargoes_controller.rb +44 -0
- data/app/controllers/leases_controller.rb +34 -0
- data/app/controllers/registrations_controller.rb +20 -0
- data/app/controllers/sessions_controller.rb +4 -0
- data/app/controllers/worthwhile/application_controller.rb +7 -0
- data/app/controllers/worthwhile/classify_concerns_controller.rb +35 -0
- data/app/datastreams/generic_work_metadata.rb +3 -0
- data/app/datastreams/worthwhile/generic_work_rdf_properties.rb +57 -0
- data/app/datastreams/worthwhile/properties_datastream.rb +28 -0
- data/app/helpers/curate/collections_helper.rb +133 -0
- data/app/helpers/worthwhile/ability_helper.rb +46 -0
- data/app/helpers/worthwhile/attribute_helper.rb +67 -0
- data/app/helpers/worthwhile/catalog_helper.rb +38 -0
- data/app/helpers/worthwhile/collections_helper.rb +19 -0
- data/app/helpers/worthwhile/embargo_helper.rb +17 -0
- data/app/helpers/worthwhile/generic_file_helper.rb +19 -0
- data/app/helpers/worthwhile/lease_helper.rb +18 -0
- data/app/helpers/worthwhile/main_app_helpers.rb +14 -0
- data/app/helpers/worthwhile/render_constraints_helper.rb +42 -0
- data/app/helpers/worthwhile/search_paths_helper.rb +13 -0
- data/app/helpers/worthwhile/thumbnail_helper.rb +11 -0
- data/app/helpers/worthwhile/title_helper.rb +23 -0
- data/app/helpers/worthwhile/url_helper.rb +16 -0
- data/app/inputs/multi_value_input.rb +72 -0
- data/app/models/collection.rb +15 -0
- data/app/models/concerns/curation_concern/collection_model.rb +62 -0
- data/app/models/concerns/curation_concern/curatable.rb +77 -0
- data/app/models/concerns/curation_concern/has_representative.rb +14 -0
- data/app/models/concerns/curation_concern/human_readable_type.rb +23 -0
- data/app/models/concerns/curation_concern/with_basic_metadata.rb +49 -0
- data/app/models/concerns/curation_concern/with_editors.rb +44 -0
- data/app/models/concerns/curation_concern/with_generic_files.rb +23 -0
- data/app/models/concerns/curation_concern/with_linked_resources.rb +21 -0
- data/app/models/concerns/curation_concern/work.rb +24 -0
- data/app/models/concerns/worthwhile/ability.rb +34 -0
- data/app/models/concerns/worthwhile/generic_file/versioned_content.rb +18 -0
- data/app/models/concerns/worthwhile/generic_file_base.rb +64 -0
- data/app/models/concerns/worthwhile/solr_document_behavior.rb +140 -0
- data/app/models/generic_work.rb +5 -0
- data/app/models/worthwhile/classify_concern.rb +47 -0
- data/app/models/worthwhile/content_version.rb +23 -0
- data/app/models/worthwhile/contributor_agreement.rb +23 -0
- data/app/models/worthwhile/generic_file.rb +5 -0
- data/app/models/worthwhile/linked_resource.rb +41 -0
- data/app/models/worthwhile/quick_classification_query.rb +31 -0
- data/app/services/worthwhile/curation_concern.rb +21 -0
- data/app/services/worthwhile/embargo_service.rb +26 -0
- data/app/services/worthwhile/lease_service.rb +23 -0
- data/app/views/catalog/_action_menu_partials/_collection.html.erb +27 -0
- data/app/views/catalog/_action_menu_partials/_default.html.erb +27 -0
- data/app/views/catalog/_document.html.erb +3 -0
- data/app/views/catalog/_document_list.html.erb +5 -0
- data/app/views/catalog/_home_text.html.erb +8 -0
- data/app/views/catalog/_index_default.html.erb +17 -0
- data/app/views/catalog/_index_header_list_default.html.erb +17 -0
- data/app/views/catalog/_navbar.html.erb +12 -0
- data/app/views/catalog/_show_partials/_default.html.erb +22 -0
- data/app/views/catalog/_show_partials/_default_details.html.erb +15 -0
- data/app/views/catalog/_show_partials/_facets.html.erb +52 -0
- data/app/views/catalog/index.html.erb +48 -0
- data/app/views/collections/_batch_edits_actions.html.erb +3 -0
- data/app/views/collections/_button_for_creating_empty_collection.html.erb +3 -0
- data/app/views/collections/_collection.html.erb +1 -0
- data/app/views/collections/_dashboard_document_list.html.erb +6 -0
- data/app/views/collections/_document_list.html.erb +7 -0
- data/app/views/collections/_edit_actions.html.erb +5 -0
- data/app/views/collections/_edit_descriptions.html.erb +20 -0
- data/app/views/collections/_form.html.erb +26 -0
- data/app/views/collections/_form_for_select_collection.html.erb +34 -0
- data/app/views/collections/_form_permission.html.erb +36 -0
- data/app/views/collections/_form_required_information.html.erb +11 -0
- data/app/views/collections/_identifier_and_action.html.erb +15 -0
- data/app/views/collections/_media_display.html.erb +1 -0
- data/app/views/collections/_paginate.html.erb +6 -0
- data/app/views/collections/_search_collection_dashboard_form.html.erb +10 -0
- data/app/views/collections/_show_actions.html.erb +8 -0
- data/app/views/collections/_show_descriptions.html.erb +10 -0
- data/app/views/collections/_show_fields.html.erb +0 -0
- data/app/views/collections/_single_item_action_fields.html.erb +6 -0
- data/app/views/collections/_sort_and_per_page.html.erb +29 -0
- data/app/views/collections/_view_type_group.html.erb +13 -0
- data/app/views/collections/edit.html.erb +22 -0
- data/app/views/collections/new.html.erb +15 -0
- data/app/views/collections/show.html.erb +24 -0
- data/app/views/curate/collections/_add_to_collection_modal.html.erb +15 -0
- data/app/views/curate/collections/_button_remove_from_collection.html.erb +6 -0
- data/app/views/curate/collections/_form_to_add_member.html.erb +27 -0
- data/app/views/curate/collections/add_member_form.html.erb +6 -0
- data/app/views/curation_concern/base/_attributes.html.erb +25 -0
- data/app/views/curation_concern/base/_collections.html.erb +26 -0
- data/app/views/curation_concern/base/_form.html.erb +27 -0
- data/app/views/curation_concern/base/_form_additional_information.html.erb +9 -0
- data/app/views/curation_concern/base/_form_content_license.html.erb +16 -0
- data/app/views/curation_concern/base/_form_contributor_agreement.html.erb +29 -0
- data/app/views/curation_concern/base/_form_descriptive_fields.erb +23 -0
- data/app/views/curation_concern/base/_form_files_and_links.html.erb +29 -0
- data/app/views/curation_concern/base/_form_permission.html.erb +52 -0
- data/app/views/curation_concern/base/_form_permission_embargo.html.erb +6 -0
- data/app/views/curation_concern/base/_form_permission_lease.html.erb +6 -0
- data/app/views/curation_concern/base/_form_permission_under_embargo.html.erb +16 -0
- data/app/views/curation_concern/base/_form_permission_under_lease.html.erb +18 -0
- data/app/views/curation_concern/base/_form_representative_image.html.erb +13 -0
- data/app/views/curation_concern/base/_form_required_information.html.erb +11 -0
- data/app/views/curation_concern/base/_form_supplementary_fields.html.erb +15 -0
- data/app/views/curation_concern/base/_legally_binding_text.html.erb +33 -0
- data/app/views/curation_concern/base/_related_files.html.erb +24 -0
- data/app/views/curation_concern/base/_related_resources.html.erb +40 -0
- data/app/views/curation_concern/base/_representative_media.html.erb +8 -0
- data/app/views/curation_concern/base/edit.html.erb +15 -0
- data/app/views/curation_concern/base/new.html.erb +14 -0
- data/app/views/curation_concern/base/show.html.erb +32 -0
- data/app/views/curation_concern/base/unauthorized.html.erb +3 -0
- data/app/views/curation_concern/generic_files/_form.html.erb +35 -0
- data/app/views/curation_concern/generic_files/_media_display.html.erb +20 -0
- data/app/views/curation_concern/generic_files/edit.html.erb +5 -0
- data/app/views/curation_concern/generic_files/show.html.erb +15 -0
- data/app/views/curation_concern/generic_works/_generic_work.html.erb +3 -0
- data/app/views/curation_concern/linked_resources/_form.html.erb +11 -0
- data/app/views/curation_concern/linked_resources/edit.html.erb +5 -0
- data/app/views/curation_concern/linked_resources/new.html.erb +5 -0
- data/app/views/curation_concern/permissions/confirm.html.erb +13 -0
- data/app/views/curation_concern/worthwhile/generic_files/_actions.html.erb +16 -0
- data/app/views/curation_concern/worthwhile/generic_files/_generic_file.html.erb +12 -0
- data/app/views/embargoes/_embargo_history.html.erb +7 -0
- data/app/views/embargoes/_list_active_embargoes.html.erb +16 -0
- data/app/views/embargoes/_list_deactivated_embargoes.html.erb +10 -0
- data/app/views/embargoes/_list_expired_active_embargoes.html.erb +44 -0
- data/app/views/embargoes/edit.html.erb +43 -0
- data/app/views/embargoes/index.html.erb +18 -0
- data/app/views/layouts/boilerplate.html.erb +22 -0
- data/app/views/layouts/common_objects.html.erb +36 -0
- data/app/views/layouts/curate_nd.html.erb +33 -0
- data/app/views/layouts/curate_nd/1_column.html.erb +22 -0
- data/app/views/layouts/curate_nd/2_column.html.erb +26 -0
- data/app/views/layouts/curate_nd/catalog.html.erb +38 -0
- data/app/views/layouts/curate_nd/dashboard.html.erb +22 -0
- data/app/views/leases/_lease_history.html.erb +7 -0
- data/app/views/leases/_list_active_leases.html.erb +16 -0
- data/app/views/leases/_list_deactivated_leases.html.erb +4 -0
- data/app/views/leases/_list_expired_active_leases.html.erb +38 -0
- data/app/views/leases/edit.html.erb +43 -0
- data/app/views/leases/index.html.erb +18 -0
- data/app/views/shared/_add_content.html.erb +32 -0
- data/app/views/shared/_brand_bar.html.erb +10 -0
- data/app/views/shared/_flash_message.html.erb +17 -0
- data/app/views/shared/_footer.html.erb +10 -0
- data/app/views/shared/_ga.html.erb +6 -0
- data/app/views/shared/_header.html.erb +12 -0
- data/app/views/shared/_my_actions.html.erb +21 -0
- data/app/views/shared/_site_actions.html.erb +7 -0
- data/app/views/shared/_site_search.html.erb +12 -0
- data/app/views/shared/_title_bar.html.erb +16 -0
- data/app/views/worthwhile/classify_concerns/new.html.erb +27 -0
- data/app/workers/visibility_copy_worker.rb +29 -0
- data/config/initializers/simple_form.rb +31 -0
- data/config/locales/sufia.en.yml +26 -0
- data/config/locales/worthwhile.en.yml +68 -0
- data/config/routes.rb +4 -0
- data/lib/generators/worthwhile/install_generator.rb +74 -0
- data/lib/generators/worthwhile/templates/worthwhile.css.scss +3 -0
- data/lib/generators/worthwhile/templates/worthwhile.js +1 -0
- data/lib/generators/worthwhile/templates/worthwhile_config.rb +3 -0
- data/lib/generators/worthwhile/templates/worthwhile_helper.rb +4 -0
- data/lib/worthwhile.rb +3 -1
- data/lib/worthwhile/configuration.rb +74 -0
- data/lib/worthwhile/controller_resource.rb +10 -0
- data/lib/worthwhile/engine.rb +20 -0
- data/lib/worthwhile/rails/routes.rb +78 -0
- data/lib/worthwhile/spec_support.rb +10 -0
- data/lib/worthwhile/version.rb +1 -1
- data/spec/abilities/generic_file_abilities_spec.rb +62 -0
- data/spec/abilities/generic_work_abilities_spec.rb +58 -0
- data/spec/actors/curation_concern/generic_work_actor_spec.rb +215 -0
- data/spec/actors/curation_concern/linked_resource_actor_spec.rb +36 -0
- data/spec/actors/worthwile/manages_embargoes_actor_spec.rb +95 -0
- data/spec/controllers/catalog_controller_spec.rb +114 -0
- data/spec/controllers/collections_controller_spec.rb +216 -0
- data/spec/controllers/curation_concern/generic_files_controller_spec.rb +258 -0
- data/spec/controllers/curation_concern/generic_works_controller_spec.rb +171 -0
- data/spec/controllers/curation_concern/linked_resources_controller_spec.rb +123 -0
- data/spec/controllers/curation_concern/permissions_controller_spec.rb +29 -0
- data/spec/controllers/downloads_controller_spec.rb +53 -0
- data/spec/controllers/embargoes_controller_spec.rb +107 -0
- data/spec/controllers/leases_controller_spec.rb +95 -0
- data/spec/controllers/worthwhile/classify_concerns_controller_spec.rb +35 -0
- data/spec/factories/collections_factory.rb +21 -0
- data/spec/factories/create_curation_concern.rb +3 -0
- data/spec/factories/generic_files.rb +18 -0
- data/spec/factories/generic_works.rb +37 -0
- data/spec/factories/linked_resources_factory.rb +18 -0
- data/spec/factories/users.rb +15 -0
- data/spec/features/add_external_link_spec.rb +25 -0
- data/spec/features/add_file_spec.rb +28 -0
- data/spec/features/collection_spec.rb +238 -0
- data/spec/features/embargo_spec.rb +45 -0
- data/spec/features/lease_spec.rb +43 -0
- data/spec/features/update_file_spec.rb +28 -0
- data/spec/fixtures/files/image.png +0 -0
- data/spec/helpers/catalog_helper_spec.rb +58 -0
- data/spec/helpers/configuration_helper_spec.rb +13 -0
- data/spec/helpers/render_constraints_helper_spec.rb +19 -0
- data/spec/helpers/thumbnail_helper_spec.rb +21 -0
- data/spec/helpers/url_helper_spec.rb +19 -0
- data/spec/matchers.rb +24 -0
- data/spec/matchers/metadata_field_matchers.rb +28 -0
- data/spec/models/collection_spec.rb +136 -0
- data/spec/models/curation_concern/collection_model_spec.rb +50 -0
- data/spec/models/curation_concern/work_spec.rb +30 -0
- data/spec/models/generic_work_spec.rb +24 -0
- data/spec/models/worthwhile/content_version_spec.rb +27 -0
- data/spec/models/worthwhile/generic_file_spec.rb +77 -0
- data/spec/models/worthwhile/linked_resource_spec.rb +76 -0
- data/spec/routing/worthwhile/routes_spec.rb +23 -0
- data/spec/services/embargo_service_spec.rb +38 -0
- data/spec/services/lease_service_spec.rb +37 -0
- data/spec/spec_helper.rb +30 -5
- data/spec/support/controllers/engine_helpers.rb +7 -0
- data/spec/support/curation_concern/factory_helpers.rb +14 -0
- data/spec/support/features.rb +19 -0
- data/spec/support/features/fixture_file_upload.rb +14 -0
- data/spec/support/features/session_helpers.rb +41 -0
- data/spec/support/shared/shared_examples_has_dc_metadata.rb +17 -0
- data/spec/support/shared/shared_examples_is_a_curation_concern_model.rb +40 -0
- data/spec/support/shared/shared_examples_is_embargoable.rb +8 -0
- data/spec/support/shared/shared_examples_with_access_rights.rb +63 -0
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +8 -29
- data/spec/views/curation_concern/base/_attributes.html.erb_spec.rb +25 -0
- data/spec/views/curation_concern/base/show.html.erb_spec.rb +25 -0
- data/spec/views/shared/_add_content.html.erb_spec.rb +42 -0
- data/spec/views/shared/_my_actions.html.erb_spec.rb +23 -0
- data/spec/workers/visibility_copy_worker_spec.rb +68 -0
- data/vendor/assets/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/vendor/assets/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/vendor/assets/javascripts/handlebars.js +2278 -0
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.autocomplete.js +602 -0
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.core.js +356 -0
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.effect-highlight.js +50 -0
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.effect.js +1276 -0
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.menu.js +610 -0
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.position.js +498 -0
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.widget.js +528 -0
- data/vendor/assets/javascripts/jquery.tokeninput.js +1061 -0
- data/vendor/assets/stylesheets/jquery-ui-lightness.css +474 -0
- data/vendor/assets/stylesheets/token-input-facebook.css +122 -0
- data/vendor/assets/stylesheets/token-input-mac.css +204 -0
- data/vendor/assets/stylesheets/token-input.css +127 -0
- data/worthwhile.gemspec +9 -3
- metadata +469 -9
@@ -0,0 +1,6 @@
|
|
1
|
+
<% content_for :page_header do %>
|
2
|
+
<h1 id="add-to-title">Add <%= @collectible %> to:</h1>
|
3
|
+
<% end %>
|
4
|
+
<% if can? :collect, @collectible %>
|
5
|
+
<%= render partial: 'form_to_add_member', locals: { collectible: @collectible, select_label_id: 'add-to-title', button_class: 'btn btn-primary' } %>
|
6
|
+
<% end %>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<table class="table table-striped <%= dom_class(curation_concern) %> attributes">
|
2
|
+
<caption class="table-heading"><h2>Attributes</h2></caption>
|
3
|
+
<thead>
|
4
|
+
<tr><th>Attribute Name</th><th>Values</th></tr>
|
5
|
+
</thead>
|
6
|
+
<tbody>
|
7
|
+
<%= curation_concern_attribute_to_html(curation_concern, :description, 'Abstract') %>
|
8
|
+
<%= curation_concern_attribute_to_html(curation_concern, :creator, 'Creator', { catalog_search_link: true }) %>
|
9
|
+
<%= curation_concern_attribute_to_html(curation_concern, :contributor, 'Contributors', { catalog_search_link: true }) %>
|
10
|
+
<%= curation_concern_attribute_to_html(curation_concern, :subject, "Subject", { catalog_search_link: true }) %>
|
11
|
+
<%= curation_concern_attribute_to_html(curation_concern, :publisher, "Publisher") %>
|
12
|
+
<%#= curation_concern_attribute_to_html(curation_concern, :bibliographic_citation, "Bibliographic Citation") %>
|
13
|
+
<%#= curation_concern_attribute_to_html(curation_concern, :source, "Source") %>
|
14
|
+
<%= curation_concern_attribute_to_html(curation_concern, :language, "Language") %>
|
15
|
+
<tr>
|
16
|
+
<th>Access Rights</th>
|
17
|
+
<td>
|
18
|
+
<%= permission_badge_for(curation_concern) %>
|
19
|
+
</td>
|
20
|
+
</tr>
|
21
|
+
<%= curation_concern_attribute_to_html(curation_concern, :embargo_release_date, "Embargo Release Date") %>
|
22
|
+
<%= curation_concern_attribute_to_html(curation_concern, :lease_expiration_date, "Lease Expiration Date") %>
|
23
|
+
<%= curation_concern_attribute_to_html(curation_concern, :rights, "Content License") %>
|
24
|
+
</tbody>
|
25
|
+
</table>
|
@@ -0,0 +1,26 @@
|
|
1
|
+
<% if curation_concern.collections.present? %>
|
2
|
+
<table class="table table-striped <%= dom_class(curation_concern) %> collections with-headroom">
|
3
|
+
<caption class="table-heading">
|
4
|
+
<h2>Collections</h2>
|
5
|
+
</caption>
|
6
|
+
<thead>
|
7
|
+
<tr>
|
8
|
+
<th>Collections Featuring this <%= curation_concern.human_readable_type %></th>
|
9
|
+
</tr>
|
10
|
+
</thead>
|
11
|
+
<tbody>
|
12
|
+
<% curation_concern.collections.each do |collection| %>
|
13
|
+
<tr class="collection attributes">
|
14
|
+
<%= content_tag :td, class: 'attribute title', data: { noid: collection.noid } do %>
|
15
|
+
<%= link_to collection.title, collection %>
|
16
|
+
<span class="pull-right">
|
17
|
+
<% if can?(:edit, curation_concern) %>
|
18
|
+
<%= button_for_remove_item_from_collection(curation_concern, collection) %>
|
19
|
+
<% end %>
|
20
|
+
</span>
|
21
|
+
<% end %>
|
22
|
+
</tr>
|
23
|
+
<% end %>
|
24
|
+
</tbody>
|
25
|
+
</table>
|
26
|
+
<% end %>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<%= simple_form_for [:curation_concern, curation_concern] do |f| %>
|
2
|
+
|
3
|
+
<% if f.error_notification -%>
|
4
|
+
<div class="alert alert-danger fade in">
|
5
|
+
<strong>Wait don't go!</strong> There was a problem with your submission. Please review the errors below:
|
6
|
+
<a class="close" data-dismiss="alert" href="#">×</a>
|
7
|
+
</div>
|
8
|
+
<% end -%>
|
9
|
+
|
10
|
+
<%= render 'form_descriptive_fields', curation_concern: curation_concern, f: f %>
|
11
|
+
|
12
|
+
<%= render 'form_supplementary_fields', curation_concern: curation_concern, f: f %>
|
13
|
+
|
14
|
+
<%= render 'form_contributor_agreement', curation_concern: curation_concern, contributor_agreement: contributor_agreement %>
|
15
|
+
|
16
|
+
<div class="row">
|
17
|
+
<div class="col-md-12 form-actions">
|
18
|
+
<%= f.submit class: 'btn btn-primary require-contributor-agreement' %>
|
19
|
+
<%- if curation_concern.new_record? -%>
|
20
|
+
<%= link_to 'Cancel', main_app.root_path, class: 'btn btn-link' %>
|
21
|
+
<%- else -%>
|
22
|
+
<%= link_to 'Cancel', polymorphic_path([:curation_concern, curation_concern]), class: 'btn btn-link' %>
|
23
|
+
<%- end -%>
|
24
|
+
</div>
|
25
|
+
</div>
|
26
|
+
|
27
|
+
<% end %>
|
@@ -0,0 +1,9 @@
|
|
1
|
+
<fieldset class="optional prompt">
|
2
|
+
<legend>Additional Information</legend>
|
3
|
+
<%= f.input :subject, as: :multi_value, input_html: { class: 'form-control' } %>
|
4
|
+
<%= f.input :publisher, as: :multi_value, input_html: { class: 'form-control' } %>
|
5
|
+
<%# Coming in sufia pr #400 %>
|
6
|
+
<%# <%= f.input :bibliographic_citation, as: :multi_value, input_html: { class: 'form-control' } %>
|
7
|
+
<%# <%= f.input :source, as: :multi_value, input_html: { class: 'form-control' } %>
|
8
|
+
<%= f.input :language, as: :multi_value, input_html: { class: 'form-control' } %>
|
9
|
+
</fieldset>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<fieldset id="set-license">
|
2
|
+
<legend>Choose a License for your Content</legend>
|
3
|
+
<p>
|
4
|
+
What do you want others to be able to do with your work?
|
5
|
+
</p>
|
6
|
+
<p>
|
7
|
+
<a href="http://creativecommons.org/licenses/" target="_blank">Here's some help</a> if you don't know which license to choose.
|
8
|
+
</p>
|
9
|
+
|
10
|
+
<%= f.input :rights,
|
11
|
+
as: :select,
|
12
|
+
collection: Sufia.config.cc_licenses,
|
13
|
+
input_html: { class: 'form-control' },
|
14
|
+
label: 'Content License'
|
15
|
+
%>
|
16
|
+
</fieldset>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<% unless curation_concern.persisted? %>
|
2
|
+
<fieldset class="row contributor_agreement with-headroom" id="contributor-agreement">
|
3
|
+
<div class="col-md-12">
|
4
|
+
<legend>
|
5
|
+
<%= t('sufia.product_name') %> Content Submission Terms
|
6
|
+
</legend>
|
7
|
+
</div>
|
8
|
+
|
9
|
+
<div class="col-md-12">
|
10
|
+
<article class="lawyer_readable contributor_agreement wide-text">
|
11
|
+
<%= render partial: 'legally_binding_text' %>
|
12
|
+
</article>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div class="col-md-12 accept-contributor-agreement">
|
16
|
+
<%= label_tag contributor_agreement.param_key, class: 'checkbox', for: 'accept_contributor_agreement' do %>
|
17
|
+
<%= check_box_tag(
|
18
|
+
contributor_agreement.param_key,
|
19
|
+
contributor_agreement.acceptance_value,
|
20
|
+
contributor_agreement.param_value,
|
21
|
+
required: :required,
|
22
|
+
id: 'accept_contributor_agreement'
|
23
|
+
)
|
24
|
+
%>
|
25
|
+
I have read and accept the contributor license agreement
|
26
|
+
<% end %>
|
27
|
+
</div>
|
28
|
+
</fieldset>
|
29
|
+
<%- end -%>
|
@@ -0,0 +1,23 @@
|
|
1
|
+
<div class="row">
|
2
|
+
<div class="col-md-6" id="required-information">
|
3
|
+
<%= render "form_required_information", curation_concern: curation_concern, f: f %>
|
4
|
+
</div>
|
5
|
+
|
6
|
+
<fieldset id="content-editor">
|
7
|
+
<legend>
|
8
|
+
<%=t('sufia.work.editor.legend') %>
|
9
|
+
<small><%=t('sufia.work.editor.caption') %></small>
|
10
|
+
</legend>
|
11
|
+
<div class="col-md-6" id="required-information">
|
12
|
+
<%#= render "linked_editors", curation_concern: curation_concern, f: f %>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div class="col-md-6" id="additional-information">
|
16
|
+
<%#= render "linked_groups", curation_concern: curation_concern, f: f %>
|
17
|
+
</div>
|
18
|
+
</fieldset>
|
19
|
+
|
20
|
+
<div class="col-md-6" id="additional-information">
|
21
|
+
<%= render "form_additional_information", curation_concern: curation_concern, f: f %>
|
22
|
+
</div>
|
23
|
+
</div>
|
@@ -0,0 +1,29 @@
|
|
1
|
+
<% unless curation_concern.persisted? %>
|
2
|
+
<fieldset id="work-contents">
|
3
|
+
<div class="row with-headroom">
|
4
|
+
<div class="span12">
|
5
|
+
<legend>
|
6
|
+
Add Your Content
|
7
|
+
</legend>
|
8
|
+
|
9
|
+
<p class="help-block">
|
10
|
+
The subject of your <%= curation_concern.human_readable_type.downcase %> can either be a file <em>or</em> a URL.
|
11
|
+
</p>
|
12
|
+
</div>
|
13
|
+
</div>
|
14
|
+
|
15
|
+
<div class="row">
|
16
|
+
|
17
|
+
<fieldset class="col-md-5">
|
18
|
+
<%= f.input :files, as: :file, label: 'Upload a file', hint: 'A PDF is preferred.'%>
|
19
|
+
</fieldset>
|
20
|
+
|
21
|
+
<strong class="col-md-1 field-choice">OR</strong>
|
22
|
+
|
23
|
+
<fieldset class="col-md-6">
|
24
|
+
<%= f.input :linked_resource_urls, label: "External link", input_html: {class: 'form-control'} %>
|
25
|
+
</fieldset>
|
26
|
+
|
27
|
+
</div>
|
28
|
+
</fieldset>
|
29
|
+
<% end %>
|
@@ -0,0 +1,52 @@
|
|
1
|
+
<% if curation_concern.embargo_release_date %>
|
2
|
+
<%= render 'form_permission_under_embargo', curation_concern: curation_concern, f: f %>
|
3
|
+
<% elsif curation_concern.lease_expiration_date %>
|
4
|
+
<%= render 'form_permission_under_lease', curation_concern: curation_concern, f: f %>
|
5
|
+
<% else %>
|
6
|
+
<fieldset id="set-access-controls">
|
7
|
+
<legend>
|
8
|
+
Access Rights
|
9
|
+
<small>Who should be able to view or download this content?</small>
|
10
|
+
</legend>
|
11
|
+
|
12
|
+
<section class="help-block">
|
13
|
+
<p>
|
14
|
+
<strong>Please note</strong>, making something visible to the world (i.e.
|
15
|
+
marking this as <span class="label label-success">Open Access</span>) may be
|
16
|
+
viewed as publishing which could impact your ability to:
|
17
|
+
</p>
|
18
|
+
<ul>
|
19
|
+
<li>Patent your work</li>
|
20
|
+
<li>Publish your work in a journal</li>
|
21
|
+
</ul>
|
22
|
+
<p>
|
23
|
+
Check out <a href="http://www.sherpa.ac.uk/romeo/">SHERPA/RoMEO</a> for more
|
24
|
+
information about publisher copyright policies.
|
25
|
+
</p>
|
26
|
+
</section>
|
27
|
+
|
28
|
+
<div class="form-group">
|
29
|
+
<label class="radio">
|
30
|
+
<input type="radio" id="visibility_open" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PUBLIC %>" <% if curation_concern.open_access? %> checked="true"<% end %>/>
|
31
|
+
<span class="label label-success">Open Access</span> Visible to the world.
|
32
|
+
</label>
|
33
|
+
<label class="radio">
|
34
|
+
<input type="radio" id="visibility_registered" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_AUTHENTICATED %>" <% if curation_concern.authenticated_only_access? %> checked="true"<% end %> />
|
35
|
+
<span class="label label-info"><%=t('sufia.institution_name') %></span> Visible to all <%=t('sufia.institution_name') %> users.
|
36
|
+
</label>
|
37
|
+
<label class="radio">
|
38
|
+
<input type="radio" id="visibility_embargo" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_EMBARGO %>" <% if curation_concern.open_access_with_embargo_release_date? %> checked="true"<% end %>/>
|
39
|
+
<%= render "form_permission_embargo", curation_concern: curation_concern, f: f %>
|
40
|
+
</label>
|
41
|
+
<label class="radio">
|
42
|
+
<input type="radio" id="visibility_lease" name="<%= f.object_name %>[visibility]" value="lease" <% if curation_concern.open_access_with_embargo_release_date? %> checked="true"<% end %>/>
|
43
|
+
<%= render "form_permission_lease", curation_concern: curation_concern, f: f %>
|
44
|
+
</label>
|
45
|
+
<label class="radio">
|
46
|
+
<input type="radio" id="visibility_restricted" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_PRIVATE%>" <% if curation_concern.private_access? %> checked="true"<% end %>/>
|
47
|
+
<span class="label label-danger">Private</span> Only visible to you and your delegates.
|
48
|
+
</label>
|
49
|
+
</div>
|
50
|
+
|
51
|
+
</fieldset>
|
52
|
+
<% end %>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<div class="form-inline">
|
2
|
+
<span class="label label-warning">Embargo</span>
|
3
|
+
<%= f.input :visibility_during_embargo, wrapper: :inline, collection: visibility_options(:restrict), include_blank: false %>
|
4
|
+
<%= f.input :embargo_release_date, wrapper: :inline, input_html: { value: f.object.embargo_release_date || Date.tomorrow, class: 'datepicker' } %>
|
5
|
+
<%= f.input :visibility_after_embargo, wrapper: :inline, collection: visibility_options(:loosen), include_blank: false %>
|
6
|
+
</div>
|
@@ -0,0 +1,6 @@
|
|
1
|
+
<div class="form-inline">
|
2
|
+
<span class="label label-warning">Lease</span>
|
3
|
+
<%= f.input :visibility_during_lease, wrapper: :inline, collection: visibility_options(:loosen), include_blank: false %>
|
4
|
+
<%= f.input :lease_expiration_date, wrapper: :inline, input_html: { value: f.object.lease_expiration_date || Date.tomorrow, class: 'datepicker' } %>
|
5
|
+
<%= f.input :visibility_after_lease, wrapper: :inline, collection: visibility_options(:restrict), include_blank: false %>
|
6
|
+
</div>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<fieldset id="set-access-controls">
|
2
|
+
<legend>
|
3
|
+
Access Rights
|
4
|
+
<small>Who should be able to view or download this content?</small>
|
5
|
+
</legend>
|
6
|
+
|
7
|
+
<section class="help-block">
|
8
|
+
<p>
|
9
|
+
<strong>This work is under embargo.</strong> You can change the settings of the embargo here, or you can visit the <%= link_to 'Embargo Management Page', edit_embargo_path(curation_concern) %> to deactivate it.
|
10
|
+
</p>
|
11
|
+
</section>
|
12
|
+
|
13
|
+
<input type="hidden" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_EMBARGO %>" />
|
14
|
+
<%= render "form_permission_embargo", curation_concern: curation_concern, f: f %>
|
15
|
+
|
16
|
+
</fieldset>
|
@@ -0,0 +1,18 @@
|
|
1
|
+
<fieldset id="set-access-controls">
|
2
|
+
<legend>
|
3
|
+
Access Rights
|
4
|
+
<small>Who should be able to view or download this content?</small>
|
5
|
+
</legend>
|
6
|
+
|
7
|
+
<section class="help-block">
|
8
|
+
<p>
|
9
|
+
<strong>This work is under lease.</strong> You can change the settings of the lease here, or you can visit the <%= link_to 'Lease Management Page', edit_lease_path(curation_concern) %> to deactivate it.
|
10
|
+
</p>
|
11
|
+
</section>
|
12
|
+
|
13
|
+
<div class="form-group">
|
14
|
+
<input type="hidden" name="<%= f.object_name %>[visibility]" value="<%= Hydra::AccessControls::AccessRight::VISIBILITY_TEXT_VALUE_LEASE %>" />
|
15
|
+
<%= render "form_permission_lease", curation_concern: curation_concern, f: f %>
|
16
|
+
</div>
|
17
|
+
|
18
|
+
</fieldset>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<% if curation_concern.persisted? && curation_concern.generic_files.present? %>
|
2
|
+
<div class="row">
|
3
|
+
<div class="col-md-12">
|
4
|
+
<fieldset id="representative-image">
|
5
|
+
<legend>
|
6
|
+
Assign a Thumbnail
|
7
|
+
</legend>
|
8
|
+
<p>Select the file whose thumbnail should represent this <%= curation_concern.human_readable_type %>.</p>
|
9
|
+
<%= f.select( :representative, Hash[ curation_concern.generic_files.map {|file| [file.title.first, file.pid] } ],{}, { class: 'form-control' } ) %>
|
10
|
+
</fieldset>
|
11
|
+
</div>
|
12
|
+
</div>
|
13
|
+
<% end %>
|
@@ -0,0 +1,11 @@
|
|
1
|
+
<fieldset class="required">
|
2
|
+
<legend>Required Information</legend>
|
3
|
+
|
4
|
+
<%= f.input :title, as: :multi_value %>
|
5
|
+
|
6
|
+
<%= f.input :creator, as: :multi_value %>
|
7
|
+
|
8
|
+
<%= f.input :contributor, as: :multi_value, input_html: { class: 'form-control' } %>
|
9
|
+
|
10
|
+
<%= f.input :description, as: :multi_value, input_html: { rows: '14', type: 'textarea'} %>
|
11
|
+
</fieldset>
|
@@ -0,0 +1,15 @@
|
|
1
|
+
<%= render "form_files_and_links", curation_concern: curation_concern, f: f %>
|
2
|
+
|
3
|
+
<%= render "form_representative_image", curation_concern: curation_concern, f: f %>
|
4
|
+
|
5
|
+
<div class="row with-headroom">
|
6
|
+
<div class="col-md-12">
|
7
|
+
<%= render "form_permission", curation_concern: curation_concern, f: f %>
|
8
|
+
</div>
|
9
|
+
</div>
|
10
|
+
|
11
|
+
<div class="row with-headroom">
|
12
|
+
<div class="col-md-12">
|
13
|
+
<%= render "form_content_license", curation_concern: curation_concern, f: f %>
|
14
|
+
</div>
|
15
|
+
</div>
|
@@ -0,0 +1,33 @@
|
|
1
|
+
<p>
|
2
|
+
I am submitting my work for inclusion in the <%=I18n.t('sufia.product_name')%> repository maintained by the University Libraries of the <%= I18n.t('sufia.institution_name') %>.
|
3
|
+
I acknowledge that publication of the work may implicate my legal rights with respect to the work and its contents, including my ability to publish the work in other venues.
|
4
|
+
I UNDERSTAND AND AGREE THAT BY SUBMITTING MY CONTENT FOR INCLUSION IN THE <%=I18n.t('sufia.product_name').upcase%> REPOSITORY, I AGREE TO THE FOLLOWING TERMS:
|
5
|
+
</p>
|
6
|
+
|
7
|
+
<p>
|
8
|
+
I hereby grant the <%= I18n.t('sufia.institution_name') %> permission to reproduce, edit, publish, disseminate, publicly display, or publicly perform, in whole or in part, the work in any medium at the University’s discretion (including but not limited to public websites).
|
9
|
+
I agree that the University can keep more than one copy of the submission for the purpose of preservation and security.
|
10
|
+
I agree that the University can preserve the submission by migrating or translating it to a new format or medium as needed in the future.
|
11
|
+
I also agree that the metadata attached to the item can be reviewed and altered by the University to aid in preservation and discovery.
|
12
|
+
I understand that I may be allowed the opportunity to select the intended audience for the materials that I submit, and I agree that I am fully responsible for any claims and all responsibility for materials submitted.
|
13
|
+
The <%=I18n.t('sufia.product_name')%> service is offered as-is with no warranties, express or implied.
|
14
|
+
The University may suspend or terminate <%=I18n.t('sufia.product_name')%>, or remove any content within the system, at any time for any reason in the University’s sole discretion.
|
15
|
+
</p>
|
16
|
+
|
17
|
+
<p>
|
18
|
+
I warrant that the submitted material is original to me and that I have power to make this agreement.
|
19
|
+
I also warrant that the submission does not, to the best of my knowledge, infringe upon anyone’s copyright.
|
20
|
+
I also warrant that if the work has been previously published elsewhere in whole or in part, that I have obtained the permission of the copyright owner to grant <%=I18n.t('sufia.product_name')%> the rights required by this license.
|
21
|
+
I also guarantee that I do not have any other publication agreements that involve this material or substantial parts of it that conflict with my submission of materials for dissemination in <%=I18n.t('sufia.product_name')%>.
|
22
|
+
</p>
|
23
|
+
|
24
|
+
<p>
|
25
|
+
I represent that any materials that are used in this submission that I do not hold copyright for, I have obtained permission to use and display the materials according to the rights required by this license, and that third-party owned materials are clearly identified and credited within the content of the submission.
|
26
|
+
If it is determined that permissions of use have not properly been obtained, I acknowledge that the University may remove or restrict access to items as necessary.
|
27
|
+
</p>
|
28
|
+
|
29
|
+
<p>
|
30
|
+
I understand that I may request the University to remove my submitted materials from the <%=I18n.t('sufia.product_name')%> repository; however, I acknowledge that the University cannot control or retract works that may have been accessed by third parties prior to my request for removal.
|
31
|
+
If the submission is removed I agree that the item can be replaced by a page with a statement declaring that the item was removed by my request.
|
32
|
+
</p>
|
33
|
+
|
@@ -0,0 +1,24 @@
|
|
1
|
+
<% if curation_concern.generic_files.present? %>
|
2
|
+
<div class="panel panel-default related_files">
|
3
|
+
<div class="panel-heading">
|
4
|
+
<h2>Files</h2>
|
5
|
+
</div>
|
6
|
+
<table class="table table-striped">
|
7
|
+
<thead>
|
8
|
+
<tr>
|
9
|
+
<th>File</th>
|
10
|
+
<th>Filename</th>
|
11
|
+
<th>Date Uploaded</th>
|
12
|
+
<th>Visibility</th>
|
13
|
+
<th>Actions</th>
|
14
|
+
</tr>
|
15
|
+
</thead>
|
16
|
+
<tbody>
|
17
|
+
<%= render curation_concern.generic_files %>
|
18
|
+
</tbody>
|
19
|
+
</table>
|
20
|
+
</div>
|
21
|
+
<% elsif can? :edit, curation_concern %>
|
22
|
+
<h2>Files</h2>
|
23
|
+
<p class="center"><em>This <%= curation_concern.human_readable_type %> has no files associated with it. You can add one using the "Attach a File" button below.</em></p>
|
24
|
+
<% end %>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<% if curation_concern.linked_resources.present? %>
|
2
|
+
<table class="table table-striped <%= dom_class(curation_concern) %> related_resources with-headroom">
|
3
|
+
<caption class="table-heading">
|
4
|
+
<h2>External Links</h2>
|
5
|
+
</caption>
|
6
|
+
<thead>
|
7
|
+
<tr>
|
8
|
+
<th>Url</th>
|
9
|
+
<th>Actions</th>
|
10
|
+
</tr>
|
11
|
+
</thead>
|
12
|
+
<tbody>
|
13
|
+
<% curation_concern.linked_resources.each do |link| %>
|
14
|
+
<tr class="<%= dom_class(link) %> attributes">
|
15
|
+
<td class="attribute url"><%= link_to link.url, link.url %></td>
|
16
|
+
<td>
|
17
|
+
<%- if can?(:edit, link) -%>
|
18
|
+
<%= link_to(
|
19
|
+
'Edit',
|
20
|
+
edit_polymorphic_path([:curation_concern, link]),
|
21
|
+
{ class: 'btn', title: "Edit #{link}" }
|
22
|
+
) %>
|
23
|
+
<%- end -%>
|
24
|
+
<%- if can?(:destroy, link) -%>
|
25
|
+
<%= link_to(
|
26
|
+
'Delete',
|
27
|
+
polymorphic_path([:curation_concern, link]),
|
28
|
+
class: 'btn', method: :delete, title: "Delete #{link.to_s.inspect}",
|
29
|
+
data: {confirm: "Deleting #{link.to_s.inspect} from #{t('sufia.product_name')} is permanent. Click OK to delete this from #{t('sufia.product_name')}, or Cancel to cancel this operation"}
|
30
|
+
)%>
|
31
|
+
<%- end -%>
|
32
|
+
</td>
|
33
|
+
</tr>
|
34
|
+
<% end %>
|
35
|
+
</tbody>
|
36
|
+
</table>
|
37
|
+
<% elsif can? :edit, curation_concern %>
|
38
|
+
<h2>External Links</h2>
|
39
|
+
<p class="center"><em>This <%= curation_concern.human_readable_type %> has no external links associated with it. You can add one using the "Add an External Link" button below.</em></p>
|
40
|
+
<% end %>
|