sufia 6.2.0 → 6.3.0

Sign up to get free protection for your applications and to get access to all the features.
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
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: d5983e2ea047b6ee6b08ef678cb233a8f20b68a3
4
- data.tar.gz: 73adb6f66582d0b1021d0addba02efb4e15ee8ca
3
+ metadata.gz: e188410a3abce213d0a71c5d20f29852e272845a
4
+ data.tar.gz: 83e3218b65097ce2757367f6864f13e0fc3293b3
5
5
  SHA512:
6
- metadata.gz: e378ea0a2b5e17b0f86ab170c276d92863a8933468c4b5af31e472b2d226a096f9f9475e51a41ce3f9f9523df83f069c0605f24a08973888f79b425943cf0db7
7
- data.tar.gz: b4e5438fbd558768b324b336a5c1d9b0194c44c56360c66069bfee3d38bac696998d1115160194a150e9832cd9ee3297f1ec18bbfc3a43bb0ea9282693724938
6
+ metadata.gz: 6f0b3722d9e23c720e42d8f2cf9856984e2b7d6408484effce030256dd97314193c7f7b2fcbfbd9bb01c4b1c61f4d141ab80de6c9960f7b6c5b7be846a31abe2
7
+ data.tar.gz: fb33d7ec4280f2fc544b9d43599aeaa3671d1ac92b1e208ea2d39bf4b82aa0d97df80c91c2a46a2415e7d367d310d4a85152a1ad704f1db4332cf6fdb2d833de
@@ -0,0 +1,146 @@
1
+ require: rubocop-rspec
2
+
3
+ AllCops:
4
+ RunRailsCops: true
5
+ DisplayCopNames: true
6
+ Include:
7
+ - '**/Rakefile'
8
+ - '**/config.ru'
9
+ Exclude:
10
+ - 'db/**/*'
11
+ - 'script/**/*'
12
+ - 'vendor/**/*'
13
+ - 'spec/internal/**/*'
14
+ - 'sufia-models/app/models/concerns/sufia/generic_file/export.rb'
15
+
16
+ Metrics/LineLength:
17
+ Enabled: false
18
+
19
+ Metrics/AbcSize:
20
+ Enabled: false
21
+
22
+ Metrics/CyclomaticComplexity:
23
+ Exclude:
24
+ - 'lib/sufia/arkivo/metadata_munger.rb'
25
+ - 'sufia-models/app/services/sufia/generic_file_audit_service.rb'
26
+ - 'app/controllers/concerns/sufia/files_controller_behavior.rb'
27
+ - 'app/helpers/sufia/sufia_helper_behavior.rb'
28
+
29
+ Metrics/PerceivedComplexity:
30
+ Exclude:
31
+ - 'sufia-models/app/services/sufia/generic_file_audit_service.rb'
32
+ - 'app/controllers/concerns/sufia/files_controller_behavior.rb'
33
+ - 'app/helpers/sufia/sufia_helper_behavior.rb'
34
+
35
+ Metrics/MethodLength:
36
+ Enabled: false
37
+
38
+ Metrics/ClassLength:
39
+ Exclude:
40
+ - 'lib/generators/sufia/templates/catalog_controller.rb'
41
+ - 'sufia-models/app/models/datastreams/fits_datastream.rb'
42
+ - 'sufia-models/app/actors/sufia/generic_file/actor.rb'
43
+
44
+ Metrics/ModuleLength:
45
+ Exclude:
46
+ - 'app/controllers/concerns/sufia/users_controller_behavior.rb'
47
+ - 'app/controllers/concerns/sufia/files_controller_behavior.rb'
48
+ - 'app/helpers/sufia/sufia_helper_behavior.rb'
49
+
50
+ Style/BlockDelimiters:
51
+ Exclude:
52
+ - 'spec/**/*'
53
+
54
+ Style/BlockEndNewline:
55
+ Exclude:
56
+ - 'spec/**/*'
57
+
58
+ Style/MultilineBlockLayout:
59
+ Exclude:
60
+ - 'spec/**/*'
61
+
62
+ Style/IndentationConsistency:
63
+ EnforcedStyle: rails
64
+
65
+ Style/CollectionMethods:
66
+ PreferredMethods:
67
+ collect: 'map'
68
+ collect!: 'map!'
69
+ inject: 'reduce'
70
+ detect: 'find'
71
+ find_all: 'select'
72
+
73
+ Style/WordArray:
74
+ Enabled: false
75
+
76
+ Style/RegexpLiteral:
77
+ Enabled: false
78
+
79
+ Style/StringLiterals:
80
+ Enabled: false
81
+
82
+ Style/ClassAndModuleChildren:
83
+ Enabled: false
84
+
85
+ Style/Documentation:
86
+ Enabled: false
87
+
88
+ Style/HashSyntax:
89
+ Exclude:
90
+ - 'lib/generators/sufia/templates/catalog_controller.rb'
91
+
92
+ Style/LineEndConcatenation:
93
+ Exclude:
94
+ - 'spec/test_app_templates/lib/generators/**/*'
95
+ - 'sufia-models/lib/generators/**/*'
96
+
97
+ Style/PredicateName:
98
+ Exclude:
99
+ - 'app/helpers/sufia/sufia_helper_behavior.rb'
100
+ - 'app/controllers/concerns/sufia/controller.rb'
101
+
102
+ Style/GlobalVars:
103
+ Exclude:
104
+ - 'spec/**/*'
105
+ - 'spec/jobs/event_jobs_spec.rb'
106
+ - 'sufia-models/lib/generators/sufia/models/templates/config/redis_config.rb'
107
+ - 'sufia-models/lib/sufia/models/active_record/redis.rb'
108
+ - 'sufia-models/lib/sufia/models/active_fedora/redis.rb'
109
+
110
+ Style/SingleLineBlockParams:
111
+ Enabled: false
112
+
113
+ Style/ClassVars:
114
+ Exclude:
115
+ - 'sufia-models/lib/sufia/models.rb'
116
+ - 'sufia-models/lib/sufia/models/engine.rb'
117
+
118
+ Style/SignalException:
119
+ Enabled: false
120
+
121
+ Rails/Output:
122
+ Exclude:
123
+ - 'lib/generators/**/*'
124
+ - 'sufia-models/lib/generators/**/*'
125
+
126
+ Rails/Date:
127
+ Enabled: false
128
+
129
+ Rails/TimeZone:
130
+ Enabled: false
131
+
132
+ RSpec/FilePath:
133
+ Enabled: false
134
+
135
+ RSpec/InstanceVariable:
136
+ Enabled: false
137
+
138
+ RSpec/DescribeClass:
139
+ Exclude:
140
+ - 'spec/javascripts/jasmine_spec.rb'
141
+ - 'spec/tasks/rake_spec.rb'
142
+ - 'spec/jobs/event_jobs_spec.rb'
143
+ - 'spec/features/**/*'
144
+ - 'spec/views/**/*'
145
+ - 'spec/routing/**/*'
146
+ - 'spec/inputs/**/*'
@@ -6,18 +6,13 @@ rvm:
6
6
  matrix:
