sufia 6.2.0 → 6.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop.yml +146 -0
  3. data/.travis.yml +4 -7
  4. data/Gemfile +2 -0
  5. data/History.md +29 -1
  6. data/README.md +25 -9
  7. data/SUFIA_VERSION +1 -1
  8. data/app/assets/stylesheets/sufia/_collections.scss +15 -0
  9. data/app/assets/stylesheets/sufia/_file-listing.scss +7 -0
  10. data/app/assets/stylesheets/sufia/_home-page.scss +10 -0
  11. data/app/builders/sufia/bootstrap_breadcrumbs_builder.rb +3 -5
  12. data/app/controllers/admin/stats_controller.rb +1 -76
  13. data/app/controllers/api/items_controller.rb +4 -6
  14. data/app/controllers/api/zotero_controller.rb +5 -5
  15. data/app/controllers/authorities_controller.rb +5 -1
  16. data/app/controllers/batch_edits_controller.rb +3 -3
  17. data/app/controllers/concerns/sufia/admin/depositor_stats.rb +41 -0
  18. data/app/controllers/concerns/sufia/admin/stats_behavior.rb +94 -0
  19. data/app/controllers/concerns/sufia/batch_controller_behavior.rb +16 -18
  20. data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +54 -56
  21. data/app/controllers/concerns/sufia/breadcrumbs.rb +3 -6
  22. data/app/controllers/concerns/sufia/collections_controller_behavior.rb +39 -39
  23. data/app/controllers/concerns/sufia/controller.rb +10 -10
  24. data/app/controllers/concerns/sufia/dashboard_controller_behavior.rb +17 -18
  25. data/app/controllers/concerns/sufia/depositors_controller_behavior.rb +9 -12
  26. data/app/controllers/concerns/sufia/files_controller/browse_everything.rb +6 -7
  27. data/app/controllers/concerns/sufia/files_controller/local_ingest_behavior.rb +39 -40
  28. data/app/controllers/concerns/sufia/files_controller/upload_complete_behavior.rb +1 -1
  29. data/app/controllers/concerns/sufia/files_controller_behavior.rb +109 -110
  30. data/app/controllers/concerns/sufia/homepage_controller.rb +8 -8
  31. data/app/controllers/concerns/sufia/my_controller_behavior.rb +13 -10
  32. data/app/controllers/concerns/sufia/single_use_links_controller_behavior.rb +11 -14
  33. data/app/controllers/concerns/sufia/single_use_links_viewer_controller_behavior.rb +27 -21
  34. data/app/controllers/concerns/sufia/transfers_controller_behavior.rb +17 -17
  35. data/app/controllers/concerns/sufia/users_controller_behavior.rb +54 -54
  36. data/app/controllers/contact_form_controller.rb +1 -1
  37. data/app/controllers/content_blocks_controller.rb +11 -12
  38. data/app/controllers/directory_controller.rb +2 -3
  39. data/app/controllers/featured_work_lists_controller.rb +1 -1
  40. data/app/controllers/featured_works_controller.rb +2 -4
  41. data/app/controllers/homepage_controller.rb +1 -2
  42. data/app/controllers/mailbox_controller.rb +12 -32
  43. data/app/controllers/my/collections_controller.rb +3 -4
  44. data/app/controllers/my/files_controller.rb +4 -6
  45. data/app/controllers/my/highlights_controller.rb +4 -6
  46. data/app/controllers/my/shares_controller.rb +3 -5
  47. data/app/controllers/pages_controller.rb +1 -3
  48. data/app/controllers/single_use_links_controller.rb +0 -1
  49. data/app/controllers/single_use_links_viewer_controller.rb +0 -1
  50. data/app/controllers/static_controller.rb +1 -0
  51. data/app/forms/sufia/forms/collection_edit_form.rb +2 -2
  52. data/app/helpers/batch_edits_helper.rb +1 -3
  53. data/app/helpers/content_block_helper.rb +7 -8
  54. data/app/helpers/generic_file_helper.rb +23 -24
  55. data/app/helpers/sufia/blacklight_override.rb +6 -7
  56. data/app/helpers/sufia/dashboard_helper_behavior.rb +4 -7
  57. data/app/helpers/sufia/permissions_helper.rb +3 -4
  58. data/app/helpers/sufia/sufia_helper_behavior.rb +30 -29
  59. data/app/helpers/trophy_helper.rb +15 -15
  60. data/app/inputs/select_with_modal_help_input.rb +3 -3
  61. data/app/inputs/with_help_icon.rb +4 -4
  62. data/app/jobs/content_delete_event_job.rb +0 -1
  63. data/app/jobs/content_depositor_change_event_job.rb +1 -2
  64. data/app/jobs/event_job.rb +0 -1
  65. data/app/jobs/user_unfollow_event_job.rb +1 -0
  66. data/app/models/concerns/sufia/solr_document_behavior.rb +1 -2
  67. data/app/models/contact_form.rb +6 -6
  68. data/app/models/content_block.rb +1 -2
  69. data/app/models/featured_work_list.rb +3 -5
  70. data/app/models/user_mailbox.rb +44 -0
  71. data/app/presenters/sufia/collection_presenter.rb +6 -8
  72. data/app/presenters/sufia/generic_file_presenter.rb +2 -2
  73. data/app/presenters/sufia/presenter_renderer.rb +2 -2
  74. data/app/presenters/sufia/version_list_presenter.rb +1 -1
  75. data/app/presenters/sufia/version_presenter.rb +3 -6
  76. data/app/search_builders/deposit_search_builder.rb +19 -0
  77. data/app/search_builders/sufia/my_search_builder_behavior.rb +1 -2
  78. data/app/search_builders/sufia/search_builder.rb +1 -3
  79. data/app/uploaders/tinymce_asset_uploader.rb +0 -2
  80. data/app/views/_controls.html.erb +5 -5
  81. data/app/views/admin/stats/_deposits.html.erb +19 -0
  82. data/app/views/admin/stats/index.html.erb +2 -0
  83. data/app/views/batch_edits/edit.html.erb +2 -2
  84. data/app/views/collections/_edit_actions.html.erb +3 -3
  85. data/app/views/collections/_form_for_select_collection.html.erb +2 -2
  86. data/app/views/collections/_sort_and_per_page.html.erb +12 -9
  87. data/app/views/collections/_view_type_group.html.erb +1 -1
  88. data/app/views/collections/edit.html.erb +5 -5
  89. data/app/views/collections/show.html.erb +7 -6
  90. data/app/views/homepage/_announcement.html.erb +5 -0
  91. data/app/views/homepage/_home.html.erb +1 -0
  92. data/app/views/my/_sort_and_per_page.html.erb +14 -10
  93. data/app/views/my/index.html.erb +1 -1
  94. data/app/views/pages/show.html.erb +0 -2
  95. data/app/views/single_use_links/new_download.html.erb +1 -1
  96. data/app/views/single_use_links_viewer/show.html.erb +1 -1
  97. data/app/views/users/_notify_link.html.erb +1 -1
  98. data/app/views/users/_notify_number.html.erb +2 -2
  99. data/config/initializers/simple_form.rb +1 -1
  100. data/config/initializers/simple_form_bootstrap.rb +1 -1
  101. data/config/locales/sufia.en.yml +4 -0
  102. data/config/routes.rb +2 -3
  103. data/lib/generators/sufia/admin_stat_generator.rb +0 -3
  104. data/lib/generators/sufia/install_generator.rb +8 -9
  105. data/lib/generators/sufia/templates/catalog_controller.rb +2 -3
  106. data/lib/generators/sufia/templates/config/action_dispatch_http_upload_monkey_patch.rb +1 -0
  107. data/lib/generators/sufia/upgrade400_generator.rb +9 -9
  108. data/lib/generators/sufia/upgrade600_generator.rb +1 -4
  109. data/lib/sufia.rb +2 -2
  110. data/lib/sufia/arkivo/actor.rb +1 -1
  111. data/lib/sufia/arkivo/create_subscription_job.rb +30 -30
  112. data/lib/sufia/arkivo/metadata_munger.rb +7 -7
  113. data/lib/sufia/arkivo/schema_validator.rb +1 -1
  114. data/lib/sufia/single_use_error.rb +0 -1
  115. data/lib/sufia/version.rb +1 -1
  116. data/lib/sufia/zotero/config.rb +13 -13
  117. data/spec/actors/generic_file/actor_spec.rb +17 -18
  118. data/spec/controllers/admin_stats_controller_spec.rb +56 -5
  119. data/spec/controllers/api/zotero_controller_spec.rb +10 -9
  120. data/spec/controllers/authorities_controller_spec.rb +8 -8
  121. data/spec/controllers/batch_controller_spec.rb +19 -20
  122. data/spec/controllers/batch_edits_controller_spec.rb +8 -9
  123. data/spec/controllers/catalog_controller_spec.rb +7 -9
  124. data/spec/controllers/collections_controller_spec.rb +30 -32
  125. data/spec/controllers/content_blocks_controller_spec.rb +4 -4
  126. data/spec/controllers/dashboard_controller_spec.rb +12 -12
  127. data/spec/controllers/depositors_controller_spec.rb +8 -8
  128. data/spec/controllers/downloads_controller_spec.rb +10 -11
  129. data/spec/controllers/featured_work_lists_controller_spec.rb +4 -4
  130. data/spec/controllers/featured_works_controller_spec.rb +11 -12
  131. data/spec/controllers/generic_files_controller_spec.rb +154 -125
  132. data/spec/controllers/homepage_controller_spec.rb +22 -15
  133. data/spec/controllers/mailbox_controller_spec.rb +20 -36
  134. data/spec/controllers/my/collections_controller_spec.rb +4 -5
  135. data/spec/controllers/my/files_controller_spec.rb +10 -11
  136. data/spec/controllers/my/highlights_controller_spec.rb +4 -5
  137. data/spec/controllers/my/shares_controller_spec.rb +12 -14
  138. data/spec/controllers/my_controller_spec.rb +1 -3
  139. data/spec/controllers/pages_controller_spec.rb +4 -4
  140. data/spec/controllers/single_use_links_controller_spec.rb +1 -3
  141. data/spec/controllers/single_use_links_viewer_controller_spec.rb +1 -2
  142. data/spec/controllers/static_controller_spec.rb +1 -1
  143. data/spec/controllers/tinymce_assets_controller_spec.rb +8 -9
  144. data/spec/controllers/transfers_controller_spec.rb +19 -19
  145. data/spec/controllers/users_controller_spec.rb +33 -35
  146. data/spec/factories/api_items.rb +2 -2
  147. data/spec/factories/content_blocks.rb +1 -1
  148. data/spec/factories/featured_works.rb +1 -1
  149. data/spec/factories/generic_files.rb +3 -3
  150. data/spec/factories/users.rb +7 -8
  151. data/spec/features/browse_dashboard_files_spec.rb +14 -18
  152. data/spec/features/browse_files_spec.rb +3 -4
  153. data/spec/features/catalog_search_spec.rb +3 -5
  154. data/spec/features/cloud_upload_spec.rb +2 -2
  155. data/spec/features/collection_spec.rb +21 -21
  156. data/spec/features/contact_form_spec.rb +10 -11
  157. data/spec/features/display_dashboard_spec.rb +5 -9
  158. data/spec/features/edit_file_spec.rb +8 -9
  159. data/spec/features/featured_item_spec.rb +1 -1
  160. data/spec/features/ingest_upload_files_spec.rb +5 -5
  161. data/spec/features/notifications_spec.rb +2 -6
  162. data/spec/features/ownership_transfer_spec.rb +2 -2
  163. data/spec/features/proxy_spec.rb +2 -2
  164. data/spec/features/search_spec.rb +3 -4
  165. data/spec/features/single_use_links_spec.rb +1 -1
  166. data/spec/features/users_spec.rb +4 -5
  167. data/spec/forms/collection_edit_form_spec.rb +2 -2
  168. data/spec/forms/generic_file_edit_form_spec.rb +6 -7
  169. data/spec/helpers/batch_edits_helper_spec.rb +9 -13
  170. data/spec/helpers/content_block_helper_spec.rb +3 -3
  171. data/spec/helpers/dashboard_helper_spec.rb +19 -24
  172. data/spec/helpers/generic_file_helper_spec.rb +5 -7
  173. data/spec/helpers/sufia_helper_spec.rb +43 -54
  174. data/spec/helpers/trophy_helper_spec.rb +5 -5
  175. data/spec/inputs/multi_value_with_help_input_spec.rb +1 -2
  176. data/spec/inputs/select_with_help_input_spec.rb +19 -15
  177. data/spec/javascripts/jasmine_spec.rb +4 -5
  178. data/spec/javascripts/support/jasmine_helper.rb +9 -9
  179. data/spec/jobs/active_fedora_id_based_job_spec.rb +7 -5
  180. data/spec/jobs/audit_job_spec.rb +7 -7
  181. data/spec/jobs/batch_update_job_spec.rb +5 -6
  182. data/spec/jobs/characterize_job_spec.rb +1 -1
  183. data/spec/jobs/content_depositor_change_event_job_spec.rb +1 -1
  184. data/spec/jobs/create_derivatives_job_spec.rb +5 -5
  185. data/spec/jobs/event_jobs_spec.rb +16 -16
  186. data/spec/jobs/import_url_job_spec.rb +36 -5
  187. data/spec/jobs/ingest_local_file_job_spec.rb +31 -20
  188. data/spec/jobs/sufia_resque_queue_spec.rb +1 -1
  189. data/spec/lib/sufia/analytics_spec.rb +0 -1
  190. data/spec/lib/sufia/arkivo/actor_spec.rb +6 -6
  191. data/spec/lib/sufia/arkivo/schema_validator_spec.rb +18 -18
  192. data/spec/lib/sufia/breadcrumbs_spec.rb +5 -6
  193. data/spec/lib/sufia/messages_spec.rb +11 -12
  194. data/spec/lib/sufia/readable_permissions_spec.rb +8 -10
  195. data/spec/lib/sufia/upload_complete_behavior_spec.rb +6 -7
  196. data/spec/lib/sufia/user_stat_importer_spec.rb +30 -33
  197. data/spec/lib/sufia/writable_permissions_spec.rb +1 -3
  198. data/spec/lib/sufia/zotero/config_spec.rb +4 -6
  199. data/spec/models/ability_spec.rb +11 -9
  200. data/spec/models/batch_spec.rb +13 -13
  201. data/spec/models/characterization_spec.rb +2 -3
  202. data/spec/models/checksum_audit_log_spec.rb +18 -19
  203. data/spec/models/collection_spec.rb +11 -12
  204. data/spec/models/content_block_spec.rb +33 -22
  205. data/spec/models/download_spec.rb +3 -5
  206. data/spec/models/featured_work_list_spec.rb +3 -3
  207. data/spec/models/featured_work_spec.rb +12 -14
  208. data/spec/models/file_content_datastream_spec.rb +9 -7
  209. data/spec/models/file_download_stat_spec.rb +34 -40
  210. data/spec/models/file_usage_spec.rb +46 -52
  211. data/spec/models/file_view_stat_spec.rb +35 -41
  212. data/spec/models/fits_datastream_spec.rb +23 -25
  213. data/spec/models/generic_file/visibility_spec.rb +10 -5
  214. data/spec/models/generic_file_spec.rb +86 -88
  215. data/spec/models/geo_names_resource_spec.rb +3 -5
  216. data/spec/models/local_authority_spec.rb +30 -33
  217. data/spec/models/pageview_spec.rb +3 -3
  218. data/spec/models/proxy_deposit_request_spec.rb +3 -3
  219. data/spec/models/single_use_link_spec.rb +36 -36
  220. data/spec/models/solr_document_spec.rb +3 -6
  221. data/spec/models/trophy_spec.rb +8 -9
  222. data/spec/models/user_mailbox_spec.rb +62 -0
  223. data/spec/models/user_spec.rb +28 -29
  224. data/spec/presenters/presenter_renderer_spec.rb +1 -1
  225. data/spec/presenters/sufia/generic_file_presenter_spec.rb +5 -5
  226. data/spec/presenters/sufia/version_list_presenter_spec.rb +2 -2
  227. data/spec/presenters/sufia/version_presenter_spec.rb +1 -1
  228. data/spec/routing/featured_works_route_spec.rb +4 -4
  229. data/spec/routing/ownership_transfers_route_spec.rb +1 -1
  230. data/spec/routing/route_spec.rb +89 -89
  231. data/spec/services/generic_file_audit_service_spec.rb +8 -8
  232. data/spec/services/repository_audit_service_spec.rb +7 -3
  233. data/spec/spec_helper.rb +5 -4
  234. data/spec/support/features/session_helpers.rb +1 -1
  235. data/spec/support/input_support.rb +1 -2
  236. data/spec/support/rake.rb +1 -1
  237. data/spec/support/selectors.rb +1 -6
  238. data/spec/support/statistic_helper.rb +1 -1
  239. data/spec/support/uploaded_file_monkeypatch.rb +1 -1
  240. data/spec/tasks/rake_spec.rb +3 -5
  241. data/spec/views/admin/stats/index.html.erb_spec.rb +16 -16
  242. data/spec/views/batch/edit.html.erb_spec.rb +1 -3
  243. data/spec/views/batch_edits/check_all_spec.rb +5 -5
  244. data/spec/views/batch_edits/edit.html.erb_spec.rb +1 -3
  245. data/spec/views/catalog/index.html.erb_spec.rb +1 -3
  246. data/spec/views/catalog/sort_and_per_page.html.erb_spec.rb +4 -5
  247. data/spec/views/collections/_form.html.erb_spec.rb +5 -3
  248. data/spec/views/collections/_show_descriptions.html.erb_spec.rb +7 -8
  249. data/spec/views/collections/_show_document_list.erb_spec.rb +4 -6
  250. data/spec/views/dashboard/index_spec.rb +14 -21
  251. data/spec/views/generic_file/_browse_everything.html.erb_spec.rb +2 -2
  252. data/spec/views/generic_file/_permission_form.html.erb_spec.rb +8 -9
  253. data/spec/views/generic_file/edit.html.erb_spec.rb +7 -7
  254. data/spec/views/generic_file/show.html.erb_spec.rb +24 -25
  255. data/spec/views/generic_file/stats.html.erb_spec.rb +19 -19
  256. data/spec/views/homepage/_announcement.html.erb_spec.rb +51 -0
  257. data/spec/views/homepage/_featured_works.html.erb_spec.rb +5 -9
  258. data/spec/views/homepage/_home_header.html.erb_spec.rb +2 -2
  259. data/spec/views/my/facet.html.erb_spec.rb +4 -4
  260. data/spec/views/single_use_links/new_download.html.erb_spec.rb +28 -0
  261. data/spec/views/single_use_links_viewer/show.html.erb_spec.rb +29 -0
  262. data/spec/views/users/_follower_modal.html.erb_spec.rb +7 -8
  263. data/spec/views/users/_following_modal.html.erb_spec.rb +4 -5
  264. data/spec/views/users/_notify_number.html.erb_spec.rb +2 -5
  265. data/spec/views/users/_user_util_links.html.erb_spec.rb +5 -8
  266. data/spec/views/users/index.html.erb_spec.rb +4 -6
  267. data/spec/views/users/show.html.erb_spec.rb +4 -7
  268. data/tasks/sufia-dev.rake +19 -3
  269. metadata +20 -5
