sufia 6.2.0 → 6.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.rubocop.yml +146 -0
- data/.travis.yml +4 -7
- data/Gemfile +2 -0
- data/History.md +29 -1
- data/README.md +25 -9
- data/SUFIA_VERSION +1 -1
- data/app/assets/stylesheets/sufia/_collections.scss +15 -0
- data/app/assets/stylesheets/sufia/_file-listing.scss +7 -0
- data/app/assets/stylesheets/sufia/_home-page.scss +10 -0
- data/app/builders/sufia/bootstrap_breadcrumbs_builder.rb +3 -5
- data/app/controllers/admin/stats_controller.rb +1 -76
- data/app/controllers/api/items_controller.rb +4 -6
- data/app/controllers/api/zotero_controller.rb +5 -5
- data/app/controllers/authorities_controller.rb +5 -1
- data/app/controllers/batch_edits_controller.rb +3 -3
- data/app/controllers/concerns/sufia/admin/depositor_stats.rb +41 -0
- data/app/controllers/concerns/sufia/admin/stats_behavior.rb +94 -0
- data/app/controllers/concerns/sufia/batch_controller_behavior.rb +16 -18
- data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +54 -56
- data/app/controllers/concerns/sufia/breadcrumbs.rb +3 -6
- data/app/controllers/concerns/sufia/collections_controller_behavior.rb +39 -39
- data/app/controllers/concerns/sufia/controller.rb +10 -10
- data/app/controllers/concerns/sufia/dashboard_controller_behavior.rb +17 -18
- data/app/controllers/concerns/sufia/depositors_controller_behavior.rb +9 -12
- data/app/controllers/concerns/sufia/files_controller/browse_everything.rb +6 -7
- data/app/controllers/concerns/sufia/files_controller/local_ingest_behavior.rb +39 -40
- data/app/controllers/concerns/sufia/files_controller/upload_complete_behavior.rb +1 -1
- data/app/controllers/concerns/sufia/files_controller_behavior.rb +109 -110
- data/app/controllers/concerns/sufia/homepage_controller.rb +8 -8
- data/app/controllers/concerns/sufia/my_controller_behavior.rb +13 -10
- data/app/controllers/concerns/sufia/single_use_links_controller_behavior.rb +11 -14
- data/app/controllers/concerns/sufia/single_use_links_viewer_controller_behavior.rb +27 -21
- data/app/controllers/concerns/sufia/transfers_controller_behavior.rb +17 -17
- data/app/controllers/concerns/sufia/users_controller_behavior.rb +54 -54
- data/app/controllers/contact_form_controller.rb +1 -1
- data/app/controllers/content_blocks_controller.rb +11 -12
- data/app/controllers/directory_controller.rb +2 -3
- data/app/controllers/featured_work_lists_controller.rb +1 -1
- data/app/controllers/featured_works_controller.rb +2 -4
- data/app/controllers/homepage_controller.rb +1 -2
- data/app/controllers/mailbox_controller.rb +12 -32
- data/app/controllers/my/collections_controller.rb +3 -4
- data/app/controllers/my/files_controller.rb +4 -6
- data/app/controllers/my/highlights_controller.rb +4 -6
- data/app/controllers/my/shares_controller.rb +3 -5
- data/app/controllers/pages_controller.rb +1 -3
- data/app/controllers/single_use_links_controller.rb +0 -1
- data/app/controllers/single_use_links_viewer_controller.rb +0 -1
- data/app/controllers/static_controller.rb +1 -0
- data/app/forms/sufia/forms/collection_edit_form.rb +2 -2
- data/app/helpers/batch_edits_helper.rb +1 -3
- data/app/helpers/content_block_helper.rb +7 -8
- data/app/helpers/generic_file_helper.rb +23 -24
- data/app/helpers/sufia/blacklight_override.rb +6 -7
- data/app/helpers/sufia/dashboard_helper_behavior.rb +4 -7
- data/app/helpers/sufia/permissions_helper.rb +3 -4
- data/app/helpers/sufia/sufia_helper_behavior.rb +30 -29
- data/app/helpers/trophy_helper.rb +15 -15
- data/app/inputs/select_with_modal_help_input.rb +3 -3
- data/app/inputs/with_help_icon.rb +4 -4
- data/app/jobs/content_delete_event_job.rb +0 -1
- data/app/jobs/content_depositor_change_event_job.rb +1 -2
- data/app/jobs/event_job.rb +0 -1
- data/app/jobs/user_unfollow_event_job.rb +1 -0
- data/app/models/concerns/sufia/solr_document_behavior.rb +1 -2
- data/app/models/contact_form.rb +6 -6
- data/app/models/content_block.rb +1 -2
- data/app/models/featured_work_list.rb +3 -5
- data/app/models/user_mailbox.rb +44 -0
- data/app/presenters/sufia/collection_presenter.rb +6 -8
- data/app/presenters/sufia/generic_file_presenter.rb +2 -2
- data/app/presenters/sufia/presenter_renderer.rb +2 -2
- data/app/presenters/sufia/version_list_presenter.rb +1 -1
- data/app/presenters/sufia/version_presenter.rb +3 -6
- data/app/search_builders/deposit_search_builder.rb +19 -0
- data/app/search_builders/sufia/my_search_builder_behavior.rb +1 -2
- data/app/search_builders/sufia/search_builder.rb +1 -3
- data/app/uploaders/tinymce_asset_uploader.rb +0 -2
- data/app/views/_controls.html.erb +5 -5
- data/app/views/admin/stats/_deposits.html.erb +19 -0
- data/app/views/admin/stats/index.html.erb +2 -0
- data/app/views/batch_edits/edit.html.erb +2 -2
- data/app/views/collections/_edit_actions.html.erb +3 -3
- data/app/views/collections/_form_for_select_collection.html.erb +2 -2
- data/app/views/collections/_sort_and_per_page.html.erb +12 -9
- data/app/views/collections/_view_type_group.html.erb +1 -1
- data/app/views/collections/edit.html.erb +5 -5
- data/app/views/collections/show.html.erb +7 -6
- data/app/views/homepage/_announcement.html.erb +5 -0
- data/app/views/homepage/_home.html.erb +1 -0
- data/app/views/my/_sort_and_per_page.html.erb +14 -10
- data/app/views/my/index.html.erb +1 -1
- data/app/views/pages/show.html.erb +0 -2
- data/app/views/single_use_links/new_download.html.erb +1 -1
- data/app/views/single_use_links_viewer/show.html.erb +1 -1
- data/app/views/users/_notify_link.html.erb +1 -1
- data/app/views/users/_notify_number.html.erb +2 -2
- data/config/initializers/simple_form.rb +1 -1
- data/config/initializers/simple_form_bootstrap.rb +1 -1
- data/config/locales/sufia.en.yml +4 -0
- data/config/routes.rb +2 -3
- data/lib/generators/sufia/admin_stat_generator.rb +0 -3
- data/lib/generators/sufia/install_generator.rb +8 -9
- data/lib/generators/sufia/templates/catalog_controller.rb +2 -3
- data/lib/generators/sufia/templates/config/action_dispatch_http_upload_monkey_patch.rb +1 -0
- data/lib/generators/sufia/upgrade400_generator.rb +9 -9
- data/lib/generators/sufia/upgrade600_generator.rb +1 -4
- data/lib/sufia.rb +2 -2
- data/lib/sufia/arkivo/actor.rb +1 -1
- data/lib/sufia/arkivo/create_subscription_job.rb +30 -30
- data/lib/sufia/arkivo/metadata_munger.rb +7 -7
- data/lib/sufia/arkivo/schema_validator.rb +1 -1
- data/lib/sufia/single_use_error.rb +0 -1
- data/lib/sufia/version.rb +1 -1
- data/lib/sufia/zotero/config.rb +13 -13
- data/spec/actors/generic_file/actor_spec.rb +17 -18
- data/spec/controllers/admin_stats_controller_spec.rb +56 -5
- data/spec/controllers/api/zotero_controller_spec.rb +10 -9
- data/spec/controllers/authorities_controller_spec.rb +8 -8
- data/spec/controllers/batch_controller_spec.rb +19 -20
- data/spec/controllers/batch_edits_controller_spec.rb +8 -9
- data/spec/controllers/catalog_controller_spec.rb +7 -9
- data/spec/controllers/collections_controller_spec.rb +30 -32
- data/spec/controllers/content_blocks_controller_spec.rb +4 -4
- data/spec/controllers/dashboard_controller_spec.rb +12 -12
- data/spec/controllers/depositors_controller_spec.rb +8 -8
- data/spec/controllers/downloads_controller_spec.rb +10 -11
- data/spec/controllers/featured_work_lists_controller_spec.rb +4 -4
- data/spec/controllers/featured_works_controller_spec.rb +11 -12
- data/spec/controllers/generic_files_controller_spec.rb +154 -125
- data/spec/controllers/homepage_controller_spec.rb +22 -15
- data/spec/controllers/mailbox_controller_spec.rb +20 -36
- data/spec/controllers/my/collections_controller_spec.rb +4 -5
- data/spec/controllers/my/files_controller_spec.rb +10 -11
- data/spec/controllers/my/highlights_controller_spec.rb +4 -5
- data/spec/controllers/my/shares_controller_spec.rb +12 -14
- data/spec/controllers/my_controller_spec.rb +1 -3
- data/spec/controllers/pages_controller_spec.rb +4 -4
- data/spec/controllers/single_use_links_controller_spec.rb +1 -3
- data/spec/controllers/single_use_links_viewer_controller_spec.rb +1 -2
- data/spec/controllers/static_controller_spec.rb +1 -1
- data/spec/controllers/tinymce_assets_controller_spec.rb +8 -9
- data/spec/controllers/transfers_controller_spec.rb +19 -19
- data/spec/controllers/users_controller_spec.rb +33 -35
- data/spec/factories/api_items.rb +2 -2
- data/spec/factories/content_blocks.rb +1 -1
- data/spec/factories/featured_works.rb +1 -1
- data/spec/factories/generic_files.rb +3 -3
- data/spec/factories/users.rb +7 -8
- data/spec/features/browse_dashboard_files_spec.rb +14 -18
- data/spec/features/browse_files_spec.rb +3 -4
- data/spec/features/catalog_search_spec.rb +3 -5
- data/spec/features/cloud_upload_spec.rb +2 -2
- data/spec/features/collection_spec.rb +21 -21
- data/spec/features/contact_form_spec.rb +10 -11
- data/spec/features/display_dashboard_spec.rb +5 -9
- data/spec/features/edit_file_spec.rb +8 -9
- data/spec/features/featured_item_spec.rb +1 -1
- data/spec/features/ingest_upload_files_spec.rb +5 -5
- data/spec/features/notifications_spec.rb +2 -6
- data/spec/features/ownership_transfer_spec.rb +2 -2
- data/spec/features/proxy_spec.rb +2 -2
- data/spec/features/search_spec.rb +3 -4
- data/spec/features/single_use_links_spec.rb +1 -1
- data/spec/features/users_spec.rb +4 -5
- data/spec/forms/collection_edit_form_spec.rb +2 -2
- data/spec/forms/generic_file_edit_form_spec.rb +6 -7
- data/spec/helpers/batch_edits_helper_spec.rb +9 -13
- data/spec/helpers/content_block_helper_spec.rb +3 -3
- data/spec/helpers/dashboard_helper_spec.rb +19 -24
- data/spec/helpers/generic_file_helper_spec.rb +5 -7
- data/spec/helpers/sufia_helper_spec.rb +43 -54
- data/spec/helpers/trophy_helper_spec.rb +5 -5
- data/spec/inputs/multi_value_with_help_input_spec.rb +1 -2
- data/spec/inputs/select_with_help_input_spec.rb +19 -15
- data/spec/javascripts/jasmine_spec.rb +4 -5
- data/spec/javascripts/support/jasmine_helper.rb +9 -9
- data/spec/jobs/active_fedora_id_based_job_spec.rb +7 -5
- data/spec/jobs/audit_job_spec.rb +7 -7
- data/spec/jobs/batch_update_job_spec.rb +5 -6
- data/spec/jobs/characterize_job_spec.rb +1 -1
- data/spec/jobs/content_depositor_change_event_job_spec.rb +1 -1
- data/spec/jobs/create_derivatives_job_spec.rb +5 -5
- data/spec/jobs/event_jobs_spec.rb +16 -16
- data/spec/jobs/import_url_job_spec.rb +36 -5
- data/spec/jobs/ingest_local_file_job_spec.rb +31 -20
- data/spec/jobs/sufia_resque_queue_spec.rb +1 -1
- data/spec/lib/sufia/analytics_spec.rb +0 -1
- data/spec/lib/sufia/arkivo/actor_spec.rb +6 -6
- data/spec/lib/sufia/arkivo/schema_validator_spec.rb +18 -18
- data/spec/lib/sufia/breadcrumbs_spec.rb +5 -6
- data/spec/lib/sufia/messages_spec.rb +11 -12
- data/spec/lib/sufia/readable_permissions_spec.rb +8 -10
- data/spec/lib/sufia/upload_complete_behavior_spec.rb +6 -7
- data/spec/lib/sufia/user_stat_importer_spec.rb +30 -33
- data/spec/lib/sufia/writable_permissions_spec.rb +1 -3
- data/spec/lib/sufia/zotero/config_spec.rb +4 -6
- data/spec/models/ability_spec.rb +11 -9
- data/spec/models/batch_spec.rb +13 -13
- data/spec/models/characterization_spec.rb +2 -3
- data/spec/models/checksum_audit_log_spec.rb +18 -19
- data/spec/models/collection_spec.rb +11 -12
- data/spec/models/content_block_spec.rb +33 -22
- data/spec/models/download_spec.rb +3 -5
- data/spec/models/featured_work_list_spec.rb +3 -3
- data/spec/models/featured_work_spec.rb +12 -14
- data/spec/models/file_content_datastream_spec.rb +9 -7
- data/spec/models/file_download_stat_spec.rb +34 -40
- data/spec/models/file_usage_spec.rb +46 -52
- data/spec/models/file_view_stat_spec.rb +35 -41
- data/spec/models/fits_datastream_spec.rb +23 -25
- data/spec/models/generic_file/visibility_spec.rb +10 -5
- data/spec/models/generic_file_spec.rb +86 -88
- data/spec/models/geo_names_resource_spec.rb +3 -5
- data/spec/models/local_authority_spec.rb +30 -33
- data/spec/models/pageview_spec.rb +3 -3
- data/spec/models/proxy_deposit_request_spec.rb +3 -3
- data/spec/models/single_use_link_spec.rb +36 -36
- data/spec/models/solr_document_spec.rb +3 -6
- data/spec/models/trophy_spec.rb +8 -9
- data/spec/models/user_mailbox_spec.rb +62 -0
- data/spec/models/user_spec.rb +28 -29
- data/spec/presenters/presenter_renderer_spec.rb +1 -1
- data/spec/presenters/sufia/generic_file_presenter_spec.rb +5 -5
- data/spec/presenters/sufia/version_list_presenter_spec.rb +2 -2
- data/spec/presenters/sufia/version_presenter_spec.rb +1 -1
- data/spec/routing/featured_works_route_spec.rb +4 -4
- data/spec/routing/ownership_transfers_route_spec.rb +1 -1
- data/spec/routing/route_spec.rb +89 -89
- data/spec/services/generic_file_audit_service_spec.rb +8 -8
- data/spec/services/repository_audit_service_spec.rb +7 -3
- data/spec/spec_helper.rb +5 -4
- data/spec/support/features/session_helpers.rb +1 -1
- data/spec/support/input_support.rb +1 -2
- data/spec/support/rake.rb +1 -1
- data/spec/support/selectors.rb +1 -6
- data/spec/support/statistic_helper.rb +1 -1
- data/spec/support/uploaded_file_monkeypatch.rb +1 -1
- data/spec/tasks/rake_spec.rb +3 -5
- data/spec/views/admin/stats/index.html.erb_spec.rb +16 -16
- data/spec/views/batch/edit.html.erb_spec.rb +1 -3
- data/spec/views/batch_edits/check_all_spec.rb +5 -5
- data/spec/views/batch_edits/edit.html.erb_spec.rb +1 -3
- data/spec/views/catalog/index.html.erb_spec.rb +1 -3
- data/spec/views/catalog/sort_and_per_page.html.erb_spec.rb +4 -5
- data/spec/views/collections/_form.html.erb_spec.rb +5 -3
- data/spec/views/collections/_show_descriptions.html.erb_spec.rb +7 -8
- data/spec/views/collections/_show_document_list.erb_spec.rb +4 -6
- data/spec/views/dashboard/index_spec.rb +14 -21
- data/spec/views/generic_file/_browse_everything.html.erb_spec.rb +2 -2
- data/spec/views/generic_file/_permission_form.html.erb_spec.rb +8 -9
- data/spec/views/generic_file/edit.html.erb_spec.rb +7 -7
- data/spec/views/generic_file/show.html.erb_spec.rb +24 -25
- data/spec/views/generic_file/stats.html.erb_spec.rb +19 -19
- data/spec/views/homepage/_announcement.html.erb_spec.rb +51 -0
- data/spec/views/homepage/_featured_works.html.erb_spec.rb +5 -9
- data/spec/views/homepage/_home_header.html.erb_spec.rb +2 -2
- data/spec/views/my/facet.html.erb_spec.rb +4 -4
- data/spec/views/single_use_links/new_download.html.erb_spec.rb +28 -0
- data/spec/views/single_use_links_viewer/show.html.erb_spec.rb +29 -0
- data/spec/views/users/_follower_modal.html.erb_spec.rb +7 -8
- data/spec/views/users/_following_modal.html.erb_spec.rb +4 -5
- data/spec/views/users/_notify_number.html.erb_spec.rb +2 -5
- data/spec/views/users/_user_util_links.html.erb_spec.rb +5 -8
- data/spec/views/users/index.html.erb_spec.rb +4 -6
- data/spec/views/users/show.html.erb_spec.rb +4 -7
- data/tasks/sufia-dev.rake +19 -3
- metadata +20 -5
@@ -1,12 +1,12 @@
|
|
1
1
|
module Sufia
|
2
2
|
module SufiaHelperBehavior
|
3
|
-
def orcid_label(style_class='')
|
4
|
-
"#{image_tag 'orcid.png',
|
3
|
+
def orcid_label(style_class = '')
|
4
|
+
"#{image_tag 'orcid.png', alt: t('sufia.user_profile.orcid.alt'), class: style_class} #{t('sufia.user_profile.orcid.label')}".html_safe
|
5
5
|
end
|
6
6
|
|
7
|
-
def zotero_label(opts={})
|
7
|
+
def zotero_label(opts = {})
|
8
8
|
html_class = opts[:html_class] || ''
|
9
|
-
"#{image_tag 'zotero.png',
|
9
|
+
"#{image_tag 'zotero.png', alt: t('sufia.user_profile.zotero.alt'), class: html_class} #{t('sufia.user_profile.zotero.label')}".html_safe
|
10
10
|
end
|
11
11
|
|
12
12
|
def zotero_profile_url(zotero_user_id)
|
@@ -14,7 +14,7 @@ module Sufia
|
|
14
14
|
end
|
15
15
|
|
16
16
|
def error_messages_for(object)
|
17
|
-
if object.try(:errors)
|
17
|
+
if object.try(:errors) && object.errors.full_messages.any?
|
18
18
|
content_tag(:div, class: 'alert alert-block alert-error validation-errors') do
|
19
19
|
content_tag(:h4, I18n.t('sufia.errors.header', model: object.class.model_name.human.downcase), class: 'alert-heading') +
|
20
20
|
content_tag(:ul) do
|
@@ -41,7 +41,7 @@ module Sufia
|
|
41
41
|
# config.index.thumbnail_method = :sufia_thumbnail_tag
|
42
42
|
def sufia_thumbnail_tag(document, options)
|
43
43
|
# collection
|
44
|
-
if
|
44
|
+
if document.collection?
|
45
45
|
content_tag(:span, "", class: "glyphicon glyphicon-th collection-icon-search")
|
46
46
|
|
47
47
|
# file
|
@@ -54,7 +54,7 @@ module Sufia
|
|
54
54
|
else
|
55
55
|
"default.png"
|
56
56
|
end
|
57
|
-
options[:alt] = "
|
57
|
+
options[:alt] = ""
|
58
58
|
image_tag path, options
|
59
59
|
end
|
60
60
|
end
|
@@ -83,7 +83,9 @@ module Sufia
|
|
83
83
|
|
84
84
|
def display_user_name(recent_document)
|
85
85
|
return "no display name" unless recent_document.depositor
|
86
|
-
::User.find_by_user_key(recent_document.depositor).name
|
86
|
+
::User.find_by_user_key(recent_document.depositor).name
|
87
|
+
rescue
|
88
|
+
recent_document.depositor
|
87
89
|
end
|
88
90
|
|
89
91
|
def number_of_deposits(user)
|
@@ -98,14 +100,14 @@ module Sufia
|
|
98
100
|
# @param solr_field [String] The name of the solr field to link to without its suffix (:facetable)
|
99
101
|
# @param empty_message [String] ('No value entered') The message to display if no values are passed in.
|
100
102
|
# @param separator [String] (', ') The value to join with.
|
101
|
-
def link_to_facet_list(values, solr_field, empty_message="No value entered", separator=", ")
|
103
|
+
def link_to_facet_list(values, solr_field, empty_message = "No value entered", separator = ", ")
|
102
104
|
return empty_message if values.blank?
|
103
105
|
facet_field = Solrizer.solr_name(solr_field, :facetable)
|
104
|
-
safe_join(values.map{ |item| link_to_facet(item, facet_field) }, separator)
|
106
|
+
safe_join(values.map { |item| link_to_facet(item, facet_field) }, separator)
|
105
107
|
end
|
106
108
|
|
107
109
|
def link_to_field(fieldname, fieldvalue, displayvalue = nil)
|
108
|
-
p = { search_field: 'advanced', fieldname => '"'+fieldvalue+'"' }
|
110
|
+
p = { search_field: 'advanced', fieldname => '"' + fieldvalue + '"' }
|
109
111
|
link_url = catalog_index_path(p)
|
110
112
|
display = displayvalue.blank? ? fieldvalue : displayvalue
|
111
113
|
link_to(display, link_url)
|
@@ -165,12 +167,12 @@ module Sufia
|
|
165
167
|
end
|
166
168
|
end
|
167
169
|
|
168
|
-
def render_visibility_link
|
169
|
-
link_to render_visibility_label(document), sufia.edit_generic_file_path(document,
|
170
|
-
|
170
|
+
def render_visibility_link(document)
|
171
|
+
link_to render_visibility_label(document), sufia.edit_generic_file_path(document, anchor: "permissions_display"),
|
172
|
+
id: "permission_" + document.id, class: "visibility-link"
|
171
173
|
end
|
172
174
|
|
173
|
-
def render_visibility_label
|
175
|
+
def render_visibility_label(document)
|
174
176
|
if document.registered?
|
175
177
|
content_tag :span, t('sufia.institution_name'), class: "label label-info", title: t('sufia.institution_name')
|
176
178
|
elsif document.public?
|
@@ -189,20 +191,19 @@ module Sufia
|
|
189
191
|
|
190
192
|
private
|
191
193
|
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
194
|
+
def search_action_for_dashboard
|
195
|
+
case params[:controller]
|
196
|
+
when "my/files"
|
197
|
+
sufia.dashboard_files_path
|
198
|
+
when "my/collections"
|
199
|
+
sufia.dashboard_collections_path
|
200
|
+
when "my/shares"
|
201
|
+
sufia.dashboard_shares_path
|
202
|
+
when "my/highlights"
|
203
|
+
sufia.dashboard_highlights_path
|
204
|
+
else
|
205
|
+
sufia.dashboard_files_path
|
206
|
+
end
|
204
207
|
end
|
205
|
-
end
|
206
|
-
|
207
208
|
end
|
208
209
|
end
|
@@ -1,20 +1,20 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module TrophyHelper
|
3
|
-
|
4
|
-
|
5
|
-
|
3
|
+
def display_trophy_link(user, id, args = {}, &_block)
|
4
|
+
trophy = user.trophies.where(generic_file_id: id).first
|
5
|
+
trophyclass = trophy ? "trophy-on" : "trophy-off"
|
6
6
|
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
7
|
+
args[:add_text] ||= "Highlight File on Profile"
|
8
|
+
args[:remove_text] ||= "Unhighlight File"
|
9
|
+
text = trophy ? args[:remove_text] : args[:add_text]
|
10
|
+
args[:class] = [args[:class], "trophy-class #{trophyclass}"].compact.join(' ')
|
11
|
+
args[:data] ||= {}
|
12
|
+
args[:data]['add-text'] = args[:add_text]
|
13
|
+
args[:data]['remove-text'] = args[:remove_text]
|
14
14
|
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
15
|
+
args[:data][:url] = sufia.trophy_profile_path(user, file_id: id)
|
16
|
+
link_to '#', class: args[:class], data: args[:data] do
|
17
|
+
yield(text)
|
18
|
+
end
|
19
|
+
end
|
20
20
|
end
|
@@ -1,12 +1,13 @@
|
|
1
1
|
class SelectWithModalHelpInput < MultiValueWithHelpInput
|
2
2
|
def link_to_help
|
3
3
|
template.link_to "##{attribute_name}Modal", id: "#{input_class}_help_modal", rel: 'button',
|
4
|
-
|
4
|
+
data: { toggle: 'modal' }, 'aria-label' => aria_label do
|
5
5
|
help_icon
|
6
6
|
end
|
7
7
|
end
|
8
8
|
|
9
9
|
private
|
10
|
+
|
10
11
|
def select_options
|
11
12
|
@select_options ||= begin
|
12
13
|
collection = options.delete(:collection) || self.class.boolean_collection
|
@@ -14,7 +15,7 @@ class SelectWithModalHelpInput < MultiValueWithHelpInput
|
|
14
15
|
end
|
15
16
|
end
|
16
17
|
|
17
|
-
def build_field(value,
|
18
|
+
def build_field(value, _index)
|
18
19
|
html_options = input_html_options.dup
|
19
20
|
|
20
21
|
if @rendered_first_element
|
@@ -32,5 +33,4 @@ class SelectWithModalHelpInput < MultiValueWithHelpInput
|
|
32
33
|
html_options.merge!(options.slice(:include_blank))
|
33
34
|
template.select_tag(attribute_name, template.options_for_select(select_options, value), html_options)
|
34
35
|
end
|
35
|
-
|
36
36
|
end
|
@@ -4,23 +4,23 @@ module WithHelpIcon
|
|
4
4
|
end
|
5
5
|
|
6
6
|
protected
|
7
|
+
|
7
8
|
def link_to_help
|
8
9
|
template.link_to '#', id: "#{input_class}_help", rel: 'popover'.freeze,
|
9
|
-
|
10
|
-
|
10
|
+
'data-content' => metadata_help, 'data-original-title' => raw_label_text,
|
11
|
+
'aria-label' => aria_label do
|
11
12
|
help_icon
|
12
13
|
end
|
13
14
|
end
|
14
15
|
|
15
16
|
def help_icon
|
16
|
-
template.content_tag 'i', nil,
|
17
|
+
template.content_tag 'i', nil, "aria-hidden" => true, class: "help-icon"
|
17
18
|
end
|
18
19
|
|
19
20
|
def metadata_help
|
20
21
|
translate_from_namespace(:metadata_help) || attribute_name.to_s.humanize
|
21
22
|
end
|
22
23
|
|
23
|
-
|
24
24
|
def aria_label
|
25
25
|
translate_from_namespace(:aria_label) || default_aria_label
|
26
26
|
end
|
@@ -1,5 +1,4 @@
|
|
1
1
|
class ContentDepositorChangeEventJob < EventJob
|
2
|
-
|
3
2
|
def queue_name
|
4
3
|
:proxy_deposit
|
5
4
|
end
|
@@ -9,7 +8,7 @@ class ContentDepositorChangeEventJob < EventJob
|
|
9
8
|
# @param [String] id identifier of the file to be transfered
|
10
9
|
# @param [String] login the user key of the user the file is being transfered to.
|
11
10
|
# @param [Boolean] reset (false) should the access controls be reset. This means revoking edit access from the depositor
|
12
|
-
def initialize(id, login, reset=false)
|
11
|
+
def initialize(id, login, reset = false)
|
13
12
|
self.id = id
|
14
13
|
self.login = login
|
15
14
|
self.reset = reset
|
data/app/jobs/event_job.rb
CHANGED
@@ -68,7 +68,7 @@ module Sufia
|
|
68
68
|
end
|
69
69
|
|
70
70
|
def file_format
|
71
|
-
|
71
|
+
Array(self[Solrizer.solr_name('file_format')]).first
|
72
72
|
end
|
73
73
|
|
74
74
|
def creator
|
@@ -102,6 +102,5 @@ module Sufia
|
|
102
102
|
def collection?
|
103
103
|
hydra_model == 'Collection'
|
104
104
|
end
|
105
|
-
|
106
105
|
end
|
107
106
|
end
|
data/app/models/contact_form.rb
CHANGED
@@ -2,12 +2,12 @@ require 'mail_form'
|
|
2
2
|
|
3
3
|
class ContactForm < MailForm::Base
|
4
4
|
ISSUE_TYPES = [
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
5
|
+
["Depositing content", "Depositing content"],
|
6
|
+
["Making changes to my content", "Making changes to my content"],
|
7
|
+
["Browsing and searching", "Browsing and searching"],
|
8
|
+
["Reporting a problem", "Reporting a problem"],
|
9
|
+
["General inquiry or request", "General inquiry or request"]
|
10
|
+
]
|
11
11
|
attribute :contact_method, captcha: true
|
12
12
|
attribute :category, validate: true
|
13
13
|
attribute :name, validate: true
|
data/app/models/content_block.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
class ContentBlock < ActiveRecord::Base
|
2
|
-
|
3
2
|
MARKETING = 'marketing_text'
|
4
3
|
RESEARCHER = 'featured_researcher'
|
4
|
+
ANNOUNCEMENT = 'announcement_text'
|
5
5
|
|
6
6
|
def self.recent_researchers
|
7
7
|
where(name: RESEARCHER).order('created_at DESC')
|
@@ -18,5 +18,4 @@ class ContentBlock < ActiveRecord::Base
|
|
18
18
|
def external_key_name
|
19
19
|
self.class.external_keys.fetch(name) { 'External Key' }
|
20
20
|
end
|
21
|
-
|
22
21
|
end
|
@@ -21,11 +21,10 @@ class FeaturedWorkList
|
|
21
21
|
end
|
22
22
|
end
|
23
23
|
|
24
|
-
|
25
|
-
featured_works.empty?
|
26
|
-
end
|
24
|
+
delegate :empty?, to: :featured_works
|
27
25
|
|
28
26
|
private
|
27
|
+
|
29
28
|
def add_solr_document_to_works
|
30
29
|
solr_docs.each do |doc|
|
31
30
|
work_with_id(doc['id']).generic_file_solr_document = SolrDocument.new(doc)
|
@@ -41,7 +40,6 @@ class FeaturedWorkList
|
|
41
40
|
end
|
42
41
|
|
43
42
|
def work_with_id(id)
|
44
|
-
@works.find { |w| w.generic_file_id == id}
|
43
|
+
@works.find { |w| w.generic_file_id == id }
|
45
44
|
end
|
46
|
-
|
47
45
|
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
class UserMailbox
|
2
|
+
attr_reader :user
|
3
|
+
|
4
|
+
def initialize(user)
|
5
|
+
@user = user
|
6
|
+
end
|
7
|
+
|
8
|
+
def inbox
|
9
|
+
messages = user.mailbox.inbox
|
10
|
+
messages.each { |m| m.mark_as_read(user) }
|
11
|
+
end
|
12
|
+
|
13
|
+
def delete_all
|
14
|
+
user.mailbox.inbox.each do |msg|
|
15
|
+
delete_message(msg)
|
16
|
+
end
|
17
|
+
empty_trash(user)
|
18
|
+
end
|
19
|
+
|
20
|
+
def destroy(message_id)
|
21
|
+
msg = Mailboxer::Conversation.find(message_id)
|
22
|
+
return "You do not have privileges to delete the notification..." unless msg.participants.include? user
|
23
|
+
delete_message(msg)
|
24
|
+
empty_trash(msg.participants[0])
|
25
|
+
nil
|
26
|
+
end
|
27
|
+
|
28
|
+
private
|
29
|
+
|
30
|
+
def delete_message(msg)
|
31
|
+
msg.move_to_trash(msg.participants[0])
|
32
|
+
msg.move_to_trash(msg.participants[1])
|
33
|
+
end
|
34
|
+
|
35
|
+
def empty_trash(user)
|
36
|
+
user.mailbox.trash.each do |conv|
|
37
|
+
conv.messages.each do |notify|
|
38
|
+
notify.receipts.each(&:delete)
|
39
|
+
notify.delete
|
40
|
+
end
|
41
|
+
conv.delete
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -19,12 +19,12 @@ module Sufia
|
|
19
19
|
|
20
20
|
def [](key)
|
21
21
|
case key
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
22
|
+
when :size
|
23
|
+
size
|
24
|
+
when :total_items
|
25
|
+
total_items
|
26
|
+
else
|
27
|
+
super
|
28
28
|
end
|
29
29
|
end
|
30
30
|
|
@@ -35,7 +35,5 @@ module Sufia
|
|
35
35
|
def total_items
|
36
36
|
model.members.count
|
37
37
|
end
|
38
|
-
|
39
38
|
end
|
40
39
|
end
|
41
|
-
|
@@ -4,7 +4,7 @@ module Sufia
|
|
4
4
|
self.model_class = ::GenericFile
|
5
5
|
# Terms is the list of fields displayed by app/views/generic_files/_show_descriptions.html.erb
|
6
6
|
self.terms = [:resource_type, :title, :creator, :contributor, :description, :tag, :rights,
|
7
|
-
|
7
|
+
:publisher, :date_created, :subject, :language, :identifier, :based_near, :related_url]
|
8
8
|
|
9
9
|
# Depositor and permissions are not displayed in app/views/generic_files/_show_descriptions.html.erb
|
10
10
|
# so don't include them in `terms'.
|
@@ -22,7 +22,7 @@ module Sufia
|
|
22
22
|
# Add a schema.org itemtype
|
23
23
|
def itemtype
|
24
24
|
# Look up the first non-empty resource type value in a hash from the config
|
25
|
-
Sufia.config.resource_types_to_schema[resource_type.to_a.reject
|
25
|
+
Sufia.config.resource_types_to_schema[resource_type.to_a.reject(&:empty?).first] || 'http://schema.org/CreativeWork'
|
26
26
|
rescue
|
27
27
|
'http://schema.org/CreativeWork'
|
28
28
|
end
|
@@ -7,7 +7,7 @@ module Sufia
|
|
7
7
|
@view_context = view_context
|
8
8
|
end
|
9
9
|
|
10
|
-
def value(field_name, locals={})
|
10
|
+
def value(field_name, locals = {})
|
11
11
|
render_show_field_partial(field_name, locals)
|
12
12
|
end
|
13
13
|
|
@@ -15,7 +15,7 @@ module Sufia
|
|
15
15
|
t(:"#{model_name.param_key}.#{field}", scope: label_scope, default: field.to_s.humanize).presence
|
16
16
|
end
|
17
17
|
|
18
|
-
def fields(terms, &
|
18
|
+
def fields(terms, &_block)
|
19
19
|
@view_context.safe_join(terms.map { |term| yield self, term })
|
20
20
|
end
|
21
21
|
|
@@ -9,7 +9,7 @@ module Sufia
|
|
9
9
|
private
|
10
10
|
|
11
11
|
def wrapped_list
|
12
|
-
@wrapped_list ||= @raw_list.map { |v| Sufia::VersionPresenter.new(v) }.sort { |a,b| b.version.created <=> a.version.created }.tap { |l| l.first.try(:current!) }
|
12
|
+
@wrapped_list ||= @raw_list.map { |v| Sufia::VersionPresenter.new(v) }.sort { |a, b| b.version.created <=> a.version.created }.tap { |l| l.first.try(:current!) }
|
13
13
|
end
|
14
14
|
end
|
15
15
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module Sufia
|
2
2
|
class VersionPresenter
|
3
|
-
attr_reader :version
|
3
|
+
attr_reader :version, :current
|
4
4
|
|
5
5
|
def initialize(version)
|
6
6
|
@version = version
|
@@ -8,15 +8,12 @@ module Sufia
|
|
8
8
|
end
|
9
9
|
|
10
10
|
delegate :label, :uri, to: :version
|
11
|
+
alias_method :current?, :current
|
11
12
|
|
12
13
|
def current!
|
13
14
|
@current = true
|
14
15
|
end
|
15
16
|
|
16
|
-
def current?
|
17
|
-
@current
|
18
|
-
end
|
19
|
-
|
20
17
|
def created
|
21
18
|
@created ||= version.created.to_time.to_formatted_s(:long_ordinal)
|
22
19
|
@created
|
@@ -24,7 +21,7 @@ module Sufia
|
|
24
21
|
|
25
22
|
def committer
|
26
23
|
vc = VersionCommitter.where(version_id: @version.uri)
|
27
|
-
|
24
|
+
vc.empty? ? nil : vc.first.committer_login
|
28
25
|
end
|
29
26
|
end
|
30
27
|
end
|