7
7
  include:
8
8
  - rvm: 2.1
9
- env: "RAILS_VERSION=4.2.1"
9
+ env: "RAILS_VERSION=4.2.3"
10
10
  env:
11
11
  global:
12
12
  - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
13
13
  matrix:
14
- - "RAILS_VERSION=4.2.2"
14
+ - "RAILS_VERSION=4.2.3"
15
15
  notifications:
16
- email:
17
- recipients:
18
- - "ul-dlt-hydra@lists.psu.edu"
19
- on_success: "change"
20
- on_failure: "always"
21
16
  irc:
22
17
  channels:
23
18
  - "irc.freenode.org#scholarsphere"
@@ -26,3 +21,5 @@ notifications:
26
21
  - "%{repository}//%{branch}@%{commit} by %{author}: %{message} - %{build_url}"
27
22
  services:
28
23
  - redis-server
24
+ before_script:
25
+ - jdk_switcher use oraclejdk8
data/Gemfile CHANGED
@@ -12,6 +12,8 @@ group :development, :test do
12
12
  gem "simplecov", require: false
13
13
  gem 'byebug' unless ENV['CI']
14
14
  gem 'coveralls', require: false
15
+ gem 'rubocop', require: false
16
+ gem 'rubocop-rspec', require: false
15
17
  end
16
18
 
17
19
  file = File.expand_path("Gemfile", ENV['ENGINE_CART_DESTINATION'] || ENV['RAILS_ROOT'] || File.expand_path("../spec/internal", __FILE__))
data/History.md CHANGED
@@ -1,5 +1,34 @@
1
1
  # History of Sufia releases
2
2
 