@@ -18,18 +18,18 @@ module Sufia::HomepageController
18
18
  @featured_researcher ||= ContentBlock.create(name: ContentBlock::RESEARCHER)
19
19
  @marketing_text = ContentBlock.find_or_create_by(name: ContentBlock::MARKETING)
20
20
  @featured_work_list = FeaturedWorkList.new
21
+ @announcement_text = ContentBlock.find_or_create_by(name: ContentBlock::ANNOUNCEMENT)
21
22
  recent
22
23
  end
23
24
 
24
25
  protected
25
26
 
26
- def recent
27
- # grab any recent documents
28
- (_, @recent_documents) = search_results({q: '', sort:sort_field, rows: 4}, search_params_logic)
29
- end
30
-
31
- def sort_field
32
- "#{Solrizer.solr_name('system_create', :stored_sortable, type: :date)} desc"
33
- end
27
+ def recent
28
+ # grab any recent documents
29
+ (_, @recent_documents) = search_results({ q: '', sort: sort_field, rows: 4 }, search_params_logic)
30
+ end
34
31
 
32
+ def sort_field
33
+ "#{Solrizer.solr_name('system_create', :stored_sortable, type: :date)} desc"
34
+ end
35
35
  end
@@ -10,13 +10,13 @@ module Sufia
10
10
  included do
