sufia 7.2.0 → 7.3.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.codeclimate.yml +2 -0
- data/.rubocop.yml +3 -0
- data/.rubocop_todo.yml +1 -2
- data/.travis.yml +0 -1
- data/Gemfile +2 -1
- data/README.md +23 -106
- data/app/actors/sufia/apply_permission_template_actor.rb +19 -0
- data/app/actors/sufia/create_with_remote_files_actor.rb +2 -2
- data/app/actors/sufia/default_admin_set_actor.rb +42 -0
- data/app/actors/sufia/interpret_visibility_actor.rb +115 -0
- data/app/assets/images/collection.png +0 -0
- data/app/assets/javascripts/sufia.js +6 -0
- data/app/assets/javascripts/sufia/admin/admin_set/participants.es6 +9 -0
- data/app/assets/javascripts/sufia/admin/admin_set/visibility.es6 +134 -0
- data/app/assets/javascripts/sufia/admin/admin_set_controls.es6 +11 -0
- data/app/assets/javascripts/sufia/app.js +27 -5
- data/app/assets/javascripts/sufia/autocomplete.es6 +15 -0
- data/app/assets/javascripts/sufia/autocomplete/work.es6 +29 -0
- data/app/assets/javascripts/sufia/dashboard_actions.js +2 -4
- data/app/assets/javascripts/sufia/save_work/save_work_control.es6 +14 -2
- data/app/assets/javascripts/sufia/save_work/uploaded_files.es6 +7 -2
- data/app/assets/javascripts/sufia/save_work/visibility_component.es6 +245 -4
- data/app/assets/javascripts/sufia/select_work_type.es6 +38 -0
- data/app/assets/javascripts/sufia/workflow_actions_affix.js +14 -0
- data/app/assets/stylesheets/sufia/_dashboard.scss +50 -29
- data/app/assets/stylesheets/sufia/_footer.scss +30 -0
- data/app/assets/stylesheets/sufia/_header.scss +3 -4
- data/app/assets/stylesheets/sufia/_home-page.scss +10 -8
- data/app/assets/stylesheets/sufia/_select_work_type.scss +43 -0
- data/app/assets/stylesheets/sufia/_sufia.scss +4 -1
- data/app/assets/stylesheets/sufia/_variables.scss +3 -0
- data/app/assets/stylesheets/sufia/admin.scss +66 -169
- data/app/assets/stylesheets/sufia/blacklight_gallery.scss +17 -0
- data/app/authorities/qa/authorities/find_works.rb +15 -0
- data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +2 -1
- data/app/controllers/concerns/sufia/batch_uploads_controller_behavior.rb +26 -13
- data/app/controllers/concerns/sufia/collections_controller_behavior.rb +25 -0
- data/app/controllers/concerns/sufia/controller.rb +8 -0
- data/app/controllers/concerns/sufia/deny_access_override_behavior.rb +1 -1
- data/app/controllers/concerns/sufia/file_sets_controller_behavior.rb +5 -14
- data/app/controllers/concerns/sufia/homepage_controller_behavior.rb +2 -0
- data/app/controllers/concerns/sufia/users_controller_behavior.rb +18 -7
- data/app/controllers/concerns/sufia/works_controller_behavior.rb +13 -10
- data/app/controllers/my/collections_controller.rb +5 -0
- data/app/controllers/my/shares_controller.rb +5 -0
- data/app/controllers/my/works_controller.rb +5 -0
- data/app/controllers/stats_controller.rb +1 -1
- data/app/controllers/sufia/admin/admin_sets_controller.rb +20 -2
- data/app/controllers/sufia/admin/permission_template_accesses_controller.rb +15 -0
- data/app/controllers/sufia/admin/permission_templates_controller.rb +29 -0
- data/app/controllers/sufia/admin_controller.rb +2 -0
- data/app/controllers/sufia/trophies_controller.rb +0 -2
- data/app/forms/sufia/forms/admin_set_form.rb +19 -0
- data/app/forms/sufia/forms/batch_edit_form.rb +16 -6
- data/app/forms/sufia/forms/batch_upload_form.rb +3 -2
- data/app/forms/sufia/forms/permission_template_form.rb +115 -0
- data/app/forms/sufia/forms/work_form.rb +6 -0
- data/app/helpers/batch_edits_helper.rb +1 -1
- data/app/helpers/sufia/citations_behavior.rb +0 -5
- data/app/helpers/sufia/citations_behaviors/formatters.rb +0 -1
- data/app/helpers/sufia/sufia_helper_behavior.rb +38 -6
- data/app/indexers/sufia/collection_indexer.rb +6 -0
- data/app/jobs/batch_create_job.rb +7 -15
- data/app/models/batch_upload_item.rb +2 -0
- data/app/models/concerns/sufia/ability.rb +12 -1
- data/app/models/sufia/permission_template.rb +102 -0
- data/app/models/sufia/permission_template_access.rb +18 -0
- data/app/presenters/sufia/admin_set_presenter.rb +1 -1
- data/app/presenters/sufia/model_icon.rb +7 -0
- data/app/presenters/sufia/select_type_list_presenter.rb +37 -0
- data/app/presenters/sufia/select_type_presenter.rb +35 -0
- data/app/presenters/sufia/work_show_presenter.rb +0 -2
- data/app/search_builders/collection_search_builder.rb +0 -2
- data/app/search_builders/sufia/admin_set_search_builder.rb +24 -0
- data/app/search_builders/sufia/catalog_search_builder.rb +10 -4
- data/app/search_builders/sufia/find_works_search_builder.rb +44 -0
- data/app/search_builders/sufia/my_search_builder_behavior.rb +0 -4
- data/app/search_builders/sufia/my_works_search_builder.rb +1 -1
- data/app/services/sufia/actor_factory.rb +6 -2
- data/app/services/sufia/admin_set_create_service.rb +22 -0
- data/app/services/sufia/admin_set_service.rb +46 -16
- data/app/services/sufia/collection_thumbnail_path_service.rb +10 -0
- data/app/services/sufia/workflow/abstract_notification.rb +39 -0
- data/app/services/sufia/workflow/changes_required_notification.rb +22 -0
- data/app/services/sufia/workflow/complete_notification.rb +22 -0
- data/app/services/sufia/workflow/pending_review_notification.rb +21 -0
- data/app/services/sufia/workflow/workflow_by_admin_set_strategy.rb +15 -0
- data/app/views/_masthead.html.erb +4 -4
- data/app/views/_toolbar.html.erb +31 -9
- data/app/views/_user_util_links.html.erb +7 -7
- data/app/views/batch_edits/edit.html.erb +24 -12
- data/app/views/catalog/_thumbnail_list_collection.html.erb +1 -1
- data/app/views/collections/_form.html.erb +2 -2
- data/app/views/collections/_media_display.html.erb +1 -1
- data/app/views/curation_concerns/base/_find_work_widget.html.erb +16 -0
- data/app/views/curation_concerns/base/_form.html.erb +6 -0
- data/app/views/curation_concerns/base/_form_child_work_relationships.html.erb +1 -1
- data/app/views/curation_concerns/base/_form_metadata.html.erb +1 -1
- data/app/views/curation_concerns/base/_form_parent_work_relationships.html.erb +43 -0
- data/app/views/curation_concerns/base/_form_progress.html.erb +7 -4
- data/app/views/curation_concerns/base/_form_relationships.html.erb +6 -6
- data/app/views/curation_concerns/base/_form_share.html.erb +1 -2
- data/app/views/curation_concerns/base/_guts4form.html.erb +1 -1
- data/app/views/curation_concerns/base/_social_media.html.erb +1 -1
- data/app/views/curation_concerns/base/_workflow_actions_widget.erb +3 -0
- data/app/views/curation_concerns/base/edit.html.erb +1 -1
- data/app/views/curation_concerns/base/new.html.erb +1 -1
- data/app/views/curation_concerns/base/show.html.erb +4 -1
- data/app/views/curation_concerns/file_sets/_show_actions.html.erb +0 -3
- data/app/views/dashboard/_create_work_action.html.erb +20 -0
- data/app/views/dashboard/_index_partials/_heading_actions.html.erb +9 -22
- data/app/views/layouts/admin.html.erb +8 -68
- data/app/views/layouts/curation_concerns/1_column.html.erb +4 -31
- data/app/views/layouts/homepage.html.erb +15 -45
- data/app/views/layouts/sufia-dashboard.html.erb +1 -36
- data/app/views/layouts/sufia.html.erb +49 -0
- data/app/views/my/_document_list.html.erb +1 -1
- data/app/views/my/_facet_limit.html.erb +2 -2
- data/app/views/my/_index_partials/_default_group.html.erb +10 -10
- data/app/views/my/_index_partials/_list_collections.html.erb +1 -1
- data/app/views/my/_sort_and_per_page.html.erb +8 -8
- data/app/views/records/edit_fields/_rights.html.erb +0 -1
- data/app/views/shared/_footer.html.erb +1 -1
- data/app/views/shared/_select_work_type_modal.html.erb +34 -0
- data/app/views/sufia/admin/_collections.html.erb +31 -0
- data/app/views/sufia/admin/_sidebar.html.erb +35 -23
- data/app/views/sufia/admin/admin_sets/_form.html.erb +38 -15
- data/app/views/sufia/admin/admin_sets/_form_metadata.html.erb +2 -0
- data/app/views/sufia/admin/admin_sets/_form_participant_table.html.erb +21 -0
- data/app/views/sufia/admin/admin_sets/_form_participants.html.erb +68 -0
- data/app/views/sufia/admin/admin_sets/_form_visibility.html.erb +58 -0
- data/app/views/sufia/admin/admin_sets/index.html.erb +29 -33
- data/app/views/sufia/admin/admin_sets/show.html.erb +3 -0
- data/app/views/sufia/admin/show.html.erb +22 -19
- data/app/views/sufia/batch_uploads/_form.html.erb +2 -1
- data/app/views/sufia/homepage/index.html.erb +11 -3
- data/app/views/sufia/uploads/_js_templates.html.erb +15 -11
- data/app/views/users/_user_row.html.erb +10 -0
- data/app/views/users/index.html.erb +1 -12
- data/config/features.rb +2 -0
- data/config/locales/sufia.en.yml +122 -37
- data/config/routes.rb +4 -1
- data/db/migrate/20161021175854_create_permission_template.rb +11 -0
- data/db/migrate/20161021180154_create_permission_template_access.rb +11 -0
- data/db/migrate/20161116222307_add_release_to_permission_templates.rb +6 -0
- data/lib/generators/sufia/install_generator.rb +12 -3
- data/lib/generators/sufia/templates/catalog_controller.rb +3 -13
- data/lib/generators/sufia/templates/workflow.json.erb +65 -0
- data/lib/generators/sufia/upgrade700_generator.rb +1 -1
- data/lib/generators/sufia/work/templates/locale.en.yml.erb +37 -0
- data/lib/generators/sufia/{work_generator.rb → work/work_generator.rb} +25 -5
- data/lib/sufia.rb +0 -1
- data/lib/sufia/engine.rb +7 -0
- data/lib/sufia/move_all_works_to_admin_set.rb +8 -0
- data/lib/sufia/version.rb +1 -1
- data/lib/tasks/migrate.rake +8 -0
- data/spec/actors/sufia/apply_permission_template_actor_spec.rb +64 -0
- data/spec/actors/sufia/create_with_remote_files_actor_spec.rb +8 -0
- data/spec/actors/sufia/default_admin_set_actor_spec.rb +43 -0
- data/spec/actors/sufia/interpret_visibility_actor_spec.rb +266 -0
- data/spec/authorities/qa/authorities/find_works_spec.rb +55 -0
- data/spec/controllers/batch_edits_controller_spec.rb +1 -6
- data/spec/controllers/citations_controller_spec.rb +49 -10
- data/spec/controllers/collections_controller_spec.rb +39 -0
- data/spec/controllers/curation_concerns/generic_works_controller_spec.rb +22 -1
- data/spec/controllers/dashboard_controller_spec.rb +0 -8
- data/spec/controllers/depositors_controller_spec.rb +2 -2
- data/spec/controllers/downloads_controller_spec.rb +2 -2
- data/spec/controllers/my/collections_controller_spec.rb +5 -0
- data/spec/controllers/my/shares_controller_spec.rb +5 -0
- data/spec/controllers/my/works_controller_spec.rb +5 -0
- data/spec/controllers/stats_controller_spec.rb +1 -1
- data/spec/controllers/sufia/admin/admin_sets_controller_spec.rb +33 -5
- data/spec/controllers/sufia/admin/permission_template_accesses_controller_spec.rb +36 -0
- data/spec/controllers/sufia/admin/permission_templates_controller_spec.rb +46 -0
- data/spec/controllers/sufia/admin_controller_spec.rb +6 -0
- data/spec/controllers/sufia/batch_uploads_controller_spec.rb +40 -42
- data/spec/controllers/sufia/homepage_controller_spec.rb +14 -0
- data/spec/controllers/sufia/trophies_controller_spec.rb +17 -4
- data/spec/controllers/users_controller_spec.rb +13 -4
- data/spec/factories/permission_template_accesses.rb +5 -0
- data/spec/factories/permission_templates.rb +5 -0
- data/spec/factories/sipity_entities.rb +7 -0
- data/spec/factories/users.rb +4 -0
- data/spec/factories/workflow_states.rb +6 -0
- data/spec/factories/workflows.rb +5 -0
- data/spec/features/admin_admin_set_spec.rb +6 -4
- data/spec/features/batch_edit_spec.rb +0 -1
- data/spec/features/collection_spec.rb +4 -4
- data/spec/features/edit_work_spec.rb +1 -0
- data/spec/features/work_show_spec.rb +10 -0
- data/spec/forms/sufia/forms/admin_set_form_spec.rb +2 -1
- data/spec/forms/sufia/forms/batch_edit_form_spec.rb +30 -0
- data/spec/forms/sufia/forms/permission_template_form_spec.rb +196 -0
- data/spec/forms/sufia/forms/work_form_spec.rb +35 -1
- data/spec/helpers/batch_edits_helper_spec.rb +4 -4
- data/spec/helpers/blacklight_helper_spec.rb +1 -1
- data/spec/helpers/sufia_helper_spec.rb +39 -7
- data/spec/indexers/sufia/collection_indexer_spec.rb +12 -0
- data/spec/javascripts/autocomplete_spec.js.coffee +46 -6
- data/spec/javascripts/visibility_component_spec.js +491 -0
- data/spec/jobs/batch_create_job_spec.rb +27 -28
- data/spec/lib/sufia/arkivo_spec.rb +14 -0
- data/spec/lib/sufia/controlled_vocabulary/importer/downloader_spec.rb +31 -0
- data/spec/lib/sufia/move_all_works_to_admin_set_spec.rb +13 -0
- data/spec/lib/sufia/zotero_spec.rb +8 -0
- data/spec/models/sufia/ability_spec.rb +54 -14
- data/spec/models/sufia/permission_template_spec.rb +144 -0
- data/spec/models/sufia/user_usage_stats_spec.rb +8 -2
- data/spec/presenters/sufia/homepage_presenter_spec.rb +1 -1
- data/spec/presenters/sufia/select_type_list_presenter_spec.rb +26 -0
- data/spec/presenters/sufia/select_type_presenter_spec.rb +21 -0
- data/spec/search_builder/sufia/admin_set_search_builder_spec.rb +57 -0
- data/spec/search_builder/sufia/catalog_search_builder_spec.rb +40 -14
- data/spec/search_builder/sufia/find_works_search_builder_spec.rb +60 -0
- data/spec/search_builder/sufia/my_shares_search_builder_spec.rb +4 -1
- data/spec/search_builder/sufia/single_admin_set_search_builder_spec.rb +5 -1
- data/spec/services/sufia/actor_factory_spec.rb +13 -5
- data/spec/services/sufia/admin_set_create_service_spec.rb +27 -0
- data/spec/services/sufia/admin_set_service_spec.rb +104 -17
- data/spec/services/sufia/workflow/changes_required_notification_spec.rb +32 -0
- data/spec/services/sufia/workflow/complete_notification_spec.rb +32 -0
- data/spec/services/sufia/workflow/pending_review_notification_spec.rb +31 -0
- data/spec/services/sufia/workflow/workflow_by_admin_set_strategy_spec.rb +22 -0
- data/spec/spec_helper.rb +24 -5
- data/spec/support/proxies.rb +1 -1
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +4 -0
- data/spec/views/_toolbar.html.erb_spec.rb +23 -6
- data/spec/views/batch_edits/edit.html.erb_spec.rb +7 -1
- data/spec/views/collections/_form_for_select_collection.html.erb_spec.rb +1 -3
- data/spec/views/curation_concerns/base/_find_work_widget.html.erb_spec.rb +22 -0
- data/spec/views/curation_concerns/base/_form.html.erb_spec.rb +7 -0
- data/spec/views/curation_concerns/base/_form_child_work_relationships.html.erb_spec.rb +1 -0
- data/spec/views/curation_concerns/base/_form_parent_work_relationships.html.erb_spec.rb +114 -0
- data/spec/views/curation_concerns/base/_form_progress.html.erb_spec.rb +3 -2
- data/spec/views/curation_concerns/base/_social_media.html.erb_spec.rb +1 -1
- data/spec/views/curation_concerns/base/edit.html.erb_spec.rb +1 -1
- data/spec/views/curation_concerns/base/show.html.erb_spec.rb +5 -1
- data/spec/views/curation_concerns/file_sets/_show_actions.html.erb_spec.rb +2 -2
- data/spec/views/dashboard/create_work_action.html.erb_spec.rb +27 -0
- data/spec/views/dashboard/index_spec.rb +7 -2
- data/spec/views/my/_sort_and_per_page.html.erb_spec.rb +33 -0
- data/spec/views/shared/select_work_type_modal.html.erb_spec.rb +32 -0
- data/spec/views/sufia/admin/admin_sets/_form.html.erb_spec.rb +18 -0
- data/spec/views/sufia/admin/admin_sets/_form_participants.html.erb_spec.rb +13 -0
- data/spec/views/sufia/admin/admin_sets/_form_visibility.html.erb_spec.rb +23 -0
- data/spec/views/sufia/batch_uploads/_form.html.erb_spec.rb +2 -12
- data/spec/views/sufia/homepage/index.html.erb_spec.rb +29 -8
- data/sufia.gemspec +5 -6
- data/tasks/sufia-dev.rake +6 -10
- data/template.rb +15 -0
- metadata +140 -28
- data/app/assets/stylesheets/sufia/widgets.css +0 -288
- data/app/helpers/sufia/citations_behaviors/formatters/endnote_formatter.rb +0 -49
- data/app/models/domain_term.rb +0 -4
- data/app/views/citations/file.html.erb +0 -0
- data/app/views/records/_rights_modal.html.erb +0 -1
- data/db/migrate/20160328222160_create_local_authorities.rb +0 -50
@@ -0,0 +1,39 @@
|
|
1
|
+
module Sufia
|
2
|
+
module Workflow
|
3
|
+
class AbstractNotification
|
4
|
+
def self.send_notification(entity:, comment:, user:, recipients:)
|
5
|
+
new(entity, comment, user, recipients).call
|
6
|
+
end
|
7
|
+
|
8
|
+
attr_reader :work_id, :title, :comment, :user, :recipients
|
9
|
+
|
10
|
+
def initialize(entity, comment, user, recipients)
|
11
|
+
@work_id = entity.proxy_for_global_id.sub(/.*\//, '')
|
12
|
+
@title = entity.proxy_for.title.first
|
13
|
+
@comment = comment.respond_to?(:comment) ? comment.comment.to_s : ''
|
14
|
+
@recipients = recipients
|
15
|
+
@user = user
|
16
|
+
end
|
17
|
+
|
18
|
+
def call
|
19
|
+
user.send_message(users_to_notify.uniq, message, subject)
|
20
|
+
end
|
21
|
+
|
22
|
+
protected
|
23
|
+
|
24
|
+
def subject
|
25
|
+
raise NotImplementedError, "Implement #subject in a child class"
|
26
|
+
end
|
27
|
+
|
28
|
+
def message
|
29
|
+
"#{title} (#{work_id}) was advanced in the workflow by #{user.user_key} and is awaiting approval #{comment}"
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def users_to_notify
|
35
|
+
recipients.fetch('to', []) + recipients.fetch('cc', [])
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Sufia
|
2
|
+
module Workflow
|
3
|
+
class ChangesRequiredNotification < AbstractNotification
|
4
|
+
protected
|
5
|
+
|
6
|
+
def subject
|
7
|
+
'Your deposit requires changes'
|
8
|
+
end
|
9
|
+
|
10
|
+
def message
|
11
|
+
"#{title} (#{work_id}) requires additional changes before approval.\n\n '#{comment}'"
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def users_to_notify
|
17
|
+
user_key = ActiveFedora::Base.find(work_id).depositor
|
18
|
+
super << ::User.find_by(email: user_key)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Sufia
|
2
|
+
module Workflow
|
3
|
+
class CompleteNotification < AbstractNotification
|
4
|
+
protected
|
5
|
+
|
6
|
+
def subject
|
7
|
+
'Deposit has been approved'
|
8
|
+
end
|
9
|
+
|
10
|
+
def message
|
11
|
+
"#{title} (#{work_id}) was approved by #{user.user_key}. #{comment}"
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def users_to_notify
|
17
|
+
user_key = ActiveFedora::Base.find(work_id).depositor
|
18
|
+
super << ::User.find_by(email: user_key)
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Sufia
|
2
|
+
module Workflow
|
3
|
+
class PendingReviewNotification < AbstractNotification
|
4
|
+
protected
|
5
|
+
|
6
|
+
def subject
|
7
|
+
'Deposit needs review'
|
8
|
+
end
|
9
|
+
|
10
|
+
def message
|
11
|
+
"#{title} (#{work_id}) was deposited by #{user.user_key} and is awaiting approval #{comment}"
|
12
|
+
end
|
13
|
+
|
14
|
+
private
|
15
|
+
|
16
|
+
def users_to_notify
|
17
|
+
super << user
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Sufia
|
2
|
+
module Workflow
|
3
|
+
class WorkflowByAdminSetStrategy
|
4
|
+
def initialize(_work, attributes)
|
5
|
+
@admin_set_id = attributes[:admin_set_id] if attributes[:admin_set_id].present?
|
6
|
+
end
|
7
|
+
|
8
|
+
# @return [String] The name of the workflow by admin_set to use
|
9
|
+
def workflow_name
|
10
|
+
return 'default' unless @admin_set_id
|
11
|
+
Sufia::PermissionTemplate.find_by!(admin_set_id: @admin_set_id).workflow_name
|
12
|
+
end
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -1,3 +1,4 @@
|
|
1
|
+
<%= render '/shared/select_work_type_modal' if create_work_presenter.many? %>
|
1
2
|
<nav id="masthead" class="navbar navbar-inverse navbar-static-top" role="navigation">
|
2
3
|
<div class="container-fluid">
|
3
4
|
<!-- Brand and toggle get grouped for better mobile display -->
|
@@ -8,14 +9,13 @@
|
|
8
9
|
<span class="icon-bar"></span>
|
9
10
|
<span class="icon-bar"></span>
|
10
11
|
</button>
|
11
|
-
<%= render
|
12
|
+
<%= render '/logo' %>
|
12
13
|
</div>
|
13
14
|
|
14
15
|
<div class="collapse navbar-collapse" id="top-navbar-collapse">
|
15
|
-
<%= render
|
16
|
+
<%= render '/toolbar' %>
|
16
17
|
|
17
|
-
<%= render
|
18
|
+
<%= render '/user_util_links' %>
|
18
19
|
</div>
|
19
20
|
</div>
|
20
21
|
</nav>
|
21
|
-
|
data/app/views/_toolbar.html.erb
CHANGED
@@ -22,18 +22,40 @@
|
|
22
22
|
<% end %>
|
23
23
|
<ul class="dropdown-menu">
|
24
24
|
<li><%= link_to t("sufia.toolbar.works.my"), sufia.dashboard_works_path %></li>
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
25
|
+
<% if create_work_presenter.many? %>
|
26
|
+
<% # launch the type selector modal %>
|
27
|
+
<li>
|
28
|
+
<%= link_to(
|
29
|
+
t("sufia.toolbar.works.new"),
|
30
|
+
'#',
|
31
|
+
data: { behavior: "select-work", target: "#worktypes-to-create", 'create-type' => 'single' },
|
32
|
+
class: "item-option contextual-quick-classify",
|
33
|
+
role: 'menuitem'
|
34
|
+
) %>
|
35
|
+
</li>
|
36
|
+
<li>
|
37
|
+
<%= link_to(
|
38
|
+
t("sufia.toolbar.works.batch"),
|
39
|
+
'#',
|
40
|
+
data: { behavior: "select-work", target: "#worktypes-to-create", 'create-type' => 'batch' },
|
41
|
+
class: "item-option contextual-quick-classify",
|
42
|
+
role: 'menuitem'
|
43
|
+
) %>
|
44
|
+
</li>
|
45
|
+
<% else %>
|
46
|
+
<% # simple link to the first work type %>
|
47
|
+
<li>
|
48
|
+
<%= link_to(
|
49
|
+
t("sufia.toolbar.works.new"),
|
50
|
+
new_polymorphic_path([main_app, create_work_presenter.first_model]),
|
51
|
+
class: "item-option contextual-quick-classify",
|
32
52
|
role: 'menuitem'
|
33
53
|
) %>
|
34
54
|
</li>
|
55
|
+
<li><%= link_to t("sufia.toolbar.works.batch"),
|
56
|
+
sufia.new_batch_upload_path(payload_concern: create_work_presenter.first_model) %>
|
57
|
+
</li>
|
35
58
|
<% end %>
|
36
|
-
<li><%= link_to t("sufia.toolbar.works.batch"), sufia.new_batch_upload_path %></li>
|
37
59
|
</ul>
|
38
60
|
</li>
|
39
61
|
<% end %>
|
@@ -41,7 +63,7 @@
|
|
41
63
|
<% if can?(:create, Collection) %>
|
42
64
|
<li class="dropdown">
|
43
65
|
<%= link_to sufia.dashboard_collections_path, role: 'button', data: { toggle: 'dropdown' }, aria: { haspopup: true, expanded: false } do %>
|
44
|
-
<span class="
|
66
|
+
<span class="<%= Sufia::ModelIcon.css_class_for(Collection) %>"></span> <%= t("sufia.toolbar.collections.menu") %> <span class="caret"></span>
|
45
67
|
<% end %>
|
46
68
|
<ul class="dropdown-menu">
|
47
69
|
<li><%= link_to t("sufia.toolbar.collections.my"), sufia.dashboard_collections_path %></li>
|
@@ -2,29 +2,29 @@
|
|
2
2
|
<% if user_signed_in? %>
|
3
3
|
<li>
|
4
4
|
<%= link_to sufia.notifications_path do %>
|
5
|
-
|
5
|
+
<%= t("sufia.toolbar.notifications") %>
|
6
6
|
<%= render partial: 'users/notify_number' %>
|
7
7
|
<% end %>
|
8
8
|
</li>
|
9
9
|
<li class="dropdown">
|
10
10
|
<%= link_to sufia.profile_path(current_user), role: 'button', data: { toggle: 'dropdown' }, aria: { haspopup: true, expanded: false} do %>
|
11
|
-
<span class="sr-only"
|
11
|
+
<span class="sr-only"><%= t("sufia.toolbar.profile.sr_action") %></span>
|
12
12
|
<span class="hidden-xs"> <%= current_user.name %></span>
|
13
|
-
<span class="sr-only"> profile
|
13
|
+
<span class="sr-only"> <%= t("sufia.toolbar.profile.sr_target") %></span>
|
14
14
|
<span class="fa fa-user"></span>
|
15
15
|
<span class="caret" ></span>
|
16
16
|
<% end %>
|
17
17
|
<ul class="dropdown-menu dropdown-menu-right" role="menu">
|
18
|
-
<li><%= link_to
|
19
|
-
<li><%= link_to
|
18
|
+
<li><%= link_to t("sufia.toolbar.profile.view"), sufia.profile_path(current_user) %></li>
|
19
|
+
<li><%= link_to t("sufia.toolbar.profile.edit"), sufia.edit_profile_path(current_user) %></li>
|
20
20
|
<li class="divider"></li>
|
21
|
-
<li><%= link_to
|
21
|
+
<li><%= link_to t("sufia.toolbar.profile.logout"), main_app.destroy_user_session_path %></li>
|
22
22
|
</ul>
|
23
23
|
</li><!-- /.btn-group -->
|
24
24
|
<% else %>
|
25
25
|
<li>
|
26
26
|
<%= link_to main_app.new_user_session_path do %>
|
27
|
-
<span class="glyphicon glyphicon-log-in" aria-hidden="true"></span>
|
27
|
+
<span class="glyphicon glyphicon-log-in" aria-hidden="true"></span > <%= t("sufia.toolbar.profile.login") %>
|
28
28
|
<% end %>
|
29
29
|
</li>
|
30
30
|
<% end %>
|
@@ -34,8 +34,11 @@
|
|
34
34
|
<%= hidden_field_tag('key', term.to_s) %>
|
35
35
|
<%# TODO we don't need to show required %>
|
36
36
|
<%= render_edit_field_partial(term, f: f) %>
|
37
|
+
<% @form.batch_document_ids.each do |batch_id| %>
|
38
|
+
<%= hidden_field_tag "batch_document_ids[]", batch_id %>
|
39
|
+
<% end %>
|
37
40
|
<div>
|
38
|
-
<%= f.submit "Save changes", class: 'btn btn-primary field-save
|
41
|
+
<%= f.submit "Save changes", class: 'btn btn-primary field-save', id: "#{term.to_s}_save" %>
|
39
42
|
<a class="btn btn-default" data-toggle="collapse" data-parent="#row_<%= term.to_s %>" href="#collapse_<%= term.to_s %>">Cancel </a>
|
40
43
|
<div class="status fleft"></div>
|
41
44
|
</div>
|
@@ -45,18 +48,27 @@
|
|
45
48
|
<% end %>
|
46
49
|
</div><!-- #descriptions_display -->
|
47
50
|
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
51
|
+
<div id="permissions_display" class="tab-pane">
|
52
|
+
<%= simple_form_for @form.model,
|
53
|
+
url: batch_edits_path,
|
54
|
+
method: :put,
|
55
|
+
remote: true,
|
56
|
+
html: { id: "form_permissions", class: "ajax-form"},
|
57
|
+
data: { 'param-key' => @form.model_name.param_key } do |f| %>
|
58
|
+
<%= hidden_field_tag('update_type', 'update') %>
|
59
|
+
<%= hidden_field_tag('key', 'permissions') %>
|
60
|
+
<%= render "curation_concerns/base/form_permission", f: f %>
|
61
|
+
<%= render "curation_concerns/base/form_share", f: f %>
|
62
|
+
<% @form.batch_document_ids.each do |batch_id| %>
|
63
|
+
<%= hidden_field_tag "batch_document_ids[]", batch_id %>
|
64
|
+
<% end %>
|
65
|
+
<div class="row">
|
66
|
+
<%= f.submit "Save changes", class: 'btn btn-primary', id: 'permissions_save' %>
|
55
67
|
<div id="status_permissions" class="status fleft"></div>
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
68
|
+
</div>
|
69
|
+
<% end %>
|
70
|
+
</div>
|
71
|
+
</div> <!-- .tab-content -->
|
60
72
|
|
61
73
|
<!-- Ajax call to clear the batch before page uload. -->
|
62
74
|
<%= button_to "Clear Batch", { controller: :batch_edits, action: :clear }, form_class: 'hidden', remote: true, id: 'clear_batch' %>
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<%= simple_form_for @form, html: { class: 'editor' } do |f| %>
|
2
2
|
<div id="descriptions_display">
|
3
|
-
<h2 class="non lower"><%= t('sufia.collection.
|
3
|
+
<h2 class="non lower"><%= t('sufia.collection.form.description') %></h2>
|
4
4
|
<div id="base-terms">
|
5
5
|
<% f.object.primary_terms.each do |term| %>
|
6
6
|
<%= render_edit_field_partial(term, f: f) %>
|
7
7
|
<% end %>
|
8
8
|
</div>
|
9
|
-
<%= link_to t('sufia.collection.
|
9
|
+
<%= link_to t('sufia.collection.form.additional_fields'),
|
10
10
|
'#extended-terms',
|
11
11
|
class: 'btn btn-default additional-fields',
|
12
12
|
data: { toggle: 'collapse' },
|
@@ -1 +1 @@
|
|
1
|
-
<span class="
|
1
|
+
<span class="<%= Sufia::ModelIcon.css_class_for(Collection) %> collection-icon-search"></span>
|
@@ -0,0 +1,16 @@
|
|
1
|
+
<%= f.input id_type,
|
2
|
+
label: false,
|
3
|
+
type: :text,
|
4
|
+
input_html:{
|
5
|
+
id: id_name,
|
6
|
+
name: f.object.model_name.param_key + '[' + id_type + '][]',
|
7
|
+
:'data-autocomplete-url' => Rails.application.routes.url_helpers.qa_path + '/search/find_works',
|
8
|
+
:'data-autocomplete' => 'work',
|
9
|
+
:'data-user' => current_user.email,
|
10
|
+
:'data-id' => id,
|
11
|
+
autocomplete: 'off',
|
12
|
+
:'aria-labelledby' => id_name + '_label',
|
13
|
+
:class => 'new-form-control string multi_value optional related_works_ids form-control multi-text-field ui-autocomplete-input',
|
14
|
+
value: ''
|
15
|
+
}
|
16
|
+
%>
|
@@ -1,4 +1,10 @@
|
|
1
1
|
<%= simple_form_for [main_app, @form], html: { multipart: true } do |f| %>
|
2
|
+
<% if f.object.errors.include?(:base) %>
|
3
|
+
<div class="alert alert-danger alert-dismissable" role="alert">
|
4
|
+
<button type="button" class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span></button>
|
5
|
+
<%= f.object.errors.full_messages_for(:base).send(SimpleForm.error_method) %>
|
6
|
+
</div>
|
7
|
+
<% end %>
|
2
8
|
<% unless f.object.persisted? %>
|
3
9
|
<% content_for :metadata_tab do %>
|
4
10
|
<p class="switch-upload-type">To create a separate work for each of the files, go to <%= link_to "Batch upload", sufia.new_batch_upload_path %></p>
|
@@ -49,7 +49,7 @@ HTML Properties:
|
|
49
49
|
<tr class="new-row">
|
50
50
|
<td>
|
51
51
|
<a href="" class="title hidden"></a>
|
52
|
-
|
52
|
+
<%= render "find_work_widget", f: f, id_name: 'work_child_members_ids', id_type: 'ordered_member_ids', user_email: current_user.email, id: f.object.model.id %>
|
53
53
|
<div class="message has-warning hidden"></div>
|
54
54
|
</td>
|
55
55
|
<td>
|
@@ -7,7 +7,7 @@
|
|
7
7
|
<%= render_edit_field_partial(term, f: f) %>
|
8
8
|
<% end %>
|
9
9
|
</div>
|
10
|
-
<%= link_to t('sufia.works.
|
10
|
+
<%= link_to t('sufia.works.form.additional_fields'),
|
11
11
|
'#extended-terms',
|
12
12
|
class: 'btn btn-default additional-fields',
|
13
13
|
data: { toggle: 'collapse' },
|
@@ -0,0 +1,43 @@
|
|
1
|
+
<div class="form-group multi_value optional managed">
|
2
|
+
|
3
|
+
<table class="table table-striped related-files relationships-ajax-enabled"
|
4
|
+
data-query-url="<%= polymorphic_path([main_app, :curation_concerns, curation_concern.model_name.singular], id: '$id') %>">
|
5
|
+
<thead>
|
6
|
+
<tr>
|
7
|
+
<th>Parent Work</th>
|
8
|
+
<th>Actions</th>
|
9
|
+
</tr>
|
10
|
+
</thead>
|
11
|
+
<tbody>
|
12
|
+
|
13
|
+
<% f.object.in_work_members.each do |member| %>
|
14
|
+
<tr>
|
15
|
+
<td>
|
16
|
+
<%= link_to member.title.first, [main_app, member] %>
|
17
|
+
<input class="string multi_value optional form-control related_works_ids form-control multi-text-field hidden" value="<%= member.id %>" id="work_in_works_ids" aria-labelledby="work_in_works_ids_label" name="<%= f.object.model_name.param_key %>[in_works_ids][]" type="text">
|
18
|
+
</td>
|
19
|
+
<td>
|
20
|
+
<div class="child-actions">
|
21
|
+
<%= link_to "Edit", [main_app, :edit, member], target: "_blank", class: 'btn btn-default' %>
|
22
|
+
<a class="btn btn-danger btn-remove-row">Remove</a>
|
23
|
+
</div>
|
24
|
+
</td>
|
25
|
+
</tr>
|
26
|
+
<% end %>
|
27
|
+
<tr class="new-row">
|
28
|
+
<td>
|
29
|
+
<a href="" class="title hidden"></a>
|
30
|
+
<%= render "find_work_widget", f: f, id_name: 'work_parent_members_ids', id_type: 'in_works_ids', user_email: current_user.email, id: f.object.model.id %>
|
31
|
+
<div class="message has-warning hidden"></div>
|
32
|
+
</td>
|
33
|
+
<td>
|
34
|
+
<div class="child-actions">
|
35
|
+
<a href="" class="edit hidden btn btn-default" target="_blank">Edit</a>
|
36
|
+
<a class="btn btn-danger btn-remove-row hidden">Remove</a>
|
37
|
+
<a class="btn btn-primary btn-add-row">Add</a>
|
38
|
+
</div>
|
39
|
+
</td>
|
40
|
+
</tr>
|
41
|
+
</tbody>
|
42
|
+
</table>
|
43
|
+
</div>
|
@@ -5,11 +5,11 @@
|
|
5
5
|
<div class="list-group">
|
6
6
|
<div class="list-group-item">
|
7
7
|
<fieldset>
|
8
|
-
<legend class="legend-save-work"
|
8
|
+
<legend class="legend-save-work"><%= t('.requirements') %></legend>
|
9
9
|
<ul class="requirements">
|
10
|
-
<li class="incomplete" id="required-metadata"
|
10
|
+
<li class="incomplete" id="required-metadata"><%= t('.required_descriptions') %></li>
|
11
11
|
<% if Sufia.config.work_requires_files %>
|
12
|
-
<li class="incomplete" id="required-files"
|
12
|
+
<li class="incomplete" id="required-files"><%= t('.required_files') %></li>
|
13
13
|
<% end %>
|
14
14
|
</ul>
|
15
15
|
</fieldset>
|
@@ -43,6 +43,9 @@
|
|
43
43
|
<%= link_to t(:'helpers.action.cancel'),
|
44
44
|
sufia.dashboard_index_path,
|
45
45
|
class: 'btn btn-default' %>
|
46
|
-
|
46
|
+
<%# TODO: If we start using ActionCable, we could listen for object updates and
|
47
|
+
alert the user that the object has changed by someone else %>
|
48
|
+
<%= f.input CurationConcerns::OptimisticLockValidator.version_field, as: :hidden unless f.object.new_record? %>
|
49
|
+
<%= f.submit class: 'btn btn-primary', onclick: "confirmation_needed = false;", id: "with_files_submit", name: "save_with_files" %>
|
47
50
|
</div>
|
48
51
|
</aside>
|