sufia 6.0.0 → 6.1.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 (290) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -5
  3. data/CONTRIBUTING.md +4 -4
  4. data/Gemfile +2 -1
  5. data/History.md +69 -0
  6. data/README.md +84 -4
  7. data/SUFIA_VERSION +1 -1
  8. data/app/assets/images/zotero.png +0 -0
  9. data/app/assets/javascripts/sufia/featured_works.js +20 -3
  10. data/app/assets/stylesheets/generic_files.css.erb +2 -2
  11. data/app/assets/stylesheets/sufia.css.scss +2 -2
  12. data/app/assets/stylesheets/sufia/_buttons.scss +2 -2
  13. data/app/assets/stylesheets/sufia/_collections.scss +4 -4
  14. data/app/assets/stylesheets/sufia/_dashboard.scss +1 -1
  15. data/app/assets/stylesheets/sufia/_file-listing.scss +3 -0
  16. data/app/assets/stylesheets/sufia/_modal.scss +4 -0
  17. data/app/assets/stylesheets/sufia/_settings.scss +4 -3
  18. data/app/assets/stylesheets/sufia/_styles.scss +4 -0
  19. data/app/controllers/admin/stats_controller.rb +68 -0
  20. data/app/controllers/api/items_controller.rb +78 -0
  21. data/app/controllers/api/zotero_controller.rb +70 -0
  22. data/app/controllers/authorities_controller.rb +6 -5
  23. data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +2 -1
  24. data/app/controllers/concerns/sufia/breadcrumbs.rb +1 -1
  25. data/app/controllers/concerns/sufia/depositors_controller_behavior.rb +11 -0
  26. data/app/controllers/concerns/sufia/files_controller/browse_everything.rb +1 -1
  27. data/app/controllers/concerns/sufia/files_controller/local_ingest_behavior.rb +1 -1
  28. data/app/controllers/concerns/sufia/files_controller_behavior.rb +23 -11
  29. data/app/controllers/concerns/sufia/my_controller_behavior.rb +1 -7
  30. data/app/controllers/concerns/sufia/users_controller_behavior.rb +1 -2
  31. data/app/controllers/my/collections_controller.rb +1 -0
  32. data/app/controllers/my/files_controller.rb +1 -1
  33. data/app/helpers/sufia/sufia_helper_behavior.rb +28 -16
  34. data/app/models/my_search_builder.rb +4 -0
  35. data/app/search_builders/sufia/my_search_builder_behavior.rb +20 -0
  36. data/app/search_builders/sufia/search_builder.rb +1 -1
  37. data/app/views/admin/stats/index.html.erb +68 -0
  38. data/app/views/collections/_action_menu.html.erb +22 -20
  39. data/app/views/collections/_collection.html.erb +1 -1
  40. data/app/views/collections/_form_for_select_collection.html.erb +5 -3
  41. data/app/views/generic_files/_show_actions.html.erb +4 -2
  42. data/app/views/generic_files/show.html.erb +1 -1
  43. data/app/views/layouts/sufia-dashboard.html.erb +5 -4
  44. data/app/views/layouts/sufia-one-column.html.erb +2 -0
  45. data/app/views/layouts/sufia-two-column.html.erb +6 -4
  46. data/app/views/my/_facet_layout.html.erb +2 -2
  47. data/app/views/my/_facets.html.erb +4 -6
  48. data/app/views/my/index.html.erb +4 -3
  49. data/app/views/users/_edit_primary.html.erb +18 -17
  50. data/app/views/users/_follower_modal.html.erb +5 -1
  51. data/app/views/users/_following_modal.html.erb +5 -1
  52. data/app/views/users/_user_info.html.erb +6 -1
  53. data/app/views/users/_zotero.html.erb +12 -0
  54. data/config/locales/sufia.en.yml +10 -1
  55. data/config/routes.rb +23 -1
  56. data/lib/generators/sufia/admin_stat_generator.rb +17 -0
  57. data/lib/generators/sufia/install_generator.rb +8 -3
  58. data/{sufia-models/lib/generators/sufia/models/templates/config/resque_admin.rb → lib/generators/sufia/templates/sufia/stats_admin.rb} +3 -3
  59. data/lib/generators/sufia/upgrade400_generator.rb +2 -2
  60. data/lib/sufia.rb +3 -0
  61. data/lib/sufia/arkivo.rb +11 -0
  62. data/lib/sufia/arkivo/actor.rb +95 -0
  63. data/lib/sufia/arkivo/config.rb +11 -0
  64. data/lib/sufia/arkivo/create_subscription_job.rb +67 -0
  65. data/lib/sufia/arkivo/metadata_munger.rb +51 -0
  66. data/lib/sufia/arkivo/schema_validator.rb +55 -0
  67. data/lib/sufia/form_builder.rb +1 -1
  68. data/lib/sufia/inflections.rb +3 -0
  69. data/lib/sufia/version.rb +1 -1
  70. data/lib/sufia/zotero.rb +6 -0
  71. data/lib/sufia/zotero/config.rb +15 -0
  72. data/solr_conf/conf/solrconfig.xml +11 -0
  73. data/spec/controllers/admin_stats_controller_spec.rb +73 -0
  74. data/spec/controllers/api/items_controller_spec.rb +476 -0
  75. data/spec/controllers/api/zotero_controller_spec.rb +178 -0
  76. data/spec/controllers/batch_edits_controller_spec.rb +7 -0
  77. data/spec/controllers/collections_controller_spec.rb +1 -1
  78. data/spec/controllers/dashboard_controller_spec.rb +1 -1
  79. data/spec/controllers/depositors_controller_spec.rb +9 -5
  80. data/spec/controllers/generic_files_controller_spec.rb +5 -4
  81. data/spec/controllers/mailbox_controller_spec.rb +2 -2
  82. data/spec/controllers/my/collections_controller_spec.rb +1 -2
  83. data/spec/controllers/my/files_controller_spec.rb +5 -5
  84. data/spec/controllers/my/shares_controller_spec.rb +15 -3
  85. data/spec/controllers/pages_controller_spec.rb +1 -1
  86. data/spec/controllers/users_controller_spec.rb +10 -9
  87. data/spec/factories/api_items.rb +91 -0
  88. data/spec/factories/generic_files.rb +4 -0
  89. data/spec/factories/users.rb +4 -4
  90. data/spec/features/featured_item_spec.rb +26 -0
  91. data/spec/features/ingest_upload_files_spec.rb +2 -3
  92. data/spec/features/proxy_spec.rb +0 -1
  93. data/spec/helpers/permissions_helper_spec.rb +2 -2
  94. data/spec/helpers/sufia_helper_spec.rb +11 -5
  95. data/spec/inputs/select_with_help_input_spec.rb +2 -2
  96. data/spec/javascripts/helpers/.gitkeep +0 -0
  97. data/spec/javascripts/helpers/jasmine-jquery.js +832 -0
  98. data/spec/javascripts/jasmine_spec.rb +31 -0
  99. data/spec/javascripts/notify_update_link_spec.js +8 -0
  100. data/spec/javascripts/single_use_link_spec.js.coffee +23 -0
  101. data/spec/javascripts/support/jasmine.yml +124 -0
  102. data/spec/javascripts/support/jasmine_helper.rb +15 -0
  103. data/spec/javascripts/terms_of_service_spec.js.coffee +32 -0
  104. data/spec/javascripts/toggle_icon_spec.js +11 -0
  105. data/spec/jobs/active_fedora_id_based_job_spec.rb +3 -3
  106. data/spec/jobs/import_url_job_spec.rb +0 -2
  107. data/spec/lib/sufia/arkivo/actor_spec.rb +139 -0
  108. data/spec/lib/sufia/arkivo/create_subscription_job_spec.rb +54 -0
  109. data/spec/lib/sufia/arkivo/metadata_munger_spec.rb +48 -0
  110. data/spec/lib/sufia/arkivo/schema_validator_spec.rb +65 -0
  111. data/spec/lib/sufia/upload_complete_behavior_spec.rb +1 -1
  112. data/spec/lib/sufia/user_stat_importer_spec.rb +60 -0
  113. data/spec/lib/sufia/zotero/config_spec.rb +30 -0
  114. data/spec/models/collection_spec.rb +36 -7
  115. data/spec/models/file_download_stat_spec.rb +5 -5
  116. data/spec/models/file_usage_spec.rb +23 -0
  117. data/spec/models/file_view_stat_spec.rb +6 -6
  118. data/spec/models/fits_datastream_spec.rb +0 -5
  119. data/spec/models/generic_file_spec.rb +49 -14
  120. data/spec/models/local_authority_spec.rb +1 -1
  121. data/spec/models/proxy_deposit_request_spec.rb +1 -1
  122. data/spec/models/trophy_spec.rb +8 -8
  123. data/spec/models/user_spec.rb +33 -0
  124. data/spec/presenters/sufia/collection_presenter_spec.rb +1 -1
  125. data/spec/routing/api_route_spec.rb +91 -0
  126. data/spec/routing/route_spec.rb +1 -1
  127. data/spec/services/generic_file_audit_service_spec.rb +44 -8
  128. data/spec/spec_helper.rb +18 -3
  129. data/spec/support/features.rb +0 -2
  130. data/spec/support/locations.rb +0 -21
  131. data/spec/support/rake.rb +41 -0
  132. data/spec/support/selectors.rb +0 -50
  133. data/spec/tasks/rake_spec.rb +33 -12
  134. data/spec/test_app_templates/lib/generators/test_app_generator.rb +12 -0
  135. data/spec/views/admin/stats/index.html.erb_spec.rb +45 -0
  136. data/spec/views/catalog/sort_and_per_page.html.erb_spec.rb +0 -1
  137. data/spec/views/dashboard/index_spec.rb +1 -1
  138. data/spec/views/generic_file/edit.html.erb_spec.rb +1 -1
  139. data/spec/views/generic_file/show.html.erb_spec.rb +1 -3
  140. data/spec/views/users/_follower_modal.html.erb_spec.rb +44 -7
  141. data/spec/views/users/_following_modal.html.erb_spec.rb +49 -7
  142. data/spec/views/users/edit.html.erb_spec.rb +72 -0
  143. data/spec/views/users/show.html.erb_spec.rb +1 -1
  144. data/sufia.gemspec +6 -2
  145. data/tasks/sufia-user.rake +14 -0
  146. metadata +130 -156
  147. data/spec/lib/sufia/id_service_spec.rb +0 -32
  148. data/spec/services/noid_spec.rb +0 -9
  149. data/spec/support/poltergeist.rb +0 -11
  150. data/spec/support/rake_output.rb +0 -20
  151. data/sufia-models/.gitignore +0 -17
  152. data/sufia-models/Gemfile +0 -4
  153. data/sufia-models/LICENSE.md +0 -177
  154. data/sufia-models/README.md +0 -39
  155. data/sufia-models/Rakefile +0 -1
  156. data/sufia-models/app/actors/sufia/generic_file/actor.rb +0 -137
  157. data/sufia-models/app/jobs/active_fedora_id_based_job.rb +0 -22
  158. data/sufia-models/app/jobs/active_fedora_pid_based_job.rb +0 -7
  159. data/sufia-models/app/jobs/audit_job.rb +0 -62
  160. data/sufia-models/app/jobs/batch_update_job.rb +0 -72
  161. data/sufia-models/app/jobs/characterize_job.rb +0 -10
  162. data/sufia-models/app/jobs/create_derivatives_job.rb +0 -14
  163. data/sufia-models/app/jobs/import_url_job.rb +0 -52
  164. data/sufia-models/app/jobs/ingest_local_file_job.rb +0 -46
  165. data/sufia-models/app/jobs/resolrize_job.rb +0 -9
  166. data/sufia-models/app/models/batch.rb +0 -36
  167. data/sufia-models/app/models/checksum_audit_log.rb +0 -21
  168. data/sufia-models/app/models/concerns/sufia/ability.rb +0 -61
  169. data/sufia-models/app/models/concerns/sufia/collection_behavior.rb +0 -24
  170. data/sufia-models/app/models/concerns/sufia/file_stat_utils.rb +0 -35
  171. data/sufia-models/app/models/concerns/sufia/generic_file.rb +0 -25
  172. data/sufia-models/app/models/concerns/sufia/generic_file/batches.rb +0 -28
  173. data/sufia-models/app/models/concerns/sufia/generic_file/characterization.rb +0 -89
  174. data/sufia-models/app/models/concerns/sufia/generic_file/content.rb +0 -13
  175. data/sufia-models/app/models/concerns/sufia/generic_file/derivatives.rb +0 -26
  176. data/sufia-models/app/models/concerns/sufia/generic_file/export.rb +0 -343
  177. data/sufia-models/app/models/concerns/sufia/generic_file/featured.rb +0 -11
  178. data/sufia-models/app/models/concerns/sufia/generic_file/full_text_indexing.rb +0 -43
  179. data/sufia-models/app/models/concerns/sufia/generic_file/indexing.rb +0 -14
  180. data/sufia-models/app/models/concerns/sufia/generic_file/metadata.rb +0 -98
  181. data/sufia-models/app/models/concerns/sufia/generic_file/mime_types.rb +0 -69
  182. data/sufia-models/app/models/concerns/sufia/generic_file/permissions.rb +0 -11
  183. data/sufia-models/app/models/concerns/sufia/generic_file/proxy_deposit.rb +0 -31
  184. data/sufia-models/app/models/concerns/sufia/generic_file/trophies.rb +0 -14
  185. data/sufia-models/app/models/concerns/sufia/generic_file/versions.rb +0 -16
  186. data/sufia-models/app/models/concerns/sufia/generic_file/virus_check.rb +0 -37
  187. data/sufia-models/app/models/concerns/sufia/model_methods.rb +0 -20
  188. data/sufia-models/app/models/concerns/sufia/user.rb +0 -137
  189. data/sufia-models/app/models/concerns/sufia/user_usage_stats.rb +0 -15
  190. data/sufia-models/app/models/datastreams/file_content_datastream.rb +0 -4
  191. data/sufia-models/app/models/datastreams/fits_datastream.rb +0 -152
  192. data/sufia-models/app/models/domain_term.rb +0 -5
  193. data/sufia-models/app/models/featured_work.rb +0 -22
  194. data/sufia-models/app/models/file_download_stat.rb +0 -18
  195. data/sufia-models/app/models/file_usage.rb +0 -34
  196. data/sufia-models/app/models/file_view_stat.rb +0 -18
  197. data/sufia-models/app/models/follow.rb +0 -12
  198. data/sufia-models/app/models/generic_file.rb +0 -3
  199. data/sufia-models/app/models/geo_names_resource.rb +0 -18
  200. data/sufia-models/app/models/group.rb +0 -8
  201. data/sufia-models/app/models/local_authority.rb +0 -86
  202. data/sufia-models/app/models/local_authority_entry.rb +0 -3
  203. data/sufia-models/app/models/proxy_deposit_request.rb +0 -85
  204. data/sufia-models/app/models/proxy_deposit_rights.rb +0 -4
  205. data/sufia-models/app/models/single_use_link.rb +0 -42
  206. data/sufia-models/app/models/subject_local_authority_entry.rb +0 -2
  207. data/sufia-models/app/models/sufia/avatar_uploader.rb +0 -20
  208. data/sufia-models/app/models/sufia/avatar_validator.rb +0 -8
  209. data/sufia-models/app/models/sufia/collection.rb +0 -5
  210. data/sufia-models/app/models/sufia/download.rb +0 -9
  211. data/sufia-models/app/models/sufia/orcid_validator.rb +0 -12
  212. data/sufia-models/app/models/sufia/pageview.rb +0 -9
  213. data/sufia-models/app/models/trophy.rb +0 -10
  214. data/sufia-models/app/models/user_stat.rb +0 -2
  215. data/sufia-models/app/models/version_committer.rb +0 -2
  216. data/sufia-models/app/services/sufia/analytics.rb +0 -50
  217. data/sufia-models/app/services/sufia/generic_file_audit_service.rb +0 -83
  218. data/sufia-models/app/services/sufia/generic_file_indexing_service.rb +0 -12
  219. data/sufia-models/app/services/sufia/id_service.rb +0 -45
  220. data/sufia-models/app/services/sufia/noid.rb +0 -22
  221. data/sufia-models/app/services/sufia/repository_audit_service.rb +0 -9
  222. data/sufia-models/config/locales/sufia.en.yml +0 -6
  223. data/sufia-models/lib/generators/sufia/models/abstract_migration_generator.rb +0 -30
  224. data/sufia-models/lib/generators/sufia/models/cached_stats_generator.rb +0 -24
  225. data/sufia-models/lib/generators/sufia/models/fulltext_generator.rb +0 -27
  226. data/sufia-models/lib/generators/sufia/models/install_generator.rb +0 -106
  227. data/sufia-models/lib/generators/sufia/models/orcid_field_generator.rb +0 -19
  228. data/sufia-models/lib/generators/sufia/models/proxies_generator.rb +0 -24
  229. data/sufia-models/lib/generators/sufia/models/templates/app/models/collection.rb +0 -2
  230. data/sufia-models/lib/generators/sufia/models/templates/config/analytics.yml +0 -9
  231. data/sufia-models/lib/generators/sufia/models/templates/config/clamav.rb +0 -1
  232. data/sufia-models/lib/generators/sufia/models/templates/config/mailboxer.rb +0 -17
  233. data/sufia-models/lib/generators/sufia/models/templates/config/mime_types.rb +0 -6
  234. data/sufia-models/lib/generators/sufia/models/templates/config/redis.yml +0 -9
  235. data/sufia-models/lib/generators/sufia/models/templates/config/redis_config.rb +0 -32
  236. data/sufia-models/lib/generators/sufia/models/templates/config/resque-pool.yml +0 -1
  237. data/sufia-models/lib/generators/sufia/models/templates/config/resque_config.rb +0 -5
  238. data/sufia-models/lib/generators/sufia/models/templates/config/setup_mail.rb +0 -3
  239. data/sufia-models/lib/generators/sufia/models/templates/config/solrconfig.xml +0 -223
  240. data/sufia-models/lib/generators/sufia/models/templates/config/sufia.rb +0 -144
  241. data/sufia-models/lib/generators/sufia/models/templates/migrations/acts_as_follower_migration.rb +0 -17
  242. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_avatars_to_users.rb +0 -15
  243. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_external_key_to_content_blocks.rb +0 -6
  244. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_groups_to_users.rb +0 -11
  245. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_ldap_attrs_to_user.rb +0 -27
  246. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_linkedin_to_users.rb +0 -5
  247. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_orcid_to_users.rb +0 -5
  248. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_social_to_users.rb +0 -13
  249. data/sufia-models/lib/generators/sufia/models/templates/migrations/change_audit_log_pid_to_generic_file_id.rb +0 -5
  250. data/sufia-models/lib/generators/sufia/models/templates/migrations/change_proxy_deposit_request_pid_to_generic_file_id.rb +0 -5
  251. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_checksum_audit_logs.rb +0 -19
  252. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_content_blocks.rb +0 -10
  253. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_featured_works.rb +0 -12
  254. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_file_download_stats.rb +0 -12
  255. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_file_view_stats.rb +0 -12
  256. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_local_authorities.rb +0 -50
  257. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_proxy_deposit_requests.rb +0 -16
  258. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_proxy_deposit_rights.rb +0 -11
  259. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_single_use_links.rb +0 -12
  260. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_tinymce_assets.rb +0 -8
  261. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_trophies.rb +0 -10
  262. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_user_stats.rb +0 -19
  263. data/sufia-models/lib/generators/sufia/models/templates/migrations/create_version_committers.rb +0 -15
  264. data/sufia-models/lib/generators/sufia/models/update_content_blocks_generator.rb +0 -18
  265. data/sufia-models/lib/generators/sufia/models/upgrade400_generator.rb +0 -54
  266. data/sufia-models/lib/generators/sufia/models/upgrade600_generator.rb +0 -21
  267. data/sufia-models/lib/generators/sufia/models/usagestats_generator.rb +0 -19
  268. data/sufia-models/lib/generators/sufia/models/user_stats_generator.rb +0 -31
  269. data/sufia-models/lib/sufia/messages.rb +0 -66
  270. data/sufia-models/lib/sufia/models.rb +0 -34
  271. data/sufia-models/lib/sufia/models/active_fedora/redis.rb +0 -43
  272. data/sufia-models/lib/sufia/models/active_record/redis.rb +0 -56
  273. data/sufia-models/lib/sufia/models/engine.rb +0 -79
  274. data/sufia-models/lib/sufia/models/file_content.rb +0 -6
  275. data/sufia-models/lib/sufia/models/file_content/versions.rb +0 -21
  276. data/sufia-models/lib/sufia/models/resque.rb +0 -36
  277. data/sufia-models/lib/sufia/models/stats/user_stat_importer.rb +0 -108
  278. data/sufia-models/lib/sufia/models/user_local_directory_behavior.rb +0 -29
  279. data/sufia-models/lib/sufia/models/utils.rb +0 -22
  280. data/sufia-models/lib/sufia/models/version.rb +0 -5
  281. data/sufia-models/lib/sufia/models/virus_found_error.rb +0 -4
  282. data/sufia-models/lib/sufia/permissions.rb +0 -9
  283. data/sufia-models/lib/sufia/permissions/readable.rb +0 -20
  284. data/sufia-models/lib/sufia/permissions/writable.rb +0 -74
  285. data/sufia-models/lib/tasks/batch_cleanup.rake +0 -19
  286. data/sufia-models/lib/tasks/migrate.rake +0 -21
  287. data/sufia-models/lib/tasks/resque.rake +0 -13
  288. data/sufia-models/lib/tasks/stats_tasks.rake +0 -12
  289. data/sufia-models/lib/tasks/sufia-models_tasks.rake +0 -80
  290. data/sufia-models/sufia-models.gemspec +0 -52