11
11
  include Blacklight::Configurable
12
12
 
13
- self.copy_blacklight_config_from(CatalogController)
14
- self.blacklight_config.search_builder_class = Sufia::MySearchBuilder
13
+ copy_blacklight_config_from(CatalogController)
14
+ blacklight_config.search_builder_class = Sufia::MySearchBuilder
15
15
 
16
- before_filter :authenticate_user!
17
- before_filter :enforce_show_permissions, only: :show
18
- before_filter :enforce_viewing_context_for_show_requests, only: :show
19
- before_filter :find_collections_with_edit_access, only: :index
16
+ before_action :authenticate_user!
17
+ before_action :enforce_show_permissions, only: :show
18
+ before_action :enforce_viewing_context_for_show_requests, only: :show
19
+ before_action :find_collections_with_edit_access, only: :index
20
20
 
21
21
  self.search_params_logic += [:add_access_controls_to_solr_params, :add_advanced_parse_q_to_solr]
22
22
 
@@ -33,12 +33,16 @@ module Sufia
33
33
  (@response, @document_list) = search_results(params, search_params_logic)
34
34
  @user = current_user
35
35
  @events = @user.events(100)
36
- @last_event_timestamp = @user.events.first[:timestamp].to_i || 0 rescue 0
36
+ @last_event_timestamp = begin
37
+ @user.events.first[:timestamp].to_i || 0
38
+ rescue
39
+ 0
40
+ end
37
41
  @filters = params[:f] || []
