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
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