@@ -0,0 +1,4 @@
1
+ # Added to allow for the My controller to show only things I have edit access to
2
+ class MySearchBuilder < Blacklight::SearchBuilder
3
+ include Sufia::MySearchBuilderBehavior
4
+ end
@@ -0,0 +1,20 @@
1
+ # Behavior for the my controller search builder to allow the my controller to only get access to
2
+ # items I have edit access to.
3
+ #
4
+ # Separating as a behavior allows for easier overriding of the gem behavior.
5
+ module Sufia::MySearchBuilderBehavior
6
+ extend ActiveSupport::Concern
7
+
8
+ included do
9
+ include Blacklight::Solr::SearchBuilderBehavior
10
+ end
11
+
12
+ include Hydra::AccessControlsEnforcement
13
+ include Sufia::SearchBuilder
14
+
15
+ # show only files with edit permissions in lib/hydra/access_controls_enforcement.rb apply_gated_discovery
16
+ def discovery_permissions
17
+ ["edit"]
18
+ end
19
+
20
+ end
@@ -10,7 +10,7 @@ module Sufia::SearchBuilder
10
10
  ]
11
11
  end
12
12
 
13
- def show_only_files_deposited_by_current_user(solr_parameters)
13
+ def show_only_resources_deposited_by_current_user(solr_parameters)
14
14
  solr_parameters[:fq] ||= []