38
42
 
39
43
  # set up some parameters for allowing the batch controls to show appropiately
40
44
  @max_batch_size = 80
41
- count_on_page = @document_list.count {|doc| batch.index(doc.id)}
45
+ count_on_page = @document_list.count { |doc| batch.index(doc.id) }
42
46
  @disable_select_all = @document_list.count > @max_batch_size
43
47
  batch_size = batch.uniq.size
44
48
  @result_set_size = @response.response["numFound"]
@@ -49,11 +53,10 @@ module Sufia
49
53
  @batch_part_on_other_page = (@batch_size_on_other_page) > 0
50
54
 
51
55
  respond_to do |format|
52
- format.html { }
56
+ format.html {}
53
57
  format.rss { render layout: false }
54
58
  format.atom { render layout: false }
55
59
  end
56
60
  end
57
-
58
61
  end
59
62
  end
@@ -2,19 +2,17 @@ module Sufia
2
2
  module SingleUseLinksControllerBehavior
3
3
  extend ActiveSupport::Concern
4
4
  included do
5
-
6
- before_filter :authenticate_user!
7
- before_filter :authorize_user!
5
+ before_action :authenticate_user!
6
+ before_action :authorize_user!
8
7
  # Catch permission errors
9
8
  rescue_from Hydra::AccessDenied, CanCan::AccessDenied do |exception|