3
+ ## 6.3.0
4
+
5
+ * Fix problems with single use download links. [Olli Lyytinen]
6
+ * Use ActiveFedora::Noid 1.0 and surface its config in the Sufia config. [Michael J. Giarlo]
7
+ * Do not use hard-coded paths to URLs in the navbar. [Michael J. Giarlo]
8
+ * Fixes 2 label issue for radio button and better accessibility compliance. [mtribone]
9
+ * Tweak link text and switch Bootstrap icon to span. [mtribone]
10
+ * Fixed open alt tag that I incorrectly set previously to address accessibility [mtribone]
11
+ * Obey rubocop 0.33. [Michael J. Giarlo]
12
+ * Unregistered users should have the ability to see file citations [Michael J. Giarlo]
13
+ * After a week of training on "Practical Object-Oriented Design" with Sandi Metz @cam156 @awead and I decided to take a stab at refactoring a small piece of functionality with some of the ideas that we learned. [Hector Correa]
14
+ * Build a Rubocop config file that matches our community's styles. Allow Rubocop to autocorrect where possible. Correct style exceptions. [Michael J. Giarlo]
15
+ * Fixing audit service since audit no longer exists on the GenericFile [Carolyn Cole]
16
+ * Reload the object in the imprt url job after loading in the file incase another job has modified the object in the while the data was being copied [Carolyn Cole]
17
+ * Refactor the controller test to assume the ingest job is already tested [Carolyn Cole]
18
+ * Adding an announcement editable content block to the home page [Carolyn Cole]
19
+ * Adding object type and facte count to get all the files deposited by all users, not just all the objects deposited by the top 10 users [Carolyn Cole]
20
+ * Adds mention of Java 8 prerequisite for hydra-jetty. Fixes #1253 [kerchner]
21
+ * Fixes Bootstrap columns to allow caret to remain with text for batch editing. [mtribone]
22
+ * Makes the edit actions under thumbnail match browse view [mtribone]
23
+ * Fixes dropdown menu from being hidden on small devices 767px or smaller [mtribone]
24
+ * Update README.md [E. Lynette Rayle]
25
+ * Moving admin stats controller to a behavior so it can be overriden in the main app [Carolyn Cole]
26
+ * Swaps order of heading and sort, adjusts spacing of gallery display, and adds Bootstrap columns for structure [mtribone]
27
+ * Test on CI with the latest JDK and the latest Rails [Michael J. Giarlo]
28
+ * Updates README for v6.2.0. [Andrew Myers]
29
+ * Our librarians wants to be able to edit the labels. There is no real need to have the headings around and hard coded. [Carolyn Cole]
30
+ * Show deposits between a date range by users. fixes #1188 [Carolyn Cole]
31
+
3
32
  ## 6.2.0
4
33
 
5
34
  * Check to make sure Zotero integration is enabled before asking user instances if they have a Zotero user ID. Fixes #1235 [Michael J. Giarlo]
@@ -372,7 +401,6 @@
372
401
  * Merge travis config change to speed up the build [Michael J. Giarlo]
373
402
  * Adding the browse view link into the bread crumbs so it shows on both the edit and the stats page. [Carolyn Cole]
374
403
 
375
-
376
404
  ## 4.3.1
377
405
 
378
406
  * Adds an ORCID field to the user model. [Michael J. Giarlo]
data/README.md CHANGED
@@ -1,12 +1,13 @@
1
1
  # Sufia
2
2
 