15
15
  solr_parameters[:fq] += [
16
16
  ActiveFedora::SolrQueryBuilder.construct_query_for_rel(depositor: scope.current_user.user_key)
@@ -0,0 +1,68 @@
1
+ <div class="stats">
2
+ <h1>Statistics for <%= application_name %>
3
+ <%= Sufia::VERSION %></h1>
4
+ <br/>
5
+
6
+ <h2>Total Files: <%= @files_count[:total] %> </h2>
7
+ <br/>
8
+ <h3>Totals by Visibility</h3>
9
+ <ul>
10
+ <li>Open Access <span class="count">(<%= @files_count[:public] %>)</span></li>
11
+ <li><%= t("sufia.admin.stats.registered") %> <span class="count">(<%= @files_count[:registered] %>)</span></li>
12
+ <li>Private <span class="count">(<%= @files_count[:private] %>)</span></li>
13
+ </ul>
14
+
15
+ <h3>Top File Formats</h3>
16
+ <ul>
17
+ <% @top_formats.each do |k, v| %>
18
+ <li><%= k %> <span class="count">(<%= v %>)</span></li>
19
+ <% end %>
20
+ </ul>
21
+
22
+ <br/>
23
+
24
+ <h2>Total <%= application_name %> Users:&nbsp; <%= @users_count %> </h2>
25
+ <br/>
26
+
27
+ <h3>Newest Users</h3>
28
+ <%= form_for "users_stats", url: sufia.admin_stats_path, method: "GET" do |f| %>
29
+ <%= f.label "Display users registered since" %>
30
+ <input type="date" name="users_stats[start_date]" value="<%= @users_stats[:start_date] %>"></input>
31
+ <%= f.submit "Load Stats" %>
32
+ <%- end %>
33
+
34
+ <%- if @users_stats[:start_date] %>
35
+ <div>Total: <%= @recent_users.count %></div>
36
+ <%- else %>
37
+ Five most recent users:
38
+ <%- end %>
39
+
40
+ <ul>
41
+ <% @recent_users.each do |usr| %>
42
+ <li>
43
+ <a href="<%= sufia.profile_path(usr.user_key) %>" title="View user's profile"><%= usr.name %></a>
44
+ <%- if usr.department %>
45
+ of <%= usr.department %>
46
+ <%- end %>
47
+ registered
48
+ <span class="date">
49
+ <%= usr.created_at.to_time.strftime("%m/%d/%Y") %>
50
+ </span>
51
+ </li>
52
+ <% end %>
53
+ </ul>
54
+
55
+
56
+ <br/>
57
+ <h3>Most Active Users (top <%= @active_users.count %>)</h3>
58
+ <ul>
59
+ <% @active_users.each do |k, v| %>
60
+ <li>
61
+ <%= link_to_profile(k) %> <span class="count">(<%= v %>)</span>
62
+ </li>
63
+ <% end %>
64
+ <% if !params[:dep_count] %>
65
+ <p><%= link_to "View top 20", sufia.admin_stats_path, controller: "stats", dep_count: "20" %> </p>
66
+ <% end %>
67
+ </ul>
68
+ </div>
@@ -1,23 +1,25 @@
1
1
  <div class="btn-group">
2
- <button class="btn btn-sm" href="#"><i class="glyphicon glyphicon-wrench"></i> Select an action</button>
3
- <button class="btn btn-sm dropdown-toggle" data-toggle="dropdown" href="#"><span class="glyphicon glyphicon-chevron-down"></span></button>
4
- <ul class="dropdown-menu">
5
- <li>
6
- <%= button_for_remove_from_collection(gf, 'Remove from Collection') %>
7
- </li>
8
- <li>
9
- <%= link_to raw('<i class="glyphicon glyphicon-link over"></i> Single-Use Link to File'), '#', class: "copypaste itemicon itemcode", title: "Single-Use Link to File", id: "copy_link_#{id}" %>
10
- </li>
11
- <li>
12
- <%= link_to raw('<i class="glyphicon glyphicon-pencil"></i> Edit File'), sufia.edit_generic_file_path(id), class: 'itemicon itemedit', title: 'Edit File' %>
13
- </li>
14
- <li>
15
- <%= link_to raw('<i class="glyphicon glyphicon-download-alt"></i> Download File'), sufia.download_path(id), class: 'itemicon itemdownload', title: 'Download File', target: '_new' %>
16
- </li>
17
- <li>
18
- <%= display_trophy_link(@user, id) do |text| %>
19
- <i class='glyphicon glyphicon-star'></i> <%= text %>
20
- <% end %>
21
- </li>
2
+ <button class="btn btn-sm dropdown-toggle" data-toggle="dropdown">Select an action <span class="caret"></span></button>
3
+ <ul class="dropdown-menu dropdown-menu-right">
4
+ <li>
5
+ <%= button_for_remove_from_collection(gf, 'Remove from Collection') %>
6
+ </li>
7
+ <li>
8
+ <%= link_to raw('<i class="glyphicon glyphicon-link over"></i> Single-Use Link to File'), '#',
9
+ class: "copypaste itemicon itemcode", title: "Single-Use Link to File", id: "copy_link_#{id}" %>
10
+ </li>
11
+ <li>
12
+ <%= link_to raw('<i class="glyphicon glyphicon-pencil"></i> Edit File'), sufia.edit_generic_file_path(id),
13
+ class: 'itemicon itemedit', title: 'Edit File' %>
14
+ </li>
15
+ <li>
16
+ <%= link_to raw('<i class="glyphicon glyphicon-download-alt"></i> Download File'), sufia.download_path(id),
17
+ class: 'itemicon itemdownload', title: 'Download File', target: '_new' %>
18
+ </li>
19
+ <li>
20
+ <%= display_trophy_link(@user, id) do |text| %>
21
+ <i class='glyphicon glyphicon-star'></i> <%= text %>
22
+ <% end %>
23
+ </li>
22
24
  </ul>
23
25
  </div>
@@ -5,7 +5,7 @@
5
5
  <div class="row">
6
6
  <div class="col-sm-3">
7
7
  <%= link_to [collections, collection] do %>
8
- <span class="glyphicon glyphicon-th collection-icon-search">
8
+ <%= image_tag "site_images/collection-icon.svg", class: "collection-icon-search" %>
9
9
  <% end %>
10
10
  </div>
11
11
  <div class="col-sm-9">
@@ -3,23 +3,25 @@
3
3
  <div class="modal-content">
4
4
  <div class="modal-header">
5
5
  <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button>
6
- <h4 class="modal-title" id="col_add_title"><%= t("sufia.collection.select_form.title") %></h4>
6
+ <span class="modal-title" id="col_add_title"><%= t("sufia.collection.select_form.title") %></span>
7
7
  </div>
8
8
  <div class="modal-body">
9
9
  <% if user_collections.blank? %>
10
10
  <em> <%= t("sufia.collection.select_form.no_collections") %></em><br><br><br><br>
11
11
  <% else %>
12
- <%= t("sufia.collection.select_form.select_heading") %>
13
12
  <div class="collection-list">
13
+ <fieldset>
14
+ <legend><%= t("sufia.collection.select_form.select_heading") %></legend>
14
15
  <ul>
15
16
  <% user_collections.sort! { |c1,c2| c1['date_modified_dtsi'] <=> c2['date_modified_dtsi'] } %>
16
17
  <% user_collections.each do |collection| %>
17
- <li> <label for="<%= collection.id %>" class="sr-only">Add to <%=collection.title%></label>
18
+ <li> <label for="id_<%= collection.id %>" class="sr-only">Add to <%=collection.title%></label>
18
19
  <%= radio_button_tag(:id, collection.id, true, class: "collection-selector") %>
19
20
  <%= label_tag(:collection, collection.title, "aria-hidden" =>true) %>
20
21
  </li>
21
22
  <% end %>
22
23
  </ul>
24
+ </fieldset>
23
25
  </div><!-- collection-list -->
24
26
  <% end %> <!-- else -->
25
27
  </div>
@@ -1,4 +1,5 @@
1
- <h2 class="non lower">Actions</h2>
1
+ <div id="show_actions">
2
+ <h2 class="non lower">Actions</h2>
2
3
  <p>
3
4
  <%= render_download_link %>
4
5
  <% if Sufia.config.analytics %>
@@ -19,7 +20,7 @@
19
20
  <%= link_to "Feature", sufia.featured_work_path(@generic_file, format: :json), data: {behavior: 'feature'} %>
20
21
  <% elsif @generic_file.featured? %>
21
22
  &nbsp;|&nbsp;
22
- Featured
23
+ <%= link_to "Unfeature", sufia.featured_work_path(@generic_file, format: :json), data: {behavior: 'unfeature-page'} %>
23
24
  <% end %>
24
25
  <% end %>
25
26
  </p>
@@ -43,3 +44,4 @@
43
44
 
44
45
  <!-- COinS hook for Zotero -->
45
46
  <span class="Z3988" title="<%= @generic_file.export_as_openurl_ctx_kev %>"></span>
47
+ </div>
@@ -34,7 +34,7 @@
34
34
  <%= javascript_include_tag 'https://s7.addthis.com/js/250/addthis_widget.js#pubid=ra-4ff1d986721ebb24' %>
35
35
 
36
36
  <%= javascript_tag do %>
37
- var addthis_config = {"data_track_addressbar":true};
37
+ var addthis_config = {"data_track_addressbar":false};
38
38
  initialize_audio();
39
39
  <% end %>
40
40
 
@@ -5,19 +5,20 @@
5
5
  <div id="wrapper">
6
6
  <div class="container-fluid">
7
7
  <div id="page-positioner">
8
-
8
+ <a href="#skip_to_content" class="sr-only">Skip to Content</a>
9
9
  <%= render partial: '/masthead' %>
10
10
  <%= render partial: '/controls' %>
11
11
  <%= render partial: '/flash_msg' %>
12
12
 
13
- <div id="content-wrapper" class="dashboard">
13
+ <div id="content-wrapper" class="dashboard" role="main">
14
+ <a name="skip_to_content"></a>
14
15
  <div class="container-fluid">
15
16
  <div id="content-header" class="row"><%= yield :heading %></div>
16
17
  </div>
17
18
  <div class="container-fluid">
18
19
  <div id="content" class="row">
19
- <div id="sidebar" class="col-xs-12 col-sm-3"><%= yield :sidebar %></div>
20
- <div class="col-xs-12 col-sm-9"><%= yield %></div>
20
+ <div class="col-xs-12 col-sm-9 col-sm-push-3"><%= yield %></div>
21
+ <div id="sidebar" class="col-xs-12 col-sm-3 col-sm-pull-9"><%= yield :sidebar %></div>
21
22
  </div>
22
23
  </div>
23
24
  </div>
@@ -8,10 +8,12 @@
8
8
  <div id="wrapper">
9
9
  <div class="container-fluid">
10
10
  <div id="page-positioner">
11
+ <a href="#skip_to_content" class="sr-only">Skip to Content</a>
11
12
  <%= render partial: '/masthead' %>
12
13
  <%= render partial: '/controls' %>
13
14
  <%= render partial: '/flash_msg' %>
14
15
  <div id="content-wrapper" class="container-fluid">
16
+ <a name="skip_to_content"></a>
15
17
  <div id="content" class="row">
16
18
  <div class="col-xs-12">
17
19
  <%= yield %>
@@ -8,17 +8,19 @@
8
8
  <div id="wrapper">
9
9
  <div class="container-fluid">
10
10
  <div id="page-positioner">
11
+ <a href="#skip_to_content" class="sr-only">Skip to Content</a>
11
12
  <%= render partial: '/masthead' %>
12
13
  <%= render partial: '/controls' %>
13
14
  <%= render partial: '/flash_msg' %>
14
15
  <div id="content-wrapper" class="container-fluid">
16
+ <a name="skip_to_content"></a>
15
17
  <div class="row">
16
- <div id="sidebar" class="col-xs-12 col-sm-3">
17
- <%= yield :sidebar %>
18
- </div>
19
- <div id="content" class="col-xs-12 col-sm-9">
18
+ <div id="content" class="col-xs-12 col-sm-9 col-sm-push-3">
20
19
  <%= yield %>
21
20
  </div>
21
+ <div id="sidebar" class="col-xs-12 col-sm-3 col-sm-push-9">
22
+ <%= yield :sidebar %>
23
+ </div>
22
24
  </div><!-- /#content -->
23
25
  </div><!-- /#content-wrapper -->
24
26
  <%= render partial: '/footer' %>
@@ -1,8 +1,8 @@
1
1
  <div class="panel panel-default facet_limit blacklight-<%= facet_field.field.parameterize %> <%= 'facet_limit-active' if facet_field_in_params?(facet_field.field) %>">
2
2
  <div class="<%= "collapsed" if should_collapse_facet?(facet_field) %> collapse-toggle panel-heading" data-toggle="collapse" data-target="#<%= facet_field_id(facet_field) %>">
3
- <h5 class="panel-title">
3
+ <h4 class="panel-title">
4
4
  <%= link_to facet_field_label(facet_field.field), "#", :"data-no-turbolink" => true %>
5
- </h5>
5
+ </h4>
6
6
  </div>
7
7
  <div id="<%= facet_field_id(facet_field) %>" class="panel-collapse facet-content <%= should_collapse_facet?(facet_field) ? 'collapse' : 'in' %>">
8
8
  <div class="panel-body">
@@ -8,13 +8,11 @@
8
8
  <span class="fa fa-bars"></span>
9
9
  </button>
10
10
 
11
- <h4>
12
- <%= t("sufia.dashboard.my.facet_label.#{current_tab}") %>
13
- </h4>
14
- </div>
11
+ <h3><%= t("sufia.dashboard.my.facet_label.#{current_tab}") %></h3>
12
+ </div>
15
13
 
16
14
  <div id="facet-panel-collapse" class="collapse panel-group">
17
- <%= render_facet_partials %>
18
- </div>
15
+ <%= render_facet_partials %>
16
+ </div>
19
17
  </div>
20
18
  <% end %>
@@ -10,8 +10,8 @@
10
10
 
11
11
  <% @page_title = "#{current_tab.capitalize} listing" %>
12
12
 
13
- <ul class="nav nav-tabs" id="my_nav">
14
- <h1 class="sr-only">Listing Navigation Bar</h1>
13
+ <h1 class="sr-only">My Files, Collections, Highlights, and Files Shared with Me</h1>
14
+ <ul class="nav nav-tabs" id="my_nav" role="navigation">
15
15
  <span class="sr-only">You are currently listing your <%= current_tab.pluralize %> . You have <%= @response.docs.count %> <%= current_tab.pluralize(@response.docs.count)%> </span>
16
16
  <li class="<%= "active" if @selected_tab == :files %>">
17
17
  <%= link_to t('sufia.dashboard.my.files'), sufia.dashboard_files_path %>
@@ -29,10 +29,11 @@
29
29
 
30
30
  <%= render 'search_header' %>
31
31
 
32
- <h1 class="sr-only"><%=@page_title %></h1>
32
+ <h2 class="sr-only"><%=@page_title %></h2>
33
33
  <%= render partial: 'document_list' %>
34
34
 
35
35
  <% content_for :sidebar do %>
36
+ <span class="sr-only">Upload Files or Create Collection</span>
36
37
  <%= link_to t('sufia.dashboard.upload_html'), sufia.new_generic_file_path, class: "btn btn-primary" %>
37
38
  <%= link_to t('sufia.dashboard.create_collection_html'), collections.new_collection_path, id: "hydra-collection-add", class: "btn btn-primary" %>
38
39
  <%= render partial: 'facets', locals: {current_tab: current_tab} %>
@@ -7,25 +7,27 @@
7
7
  <%= f.file_field :avatar %>
8
8
  <%= f.hidden_field :avatar_cache %>
9
9
  <span class="help-block">JPG, GIF, or PNG (less than 2MB)</span>
10
+
11
+ <div class="checkbox">
12
+ <%= f.label :remove_avatar do %>
13
+ <%= f.check_box :remove_avatar %>
14
+ Delete picture
15
+ <a href="#" id="delete_picture_help" rel="popover" data-content="If you would like to remove your picture entirely, check the box and save your profile." data-original-title="Delete Picture"><i class="glyphicon glyphicon-question-sign"></i></a>
16
+ <% end %>
17
+ </div>
18
+ <div class="checkbox">
19
+ <%= f.label :update_directory do %>
20
+ <%= f.check_box :update_directory %>
21
+ Refresh directory info
22
+ <a href="#" id="refresh_directory_help" rel="popover" data-content="The information displayed in your profile comes from <%=t('sufia.institution_name') %>'s central directory (LDAP) and is cached by <%=t('sufia.product_name') %>. If you have updated that information and don't see those changes in your <%=t('sufia.product_name') %> profile, check the box and save your profile." data-original-title="Refresh Directory Info"><i class="glyphicon glyphicon-question-sign"></i></a>
23
+ <% end %>
24
+ </div>
10
25
  </div>
11
26
  </div><!-- .form-group -->
12
27
 
13
- <div class="col-xs-offset-4 col-xs-8">
14
- <div class="checkbox">
15
- <%= f.label :remove_avatar do %>
16
- <%= f.check_box :remove_avatar %>
17
- Delete picture
18
- <a href="#" id="delete_picture_help" rel="popover" data-content="If you would like to remove your picture entirely, check the box and save your profile." data-original-title="Delete Picture"><i class="glyphicon glyphicon-question-sign"></i></a>
19
- <% end %>
20
- </div>
21
- <div class="checkbox">
22
- <%= f.label :update_directory do %>
23
- <%= f.check_box :update_directory %>
24
- Refresh directory info
25
- <a href="#" id="refresh_directory_help" rel="popover" data-content="The information displayed in your profile comes from <%=t('sufia.institution_name') %>'s central directory (LDAP) and is cached by <%=t('sufia.product_name') %>. If you have updated that information and don't see those changes in your <%=t('sufia.product_name') %> profile, check the box and save your profile." data-original-title="Refresh Directory Info"><i class="glyphicon glyphicon-question-sign"></i></a>
26
- <% end %>
27
- </div>
28
- </div>
28
+ <% if Sufia.config.arkivo_api %>
29
+ <%= render partial: 'zotero', locals: { f: f, user: @user } %>
30
+ <% end %>
29
31
 
30
32
  <div class="form-group">
31
33
  <%= f.label :orcid, class: 'col-xs-4 control-label' do %>
@@ -65,4 +67,3 @@
65
67
  <div class="well">
66
68
  <%= render 'dashboard/_index_partials/proxy_rights' %>
67
69
  </div>
68
-
@@ -18,7 +18,11 @@
18
18
  <% end %>
19
19
  </ul>
20
20
  <% else %>
21
- <h3> <%= t("sufia.user_profile.no_followers") %></h3>
21
+ <% if current_user and @user.id == current_user.id %>
22
+ <h3> <%= t("sufia.user_profile.no_followers") %></h3>
23
+ <% else %>
24
+ <h3> <%= t("sufia.user_profile.no_followers_other") %></h3>
25
+ <% end %>
22
26
  <% end %>
23
27
  </div>
24
28
  <div class="modal-footer">
@@ -18,7 +18,11 @@
18
18
  <% end %>
19
19
  </ul>
20
20
  <% else %>
21
- <h3><%= t("sufia.user_profile.no_following") %></h3>
21
+ <% if current_user and @user.id == current_user.id %>
22
+ <h3> <%= t("sufia.user_profile.no_following") %></h3>
23
+ <% else %>
24
+ <h3> <%= t("sufia.user_profile.no_following_other") %></h3>
25
+ <% end %>
22
26
  <% end %>
23
27
  </div>
24
28
  <div class="modal-footer">
@@ -1,10 +1,15 @@
1
1
  <dl id="user_info" class="row">
2
2
 
3
3
  <% if user.orcid.present? %>
4
- <dt class="col-xs-5"><%= orcid_label('orcid') %></dt>
4
+ <dt class="col-xs-5"><%= orcid_label('profile') %></dt>
5
5
  <dd class="col-xs-7"><%= link_to user.orcid, user.orcid, { target: '_blank' } %></dd>
6
6
  <% end %>
7
7
 
8
+ <% if user.zotero_userid.present? %>
9
+ <dt class="col-xs-5"><%= zotero_label(html_class: 'profile') %></dt>
10
+ <dd class="col-xs-7"><%= link_to zotero_profile_url(user.zotero_userid), zotero_profile_url(user.zotero_userid), { target: '_blank' } %></dd>
11
+ <% end %>
12
+
8
13
  <% if user.facebook_handle.present? %>
9
14
  <dt class="col-xs-5"><i class="fa fa-facebook"></i> Facebook Handle</dt>
10
15
  <dd class="col-xs-7"><%= link_to user.facebook_handle, "http://facebook.com/#{user.facebook_handle}", {target:'_blank'} %></dd>
@@ -0,0 +1,12 @@
1
+ <div class="form-group">
2
+ <%= f.label :zotero, class: 'col-xs-4 control-label' do %>
3
+ <%= zotero_label %>
4
+ <% end %>
5
+ <div class="col-xs-8">
6
+ <% if user.zotero_userid.present? %>
7
+ <%= link_to t('sufia.user_profile.zotero.connected'), zotero_profile_url(user.zotero_userid), class: "form-control" %>
8
+ <% else %>
9
+ <%= link_to t('sufia.user_profile.zotero.unlinked'), sufia.api_zotero_initiate_path, id: "zotero", class: "btn btn-mini btn-primary" %>
10
+ <% end %>
11
+ </div>
12
+ </div><!-- .form-group -->