10
- if current_user and current_user.persisted?
9
+ if current_user && current_user.persisted?
11
10
  redirect_to root_url, alert: "You do not have sufficient privileges to create links to this document"
12
11
  else
13
12
  session["user_return_to"] = request.url
14
13
  redirect_to new_user_session_url, alert: exception.message
15
14
  end
16
15
  end
17
-
18
16
  end
19
17
 
20
18
  def new_download
@@ -23,7 +21,7 @@ module Sufia
23
21
 
24
22
  respond_to do |format|
25
23
  format.html
26
- format.js { render js: @link }
24
+ format.js { render js: @link }
27
25
  end
28
26
  end
29
27
 
@@ -33,19 +31,18 @@ module Sufia
33
31
 
34
32
  respond_to do |format|
35
33
  format.html
36
- format.js { render js: @link }
34
+ format.js { render js: @link }
37
35
  end
38
36
  end
39
37
 
40
-
41
38
  protected
42
- def authorize_user!
43
- authorize! :edit, asset
44
- end
45
39
 
46
- def asset
47
- @asset ||= ActiveFedora::Base.load_instance_from_solr(params[:id])
48
- end
40
+ def authorize_user!
41
+ authorize! :edit, asset
42
+ end
49
43
 
44
+ def asset
45
+ @asset ||= ActiveFedora::Base.load_instance_from_solr(params[:id])
46
+ end
50
47
  end
