sufia 5.0.0 → 6.0.0.beta1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -8
- data/Gemfile +3 -12
- data/History.md +0 -36
- data/LICENSE.md +14 -0
- data/README.md +4 -8
- data/SUFIA_VERSION +1 -1
- data/app/assets/javascripts/sufia.js +1 -17
- data/app/assets/javascripts/sufia/batch_edit.js +43 -28
- data/app/assets/javascripts/sufia/edit_metadata.js +9 -14
- data/app/assets/javascripts/sufia/multiForm.js +67 -0
- data/app/assets/javascripts/sufia/permissions.js +92 -35
- data/app/assets/stylesheets/sufia.css.scss +1 -6
- data/app/assets/stylesheets/sufia/_batch-edit.scss +0 -8
- data/app/assets/stylesheets/sufia/_dashboard.scss +1 -15
- data/app/assets/stylesheets/sufia/_file-listing.scss +1 -1
- data/app/assets/stylesheets/sufia/_settings.scss +0 -1
- data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +3 -10
- data/app/controllers/concerns/sufia/breadcrumbs.rb +3 -8
- data/app/controllers/concerns/sufia/catalog.rb +1 -1
- data/app/controllers/concerns/sufia/controller.rb +3 -1
- data/app/controllers/concerns/sufia/downloads_controller_behavior.rb +1 -1
- data/app/controllers/concerns/sufia/files_controller/browse_everything.rb +1 -1
- data/app/controllers/concerns/sufia/files_controller_behavior.rb +16 -4
- data/app/controllers/concerns/sufia/homepage_controller.rb +1 -1
- data/app/controllers/concerns/sufia/my_controller_behavior.rb +2 -2
- data/app/controllers/concerns/sufia/transfers_controller_behavior.rb +3 -4
- data/app/controllers/concerns/sufia/users_controller_behavior.rb +2 -7
- data/app/controllers/my/collections_controller.rb +3 -4
- data/app/controllers/my/highlights_controller.rb +2 -2
- data/app/controllers/my/shares_controller.rb +3 -3
- data/app/controllers/single_use_links_controller.rb +5 -9
- data/app/controllers/single_use_links_viewer_controller.rb +4 -4
- data/app/helpers/generic_file_helper.rb +9 -0
- data/app/helpers/sufia/records_helper_behavior.rb +16 -0
- data/app/helpers/sufia/sufia_helper_behavior.rb +0 -11
- data/app/jobs/content_depositor_change_event_job.rb +1 -1
- data/app/jobs/ingest_local_file_job.rb +2 -1
- data/app/models/concerns/sufia/solr_document_behavior.rb +10 -10
- data/app/models/featured_work_list.rb +7 -9
- data/app/presenters/sufia/version_list_presenter.rb +15 -0
- data/app/presenters/sufia/version_presenter.rb +30 -0
- data/app/views/batch/_metadata.html.erb +51 -29
- data/app/views/batch/_more_metadata.html.erb +1 -1
- data/app/views/batch/edit.html.erb +10 -8
- data/app/views/batch_edits/edit.html.erb +13 -9
- data/app/views/collections/_edit_descriptions.html.erb +1 -1
- data/app/views/collections/_form.html.erb +4 -4
- data/app/views/collections/_form_for_select_collection.html.erb +1 -1
- data/app/views/collections/_show_document_list_menu.html.erb +7 -5
- data/app/views/collections/_show_document_list_row.html.erb +2 -2
- data/app/views/collections/edit.html.erb +0 -1
- data/app/views/collections/edit_fields/_description.html.erb +4 -0
- data/app/views/collections/edit_fields/_title.html.erb +3 -0
- data/app/views/collections/show.html.erb +0 -1
- data/app/views/dashboard/_index_partials/_stats.html.erb +3 -3
- data/app/views/generic_files/_descriptions.html.erb +9 -9
- data/app/views/generic_files/_field_form.html.erb +11 -25
- data/app/views/generic_files/_permission.html.erb +6 -4
- data/app/views/generic_files/_permission_form.html.erb +15 -17
- data/app/views/generic_files/_show_details.html.erb +1 -11
- data/app/views/generic_files/_versioning.html.erb +5 -5
- data/app/views/generic_files/edit.html.erb +5 -4
- data/app/views/generic_files/show.html.erb +6 -6
- data/app/views/homepage/_featured_fields.html.erb +2 -2
- data/app/views/homepage/_recent_document.html.erb +1 -1
- data/app/views/layouts/_head_tag_content.html.erb +0 -2
- data/app/views/layouts/error.html.erb +0 -1
- data/app/views/my/_index_partials/_default_group.html.erb +1 -1
- data/app/views/my/_index_partials/_list_files.html.erb +1 -1
- data/app/views/my/index.html.erb +2 -2
- data/app/views/records/_edit_field.html.erb +17 -19
- data/app/views/records/edit_fields/_default.html.erb +10 -12
- data/app/views/records/edit_fields/_description.html.erb +10 -3
- data/app/views/records/edit_fields/_resource_type.html.erb +4 -5
- data/app/views/records/edit_fields/_rights.html.erb +9 -2
- data/app/views/records/edit_fields/_suffix.html.erb +10 -0
- data/app/views/records/edit_fields/_type.html.erb +8 -2
- data/app/views/records/show_fields/_based_near.html.erb +1 -1
- data/app/views/records/show_fields/_creator.html.erb +1 -1
- data/app/views/records/show_fields/_language.html.erb +1 -1
- data/app/views/records/show_fields/_publisher.html.erb +1 -1
- data/app/views/records/show_fields/_resource_type.html.erb +1 -1
- data/app/views/records/show_fields/_subject.html.erb +1 -1
- data/app/views/records/show_fields/_tag.html.erb +1 -1
- data/app/views/single_use_links/new_download.html.erb +2 -2
- data/app/views/users/_profile.html.erb +2 -1
- data/app/views/users/_social_media_info.html.erb +20 -0
- data/app/views/users/_user_info.html.erb +3 -20
- data/app/views/users/edit.html.erb +2 -11
- data/app/views/users/show.html.erb +1 -1
- data/bin/audit_repository +1 -1
- data/config/initializers/sufia_events.rb +4 -4
- data/config/locales/sufia.en.yml +0 -5
- data/config/routes.rb +1 -1
- data/lib/generators/sufia/install_generator.rb +0 -4
- data/lib/generators/sufia/templates/catalog_controller.rb +59 -59
- data/lib/sufia.rb +1 -4
- data/lib/sufia/version.rb +1 -1
- data/spec/actors/generic_file/actor_spec.rb +67 -8
- data/spec/controllers/batch_controller_spec.rb +72 -86
- data/spec/controllers/batch_edits_controller_spec.rb +17 -19
- data/spec/controllers/catalog_controller_spec.rb +16 -24
- data/spec/controllers/collections_controller_spec.rb +47 -74
- data/spec/controllers/downloads_controller_spec.rb +40 -35
- data/spec/controllers/generic_files_controller_spec.rb +363 -428
- data/spec/controllers/homepage_controller_spec.rb +12 -9
- data/spec/controllers/mailbox_controller_spec.rb +1 -4
- data/spec/controllers/my/files_controller_spec.rb +0 -10
- data/spec/controllers/single_use_links_controller_spec.rb +28 -35
- data/spec/controllers/single_use_links_viewer_controller_spec.rb +27 -41
- data/spec/controllers/transfers_controller_spec.rb +6 -6
- data/spec/controllers/users_controller_spec.rb +121 -124
- data/spec/factories/generic_files.rb +9 -17
- data/spec/features/browse_dashboard_files_spec.rb +8 -10
- data/spec/features/browse_files_spec.rb +12 -25
- data/spec/features/catalog_search_spec.rb +49 -49
- data/spec/features/collection_spec.rb +18 -24
- data/spec/features/contact_form_spec.rb +26 -20
- data/spec/features/ingest_upload_files_spec.rb +8 -6
- data/spec/features/ownership_transfer_spec.rb +2 -6
- data/spec/features/proxy_spec.rb +1 -1
- data/spec/features/search_spec.rb +2 -3
- data/spec/features/single_use_links_spec.rb +1 -1
- data/spec/features/users_spec.rb +1 -1
- data/spec/helpers/records_helper_spec.rb +24 -10
- data/spec/jobs/active_fedora_pid_based_job_spec.rb +1 -5
- data/spec/jobs/audit_job_spec.rb +66 -21
- data/spec/jobs/batch_update_job_spec.rb +49 -36
- data/spec/jobs/content_depositor_change_event_job_spec.rb +2 -4
- data/spec/jobs/create_derivatives_job_spec.rb +18 -19
- data/spec/jobs/event_jobs_spec.rb +17 -21
- data/spec/jobs/import_url_job_spec.rb +1 -6
- data/spec/jobs/ingest_local_file_job_spec.rb +0 -4
- data/spec/lib/sufia/breadcrumbs_spec.rb +8 -46
- data/spec/lib/sufia/id_service_spec.rb +8 -3
- data/spec/lib/sufia/user_stat_importer_spec.rb +18 -25
- data/spec/lib/sufia/writable_permissions_spec.rb +0 -4
- data/spec/models/ability_spec.rb +25 -18
- data/spec/models/batch_spec.rb +16 -45
- data/spec/models/characterization_spec.rb +1 -1
- data/spec/models/checksum_audit_log_spec.rb +51 -29
- data/spec/models/collection_spec.rb +0 -5
- data/spec/models/featured_work_list_spec.rb +2 -4
- data/spec/models/file_content_datastream_spec.rb +27 -60
- data/spec/models/file_usage_spec.rb +16 -21
- data/spec/models/fits_datastream_spec.rb +47 -2
- data/spec/models/generic_file/web_form_spec.rb +1 -1
- data/spec/models/generic_file_spec.rb +238 -735
- data/spec/models/local_authority_spec.rb +8 -13
- data/spec/models/proxy_deposit_request_spec.rb +3 -7
- data/spec/models/single_use_link_spec.rb +12 -16
- data/spec/models/solr_document_spec.rb +1 -1
- data/spec/models/trophy_spec.rb +1 -3
- data/spec/models/user_spec.rb +47 -75
- data/spec/presenters/sufia/version_list_presenter_spec.rb +22 -0
- data/spec/presenters/sufia/version_presenter_spec.rb +51 -0
- data/spec/services/generic_file_audit_service_spec.rb +85 -0
- data/spec/services/repository_audit_service_spec.rb +18 -0
- data/spec/spec_helper.rb +26 -7
- data/spec/support/fixture_helpers.rb +2 -4
- data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -4
- data/spec/views/batch/edit.html.erb_spec.rb +17 -7
- data/spec/views/catalog/index.html.erb_spec.rb +8 -6
- data/spec/views/collections/_form.html.erb_spec.rb +4 -2
- data/spec/views/collections/_show_document_list.erb_spec.rb +31 -0
- data/spec/views/dashboard/index_spec.rb +2 -2
- data/spec/views/generic_file/edit.html.erb_spec.rb +20 -6
- data/spec/views/generic_file/show.html.erb_spec.rb +3 -3
- data/spec/views/users/show.html.erb_spec.rb +1 -1
- data/sufia-models/app/actors/sufia/generic_file/actor.rb +8 -10
- data/sufia-models/app/jobs/active_fedora_pid_based_job.rb +2 -3
- data/sufia-models/app/jobs/audit_job.rb +46 -32
- data/sufia-models/app/jobs/batch_update_job.rb +9 -8
- data/sufia-models/app/jobs/import_url_job.rb +2 -2
- data/sufia-models/app/models/batch.rb +11 -12
- data/sufia-models/app/models/checksum_audit_log.rb +12 -10
- data/sufia-models/app/models/concerns/sufia/ability.rb +4 -6
- data/sufia-models/app/models/concerns/sufia/collection.rb +4 -5
- data/sufia-models/app/models/concerns/sufia/generic_file.rb +3 -86
- data/sufia-models/app/models/concerns/sufia/generic_file/batches.rb +29 -0
- data/sufia-models/app/models/concerns/sufia/generic_file/characterization.rb +3 -3
- data/sufia-models/app/models/concerns/sufia/generic_file/content.rb +13 -0
- data/sufia-models/app/models/concerns/sufia/generic_file/derivatives.rb +5 -5
- data/sufia-models/app/models/concerns/sufia/generic_file/export.rb +4 -0
- data/sufia-models/app/models/concerns/sufia/generic_file/full_text_indexing.rb +2 -2
- data/sufia-models/app/models/concerns/sufia/generic_file/indexing.rb +23 -0
- data/sufia-models/app/models/concerns/sufia/generic_file/metadata.rb +80 -11
- data/sufia-models/app/models/concerns/sufia/generic_file/proxy_deposit.rb +12 -3
- data/sufia-models/app/models/concerns/sufia/generic_file/versions.rb +4 -4
- data/sufia-models/app/models/concerns/sufia/generic_file/web_form.rb +14 -6
- data/sufia-models/app/models/concerns/sufia/model_methods.rb +11 -9
- data/sufia-models/app/models/concerns/sufia/user.rb +11 -33
- data/sufia-models/app/models/datastreams/file_content_datastream.rb +1 -1
- data/sufia-models/app/models/datastreams/fits_datastream.rb +1 -1
- data/sufia-models/app/models/file_usage.rb +3 -3
- data/sufia-models/app/models/local_authority.rb +2 -2
- data/sufia-models/app/models/proxy_deposit_request.rb +1 -1
- data/sufia-models/app/services/sufia/generic_file_audit_service.rb +83 -0
- data/sufia-models/app/services/sufia/id_service.rb +5 -5
- data/sufia-models/app/services/sufia/noid.rb +10 -7
- data/sufia-models/app/services/sufia/repository_audit_service.rb +9 -0
- data/sufia-models/lib/generators/sufia/models/cached_stats_generator.rb +47 -3
- data/sufia-models/lib/generators/sufia/models/install_generator.rb +31 -11
- data/sufia-models/lib/generators/sufia/models/proxies_generator.rb +31 -2
- data/sufia-models/lib/generators/sufia/models/templates/config/sufia.rb +10 -0
- data/sufia-models/lib/generators/sufia/models/upgrade400_generator.rb +33 -2
- data/sufia-models/lib/sufia/models/engine.rb +13 -4
- data/sufia-models/lib/sufia/models/file_content/versions.rb +9 -11
- data/sufia-models/lib/sufia/models/stats/user_stat_importer.rb +5 -9
- data/sufia-models/lib/sufia/models/version.rb +1 -1
- data/sufia-models/lib/sufia/permissions/writable.rb +34 -16
- data/sufia-models/sufia-models.gemspec +4 -2
- data/sufia.gemspec +4 -5
- data/tasks/jetty.rake +0 -26
- data/tasks/sufia-dev.rake +14 -2
- metadata +49 -64
- data/LICENSE +0 -15
- data/app/assets/images/orcid.png +0 -0
- data/app/assets/javascripts/sufia/manage_repeating_fields.js +0 -74
- data/app/assets/stylesheets/sufia/_multi_value_fields.css.scss +0 -67
- data/app/inputs/multi_value_input.rb +0 -84
- data/app/views/records/_rights_modal.html.erb +0 -1
- data/config/initializers/simple_form.rb +0 -167
- data/config/initializers/simple_form_bootstrap.rb +0 -137
- data/config/locales/simple_form.en.yml +0 -31
- data/fedora_conf/conf/development/fedora.fcfg +0 -946
- data/fedora_conf/conf/test/fedora.fcfg +0 -946
- data/spec/models/generic_file/reload_on_save_spec.rb +0 -25
- data/spec/models/generic_file_rdf_datastream_spec.rb +0 -12
- data/spec/models/properties_datastream_spec.rb +0 -41
- data/spec/views/generic_file/_permission_form.html.erb_spec.rb +0 -19
- data/sufia-models/app/models/concerns/sufia/generic_file/audit.rb +0 -116
- data/sufia-models/app/models/concerns/sufia/generic_file/reload_on_save.rb +0 -18
- data/sufia-models/app/models/concerns/sufia/properties_datastream_behavior.rb +0 -32
- data/sufia-models/app/models/datastreams/batch_rdf_datastream.rb +0 -6
- data/sufia-models/app/models/datastreams/generic_file_rdf_datastream.rb +0 -69
- data/sufia-models/app/models/datastreams/paranoid_rights_datastream.rb +0 -22
- data/sufia-models/app/models/datastreams/properties_datastream.rb +0 -4
- data/sufia-models/app/models/sufia/orcid_validator.rb +0 -8
- data/sufia-models/lib/generators/sufia/models/abstract_migration_generator.rb +0 -30
- data/sufia-models/lib/generators/sufia/models/orcid_field_generator.rb +0 -19
- data/sufia-models/lib/generators/sufia/models/templates/migrations/add_orcid_to_users.rb +0 -5
- data/sufia-models/lib/generators/sufia/models/user_stats_generator.rb +0 -31
@@ -16,7 +16,7 @@
|
|
16
16
|
// Use import here instead of require so we can use the Sass variables defined in Bootstrap and Blacklight
|
17
17
|
// TODO: Probably should use import throughout and move all of Sufia's stylesheets into a single named directory.
|
18
18
|
@import 'sufia/settings','sufia/header','sufia/styles','sufia/file-listing','sufia/collections','sufia/batch-edit',
|
19
|
-
'sufia/dashboard','sufia/home-page','sufia/featured','sufia/tagcloud','sufia/usage-stats','sufia/catalog','sufia/buttons','sufia/proxy-rights'
|
19
|
+
'sufia/dashboard','sufia/home-page','sufia/featured','sufia/tagcloud','sufia/usage-stats','sufia/catalog','sufia/buttons','sufia/proxy-rights';
|
20
20
|
|
21
21
|
#browse-everything {
|
22
22
|
top:10%;
|
@@ -35,11 +35,6 @@
|
|
35
35
|
padding-top: 10px;
|
36
36
|
}
|
37
37
|
|
38
|
-
.profile img.orcid {
|
39
|
-
float: left;
|
40
|
-
margin-right: 2px;
|
41
|
-
}
|
42
|
-
|
43
38
|
/* This class is to workaround an issue in which Bootstrap requires a div to display a tooltip
|
44
39
|
* on a disabled button. Using a span instead of a div would be ideal but unfortunately it does
|
45
40
|
* not render the tooltip correctly in all browsers (e.g. in Chrome the tooltip is detected in
|
@@ -18,16 +18,6 @@
|
|
18
18
|
background-color: $badge-background-color;
|
19
19
|
color: $badge-font-color;
|
20
20
|
}
|
21
|
-
.badge-optional {
|
22
|
-
background-color: $badge-optional-background-color;
|
23
|
-
border-radius: 2px;
|
24
|
-
color: $badge-font-color;
|
25
|
-
padding: 0 .25em;
|
26
|
-
}
|
27
|
-
.views-downloads-dashboard {
|
28
|
-
list-style-type: none;
|
29
|
-
padding-left: 0;
|
30
|
-
}
|
31
21
|
.panel-default > .panel-heading {
|
32
22
|
background-color: $panel-background-color;
|
33
23
|
}
|
@@ -92,10 +82,6 @@ div.heading-tile .glyphicon {
|
|
92
82
|
padding: 1.5em 0 1.5em 1em;
|
93
83
|
}
|
94
84
|
|
95
|
-
#footer {
|
96
|
-
margin-top: 0;
|
97
|
-
}
|
98
|
-
|
99
85
|
.transfer_link {
|
100
86
|
margin-top: 8px;
|
101
87
|
}
|
@@ -119,4 +105,4 @@ div.heading-tile .glyphicon {
|
|
119
105
|
#activity .panel-body{
|
120
106
|
overflow: scroll;
|
121
107
|
max-height: 20em;
|
122
|
-
}
|
108
|
+
}
|
@@ -23,7 +23,6 @@ $teal: #2CAEB7;
|
|
23
23
|
$vermilion: #F30;
|
24
24
|
|
25
25
|
$badge-background-color: $highlight-yellow;
|
26
|
-
$badge-optional-background-color: $gray-medium;
|
27
26
|
$badge-font-color: $classic-white;
|
28
27
|
$content-wrapper-background-color: $cream-light;
|
29
28
|
$dashboard-background-color: $classic-white;
|
@@ -14,9 +14,6 @@ module Sufia
|
|
14
14
|
@generic_file.depositor = current_user.user_key
|
15
15
|
@terms = @generic_file.terms_for_editing - [:title, :format, :resource_type]
|
16
16
|
|
17
|
-
# do we want to show the original values for anything...
|
18
|
-
@show_file = ::GenericFile.new
|
19
|
-
@show_file.depositor = current_user.user_key
|
20
17
|
h = {}
|
21
18
|
@names = []
|
22
19
|
permissions = []
|
@@ -32,13 +29,9 @@ module Sufia
|
|
32
29
|
permissions = (permissions + gf.permissions).uniq
|
33
30
|
end
|
34
31
|
|
35
|
-
initialize_fields(h, @
|
32
|
+
initialize_fields(h, @generic_file)
|
36
33
|
|
37
|
-
|
38
|
-
# todo sort the access level some how...
|
39
|
-
perm_param ={'user'=>{},'group'=>{"public"=>"read"}}
|
40
|
-
permissions.each{ |perm| perm_param[perm[:type]][perm[:name]] = perm[:access]}
|
41
|
-
@show_file.permissions = HashWithIndifferentAccess.new(perm_param)
|
34
|
+
@generic_file.permissions_attributes = [{type: 'group', name: 'public', access: 'read'}]
|
42
35
|
end
|
43
36
|
|
44
37
|
def after_update
|
@@ -47,7 +40,7 @@ module Sufia
|
|
47
40
|
|
48
41
|
def after_destroy_collection
|
49
42
|
redirect_to_return_controller unless request.xhr?
|
50
|
-
end
|
43
|
+
end
|
51
44
|
|
52
45
|
def update_document(obj)
|
53
46
|
super
|
@@ -20,10 +20,11 @@
|
|
20
20
|
case request.referer
|
21
21
|
when /catalog/
|
22
22
|
add_breadcrumb I18n.t('sufia.bread_crumb.search_results'), request.referer
|
23
|
+
when /dashboard/
|
24
|
+
default_trail
|
25
|
+
add_breadcrumb_for_controller
|
23
26
|
else
|
24
27
|
default_trail
|
25
|
-
add_breadcrumb_for_controller
|
26
|
-
add_breadcrumb_for_action
|
27
28
|
end
|
28
29
|
end
|
29
30
|
|
@@ -36,11 +37,5 @@
|
|
36
37
|
end
|
37
38
|
end
|
38
39
|
|
39
|
-
def add_breadcrumb_for_action
|
40
|
-
if /edit|stats/ =~ action_name && controller_name == "generic_files"
|
41
|
-
add_breadcrumb I18n.t("sufia.generic_file.browse_view"), sufia.generic_file_path(Sufia::Noid.noidify params["id"])
|
42
|
-
end
|
43
|
-
end
|
44
|
-
|
45
40
|
end
|
46
41
|
end
|
@@ -12,7 +12,7 @@ module Sufia
|
|
12
12
|
# @param user_parameters the current user-subitted parameters
|
13
13
|
def only_generic_files_and_collections(solr_parameters, user_parameters)
|
14
14
|
solr_parameters[:fq] ||= []
|
15
|
-
solr_parameters[:fq] << "#{Solrizer.solr_name("has_model", :symbol)}:(\"
|
15
|
+
solr_parameters[:fq] << "#{Solrizer.solr_name("has_model", :symbol)}:(\"GenericFile\" \"Collection\")"
|
16
16
|
end
|
17
17
|
end
|
18
18
|
end
|
@@ -13,7 +13,9 @@ module Sufia::Controller
|
|
13
13
|
end
|
14
14
|
|
15
15
|
def normalize_identifier
|
16
|
-
|
16
|
+
# nop
|
17
|
+
# If you want to override you can do something like this:
|
18
|
+
# params[:id] = Sufia::Noid.namespaceize(params[:id])
|
17
19
|
end
|
18
20
|
|
19
21
|
def render_404(exception)
|
@@ -45,13 +45,14 @@ module Sufia
|
|
45
45
|
|
46
46
|
# routed to /files/new
|
47
47
|
def new
|
48
|
-
@batch_noid =
|
48
|
+
@batch_noid = Batch.create.noid
|
49
49
|
end
|
50
50
|
|
51
51
|
# routed to /files/:id/edit
|
52
52
|
def edit
|
53
53
|
@generic_file.initialize_fields
|
54
54
|
@groups = current_user.groups
|
55
|
+
@version_list = Sufia::VersionListPresenter.new(@generic_file.content.versions.all)
|
55
56
|
end
|
56
57
|
|
57
58
|
# routed to /files/:id/stats
|
@@ -102,6 +103,7 @@ module Sufia
|
|
102
103
|
respond_to do |format|
|
103
104
|
format.html {
|
104
105
|
@events = @generic_file.events(100)
|
106
|
+
@audit_status = audit_service.human_readable_audit_status
|
105
107
|
}
|
106
108
|
format.endnote { render text: @generic_file.export_as_endnote }
|
107
109
|
end
|
@@ -109,7 +111,7 @@ module Sufia
|
|
109
111
|
|
110
112
|
# routed to /files/:id/audit (POST)
|
111
113
|
def audit
|
112
|
-
render json:
|
114
|
+
render json: audit_service.audit
|
113
115
|
end
|
114
116
|
|
115
117
|
# routed to /files/:id (PUT)
|
@@ -120,6 +122,8 @@ module Sufia
|
|
120
122
|
update_file
|
121
123
|
elsif params.has_key? :generic_file
|
122
124
|
update_metadata
|
125
|
+
elsif params.has_key? :visibility
|
126
|
+
update_visibility
|
123
127
|
end
|
124
128
|
|
125
129
|
if success
|
@@ -136,8 +140,12 @@ module Sufia
|
|
136
140
|
|
137
141
|
protected
|
138
142
|
|
143
|
+
def audit_service
|
144
|
+
Sufia::GenericFileAuditService.new(@generic_file)
|
145
|
+
end
|
146
|
+
|
139
147
|
def wants_to_revert?
|
140
|
-
params.has_key?(:revision) && params[:revision] != @generic_file.content.latest_version.
|
148
|
+
params.has_key?(:revision) && params[:revision] != @generic_file.content.latest_version.label
|
141
149
|
end
|
142
150
|
|
143
151
|
def actor
|
@@ -145,7 +153,7 @@ module Sufia
|
|
145
153
|
end
|
146
154
|
|
147
155
|
def update_version
|
148
|
-
actor.revert_content(params[:revision]
|
156
|
+
actor.revert_content(params[:revision])
|
149
157
|
end
|
150
158
|
|
151
159
|
def update_file
|
@@ -157,6 +165,10 @@ module Sufia
|
|
157
165
|
actor.update_metadata(params[:generic_file], params[:visibility])
|
158
166
|
end
|
159
167
|
|
168
|
+
def update_visibility
|
169
|
+
actor.update_metadata({}, params[:visibility])
|
170
|
+
end
|
171
|
+
|
160
172
|
def json_error(error, name=nil, additional_arguments={})
|
161
173
|
args = {error: error}
|
162
174
|
args[:name] = name if name
|
@@ -35,7 +35,7 @@ module Sufia::HomepageController
|
|
35
35
|
# @param user_parameters the current user-subitted parameters
|
36
36
|
def only_generic_files(solr_parameters, user_parameters)
|
37
37
|
solr_parameters[:fq] ||= []
|
38
|
-
solr_parameters[:fq] << "#{Solrizer.solr_name("has_model", :symbol)}:\"
|
38
|
+
solr_parameters[:fq] << "#{Solrizer.solr_name("has_model", :symbol)}:\"GenericFile\""
|
39
39
|
end
|
40
40
|
|
41
41
|
end
|
@@ -68,14 +68,14 @@ module Sufia
|
|
68
68
|
def show_only_files_deposited_by_current_user solr_parameters, user_parameters
|
69
69
|
solr_parameters[:fq] ||= []
|
70
70
|
solr_parameters[:fq] += [
|
71
|
-
ActiveFedora::
|
71
|
+
ActiveFedora::SolrQueryBuilder.construct_query_for_rel(depositor: current_user.user_key)
|
72
72
|
]
|
73
73
|
end
|
74
74
|
|
75
75
|
def show_only_generic_files solr_parameters, user_parameters
|
76
76
|
solr_parameters[:fq] ||= []
|
77
77
|
solr_parameters[:fq] += [
|
78
|
-
ActiveFedora::
|
78
|
+
ActiveFedora::SolrQueryBuilder.construct_query_for_rel(has_model: ::GenericFile.to_class_uri)
|
79
79
|
]
|
80
80
|
end
|
81
81
|
|
@@ -57,11 +57,10 @@ module Sufia
|
|
57
57
|
private
|
58
58
|
|
59
59
|
def get_pid_and_authorize_depositor
|
60
|
-
@pid =
|
61
|
-
authorize! :
|
62
|
-
raise Hydra::AccessDenied unless ::GenericFile.load_instance_from_solr(@pid).depositor == current_user.user_key
|
60
|
+
@pid = params[:id]
|
61
|
+
authorize! :transfer, @pid
|
63
62
|
@proxy_deposit_request.pid = @pid
|
64
|
-
rescue
|
63
|
+
rescue CanCan::AccessDenied
|
65
64
|
redirect_to root_url, alert: 'You are not authorized to transfer this file'
|
66
65
|
end
|
67
66
|
|
@@ -49,7 +49,7 @@ module Sufia::UsersControllerBehavior
|
|
49
49
|
def update
|
50
50
|
if params[:user]
|
51
51
|
@user.update_attributes(params.require(:user).permit(*User.permitted_attributes))
|
52
|
-
@user.populate_attributes if update_directory
|
52
|
+
@user.populate_attributes if ActiveRecord::ConnectionAdapters::Column.value_to_boolean(params[:user][:update_directory])
|
53
53
|
end
|
54
54
|
|
55
55
|
unless @user.save
|
@@ -65,13 +65,8 @@ module Sufia::UsersControllerBehavior
|
|
65
65
|
redirect_to sufia.profile_path(@user.to_param), notice: "Your profile has been updated"
|
66
66
|
end
|
67
67
|
|
68
|
-
def update_directory?
|
69
|
-
['1', 'true'].include? params[:user][:update_directory]
|
70
|
-
end
|
71
|
-
|
72
68
|
def toggle_trophy
|
73
|
-
|
74
|
-
unless current_user.can? :edit, id
|
69
|
+
unless current_user.can? :edit, params[:file_id]
|
75
70
|
redirect_to root_path, alert: "You do not have permissions to the file"
|
76
71
|
return false
|
77
72
|
end
|
@@ -8,7 +8,7 @@ module My
|
|
8
8
|
def show_only_collections(solr_parameters, user_parameters)
|
9
9
|
solr_parameters[:fq] ||= []
|
10
10
|
solr_parameters[:fq] += [
|
11
|
-
ActiveFedora::
|
11
|
+
ActiveFedora::SolrQueryBuilder.construct_query_for_rel(has_model: Collection.to_class_uri)
|
12
12
|
]
|
13
13
|
end
|
14
14
|
|
@@ -16,12 +16,11 @@ module My
|
|
16
16
|
super
|
17
17
|
@selected_tab = :collections
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
protected
|
21
|
-
|
21
|
+
|
22
22
|
def search_action_url *args
|
23
23
|
sufia.dashboard_collections_url *args
|
24
24
|
end
|
25
|
-
|
26
25
|
end
|
27
26
|
end
|
@@ -6,10 +6,10 @@ module My
|
|
6
6
|
]
|
7
7
|
|
8
8
|
def show_only_highlighted_files(solr_parameters, user_parameters)
|
9
|
-
|
9
|
+
ids = current_user.trophies.pluck(:generic_file_id)
|
10
10
|
solr_parameters[:fq] ||= []
|
11
11
|
solr_parameters[:fq] += [
|
12
|
-
ActiveFedora::
|
12
|
+
ActiveFedora::SolrQueryBuilder.construct_query_for_ids(ids)
|
13
13
|
]
|
14
14
|
end
|
15
15
|
|
@@ -8,7 +8,7 @@ module My
|
|
8
8
|
def show_only_shared_files(solr_parameters, user_parameters)
|
9
9
|
solr_parameters[:fq] ||= []
|
10
10
|
solr_parameters[:fq] += [
|
11
|
-
"-" + ActiveFedora::
|
11
|
+
"-" + ActiveFedora::SolrQueryBuilder.construct_query_for_rel(depositor: current_user.user_key)
|
12
12
|
]
|
13
13
|
end
|
14
14
|
|
@@ -16,9 +16,9 @@ module My
|
|
16
16
|
super
|
17
17
|
@selected_tab = :shared
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
protected
|
21
|
-
|
21
|
+
|
22
22
|
def search_action_url *args
|
23
23
|
sufia.dashboard_shares_url *args
|
24
24
|
end
|
@@ -1,13 +1,10 @@
|
|
1
|
-
require 'sufia/single_use_error'
|
2
|
-
|
3
1
|
class SingleUseLinksController < ApplicationController
|
4
2
|
prepend_before_filter :normalize_identifier
|
5
|
-
before_filter :load_asset
|
6
3
|
before_filter :authenticate_user!
|
7
4
|
before_filter :authorize_user!
|
8
5
|
|
9
6
|
def new_download
|
10
|
-
@su = SingleUseLink.create itemId: params[:id], path: sufia.download_path(id:
|
7
|
+
@su = SingleUseLink.create itemId: params[:id], path: sufia.download_path(id: asset)
|
11
8
|
@link = sufia.download_single_use_link_path(@su.downloadKey)
|
12
9
|
|
13
10
|
respond_to do |format|
|
@@ -17,7 +14,7 @@ class SingleUseLinksController < ApplicationController
|
|
17
14
|
end
|
18
15
|
|
19
16
|
def new_show
|
20
|
-
@su = SingleUseLink.create itemId: params[:id], path: sufia.polymorphic_path(
|
17
|
+
@su = SingleUseLink.create itemId: params[:id], path: sufia.polymorphic_path(asset)
|
21
18
|
@link = sufia.show_single_use_link_path(@su.downloadKey)
|
22
19
|
|
23
20
|
respond_to do |format|
|
@@ -38,11 +35,10 @@ class SingleUseLinksController < ApplicationController
|
|
38
35
|
|
39
36
|
protected
|
40
37
|
def authorize_user!
|
41
|
-
authorize! :edit,
|
38
|
+
authorize! :edit, asset
|
42
39
|
end
|
43
40
|
|
44
|
-
def
|
45
|
-
@asset
|
41
|
+
def asset
|
42
|
+
@asset ||= ActiveFedora::Base.load_instance_from_solr(params[:id])
|
46
43
|
end
|
47
|
-
|
48
44
|
end
|
@@ -19,7 +19,7 @@ class SingleUseLinksViewerController < ApplicationController
|
|
19
19
|
|
20
20
|
can :read, ActiveFedora::Base do |obj|
|
21
21
|
single_use_link.valid? and
|
22
|
-
single_use_link.itemId == obj.
|
22
|
+
single_use_link.itemId == obj.id and single_use_link.destroy!
|
23
23
|
end if single_use_link
|
24
24
|
|
25
25
|
end
|
@@ -49,7 +49,7 @@ class SingleUseLinksViewerController < ApplicationController
|
|
49
49
|
protected
|
50
50
|
|
51
51
|
def authorize_download!
|
52
|
-
authorize! :read,
|
52
|
+
authorize! :read, asset
|
53
53
|
end
|
54
54
|
|
55
55
|
def single_use_link
|
@@ -60,8 +60,8 @@ class SingleUseLinksViewerController < ApplicationController
|
|
60
60
|
Sufia::SingleUseError.new('Single-Use Link Not Found')
|
61
61
|
end
|
62
62
|
|
63
|
-
def
|
64
|
-
@asset
|
63
|
+
def asset
|
64
|
+
@asset ||= ActiveFedora::Base.find(single_use_link.itemId)
|
65
65
|
end
|
66
66
|
|
67
67
|
def current_ability
|