3
3
  [![Version](https://badge.fury.io/rb/sufia.png)](http://badge.fury.io/rb/sufia)
4
- [![Apache 2.0 License](http://img.shields.io/badge/APACHE2-license-blue.svg)](./LICENSE)
5
- [![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md)
6
- [![API Docs](http://img.shields.io/badge/API-docs-blue.svg)](http://rubydoc.info/gems/sufia)
7
4
  [![Build Status](https://travis-ci.org/projecthydra/sufia.png?branch=master)](https://travis-ci.org/projecthydra/sufia)
8
5
  [![Dependency Status](https://gemnasium.com/projecthydra/sufia.png)](https://gemnasium.com/projecthydra/sufia)
9
6
  [![Coverage Status](https://coveralls.io/repos/projecthydra/sufia/badge.svg)](https://coveralls.io/r/projecthydra/sufia)
7
+ [![Code Climate](https://codeclimate.com/github/projecthydra/sufia/badges/gpa.svg)](https://codeclimate.com/github/projecthydra/sufia)
8
+ [![Apache 2.0 License](http://img.shields.io/badge/APACHE2-license-blue.svg)](./LICENSE)
9
+ [![Contribution Guidelines](http://img.shields.io/badge/CONTRIBUTING-Guidelines-blue.svg)](./CONTRIBUTING.md)
10
+ [![API Docs](http://img.shields.io/badge/API-docs-blue.svg)](http://rubydoc.info/gems/sufia)
10
11
  [![Stories in Ready](https://badge.waffle.io/projecthydra/sufia.png?label=ready&title=Ready)](https://waffle.io/projecthydra/sufia)
11
12
 
12
13
  # Table of Contents
@@ -87,6 +88,11 @@ If you have questions or need help, please email [the Hydra community tech list]
87
88
 
88
89
  # Creating a Sufia-based app
89
90
 
91
+ This document contains instructions specific to setting up an app with __Sufia
92
+ v6.3.0__. If you are looking for instructions on installing a different
93
+ version, be sure to select the appropriate branch or tag from the drop-down
94
+ menu above.
95
+
90
96
  ## Prerequisites
91
97
 
92
98
  Sufia requires the following software to work:
@@ -121,10 +127,10 @@ We recommend either Ruby 2.2 or the latest 2.1 version.
121
127
 
122
128
  ## Rails
123
129
 
124
- Generate a new Rails application. We recommend either Rails 4.2 or the latest 4.1 version.
130
+ Generate a new Rails application. Sufia > 6.1.0 requires Rails 4.2.
125
131
 
126
132
  ```
127
- gem install rails -v 4.1.8
133
+ gem install rails -v 4.2
128
134
  rails new my_app
129
135
  ```
130
136
 
@@ -133,7 +139,7 @@ rails new my_app
133
139
  Add the following lines to your application's Gemfile.
134
140
 
135
141
  ```
136
- gem 'sufia', '6.0.0'
142
+ gem 'sufia', '6.3.0'
137
143
  gem 'kaminari', github: 'jcoyne/kaminari', branch: 'sufia' # required to handle pagination properly in dashboard. See https://github.com/amatsuda/kaminari/pull/322
138
144
  ```
139
145
 
@@ -162,7 +168,9 @@ rake db:migrate
162
168
 
163
169
  ## Solr and Fedora
164
170
 
165
- If you already have instances of Solr and Fedora that you would like to use, you may skip this step. Otherwise feel free to use the bundled copy of Jetty, a Java servlet container that is configured to run versions of Solr and Fedora that are known to work with Sufia.
171
+ If you already have instances of Solr and Fedora that you would like to use, you may skip this step. Otherwise feel free to use [hydra-jetty](https://github.com/projecthydra/hydra-jetty), the bundled copy of Jetty, a Java servlet container that is configured to run versions of Solr and Fedora that are known to work with Sufia. Hydra-jetty (since v8.4.0) requires Java 8.
172
+
173
+ The following rake tasks will install hydra-jetty and start up Jetty with Solr and Fedora.
166
174
 
167
175
  ```
168
176
  rake jetty:clean
@@ -335,13 +343,21 @@ To add proxies and transfers to your **Sufia 4**-based app, run the 'sufia:model
335
343
 
336
344
  ### One time setup for first admin
337
345
 
338
- Follow the directions for installing hydra-role-management.
346
+ Follow the directions for [installing hydra-role-management](https://github.com/projecthydra/hydra-role-management#installing).
339
347
 
340
348
  Add the following gem to Sufia installed app's Gemfile
341
- ```
349
+ ```ruby
342
350
  gem "hydra-role-management"
343
351
  ```
344
352
 
353
+ Then install the gem, run the generator, and database migrations:
354
+ ```
355
+ # each of these commands will produce some output.
356
+ bundle install
357
+ rails generate roles
358
+ rake db:migrate
359
+ ```
360
+
345
361
  ### Adding an admin user
346
362
 
347
363
  In rails console, run the following commands to create the admin role.
@@ -1 +1 @@
1
- 6.2.0
1
+ 6.3.0
@@ -61,4 +61,19 @@
61
61
  .label-default a:hover {
62
62
  color: #FFF;
63
63
  text-align: center;
64
+ }
65
+
66
+ .edit_collection {
67
+ margin-top: 20px;
68
+ }
69
+
70
+ div.view-type {
71
+ padding-left: 0;
72
+ }
73
+
74
+ form.per_page {
75
+ fieldset {
76
+ margin-bottom: 1em;
77
+ padding-left: 0;
78
+ }
64
79
  }
@@ -5,6 +5,13 @@ h4 .small {
5
5
  color: $navbar-default-toggle-icon-bar-bg;
6
6
  }
7
7
 
8
+ @media screen and (max-width: 767px) {
9
+ .table-responsive .open > .dropdown-menu {
10
+ position: relative;
11
+ left: -8em;
12
+ }
13
+ }
14
+
8
15
  .table-responsive {
9
16
  overflow-x: visible;
10
17
  }
@@ -55,3 +55,13 @@
55
55
  border-top-left-radius: 4px;
56
56
  border-bottom-left-radius: 4px;
57
57
  }
58
+
59
+ div#announcement {
60
+ text-align: center;
61
+ color: white;
62
+ font-size: 1.5em;
63
+ background-color: $vermilion;
64
+ border: 10px solid white;
65
+ padding-top: 10px;
66
+ border-radius: 15px;
67
+ }
@@ -9,13 +9,11 @@
9
9
  class Sufia::BootstrapBreadcrumbsBuilder < BreadcrumbsOnRails::Breadcrumbs::Builder
10
10
  include ActionView::Helpers::OutputSafetyHelper
11
11
  def render
12
- if @elements.blank?
13
- return ""
14
- end
12
+ return "" if @elements.blank?
15
13
 
16
14
  @context.content_tag(:ul, class: 'breadcrumb') do
17
- safe_join(@elements.uniq.collect {|e| render_element(e)})
18
- end
15
+ safe_join(@elements.uniq.collect { |e| render_element(e) })
16
+ end
19
17
  end
20
18
 
21
19
  def render_element(element)
@@ -1,80 +1,5 @@
1
1
  # -*- encoding : utf-8 -*-
2
2
 
3
3
  class Admin::StatsController < ApplicationController
4
- def index
5
- # total user count
6
- @users_count = User.count
7
-
8
- # The most recent users to join
9
- @users_stats = params.fetch(:users_stats, {})
10
- @recent_users = recent_users
11
-
12
- # Query Solr for top depositors
13
- @active_users = top_depositors
14
-
15
- # Count of documents by permissions
16
- @files_count = document_by_permission
17
-
18
- # Query Solr for top file formats
19
- @top_formats = top_formats
20
-
21
- render 'index'
22
- end
23
-
24
- private
25
-
26
- def top_depositors_count
27
- count = params[:dep_count].to_i
28
- count.in?(5..20) ? count : 5
29
- end
30
-
31
- def document_by_permission
32
- return document_by_date_by_permission if @users_stats[:file_start_date]
33
-
34
- files_count = {}
35
- files_count[:total] = GenericFile.count
36
- files_count[:public] = GenericFile.where_public.count
37
- files_count[:registered] = GenericFile.where_registered.count
38
- files_count[:private] = files_count[:total] - (files_count[:registered] + files_count[:public])
39
- files_count
40
- end
41
-
42
- def document_by_date_by_permission
43
- start_date = DateTime.parse(@users_stats[:file_start_date])
44
- end_date = DateTime.parse(@users_stats[:file_end_date]).end_of_day unless @users_stats[:file_end_date].blank?
45
- files_count = {}
46
- files_count[:total] = GenericFile.find_by_date_created(start_date, end_date).count
47
- files_count[:public] = GenericFile.find_by_date_created(start_date, end_date).merge(GenericFile.where_public).count
48
- files_count[:registered] = GenericFile.find_by_date_created(start_date, end_date).merge(GenericFile.where_registered).count
49
- files_count[:private] = files_count[:total] - (files_count[:registered] + files_count[:public])
50
- files_count
51
- end
52
-
53
- def top_depositors
54
- depositor_key = Solrizer.solr_name('depositor', :stored_searchable, type: :string)
55
- top_data(depositor_key, top_depositors_count)
56
- end
57
-
58
- def top_formats
59
- format_key = Solrizer.solr_name('file_format', Solrizer::Descriptor.new(:string, :indexed, :multivalued))
60
- top_data(format_key, 5)
61
- end
62
-
63
- def top_data (key, limit)
64
- query_url = "#{ActiveFedora.solr_config[:url]}/terms?terms.fl=#{key}&terms.sort=count&terms.limit=#{limit}&wt=json&omitHeader=true"
65
- # Parse JSON response (looks like {"terms":{"depositor_tesim":["mjg36",3]}} for depositor)
66
- json = open(query_url).read
67
- tuples = JSON.parse(json)['terms'][key] rescue []
68
- # Change to hash where keys = logins and values = counts
69
- Hash[*tuples]
70
- end
71
-
72
- def recent_users
73
- # no dates return the top 5
74
- return User.order('created_at DESC').limit(5) if @users_stats[:start_date].blank?
75
-
76
- start_date = DateTime.parse @users_stats[:start_date]
77
- end_date = DateTime.parse(@users_stats[:end_date]).end_of_day unless @users_stats[:end_date].blank?
78
- User.recent_users start_date, end_date
79
- end
4
+ include Sufia::Admin::StatsBehavior
80
5
  end