51
48
  end
@@ -5,7 +5,7 @@ module Sufia
5
5
  extend ActiveSupport::Concern
6
6
  include Sufia::DownloadsControllerBehavior
7
7
  included do
8
- skip_before_filter :load_file, except: :download
8
+ skip_before_action :load_file, except: :download
9
9
  rescue_from Sufia::SingleUseError, with: :render_single_use_error
10
10
  rescue_from CanCan::AccessDenied, with: :render_single_use_error
11
11
  rescue_from ActiveRecord::RecordNotFound, with: :render_single_use_error
@@ -21,7 +21,7 @@ module Sufia
21
21
  def show
22
22
  raise not_found_exception unless single_use_link.path == sufia.polymorphic_path(@asset)
23
23
 
24
- #show the file
24
+ # show the file
25
25
  @presenter = presenter
26
26
 
27
27
  # create a dowload link that is single use for the user since we do not just want to show metadata we want to access it too
@@ -31,28 +31,34 @@ module Sufia
31
31
 
32
32
  protected
33
33
 
34
- def presenter
35
- presenter_class.new(@asset)
36
- end
34
+ def content_options
35
+ super.tap do |options|
36
+ options[:disposition] = 'attachment' if action_name == 'download'
37
+ end
38
+ end
37
39
 
38
- def authorize_download!
39
- authorize! :read, asset
40
- end
40
+ def presenter
41
+ presenter_class.new(@asset)
42
+ end
41
43
 
42
- def single_use_link
43
- @single_use_link ||= SingleUseLink.find_by_downloadKey!(params[:id])
44
- end
44
+ def authorize_download!
45
+ authorize! :read, asset
46
+ end
45
47
 
46
- def not_found_exception
47
- Sufia::SingleUseError.new('Single-Use Link Not Found')
48
- end
48
+ def single_use_link
49
+ @single_use_link ||= SingleUseLink.find_by_downloadKey!(params[:id])
50
+ end
49
51
 
50
- def asset
51
- @asset ||= ActiveFedora::Base.find(single_use_link.itemId)
52
- end
52
+ def not_found_exception
53
+ Sufia::SingleUseError.new('Single-Use Link Not Found')
54
+ end
53
55
 
54
- def current_ability
55
- @current_ability ||= SingleUseLinksViewerController::Ability.new current_user, single_use_link
56
- end
56
+ def asset
57
+ @asset ||= ActiveFedora::Base.find(single_use_link.itemId)
58
+ end
59
+
60
+ def current_ability
61
+ @current_ability ||= SingleUseLinksViewerController::Ability.new current_user, single_use_link
62
+ end
57
63
  end
58
- end
64
+ end
@@ -5,11 +5,11 @@ module Sufia
5
5
  included do
6
6
  before_action :load_proxy_deposit_request, only: :create
7
7
  load_and_authorize_resource :proxy_deposit_request, parent: false, except: :index
8
- before_action :get_id_and_authorize_depositor, only: [:new, :create]
8
+ before_action :authorize_depositor_by_id, only: [:new, :create]
9
9
  # Catch permission errors
10
- # TODO we should make this a module in Sufia
10
+ # TODO: we should make this a module in Sufia
11
11
  rescue_from CanCan::AccessDenied do |exception|
12
- if current_user and current_user.persisted?
12
+ if current_user && current_user.persisted?
13
13
  redirect_to root_url, alert: exception.message
14
14
  else
15
15
  session["user_return_to"] = request.url
@@ -32,7 +32,7 @@ module Sufia
32
32
  end
33
33
 
34
34
  def index
35
- @incoming = ProxyDepositRequest.where(receiving_user_id: current_user.id).reject &:deleted_file?
35
+ @incoming = ProxyDepositRequest.where(receiving_user_id: current_user.id).reject(&:deleted_file?)
36
36
  @outgoing = ProxyDepositRequest.where(sending_user_id: current_user.id)
37
37
  end
38
38
 
@@ -56,20 +56,20 @@ module Sufia
56
56
 
57
57
  private
58
58
 
59
- def get_id_and_authorize_depositor
60
- @id = params[:id]
61
- authorize! :transfer, @id
62
- @proxy_deposit_request.generic_file_id = @id
63
- rescue CanCan::AccessDenied
64
- redirect_to root_url, alert: 'You are not authorized to transfer this file'
65
- end
59
+ def authorize_depositor_by_id
60
+ @id = params[:id]
61
+ authorize! :transfer, @id
62
+ @proxy_deposit_request.generic_file_id = @id
63
+ rescue CanCan::AccessDenied
64
+ redirect_to root_url, alert: 'You are not authorized to transfer this file'
65
+ end
66
66
 
