sufia 7.0.0.beta3 → 7.0.0.beta4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +10 -0
- data/.rubocop_todo.yml +66 -7
- data/app/controllers/concerns/sufia/batch_uploads_controller_behavior.rb +0 -1
- data/app/controllers/concerns/sufia/collections_controller_behavior.rb +0 -1
- data/app/controllers/concerns/sufia/contact_form_controller_behavior.rb +6 -3
- data/app/controllers/concerns/sufia/controller.rb +0 -7
- data/app/controllers/concerns/sufia/file_sets_controller_behavior.rb +1 -1
- data/app/controllers/concerns/sufia/uploads_controller_behavior.rb +18 -0
- data/app/controllers/concerns/sufia/users_controller_behavior.rb +1 -25
- data/app/controllers/concerns/sufia/works_controller_behavior.rb +31 -32
- data/app/controllers/curation_concerns/audits_controller.rb +0 -1
- data/app/controllers/sufia/resource_sync_controller.rb +41 -0
- data/app/controllers/sufia/trophies_controller.rb +17 -0
- data/app/controllers/sufia/uploads_controller.rb +1 -12
- data/app/helpers/sufia/sufia_helper_behavior.rb +15 -3
- data/app/helpers/trophy_helper.rb +1 -1
- data/app/models/concerns/sufia/user.rb +0 -12
- data/app/models/contact_form.rb +2 -2
- data/app/models/local_authority.rb +5 -2
- data/app/presenters/sufia/user_profile_presenter.rb +29 -0
- data/app/services/sufia/query_service.rb +1 -1
- data/app/views/collections/_edit_actions.html.erb +2 -1
- data/app/views/collections/_show_actions.html.erb +2 -1
- data/app/views/collections/_work_action_menu.html.erb +1 -1
- data/app/views/contact_form/new.html.erb +1 -1
- data/app/views/curation_concerns/base/_form_progress.html.erb +1 -1
- data/app/views/dashboard/_index_partials/_contents.html.erb +1 -1
- data/app/views/dashboard/_index_partials/_proxy_rights.html.erb +2 -2
- data/app/views/layouts/_head_tag_content.html.erb +1 -0
- data/app/views/my/_work_action_menu.html.erb +1 -1
- data/app/views/sufia/homepage/_featured_fields.html.erb +1 -5
- data/app/views/sufia/homepage/_home_header.html.erb +1 -1
- data/app/views/transfers/new.html.erb +1 -1
- data/app/views/users/_activity.html.erb +1 -1
- data/app/views/users/_contributions.html.erb +5 -5
- data/app/views/users/_edit_primary.html.erb +2 -2
- data/app/views/users/_profile_actions.html.erb +1 -1
- data/app/views/users/_profile_tabs.html.erb +2 -2
- data/app/views/users/show.html.erb +2 -5
- data/config/locales/sufia.en.yml +1 -1
- data/config/routes.rb +7 -8
- data/{lib/generators/sufia/templates/migrations/acts_as_follower_migration.rb → db/migrate/20160328222155_acts_as_follower_migration.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_social_to_users.rb → db/migrate/20160328222156_add_social_to_users.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_ldap_attrs_to_user.rb → db/migrate/20160328222157_add_ldap_attrs_to_user.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_avatars_to_users.rb → db/migrate/20160328222158_add_avatars_to_users.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_local_authorities.rb → db/migrate/20160328222160_create_local_authorities.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_trophies.rb → db/migrate/20160328222161_create_trophies.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_linkedin_to_users.rb → db/migrate/20160328222162_add_linkedin_to_users.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_tinymce_assets.rb → db/migrate/20160328222163_create_tinymce_assets.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_content_blocks.rb → db/migrate/20160328222164_create_content_blocks.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_featured_works.rb → db/migrate/20160328222165_create_featured_works.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_external_key_to_content_blocks.rb → db/migrate/20160328222166_add_external_key_to_content_blocks.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_proxy_deposit_rights.rb → db/migrate/20160328222226_create_proxy_deposit_rights.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_proxy_deposit_requests.rb → db/migrate/20160328222227_create_proxy_deposit_requests.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_file_view_stats.rb → db/migrate/20160328222228_create_file_view_stats.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_file_download_stats.rb → db/migrate/20160328222229_create_file_download_stats.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_orcid_to_users.rb → db/migrate/20160328222230_add_orcid_to_users.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_user_stats.rb → db/migrate/20160328222231_create_user_stats.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_work_view_stats.rb → db/migrate/20160328222232_create_work_view_stats.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_works_to_user_stats.rb → db/migrate/20160328222233_add_works_to_user_stats.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/change_trophy_generic_file_id_to_work_id.rb → db/migrate/20160328222236_change_trophy_generic_file_id_to_work_id.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/change_proxy_deposit_generic_file_id_to_work_id.rb → db/migrate/20160328222237_change_proxy_deposit_generic_file_id_to_work_id.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/change_audit_log_generic_file_id_to_file_set_id.rb → db/migrate/20160328222238_change_audit_log_generic_file_id_to_file_set_id.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/change_proxy_deposit_request_generic_file_id_to_work_id.rb → db/migrate/20160328222239_change_proxy_deposit_request_generic_file_id_to_work_id.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/create_uploaded_files.rb → db/migrate/20160401142419_create_uploaded_files.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/change_featured_work_generic_file_id_to_work_id.rb → db/migrate/20160510000007_change_featured_work_generic_file_id_to_work_id.rb} +0 -0
- data/{lib/generators/sufia/templates/migrations/add_arkivo_to_users.rb → db/migrate/20160516190435_add_arkivo_to_users.rb} +0 -0
- data/lib/generators/sufia/arkivo_api_generator.rb +1 -8
- data/lib/generators/sufia/config_generator.rb +3 -11
- data/lib/generators/sufia/install_generator.rb +12 -46
- data/lib/generators/sufia/templates/catalog_controller.rb +10 -10
- data/lib/generators/sufia/templates/config/sufia.rb +11 -14
- data/lib/generators/sufia/upgrade700_generator.rb +1 -16
- data/lib/sufia.rb +4 -8
- data/lib/sufia/configuration.rb +132 -0
- data/lib/sufia/engine.rb +6 -46
- data/lib/sufia/resource_sync.rb +11 -0
- data/lib/sufia/resource_sync/capability_list_writer.rb +31 -0
- data/lib/sufia/resource_sync/resource_list_writer.rb +77 -0
- data/lib/sufia/resource_sync/source_description_writer.rb +30 -0
- data/lib/sufia/version.rb +1 -1
- data/spec/actors/{create_with_files_actor_spec.rb → sufia/create_with_files_actor_spec.rb} +0 -0
- data/spec/controllers/{admin_stats_controller_spec.rb → admin/stats_controller_spec.rb} +0 -0
- data/spec/controllers/batch_edits_controller_spec.rb +5 -9
- data/spec/controllers/contact_form_controller_spec.rb +88 -0
- data/spec/controllers/{file_sets_controller_spec.rb → curation_concerns/file_sets_controller_spec.rb} +1 -2
- data/spec/controllers/{generic_works_controller_spec.rb → curation_concerns/generic_works_controller_spec.rb} +1 -1
- data/spec/controllers/depositors_controller_spec.rb +1 -1
- data/spec/controllers/featured_works_controller_spec.rb +1 -1
- data/spec/controllers/mailbox_controller_spec.rb +1 -1
- data/spec/controllers/my/highlights_controller_spec.rb +15 -11
- data/spec/controllers/stats_controller_spec.rb +1 -1
- data/spec/controllers/{homepage_controller_spec.rb → sufia/homepage_controller_spec.rb} +1 -1
- data/spec/controllers/sufia/resource_sync_controller_spec.rb +52 -0
- data/spec/controllers/sufia/trophies_controller_spec.rb +27 -0
- data/spec/controllers/transfers_controller_spec.rb +7 -7
- data/spec/controllers/users_controller_spec.rb +22 -60
- data/spec/features/browse_catalog_spec.rb +1 -1
- data/spec/features/collection_spec.rb +6 -7
- data/spec/features/contact_form_spec.rb +2 -89
- data/spec/features/search_spec.rb +7 -7
- data/spec/features/users_spec.rb +1 -1
- data/spec/forms/curation_concerns/{work_form_spec.rb → generic_work_form_spec.rb} +0 -0
- data/spec/forms/sufia/{batch_edit_form_spec.rb → forms/batch_edit_form_spec.rb} +0 -0
- data/spec/forms/sufia/{batch_upload_form_spec.rb → forms/batch_upload_form_spec.rb} +0 -0
- data/spec/forms/sufia/{collection_form_spec.rb → forms/collection_form_spec.rb} +0 -0
- data/spec/helpers/blacklight_helper_spec.rb +91 -0
- data/spec/helpers/dashboard_helper_spec.rb +2 -2
- data/spec/helpers/sufia_helper_spec.rb +7 -12
- data/spec/helpers/trophy_helper_spec.rb +1 -1
- data/spec/javascripts/jasmine_spec.rb +1 -1
- data/spec/lib/sufia/resource_sync/capability_list_writer_spec.rb +26 -0
- data/spec/lib/sufia/resource_sync/resource_list_writer_spec.rb +24 -0
- data/spec/lib/sufia/resource_sync/source_description_writer_spec.rb +21 -0
- data/spec/models/featured_work_spec.rb +1 -1
- data/spec/models/generic_work_spec.rb +7 -10
- data/spec/models/local_authority_spec.rb +3 -11
- data/spec/models/{ability_spec.rb → sufia/ability_spec.rb} +0 -0
- data/spec/models/sufia/download_spec.rb +13 -0
- data/spec/models/sufia/pageview_spec.rb +13 -0
- data/spec/models/sufia/uploaded_file_spec.rb +1 -1
- data/spec/models/{user_usage_stats_spec.rb → sufia/user_usage_stats_spec.rb} +0 -0
- data/spec/models/trophy_spec.rb +5 -7
- data/spec/models/user_spec.rb +12 -12
- data/spec/presenters/{file_usage_spec.rb → sufia/file_usage_spec.rb} +4 -4
- data/spec/presenters/{presenter_renderer_spec.rb → sufia/presenter_renderer_spec.rb} +0 -0
- data/spec/presenters/sufia/user_profile_presenter_spec.rb +23 -0
- data/spec/presenters/{work_usage_spec.rb → sufia/work_usage_spec.rb} +4 -4
- data/spec/requests/legacy_routing_spec.rb +1 -1
- data/spec/routing/ownership_transfers_route_spec.rb +2 -2
- data/spec/routing/route_spec.rb +19 -16
- data/spec/services/{collection_member_service_spec.rb → sufia/collection_member_service_spec.rb} +0 -0
- data/spec/services/{collection_size_service_spec.rb → sufia/collection_size_service_spec.rb} +0 -0
- data/spec/services/{file_set_csv_service_spec.rb → sufia/file_set_csv_service_spec.rb} +0 -0
- data/spec/services/{repository_audit_service_spec.rb → sufia/repository_audit_service_spec.rb} +0 -0
- data/spec/services/{statistics → sufia/statistics}/collections/over_time_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/depositors/summary_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/file_sets/by_format_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/system_stats_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/works/by_depositor_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/works/by_resource_type_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/works/count_spec.rb +0 -0
- data/spec/services/{statistics → sufia/statistics}/works/over_time_spec.rb +0 -0
- data/spec/spec_helper.rb +12 -15
- data/spec/tasks/rake_spec.rb +0 -28
- data/spec/views/_toolbar.html.erb_spec.rb +1 -1
- data/spec/views/admin/stats/index.html.erb_spec.rb +2 -4
- data/spec/views/batch_edits/edit.html.erb_spec.rb +1 -2
- data/spec/views/catalog/_index_list_default.html.erb_spec.rb +14 -19
- data/spec/views/catalog/index.html.erb_spec.rb +1 -1
- data/spec/views/catalog/sort_and_per_page.html.erb_spec.rb +9 -10
- data/spec/views/collections/_form.html.erb_spec.rb +2 -2
- data/spec/views/collections/_form_for_select_collection.html.erb_spec.rb +1 -2
- data/spec/views/collections/edit.html.erb_spec.rb +1 -1
- data/spec/views/collections/show.html.erb_spec.rb +1 -1
- data/spec/views/curation_concerns/base/_form.html.erb_spec.rb +11 -33
- data/spec/views/curation_concerns/base/_form_progress.html.erb_spec.rb +3 -3
- data/spec/views/curation_concerns/base/_relationships.html.erb_spec.rb +1 -1
- data/spec/views/curation_concerns/base/edit.html.erb_spec.rb +1 -1
- data/spec/views/curation_concerns/file_sets/_versioning.html.erb_spec.rb +1 -3
- data/spec/views/curation_concerns/permissions/confirm.html.erb_spec.rb +1 -1
- data/spec/views/dashboard/index_spec.rb +2 -4
- data/spec/views/homepage/_announcement.html.erb_spec.rb +1 -2
- data/spec/views/homepage/_featured_works.html.erb_spec.rb +9 -2
- data/spec/views/homepage/_home_header.html.erb_spec.rb +1 -1
- data/spec/views/my/_list_collections.html.erb_spec.rb +1 -1
- data/spec/views/my/_list_works.html.erb_spec.rb +1 -1
- data/spec/views/sufia/batch_uploads/_form.html.erb_spec.rb +4 -4
- data/spec/views/users/edit.html.erb_spec.rb +0 -3
- data/spec/views/users/show.html.erb_spec.rb +9 -7
- data/sufia.gemspec +1 -0
- metadata +124 -96
- data/app/controllers/directory_controller.rb +0 -30
- data/lib/generators/sufia/abstract_migration_generator.rb +0 -31
- data/lib/generators/sufia/cached_stats_generator.rb +0 -24
- data/lib/generators/sufia/cached_work_stats_generator.rb +0 -24
- data/lib/generators/sufia/citation_config_generator.rb +0 -22
- data/lib/generators/sufia/minimagick_config_generator.rb +0 -18
- data/lib/generators/sufia/orcid_field_generator.rb +0 -19
- data/lib/generators/sufia/proxies_generator.rb +0 -24
- data/lib/generators/sufia/usagestats_generator.rb +0 -18
- data/lib/generators/sufia/user_stats_generator.rb +0 -31
- data/spec/models/download_spec.rb +0 -17
- data/spec/models/pageview_spec.rb +0 -17
- data/tasks/migrate.rake +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e48d49a101fe907425b8153aa726ea8643f897d
|
4
|
+
data.tar.gz: 43cc5a32c71d57f9b013c7ab253d9072c3e41f10
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cec16b9098ee70db08ab1e3b728884c34b8bb7c967992c6af08ea01720eb20f2f8650e203bc63cfbc505587f79cc1fd8218e7c75764758fe0313e2fef5616144
|
7
|
+
data.tar.gz: dab357b2da1216878cd10d0b45a3063ce500c0363bd4729dbc841356b38e0abdfe2432f83d09636db7dd5520ea2c3e1d1c28619fd946335edcbd4238e08b4e34
|
data/.rubocop.yml
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
inherit_from: .rubocop_todo.yml
|
2
2
|
|
3
3
|
AllCops:
|
4
|
+
TargetRubyVersion: 2.1
|
4
5
|
DisplayCopNames: true
|
5
6
|
Include:
|
6
7
|
- '**/Rakefile'
|
@@ -81,3 +82,12 @@ Style/SingleLineBlockParams:
|
|
81
82
|
|
82
83
|
Rails:
|
83
84
|
Enabled: true
|
85
|
+
|
86
|
+
RSpec/DescribeClass:
|
87
|
+
Exclude:
|
88
|
+
- 'spec/tasks/rake_spec.rb'
|
89
|
+
- 'spec/javascripts/jasmine_spec.rb'
|
90
|
+
- 'spec/features/**/*'
|
91
|
+
- 'spec/config/sufia_events_spec.rb'
|
92
|
+
|
93
|
+
|
data/.rubocop_todo.yml
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
require: rubocop-rspec
|
2
|
+
|
1
3
|
Metrics/CyclomaticComplexity:
|
2
4
|
Exclude:
|
3
5
|
- 'lib/sufia/arkivo/metadata_munger.rb'
|
@@ -26,10 +28,6 @@ Metrics/MethodLength:
|
|
26
28
|
- 'lib/generators/sufia/install_generator.rb'
|
27
29
|
- 'lib/sufia/arkivo/metadata_munger.rb'
|
28
30
|
|
29
|
-
Style/HashSyntax:
|
30
|
-
Exclude:
|
31
|
-
- 'lib/generators/sufia/templates/catalog_controller.rb'
|
32
|
-
|
33
31
|
Style/LineEndConcatenation:
|
34
32
|
Exclude:
|
35
33
|
- 'spec/test_app_templates/lib/generators/**/*'
|
@@ -38,7 +36,6 @@ Style/LineEndConcatenation:
|
|
38
36
|
Style/PredicateName:
|
39
37
|
Exclude:
|
40
38
|
- 'app/helpers/sufia/sufia_helper_behavior.rb'
|
41
|
-
- 'app/controllers/concerns/sufia/controller.rb'
|
42
39
|
|
43
40
|
Rails/Output:
|
44
41
|
Exclude:
|
@@ -50,6 +47,68 @@ Rails/HasAndBelongsToMany:
|
|
50
47
|
- 'app/models/domain_term.rb'
|
51
48
|
- 'app/models/local_authority.rb'
|
52
49
|
|
53
|
-
|
50
|
+
RSpec/ExampleLength:
|
51
|
+
Max: 7
|
54
52
|
Exclude:
|
55
|
-
- '
|
53
|
+
- 'spec/controllers/api/items_controller_spec.rb'
|
54
|
+
- 'spec/controllers/authorities_controller_spec.rb'
|
55
|
+
- 'spec/controllers/collections_controller_spec.rb'
|
56
|
+
- 'spec/controllers/curation_concerns/file_sets_controller_spec.rb'
|
57
|
+
- 'spec/controllers/my/highlights_controller_spec.rb'
|
58
|
+
- 'spec/controllers/curation_concerns/generic_works_controller_spec.rb'
|
59
|
+
- 'spec/controllers/stats_controller_spec.rb'
|
60
|
+
- 'spec/controllers/sufia/batch_uploads_controller_spec.rb'
|
61
|
+
- 'spec/controllers/transfers_controller_spec.rb'
|
62
|
+
- 'spec/controllers/users_controller_spec.rb'
|
63
|
+
- 'spec/forms/sufia/forms/collection_form_spec.rb'
|
64
|
+
- 'spec/forms/sufia/forms/batch_edit_form_spec.rb'
|
65
|
+
- 'spec/forms/sufia/forms/batch_upload_form_spec.rb'
|
66
|
+
- 'spec/features/**/*'
|
67
|
+
- 'spec/helpers/sufia_helper_spec.rb'
|
68
|
+
- 'spec/helpers/dashboard_helper_spec.rb'
|
69
|
+
- 'spec/javascripts/jasmine_spec.rb'
|
70
|
+
- 'spec/jobs/user_unfollow_event_job_spec.rb'
|
71
|
+
- 'spec/jobs/user_follow_event_job_spec.rb'
|
72
|
+
- 'spec/jobs/file_set_attached_event_job_spec.rb'
|
73
|
+
- 'spec/jobs/content_update_event_job_spec.rb'
|
74
|
+
- 'spec/jobs/content_restored_version_event_job_spec.rb'
|
75
|
+
- 'spec/jobs/content_new_version_event_job_spec.rb'
|
76
|
+
- 'spec/jobs/content_depositor_change_event_job_spec.rb'
|
77
|
+
- 'spec/jobs/content_deposit_event_job_spec.rb'
|
78
|
+
- 'spec/jobs/content_delete_event_job_spec.rb'
|
79
|
+
- 'spec/lib/sufia/user_stat_importer_spec.rb'
|
80
|
+
- 'spec/lib/sufia/resource_sync/capability_list_writer_spec.rb'
|
81
|
+
- 'spec/models/generic_work_spec.rb'
|
82
|
+
- 'spec/models/featured_work_spec.rb'
|
83
|
+
- 'spec/services/sufia/actor_factory_spec.rb'
|
84
|
+
- 'spec/views/catalog/_index_list_default.html.erb_spec.rb'
|
85
|
+
- 'spec/views/collections/_form.html.erb_spec.rb'
|
86
|
+
|
87
|
+
RSpec/VerifiedDoubles:
|
88
|
+
Enabled: false
|
89
|
+
|
90
|
+
RSpec/AnyInstance:
|
91
|
+
Exclude:
|
92
|
+
- 'spec/controllers/api/items_controller_spec.rb'
|
93
|
+
- 'spec/controllers/api/zotero_controller_spec.rb'
|
94
|
+
- 'spec/controllers/batch_edits_controller_spec.rb'
|
95
|
+
- 'spec/controllers/collections_controller_spec.rb'
|
96
|
+
- 'spec/controllers/dashboard_controller_spec.rb'
|
97
|
+
- 'spec/controllers/downloads_controller_spec.rb'
|
98
|
+
- 'spec/controllers/mailbox_controller_spec.rb'
|
99
|
+
- 'spec/controllers/stats_controller_spec.rb'
|
100
|
+
- 'spec/controllers/curation_concerns/file_sets_controller_spec.rb'
|
101
|
+
- 'spec/controllers/users_controller_spec.rb'
|
102
|
+
- 'spec/controllers/transfers_controller_spec.rb'
|
103
|
+
- 'spec/jobs/file_set_attached_event_job_spec.rb'
|
104
|
+
- 'spec/jobs/content_update_event_job_spec.rb'
|
105
|
+
- 'spec/jobs/content_restored_version_event_job_spec.rb'
|
106
|
+
- 'spec/jobs/content_new_version_event_job_spec.rb'
|
107
|
+
- 'spec/jobs/content_depositor_change_event_job_spec.rb'
|
108
|
+
- 'spec/jobs/content_deposit_event_job_spec.rb'
|
109
|
+
- 'spec/lib/sufia/arkivo/create_subscription_job_spec.rb'
|
110
|
+
- 'spec/lib/sufia/arkivo/actor_spec.rb'
|
111
|
+
- 'spec/presenters/sufia/work_usage_spec.rb'
|
112
|
+
- 'spec/presenters/sufia/file_usage_spec.rb'
|
113
|
+
- 'spec/services/sufia/repository_audit_service_spec.rb'
|
114
|
+
|
@@ -8,7 +8,7 @@ module Sufia
|
|
8
8
|
@contact_form = ContactForm.new(params[:contact_form])
|
9
9
|
@contact_form.request = request
|
10
10
|
# not spam and a valid form
|
11
|
-
if @contact_form.
|
11
|
+
if @contact_form.deliver
|
12
12
|
flash.now[:notice] = 'Thank you for your message!'
|
13
13
|
after_deliver
|
14
14
|
@contact_form = ContactForm.new
|
@@ -17,13 +17,16 @@ module Sufia
|
|
17
17
|
flash.now[:error] << @contact_form.errors.full_messages.map(&:to_s).join(",")
|
18
18
|
end
|
19
19
|
render :new
|
20
|
-
rescue
|
20
|
+
rescue RuntimeError => e
|
21
|
+
logger.error("Contact form failed to send: #{e.inspect}")
|
21
22
|
flash.now[:error] = 'Sorry, this message was not delivered.'
|
22
23
|
render :new
|
23
24
|
end
|
24
25
|
|
26
|
+
# Override this method if you want to perform additional operations
|
27
|
+
# when a email is successfully sent, such as sending a confirmation
|
28
|
+
# response to the user.
|
25
29
|
def after_deliver
|
26
|
-
return unless Sufia::Engine.config.enable_contact_form_delivery
|
27
30
|
end
|
28
31
|
end
|
29
32
|
end
|
@@ -39,7 +39,7 @@ module Sufia
|
|
39
39
|
when 'edit'.freeze
|
40
40
|
add_breadcrumb I18n.t("sufia.file_set.browse_view"), main_app.curation_concerns_file_set_path(params["id"])
|
41
41
|
when 'show'.freeze
|
42
|
-
add_breadcrumb presenter.parent.to_s,
|
42
|
+
add_breadcrumb presenter.parent.to_s, main_app.polymorphic_path(presenter.parent)
|
43
43
|
add_breadcrumb presenter.to_s, main_app.polymorphic_path(presenter)
|
44
44
|
end
|
45
45
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module Sufia::UploadsControllerBehavior
|
2
|
+
extend ActiveSupport::Concern
|
3
|
+
|
4
|
+
included do
|
5
|
+
load_and_authorize_resource class: Sufia::UploadedFile
|
6
|
+
end
|
7
|
+
|
8
|
+
def create
|
9
|
+
@upload.attributes = { file: params[:files].first,
|
10
|
+
user: current_user }
|
11
|
+
@upload.save!
|
12
|
+
end
|
13
|
+
|
14
|
+
def destroy
|
15
|
+
@upload.destroy
|
16
|
+
head :no_content
|
17
|
+
end
|
18
|
+
end
|
@@ -28,14 +28,7 @@ module Sufia::UsersControllerBehavior
|
|
28
28
|
|
29
29
|
# Display user profile
|
30
30
|
def show
|
31
|
-
@
|
32
|
-
@user.profile_events(100)
|
33
|
-
else
|
34
|
-
[]
|
35
|
-
end
|
36
|
-
@trophies = @user.trophy_works
|
37
|
-
@followers = @user.followers
|
38
|
-
@following = @user.all_following
|
31
|
+
@presenter = Sufia::UserProfilePresenter.new(@user, current_ability)
|
39
32
|
end
|
40
33
|
|
41
34
|
# Display form for users to edit their profile information
|
@@ -67,23 +60,6 @@ module Sufia::UsersControllerBehavior
|
|
67
60
|
['1', 'true'].include? params[:user][:update_directory]
|
68
61
|
end
|
69
62
|
|
70
|
-
def toggle_trophy
|
71
|
-
work_id = params[:work_id]
|
72
|
-
unless current_user.can? :edit, work_id
|
73
|
-
redirect_to root_path, alert: "You do not have permissions to the work"
|
74
|
-
return false
|
75
|
-
end
|
76
|
-
t = current_user.trophies.where(work_id: work_id).first
|
77
|
-
if t
|
78
|
-
t.destroy
|
79
|
-
return false if t.persisted?
|
80
|
-
else
|
81
|
-
t = current_user.trophies.create(work_id: work_id)
|
82
|
-
return false unless t.persisted?
|
83
|
-
end
|
84
|
-
render json: t
|
85
|
-
end
|
86
|
-
|
87
63
|
# Follow a user
|
88
64
|
def follow
|
89
65
|
unless current_user.following?(@user)
|
@@ -6,7 +6,6 @@ module Sufia
|
|
6
6
|
include CurationConcerns::CurationConcernController
|
7
7
|
|
8
8
|
included do
|
9
|
-
before_action :has_access?, except: :show
|
10
9
|
before_action :build_breadcrumbs, only: [:edit, :show]
|
11
10
|
self.curation_concern_type = GenericWork
|
12
11
|
self.show_presenter = Sufia::WorkShowPresenter
|
@@ -18,43 +17,43 @@ module Sufia
|
|
18
17
|
super
|
19
18
|
end
|
20
19
|
|
21
|
-
|
22
|
-
def attributes_for_actor
|
23
|
-
attributes = super
|
24
|
-
# If they selected a BrowseEverything file, but then clicked the
|
25
|
-
# remove button, it will still show up in `selected_files`, but
|
26
|
-
# it will no longer be in uploaded_files. By checking the
|
27
|
-
# intersection, we get the files they added via BrowseEverything
|
28
|
-
# that they have not removed from the upload widget.
|
29
|
-
uploaded_files = params.fetch(:uploaded_files, [])
|
30
|
-
selected_files = params.fetch(:selected_files, {}).values
|
31
|
-
browse_everything_urls = uploaded_files &
|
32
|
-
selected_files.map { |f| f[:url] }
|
20
|
+
protected
|
33
21
|
|
34
|
-
#
|
35
|
-
|
36
|
-
|
22
|
+
# Override the default behavior from curation_concerns in order to add uploaded_files to the parameters received by the actor.
|
23
|
+
def attributes_for_actor
|
24
|
+
attributes = super
|
25
|
+
# If they selected a BrowseEverything file, but then clicked the
|
26
|
+
# remove button, it will still show up in `selected_files`, but
|
27
|
+
# it will no longer be in uploaded_files. By checking the
|
28
|
+
# intersection, we get the files they added via BrowseEverything
|
29
|
+
# that they have not removed from the upload widget.
|
30
|
+
uploaded_files = params.fetch(:uploaded_files, [])
|
31
|
+
selected_files = params.fetch(:selected_files, {}).values
|
32
|
+
browse_everything_urls = uploaded_files &
|
33
|
+
selected_files.map { |f| f[:url] }
|
37
34
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
browse_everything_urls
|
42
|
-
attributes
|
43
|
-
end
|
35
|
+
# we need the hash of files with url and file_name
|
36
|
+
browse_everything_files = selected_files
|
37
|
+
.select { |v| uploaded_files.include?(v[:url]) }
|
44
38
|
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
end
|
51
|
-
wants.json { render :show, status: :created, location: polymorphic_path([main_app, curation_concern]) }
|
39
|
+
attributes[:remote_files] = browse_everything_files
|
40
|
+
# Strip out any BrowseEverthing files from the regular uploads.
|
41
|
+
attributes[:uploaded_files] = uploaded_files -
|
42
|
+
browse_everything_urls
|
43
|
+
attributes
|
52
44
|
end
|
53
|
-
end
|
54
45
|
|
55
|
-
|
46
|
+
def after_create_response
|
47
|
+
respond_to do |wants|
|
48
|
+
wants.html do
|
49
|
+
flash[:notice] = t('sufia.generic_works.new.after_create_html', application_name: view_context.application_name)
|
50
|
+
redirect_to [main_app, curation_concern]
|
51
|
+
end
|
52
|
+
wants.json { render :show, status: :created, location: polymorphic_path([main_app, curation_concern]) }
|
53
|
+
end
|
54
|
+
end
|
56
55
|
|
57
|
-
# Called by CurationConcerns::
|
56
|
+
# Called by CurationConcerns::CurationConcernController#show
|
58
57
|
def additional_response_formats(format)
|
59
58
|
format.endnote { render text: presenter.solr_document.export_as_endnote }
|
60
59
|
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
class Sufia::ResourceSyncController < ApplicationController
|
2
|
+
def source_description
|
3
|
+
# Caching based on host, for multitenancy support
|
4
|
+
body = Rails.cache.fetch("source_description_#{request.host}", expires_in: 1.week) do
|
5
|
+
build_source_description
|
6
|
+
end
|
7
|
+
render body: body, content_type: 'application/xml'
|
8
|
+
end
|
9
|
+
|
10
|
+
def capability_list
|
11
|
+
# Caching based on host, for multitenancy support
|
12
|
+
body = Rails.cache.fetch("source_description_#{request.host}", expires_in: 1.week) do
|
13
|
+
build_capability_list
|
14
|
+
end
|
15
|
+
render body: body, content_type: 'application/xml'
|
16
|
+
end
|
17
|
+
|
18
|
+
def resource_list
|
19
|
+
# Caching based on host, for multitenancy support
|
20
|
+
body = Rails.cache.fetch("source_description_#{request.host}", expires_in: 1.week) do
|
21
|
+
build_resource_list
|
22
|
+
end
|
23
|
+
render body: body, content_type: 'application/xml'
|
24
|
+
end
|
25
|
+
|
26
|
+
private
|
27
|
+
|
28
|
+
def build_resource_list
|
29
|
+
Sufia::ResourceSync::ResourceListWriter.new(capability_list_url: sufia.capability_list_url,
|
30
|
+
resource_host: request.host).write
|
31
|
+
end
|
32
|
+
|
33
|
+
def build_capability_list
|
34
|
+
Sufia::ResourceSync::CapabilityListWriter.new(resource_list_url: sufia.resource_list_url,
|
35
|
+
description_url: sufia.source_description_url).write
|
36
|
+
end
|
37
|
+
|
38
|
+
def build_source_description
|
39
|
+
Sufia::ResourceSync::SourceDescriptionWriter.new(capability_list_url: sufia.capability_list_url).write
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Sufia
|
2
|
+
class TrophiesController < ApplicationController
|
3
|
+
def toggle_trophy
|
4
|
+
work_id = params[:id]
|
5
|
+
authorize! :edit, work_id
|
6
|
+
t = current_user.trophies.where(work_id: work_id).first
|
7
|
+
if t
|
8
|
+
t.destroy
|
9
|
+
return false if t.persisted?
|
10
|
+
else
|
11
|
+
t = current_user.trophies.create(work_id: work_id)
|
12
|
+
return false unless t.persisted?
|
13
|
+
end
|
14
|
+
render json: t
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,16 +1,5 @@
|
|
1
1
|
module Sufia
|
2
2
|
class UploadsController < ApplicationController
|
3
|
-
|
4
|
-
|
5
|
-
def create
|
6
|
-
@upload.attributes = { file: params[:files].first,
|
7
|
-
user: current_user }
|
8
|
-
@upload.save!
|
9
|
-
end
|
10
|
-
|
11
|
-
def destroy
|
12
|
-
@upload.destroy
|
13
|
-
head :no_content
|
14
|
-
end
|
3
|
+
include Sufia::UploadsControllerBehavior
|
15
4
|
end
|
16
5
|
end
|
@@ -91,6 +91,18 @@ module Sufia
|
|
91
91
|
link_to(label, main_app.search_catalog_path(state))
|
92
92
|
end
|
93
93
|
|
94
|
+
def index_field_link(options = {})
|
95
|
+
field_name = options[:config][:field_name]
|
96
|
+
values = options[:value]
|
97
|
+
safe_join(values.map { |item| link_to_index_field(item, field_name) }, ", ")
|
98
|
+
end
|
99
|
+
|
100
|
+
def link_to_index_field(name, value)
|
101
|
+
params = { search_field: 'advanced', name => "\"#{value}\"" }
|
102
|
+
state = search_state.params_for_search(params)
|
103
|
+
link_to(name, main_app.search_catalog_path(state))
|
104
|
+
end
|
105
|
+
|
94
106
|
# @param [String,Hash] text either the string to escape or a hash containing the
|
95
107
|
# string to escape under the :value key.
|
96
108
|
def iconify_auto_link(text, showLink = true)
|
@@ -128,9 +140,9 @@ module Sufia
|
|
128
140
|
options[:value].map { |right| link_to RightsService.label(right), right }.to_sentence.html_safe
|
129
141
|
end
|
130
142
|
|
131
|
-
def link_to_telephone(user
|
132
|
-
|
133
|
-
link_to
|
143
|
+
def link_to_telephone(user)
|
144
|
+
return unless user
|
145
|
+
link_to user.telephone, "wtai://wp/mc;#{user.telephone}" if user.telephone
|
134
146
|
end
|
135
147
|
|
136
148
|
# Only display the current search parameters if the user is not in the dashboard.
|