67
- def load_proxy_deposit_request
68
- @proxy_deposit_request = ProxyDepositRequest.new(proxy_deposit_request_params)
69
- end
67
+ def load_proxy_deposit_request
68
+ @proxy_deposit_request = ProxyDepositRequest.new(proxy_deposit_request_params)
69
+ end
70
70
 
71
- def proxy_deposit_request_params
72
- params.require(:proxy_deposit_request).permit(:transfer_to)
73
- end
71
+ def proxy_deposit_request_params
72
+ params.require(:proxy_deposit_request).permit(:transfer_to)
73
+ end
74
74
  end
75
75
  end
@@ -5,27 +5,25 @@ module Sufia::UsersControllerBehavior
5
5
  include Blacklight::Catalog::SearchContext
6
6
  layout "sufia-one-column"
7
7
  prepend_before_filter :find_user, except: [:index, :search, :notifications_number]
8
- before_filter :authenticate_user!, only: [:edit, :update, :follow, :unfollow, :toggle_trophy]
9
- before_filter :user_not_current_user, only: [:follow, :unfollow]
8
+ before_action :authenticate_user!, only: [:edit, :update, :follow, :unfollow, :toggle_trophy]
9
+ before_action :user_not_current_user, only: [:follow, :unfollow]
10
10
  authorize_resource only: [:edit, :update, :toggle_trophy]
11
11
  # Catch permission errors
12
12
  rescue_from CanCan::AccessDenied, with: :deny_access
13
13
  end
14
14
 
15
15
  def index
16
- sort_val = get_sort
17
- query = params[:uq].blank? ? nil : "%"+params[:uq].downcase+"%"
16
+ query = params[:uq].blank? ? nil : "%" + params[:uq].downcase + "%"
18
17
  base = User.where(*base_query)
19
18
  unless query.blank?
20
19
  base = base.where("#{Devise.authentication_keys.first} like lower(?) OR display_name like lower(?)", query, query)
21
20
  end
22
- @users = base.references(:trophies).order(sort_val).page(params[:page]).per(10)
21
+ @users = base.references(:trophies).order(sort_value).page(params[:page]).per(10)
23
22
 
24
23
  respond_to do |format|
25
24
  format.html
26
25
  format.json { render json: @users.to_json }
27
26
  end
28
-
29
27
  end
30
28
 
31
29
  # Display user profile
@@ -56,8 +54,8 @@ module Sufia::UsersControllerBehavior
56
54
  redirect_to sufia.edit_profile_path(@user.to_param), alert: @user.errors.full_messages
57
55
  return
58
56
  end
59
- # TODO this should be moved to TrophiesController
60
- params.keys.select {|k, v| k.starts_with? 'remove_trophy_' }.each do |smash_trophy|
57
+ # TODO: this should be moved to TrophiesController
58
+ params.keys.select { |k, _v| k.starts_with? 'remove_trophy_' }.each do |smash_trophy|
61
59
  smash_trophy = smash_trophy.sub(/^remove_trophy_/, '')
62
60
  current_user.trophies.where(generic_file_id: smash_trophy).destroy_all
63
61
  end
@@ -70,21 +68,21 @@ module Sufia::UsersControllerBehavior
70
68
  end
71
69
 
72
70
  def toggle_trophy
73
- unless current_user.can? :edit, params[:file_id]
74
- redirect_to root_path, alert: "You do not have permissions to the file"
75
- return false
76
- end
77
- # TODO make sure current user has access to file
78
- t = current_user.trophies.where(generic_file_id: params[:file_id]).first
79
- if t
80
- t.destroy
81
- #TODO do this better says Mike
82
- return false if t.persisted?
83
- else
84
- t = current_user.trophies.create(generic_file_id: params[:file_id])
85
- return false unless t.persisted?
86
- end
87
- render json: t
71
+ unless current_user.can? :edit, params[:file_id]
72
+ redirect_to root_path, alert: "You do not have permissions to the file"
73
+ return false
74
+ end
75
+ # TODO: make sure current user has access to file
76
+ t = current_user.trophies.where(generic_file_id: params[:file_id]).first
77
+ if t
78
+ t.destroy
79
+ # TODO: do this better says Mike
80
+ return false if t.persisted?
81
+ else
82
+ t = current_user.trophies.create(generic_file_id: params[:file_id])
83
+ return false unless t.persisted?
84
+ end
85
+ render json: t
88
86
  end
89
87
 
90
88
  # Follow a user
@@ -93,7 +91,7 @@ module Sufia::UsersControllerBehavior
93
91
  current_user.follow(@user)
94
92
  Sufia.queue.push(UserFollowEventJob.new(current_user.user_key, @user.user_key))
95
93
  end
96
- redirect_to sufia.profile_path(@user.to_param), notice: "You are following #{@user.to_s}"
94
+ redirect_to sufia.profile_path(@user.to_param), notice: "You are following #{@user}"
97
95
  end
98
96
 
99
97
  # Unfollow a user
@@ -102,43 +100,45 @@ module Sufia::UsersControllerBehavior
102
100
  current_user.stop_following(@user)
103
101
  Sufia.queue.push(UserUnfollowEventJob.new(current_user.user_key, @user.user_key))
104
102
  end
105
- redirect_to sufia.profile_path(@user.to_param), notice: "You are no longer following #{@user.to_s}"
103
+ redirect_to sufia.profile_path(@user.to_param), notice: "You are no longer following #{@user}"
106
104
  end
107
105
 
108
106
  protected
109
107
 
110
- def user_params
111
- params.require(:user).permit(:email, :login, :display_name, :address, :admin_area,
112
- :department, :title, :office, :chat_id, :website, :affiliation,
113
- :telephone, :avatar, :group_list, :groups_last_update, :facebook_handle,
114
- :twitter_handle, :googleplus_handle, :linkedin_handle, :remove_avatar, :orcid)
115
- end
108
+ def user_params
109
+ params.require(:user).permit(:email, :login, :display_name, :address, :admin_area,
110
+ :department, :title, :office, :chat_id, :website, :affiliation,
111
+ :telephone, :avatar, :group_list, :groups_last_update, :facebook_handle,
112
+ :twitter_handle, :googleplus_handle, :linkedin_handle, :remove_avatar, :orcid)
113
+ end
116
114
 
117
- # You can override base_query to return a list of arguments
118
- def base_query
119
- [nil]
120
- end
115
+ # You can override base_query to return a list of arguments
116
+ def base_query
117
+ [nil]
118
+ end
121
119
 
122
- def find_user
123
- @user = User.from_url_component(params[:id])
124
- redirect_to root_path, alert: "User '#{params[:id]}' does not exist" if @user.nil?
125
- end
120
+ def find_user
121
+ @user = User.from_url_component(params[:id])
122
+ redirect_to root_path, alert: "User '#{params[:id]}' does not exist" if @user.nil?
123
+ end
126
124
 
127
- def user_not_current_user
128
- redirect_to sufia.profile_path(@user.to_param), alert: "You cannot follow or unfollow yourself" if @user == current_user
129
- end
125
+ def user_not_current_user
126
+ redirect_to sufia.profile_path(@user.to_param), alert: "You cannot follow or unfollow yourself" if @user == current_user
127
+ end
130
128
 
131
- def get_sort
132
- sort = params[:sort].blank? ? "name" : params[:sort]
133
- sort_val = case sort
134
- when "name" then "display_name"
135
- when "name desc" then "display_name DESC"
136
- else sort
137
- end
138
- return sort_val
139
- end
129
+ def sort_value
130
+ sort = params[:sort].blank? ? "name" : params[:sort]
131
+ case sort
132
+ when "name"
133
+ "display_name"
134
+ when "name desc"
135
+ "display_name DESC"
136
+ else
137
+ sort
138
+ end
139
+ end
140
140
 
141
- def deny_access(exception)
142
- redirect_to sufia.profile_path(@user.to_param), alert: "Permission denied: cannot access this page."
143
- end
141
+ def deny_access(_exception)
142
+ redirect_to sufia.profile_path(@user.to_param), alert: "Permission denied: cannot access this page."
143
+ end
144
144
  end
@@ -1,3 +1,3 @@
1
1
  class ContactFormController < ApplicationController
2
2
  include Sufia::ContactFormControllerBehavior
3
- end
3
+ end
@@ -1,6 +1,6 @@
1
1
  class ContentBlocksController < ApplicationController
2
2
  load_and_authorize_resource except: :index
3
- before_filter :load_featured_researchers, only: :index
3
+ before_action :load_featured_researchers, only: :index
4
4
  authorize_resource only: :index
5
5
 
6
6
  def index
@@ -16,18 +16,17 @@ class ContentBlocksController < ApplicationController
16
16
  redirect_to :back
17
17
  end
18
18
 
19
- protected
19
+ protected
20
20
 
21
- def create_params
22
- params.require(:content_block).permit([:name, :value, :external_key])
23
- end
24
-
25
- def update_params
26
- params.require(:content_block).permit([:value, :external_key])
27
- end
21
+ def create_params
22
+ params.require(:content_block).permit([:name, :value, :external_key])
23
+ end
28
24
 
29
- def load_featured_researchers
30
- @content_blocks = ContentBlock.recent_researchers.page(params[:page])
31
- end
25
+ def update_params
26
+ params.require(:content_block).permit([:value, :external_key])
27
+ end
32
28
 
29
+ def load_featured_researchers
30
+ @content_blocks = ContentBlock.recent_researchers.page(params[:page])
31
+ end
33
32
  end