sufia 5.0.0 → 6.0.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (244) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +1 -8
  3. data/Gemfile +3 -12
  4. data/History.md +0 -36
  5. data/LICENSE.md +14 -0
  6. data/README.md +4 -8
  7. data/SUFIA_VERSION +1 -1
  8. data/app/assets/javascripts/sufia.js +1 -17
  9. data/app/assets/javascripts/sufia/batch_edit.js +43 -28
  10. data/app/assets/javascripts/sufia/edit_metadata.js +9 -14
  11. data/app/assets/javascripts/sufia/multiForm.js +67 -0
  12. data/app/assets/javascripts/sufia/permissions.js +92 -35
  13. data/app/assets/stylesheets/sufia.css.scss +1 -6
  14. data/app/assets/stylesheets/sufia/_batch-edit.scss +0 -8
  15. data/app/assets/stylesheets/sufia/_dashboard.scss +1 -15
  16. data/app/assets/stylesheets/sufia/_file-listing.scss +1 -1
  17. data/app/assets/stylesheets/sufia/_settings.scss +0 -1
  18. data/app/controllers/concerns/sufia/batch_edits_controller_behavior.rb +3 -10
  19. data/app/controllers/concerns/sufia/breadcrumbs.rb +3 -8
  20. data/app/controllers/concerns/sufia/catalog.rb +1 -1
  21. data/app/controllers/concerns/sufia/controller.rb +3 -1
  22. data/app/controllers/concerns/sufia/downloads_controller_behavior.rb +1 -1
  23. data/app/controllers/concerns/sufia/files_controller/browse_everything.rb +1 -1
  24. data/app/controllers/concerns/sufia/files_controller_behavior.rb +16 -4
  25. data/app/controllers/concerns/sufia/homepage_controller.rb +1 -1
  26. data/app/controllers/concerns/sufia/my_controller_behavior.rb +2 -2
  27. data/app/controllers/concerns/sufia/transfers_controller_behavior.rb +3 -4
  28. data/app/controllers/concerns/sufia/users_controller_behavior.rb +2 -7
  29. data/app/controllers/my/collections_controller.rb +3 -4
  30. data/app/controllers/my/highlights_controller.rb +2 -2
  31. data/app/controllers/my/shares_controller.rb +3 -3
  32. data/app/controllers/single_use_links_controller.rb +5 -9
  33. data/app/controllers/single_use_links_viewer_controller.rb +4 -4
  34. data/app/helpers/generic_file_helper.rb +9 -0
  35. data/app/helpers/sufia/records_helper_behavior.rb +16 -0
  36. data/app/helpers/sufia/sufia_helper_behavior.rb +0 -11
  37. data/app/jobs/content_depositor_change_event_job.rb +1 -1
  38. data/app/jobs/ingest_local_file_job.rb +2 -1
  39. data/app/models/concerns/sufia/solr_document_behavior.rb +10 -10
  40. data/app/models/featured_work_list.rb +7 -9
  41. data/app/presenters/sufia/version_list_presenter.rb +15 -0
  42. data/app/presenters/sufia/version_presenter.rb +30 -0
  43. data/app/views/batch/_metadata.html.erb +51 -29
  44. data/app/views/batch/_more_metadata.html.erb +1 -1
  45. data/app/views/batch/edit.html.erb +10 -8
  46. data/app/views/batch_edits/edit.html.erb +13 -9
  47. data/app/views/collections/_edit_descriptions.html.erb +1 -1
  48. data/app/views/collections/_form.html.erb +4 -4
  49. data/app/views/collections/_form_for_select_collection.html.erb +1 -1
  50. data/app/views/collections/_show_document_list_menu.html.erb +7 -5
  51. data/app/views/collections/_show_document_list_row.html.erb +2 -2
  52. data/app/views/collections/edit.html.erb +0 -1
  53. data/app/views/collections/edit_fields/_description.html.erb +4 -0
  54. data/app/views/collections/edit_fields/_title.html.erb +3 -0
  55. data/app/views/collections/show.html.erb +0 -1
  56. data/app/views/dashboard/_index_partials/_stats.html.erb +3 -3
  57. data/app/views/generic_files/_descriptions.html.erb +9 -9
  58. data/app/views/generic_files/_field_form.html.erb +11 -25
  59. data/app/views/generic_files/_permission.html.erb +6 -4
  60. data/app/views/generic_files/_permission_form.html.erb +15 -17
  61. data/app/views/generic_files/_show_details.html.erb +1 -11
  62. data/app/views/generic_files/_versioning.html.erb +5 -5
  63. data/app/views/generic_files/edit.html.erb +5 -4
  64. data/app/views/generic_files/show.html.erb +6 -6
  65. data/app/views/homepage/_featured_fields.html.erb +2 -2
  66. data/app/views/homepage/_recent_document.html.erb +1 -1
  67. data/app/views/layouts/_head_tag_content.html.erb +0 -2
  68. data/app/views/layouts/error.html.erb +0 -1
  69. data/app/views/my/_index_partials/_default_group.html.erb +1 -1
  70. data/app/views/my/_index_partials/_list_files.html.erb +1 -1
  71. data/app/views/my/index.html.erb +2 -2
  72. data/app/views/records/_edit_field.html.erb +17 -19
  73. data/app/views/records/edit_fields/_default.html.erb +10 -12
  74. data/app/views/records/edit_fields/_description.html.erb +10 -3
  75. data/app/views/records/edit_fields/_resource_type.html.erb +4 -5
  76. data/app/views/records/edit_fields/_rights.html.erb +9 -2
  77. data/app/views/records/edit_fields/_suffix.html.erb +10 -0
  78. data/app/views/records/edit_fields/_type.html.erb +8 -2
  79. data/app/views/records/show_fields/_based_near.html.erb +1 -1
  80. data/app/views/records/show_fields/_creator.html.erb +1 -1
  81. data/app/views/records/show_fields/_language.html.erb +1 -1
  82. data/app/views/records/show_fields/_publisher.html.erb +1 -1
  83. data/app/views/records/show_fields/_resource_type.html.erb +1 -1
  84. data/app/views/records/show_fields/_subject.html.erb +1 -1
  85. data/app/views/records/show_fields/_tag.html.erb +1 -1
  86. data/app/views/single_use_links/new_download.html.erb +2 -2
  87. data/app/views/users/_profile.html.erb +2 -1
  88. data/app/views/users/_social_media_info.html.erb +20 -0
  89. data/app/views/users/_user_info.html.erb +3 -20
  90. data/app/views/users/edit.html.erb +2 -11
  91. data/app/views/users/show.html.erb +1 -1
  92. data/bin/audit_repository +1 -1
  93. data/config/initializers/sufia_events.rb +4 -4
  94. data/config/locales/sufia.en.yml +0 -5
  95. data/config/routes.rb +1 -1
  96. data/lib/generators/sufia/install_generator.rb +0 -4
  97. data/lib/generators/sufia/templates/catalog_controller.rb +59 -59
  98. data/lib/sufia.rb +1 -4
  99. data/lib/sufia/version.rb +1 -1
  100. data/spec/actors/generic_file/actor_spec.rb +67 -8
  101. data/spec/controllers/batch_controller_spec.rb +72 -86
  102. data/spec/controllers/batch_edits_controller_spec.rb +17 -19
  103. data/spec/controllers/catalog_controller_spec.rb +16 -24
  104. data/spec/controllers/collections_controller_spec.rb +47 -74
  105. data/spec/controllers/downloads_controller_spec.rb +40 -35
  106. data/spec/controllers/generic_files_controller_spec.rb +363 -428
  107. data/spec/controllers/homepage_controller_spec.rb +12 -9
  108. data/spec/controllers/mailbox_controller_spec.rb +1 -4
  109. data/spec/controllers/my/files_controller_spec.rb +0 -10
  110. data/spec/controllers/single_use_links_controller_spec.rb +28 -35
  111. data/spec/controllers/single_use_links_viewer_controller_spec.rb +27 -41
  112. data/spec/controllers/transfers_controller_spec.rb +6 -6
  113. data/spec/controllers/users_controller_spec.rb +121 -124
  114. data/spec/factories/generic_files.rb +9 -17
  115. data/spec/features/browse_dashboard_files_spec.rb +8 -10
  116. data/spec/features/browse_files_spec.rb +12 -25
  117. data/spec/features/catalog_search_spec.rb +49 -49
  118. data/spec/features/collection_spec.rb +18 -24
  119. data/spec/features/contact_form_spec.rb +26 -20
  120. data/spec/features/ingest_upload_files_spec.rb +8 -6
  121. data/spec/features/ownership_transfer_spec.rb +2 -6
  122. data/spec/features/proxy_spec.rb +1 -1
  123. data/spec/features/search_spec.rb +2 -3
  124. data/spec/features/single_use_links_spec.rb +1 -1
  125. data/spec/features/users_spec.rb +1 -1
  126. data/spec/helpers/records_helper_spec.rb +24 -10
  127. data/spec/jobs/active_fedora_pid_based_job_spec.rb +1 -5
  128. data/spec/jobs/audit_job_spec.rb +66 -21
  129. data/spec/jobs/batch_update_job_spec.rb +49 -36
  130. data/spec/jobs/content_depositor_change_event_job_spec.rb +2 -4
  131. data/spec/jobs/create_derivatives_job_spec.rb +18 -19
  132. data/spec/jobs/event_jobs_spec.rb +17 -21
  133. data/spec/jobs/import_url_job_spec.rb +1 -6
  134. data/spec/jobs/ingest_local_file_job_spec.rb +0 -4
  135. data/spec/lib/sufia/breadcrumbs_spec.rb +8 -46
  136. data/spec/lib/sufia/id_service_spec.rb +8 -3
  137. data/spec/lib/sufia/user_stat_importer_spec.rb +18 -25
  138. data/spec/lib/sufia/writable_permissions_spec.rb +0 -4
  139. data/spec/models/ability_spec.rb +25 -18
  140. data/spec/models/batch_spec.rb +16 -45
  141. data/spec/models/characterization_spec.rb +1 -1
  142. data/spec/models/checksum_audit_log_spec.rb +51 -29
  143. data/spec/models/collection_spec.rb +0 -5
  144. data/spec/models/featured_work_list_spec.rb +2 -4
  145. data/spec/models/file_content_datastream_spec.rb +27 -60
  146. data/spec/models/file_usage_spec.rb +16 -21
  147. data/spec/models/fits_datastream_spec.rb +47 -2
  148. data/spec/models/generic_file/web_form_spec.rb +1 -1
  149. data/spec/models/generic_file_spec.rb +238 -735
  150. data/spec/models/local_authority_spec.rb +8 -13
  151. data/spec/models/proxy_deposit_request_spec.rb +3 -7
  152. data/spec/models/single_use_link_spec.rb +12 -16
  153. data/spec/models/solr_document_spec.rb +1 -1
  154. data/spec/models/trophy_spec.rb +1 -3
  155. data/spec/models/user_spec.rb +47 -75
  156. data/spec/presenters/sufia/version_list_presenter_spec.rb +22 -0
  157. data/spec/presenters/sufia/version_presenter_spec.rb +51 -0
  158. data/spec/services/generic_file_audit_service_spec.rb +85 -0
  159. data/spec/services/repository_audit_service_spec.rb +18 -0
  160. data/spec/spec_helper.rb +26 -7
  161. data/spec/support/fixture_helpers.rb +2 -4
  162. data/spec/test_app_templates/lib/generators/test_app_generator.rb +0 -4
  163. data/spec/views/batch/edit.html.erb_spec.rb +17 -7
  164. data/spec/views/catalog/index.html.erb_spec.rb +8 -6
  165. data/spec/views/collections/_form.html.erb_spec.rb +4 -2
  166. data/spec/views/collections/_show_document_list.erb_spec.rb +31 -0
  167. data/spec/views/dashboard/index_spec.rb +2 -2
  168. data/spec/views/generic_file/edit.html.erb_spec.rb +20 -6
  169. data/spec/views/generic_file/show.html.erb_spec.rb +3 -3
  170. data/spec/views/users/show.html.erb_spec.rb +1 -1
  171. data/sufia-models/app/actors/sufia/generic_file/actor.rb +8 -10
  172. data/sufia-models/app/jobs/active_fedora_pid_based_job.rb +2 -3
  173. data/sufia-models/app/jobs/audit_job.rb +46 -32
  174. data/sufia-models/app/jobs/batch_update_job.rb +9 -8
  175. data/sufia-models/app/jobs/import_url_job.rb +2 -2
  176. data/sufia-models/app/models/batch.rb +11 -12
  177. data/sufia-models/app/models/checksum_audit_log.rb +12 -10
  178. data/sufia-models/app/models/concerns/sufia/ability.rb +4 -6
  179. data/sufia-models/app/models/concerns/sufia/collection.rb +4 -5
  180. data/sufia-models/app/models/concerns/sufia/generic_file.rb +3 -86
  181. data/sufia-models/app/models/concerns/sufia/generic_file/batches.rb +29 -0
  182. data/sufia-models/app/models/concerns/sufia/generic_file/characterization.rb +3 -3
  183. data/sufia-models/app/models/concerns/sufia/generic_file/content.rb +13 -0
  184. data/sufia-models/app/models/concerns/sufia/generic_file/derivatives.rb +5 -5
  185. data/sufia-models/app/models/concerns/sufia/generic_file/export.rb +4 -0
  186. data/sufia-models/app/models/concerns/sufia/generic_file/full_text_indexing.rb +2 -2
  187. data/sufia-models/app/models/concerns/sufia/generic_file/indexing.rb +23 -0
  188. data/sufia-models/app/models/concerns/sufia/generic_file/metadata.rb +80 -11
  189. data/sufia-models/app/models/concerns/sufia/generic_file/proxy_deposit.rb +12 -3
  190. data/sufia-models/app/models/concerns/sufia/generic_file/versions.rb +4 -4
  191. data/sufia-models/app/models/concerns/sufia/generic_file/web_form.rb +14 -6
  192. data/sufia-models/app/models/concerns/sufia/model_methods.rb +11 -9
  193. data/sufia-models/app/models/concerns/sufia/user.rb +11 -33
  194. data/sufia-models/app/models/datastreams/file_content_datastream.rb +1 -1
  195. data/sufia-models/app/models/datastreams/fits_datastream.rb +1 -1
  196. data/sufia-models/app/models/file_usage.rb +3 -3
  197. data/sufia-models/app/models/local_authority.rb +2 -2
  198. data/sufia-models/app/models/proxy_deposit_request.rb +1 -1
  199. data/sufia-models/app/services/sufia/generic_file_audit_service.rb +83 -0
  200. data/sufia-models/app/services/sufia/id_service.rb +5 -5
  201. data/sufia-models/app/services/sufia/noid.rb +10 -7
  202. data/sufia-models/app/services/sufia/repository_audit_service.rb +9 -0
  203. data/sufia-models/lib/generators/sufia/models/cached_stats_generator.rb +47 -3
  204. data/sufia-models/lib/generators/sufia/models/install_generator.rb +31 -11
  205. data/sufia-models/lib/generators/sufia/models/proxies_generator.rb +31 -2
  206. data/sufia-models/lib/generators/sufia/models/templates/config/sufia.rb +10 -0
  207. data/sufia-models/lib/generators/sufia/models/upgrade400_generator.rb +33 -2
  208. data/sufia-models/lib/sufia/models/engine.rb +13 -4
  209. data/sufia-models/lib/sufia/models/file_content/versions.rb +9 -11
  210. data/sufia-models/lib/sufia/models/stats/user_stat_importer.rb +5 -9
  211. data/sufia-models/lib/sufia/models/version.rb +1 -1
  212. data/sufia-models/lib/sufia/permissions/writable.rb +34 -16
  213. data/sufia-models/sufia-models.gemspec +4 -2
  214. data/sufia.gemspec +4 -5
  215. data/tasks/jetty.rake +0 -26
  216. data/tasks/sufia-dev.rake +14 -2
  217. metadata +49 -64
  218. data/LICENSE +0 -15
  219. data/app/assets/images/orcid.png +0 -0
  220. data/app/assets/javascripts/sufia/manage_repeating_fields.js +0 -74
  221. data/app/assets/stylesheets/sufia/_multi_value_fields.css.scss +0 -67
  222. data/app/inputs/multi_value_input.rb +0 -84
  223. data/app/views/records/_rights_modal.html.erb +0 -1
  224. data/config/initializers/simple_form.rb +0 -167
  225. data/config/initializers/simple_form_bootstrap.rb +0 -137
  226. data/config/locales/simple_form.en.yml +0 -31
  227. data/fedora_conf/conf/development/fedora.fcfg +0 -946
  228. data/fedora_conf/conf/test/fedora.fcfg +0 -946
  229. data/spec/models/generic_file/reload_on_save_spec.rb +0 -25
  230. data/spec/models/generic_file_rdf_datastream_spec.rb +0 -12
  231. data/spec/models/properties_datastream_spec.rb +0 -41
  232. data/spec/views/generic_file/_permission_form.html.erb_spec.rb +0 -19
  233. data/sufia-models/app/models/concerns/sufia/generic_file/audit.rb +0 -116
  234. data/sufia-models/app/models/concerns/sufia/generic_file/reload_on_save.rb +0 -18
  235. data/sufia-models/app/models/concerns/sufia/properties_datastream_behavior.rb +0 -32
  236. data/sufia-models/app/models/datastreams/batch_rdf_datastream.rb +0 -6
  237. data/sufia-models/app/models/datastreams/generic_file_rdf_datastream.rb +0 -69
  238. data/sufia-models/app/models/datastreams/paranoid_rights_datastream.rb +0 -22
  239. data/sufia-models/app/models/datastreams/properties_datastream.rb +0 -4
  240. data/sufia-models/app/models/sufia/orcid_validator.rb +0 -8
  241. data/sufia-models/lib/generators/sufia/models/abstract_migration_generator.rb +0 -30
  242. data/sufia-models/lib/generators/sufia/models/orcid_field_generator.rb +0 -19
  243. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_orcid_to_users.rb +0 -5
  244. data/sufia-models/lib/generators/sufia/models/user_stats_generator.rb +0 -31
@@ -16,7 +16,7 @@
16
16
  // Use import here instead of require so we can use the Sass variables defined in Bootstrap and Blacklight
17
17
  // TODO: Probably should use import throughout and move all of Sufia's stylesheets into a single named directory.
18
18
  @import 'sufia/settings','sufia/header','sufia/styles','sufia/file-listing','sufia/collections','sufia/batch-edit',
19
- 'sufia/dashboard','sufia/home-page','sufia/featured','sufia/tagcloud','sufia/usage-stats','sufia/catalog','sufia/buttons','sufia/proxy-rights', 'sufia/multi_value_fields';
19
+ 'sufia/dashboard','sufia/home-page','sufia/featured','sufia/tagcloud','sufia/usage-stats','sufia/catalog','sufia/buttons','sufia/proxy-rights';
20
20
 
21
21
  #browse-everything {
22
22
  top:10%;
@@ -35,11 +35,6 @@
35
35
  padding-top: 10px;
36
36
  }
37
37
 
38
- .profile img.orcid {
39
- float: left;
40
- margin-right: 2px;
41
- }
42
-
43
38
  /* This class is to workaround an issue in which Bootstrap requires a div to display a tooltip
44
39
  * on a disabled button. Using a span instead of a div would be ideal but unfortunately it does
45
40
  * not render the tooltip correctly in all browsers (e.g. in Chrome the tooltip is detected in
@@ -19,11 +19,3 @@
19
19
  padding-top: 5px;
20
20
  }
21
21
 
22
- .glyphicon-chevron-right-helper.collapsed .chevron {
23
- @extend .glyphicon-chevron-right;
24
- }
25
- .glyphicon-chevron-right-helper .chevron {
26
- @extend .glyphicon;
27
- @extend .glyphicon-chevron-down;
28
- }
29
-
@@ -18,16 +18,6 @@
18
18
  background-color: $badge-background-color;
19
19
  color: $badge-font-color;
20
20
  }
21
- .badge-optional {
22
- background-color: $badge-optional-background-color;
23
- border-radius: 2px;
24
- color: $badge-font-color;
25
- padding: 0 .25em;
26
- }
27
- .views-downloads-dashboard {
28
- list-style-type: none;
29
- padding-left: 0;
30
- }
31
21
  .panel-default > .panel-heading {
32
22
  background-color: $panel-background-color;
33
23
  }
@@ -92,10 +82,6 @@ div.heading-tile .glyphicon {
92
82
  padding: 1.5em 0 1.5em 1em;
93
83
  }
94
84
 
95
- #footer {
96
- margin-top: 0;
97
- }
98
-
99
85
  .transfer_link {
100
86
  margin-top: 8px;
101
87
  }
@@ -119,4 +105,4 @@ div.heading-tile .glyphicon {
119
105
  #activity .panel-body{
120
106
  overflow: scroll;
121
107
  max-height: 20em;
122
- }
108
+ }
@@ -41,7 +41,7 @@ h4 .small {
41
41
  }
42
42
 
43
43
  .file_listing_thumbnail {
44
- @extend .media-object !optional;
44
+ @extend .media-object;
45
45
  width: 64px;
46
46
  }
47
47
 
@@ -23,7 +23,6 @@ $teal: #2CAEB7;
23
23
  $vermilion: #F30;
24
24
 
25
25
  $badge-background-color: $highlight-yellow;
26
- $badge-optional-background-color: $gray-medium;
27
26
  $badge-font-color: $classic-white;
28
27
  $content-wrapper-background-color: $cream-light;
29
28
  $dashboard-background-color: $classic-white;
@@ -14,9 +14,6 @@ module Sufia
14
14
  @generic_file.depositor = current_user.user_key
15
15
  @terms = @generic_file.terms_for_editing - [:title, :format, :resource_type]
16
16
 
17
- # do we want to show the original values for anything...
18
- @show_file = ::GenericFile.new
19
- @show_file.depositor = current_user.user_key
20
17
  h = {}
21
18
  @names = []
22
19
  permissions = []
@@ -32,13 +29,9 @@ module Sufia
32
29
  permissions = (permissions + gf.permissions).uniq
33
30
  end
34
31
 
35
- initialize_fields(h, @show_file)
32
+ initialize_fields(h, @generic_file)
36
33
 
37
- # map the permissions to parameter like input so that the assign will work
38
- # todo sort the access level some how...
39
- perm_param ={'user'=>{},'group'=>{"public"=>"read"}}
40
- permissions.each{ |perm| perm_param[perm[:type]][perm[:name]] = perm[:access]}
41
- @show_file.permissions = HashWithIndifferentAccess.new(perm_param)
34
+ @generic_file.permissions_attributes = [{type: 'group', name: 'public', access: 'read'}]
42
35
  end
43
36
 
44
37
  def after_update
@@ -47,7 +40,7 @@ module Sufia
47
40
 
48
41
  def after_destroy_collection
49
42
  redirect_to_return_controller unless request.xhr?
50
- end
43
+ end
51
44
 
52
45
  def update_document(obj)
53
46
  super
@@ -20,10 +20,11 @@
20
20
  case request.referer
21
21
  when /catalog/
22
22
  add_breadcrumb I18n.t('sufia.bread_crumb.search_results'), request.referer
23
+ when /dashboard/
24
+ default_trail
25
+ add_breadcrumb_for_controller
23
26
  else
24
27
  default_trail
25
- add_breadcrumb_for_controller
26
- add_breadcrumb_for_action
27
28
  end
28
29
  end
29
30
 
@@ -36,11 +37,5 @@
36
37
  end
37
38
  end
38
39
 
39
- def add_breadcrumb_for_action
40
- if /edit|stats/ =~ action_name && controller_name == "generic_files"
41
- add_breadcrumb I18n.t("sufia.generic_file.browse_view"), sufia.generic_file_path(Sufia::Noid.noidify params["id"])
42
- end
43
- end
44
-
45
40
  end
46
41
  end
@@ -12,7 +12,7 @@ module Sufia
12
12
  # @param user_parameters the current user-subitted parameters
13
13
  def only_generic_files_and_collections(solr_parameters, user_parameters)
14
14
  solr_parameters[:fq] ||= []
15
- solr_parameters[:fq] << "#{Solrizer.solr_name("has_model", :symbol)}:(\"info:fedora/afmodel:GenericFile\" \"info:fedora/afmodel:Collection\")"
15
+ solr_parameters[:fq] << "#{Solrizer.solr_name("has_model", :symbol)}:(\"GenericFile\" \"Collection\")"
16
16
  end
17
17
  end
18
18
  end
@@ -13,7 +13,9 @@ module Sufia::Controller
13
13
  end
14
14
 
15
15
  def normalize_identifier
16
- params[:id] = Sufia::Noid.namespaceize(params[:id])
16
+ # nop
17
+ # If you want to override you can do something like this:
18
+ # params[:id] = Sufia::Noid.namespaceize(params[:id])
17
19
  end
18
20
 
19
21
  def render_404(exception)
@@ -9,7 +9,7 @@ module Sufia
9
9
  end
10
10
 
11
11
  def datastream_name
12
- if datastream.dsid == self.class.default_content_dsid
12
+ if !params[:datastream_id] || params[:datastream_id] == self.class.default_content_dsid
13
13
  params[:filename] || asset.label
14
14
  else
15
15
  params[:datastream_id]
@@ -27,7 +27,7 @@ module Sufia::FilesController
27
27
  actor = Sufia::GenericFile::Actor.new(gf, current_user)
28
28
  actor.create_metadata(params[:batch_id])
29
29
  gf.save!
30
- Sufia.queue.push(ImportUrlJob.new(gf.pid))
30
+ Sufia.queue.push(ImportUrlJob.new(gf.id))
31
31
  end
32
32
  end
33
33
 
@@ -45,13 +45,14 @@ module Sufia
45
45
 
46
46
  # routed to /files/new
47
47
  def new
48
- @batch_noid = Sufia::Noid.noidify(Sufia::IdService.mint)
48
+ @batch_noid = Batch.create.noid
49
49
  end
50
50
 
51
51
  # routed to /files/:id/edit
52
52
  def edit
53
53
  @generic_file.initialize_fields
54
54
  @groups = current_user.groups
55
+ @version_list = Sufia::VersionListPresenter.new(@generic_file.content.versions.all)
55
56
  end
56
57
 
57
58
  # routed to /files/:id/stats
@@ -102,6 +103,7 @@ module Sufia
102
103
  respond_to do |format|
103
104
  format.html {
104
105
  @events = @generic_file.events(100)
106
+ @audit_status = audit_service.human_readable_audit_status
105
107
  }
106
108
  format.endnote { render text: @generic_file.export_as_endnote }
107
109
  end
@@ -109,7 +111,7 @@ module Sufia
109
111
 
110
112
  # routed to /files/:id/audit (POST)
111
113
  def audit
112
- render json: @generic_file.audit
114
+ render json: audit_service.audit
113
115
  end
114
116
 
115
117
  # routed to /files/:id (PUT)
@@ -120,6 +122,8 @@ module Sufia
120
122
  update_file
121
123
  elsif params.has_key? :generic_file
122
124
  update_metadata
125
+ elsif params.has_key? :visibility
126
+ update_visibility
123
127
  end
124
128
 
125
129
  if success
@@ -136,8 +140,12 @@ module Sufia
136
140
 
137
141
  protected
138
142
 
143
+ def audit_service
144
+ Sufia::GenericFileAuditService.new(@generic_file)
145
+ end
146
+
139
147
  def wants_to_revert?
140
- params.has_key?(:revision) && params[:revision] != @generic_file.content.latest_version.versionID
148
+ params.has_key?(:revision) && params[:revision] != @generic_file.content.latest_version.label
141
149
  end
142
150
 
143
151
  def actor
@@ -145,7 +153,7 @@ module Sufia
145
153
  end
146
154
 
147
155
  def update_version
148
- actor.revert_content(params[:revision], datastream_id)
156
+ actor.revert_content(params[:revision])
149
157
  end
150
158
 
151
159
  def update_file
@@ -157,6 +165,10 @@ module Sufia
157
165
  actor.update_metadata(params[:generic_file], params[:visibility])
158
166
  end
159
167
 
168
+ def update_visibility
169
+ actor.update_metadata({}, params[:visibility])
170
+ end
171
+
160
172
  def json_error(error, name=nil, additional_arguments={})
161
173
  args = {error: error}
162
174
  args[:name] = name if name
@@ -35,7 +35,7 @@ module Sufia::HomepageController
35
35
  # @param user_parameters the current user-subitted parameters
36
36
  def only_generic_files(solr_parameters, user_parameters)
37
37
  solr_parameters[:fq] ||= []
38
- solr_parameters[:fq] << "#{Solrizer.solr_name("has_model", :symbol)}:\"info:fedora/afmodel:GenericFile\""
38
+ solr_parameters[:fq] << "#{Solrizer.solr_name("has_model", :symbol)}:\"GenericFile\""
39
39
  end
40
40
 
41
41
  end
@@ -68,14 +68,14 @@ module Sufia
68
68
  def show_only_files_deposited_by_current_user solr_parameters, user_parameters
69
69
  solr_parameters[:fq] ||= []
70
70
  solr_parameters[:fq] += [
71
- ActiveFedora::SolrService.construct_query_for_rel(depositor: current_user.user_key)
71
+ ActiveFedora::SolrQueryBuilder.construct_query_for_rel(depositor: current_user.user_key)
72
72
  ]
73
73
  end
74
74
 
75
75
  def show_only_generic_files solr_parameters, user_parameters
76
76
  solr_parameters[:fq] ||= []
77
77
  solr_parameters[:fq] += [
78
- ActiveFedora::SolrService.construct_query_for_rel(has_model: ::GenericFile.to_class_uri)
78
+ ActiveFedora::SolrQueryBuilder.construct_query_for_rel(has_model: ::GenericFile.to_class_uri)
79
79
  ]
80
80
  end
81
81
 
@@ -57,11 +57,10 @@ module Sufia
57
57
  private
58
58
 
59
59
  def get_pid_and_authorize_depositor
60
- @pid = Sufia::Noid.namespaceize(params[:id])
61
- authorize! :edit, @pid
62
- raise Hydra::AccessDenied unless ::GenericFile.load_instance_from_solr(@pid).depositor == current_user.user_key
60
+ @pid = params[:id]
61
+ authorize! :transfer, @pid
63
62
  @proxy_deposit_request.pid = @pid
64
- rescue
63
+ rescue CanCan::AccessDenied
65
64
  redirect_to root_url, alert: 'You are not authorized to transfer this file'
66
65
  end
67
66
 
@@ -49,7 +49,7 @@ module Sufia::UsersControllerBehavior
49
49
  def update
50
50
  if params[:user]
51
51
  @user.update_attributes(params.require(:user).permit(*User.permitted_attributes))
52
- @user.populate_attributes if update_directory?
52
+ @user.populate_attributes if ActiveRecord::ConnectionAdapters::Column.value_to_boolean(params[:user][:update_directory])
53
53
  end
54
54
 
55
55
  unless @user.save
@@ -65,13 +65,8 @@ module Sufia::UsersControllerBehavior
65
65
  redirect_to sufia.profile_path(@user.to_param), notice: "Your profile has been updated"
66
66
  end
67
67
 
68
- def update_directory?
69
- ['1', 'true'].include? params[:user][:update_directory]
70
- end
71
-
72
68
  def toggle_trophy
73
- id = Sufia::Noid.namespaceize params[:file_id]
74
- unless current_user.can? :edit, id
69
+ unless current_user.can? :edit, params[:file_id]
75
70
  redirect_to root_path, alert: "You do not have permissions to the file"
76
71
  return false
77
72
  end
@@ -8,7 +8,7 @@ module My
8
8
  def show_only_collections(solr_parameters, user_parameters)
9
9
  solr_parameters[:fq] ||= []
10
10
  solr_parameters[:fq] += [
11
- ActiveFedora::SolrService.construct_query_for_rel(has_model: Collection.to_class_uri)
11
+ ActiveFedora::SolrQueryBuilder.construct_query_for_rel(has_model: Collection.to_class_uri)
12
12
  ]
13
13
  end
14
14
 
@@ -16,12 +16,11 @@ module My
16
16
  super
17
17
  @selected_tab = :collections
18
18
  end
19
-
19
+
20
20
  protected
21
-
21
+
22
22
  def search_action_url *args
23
23
  sufia.dashboard_collections_url *args
24
24
  end
25
-
26
25
  end
27
26
  end
@@ -6,10 +6,10 @@ module My
6
6
  ]
7
7
 
8
8
  def show_only_highlighted_files(solr_parameters, user_parameters)
9
- pids = current_user.trophies.pluck(:generic_file_id).map{|id| Sufia::Noid.namespaceize(id)}
9
+ ids = current_user.trophies.pluck(:generic_file_id)
10
10
  solr_parameters[:fq] ||= []
11
11
  solr_parameters[:fq] += [
12
- ActiveFedora::SolrService.construct_query_for_pids(pids)
12
+ ActiveFedora::SolrQueryBuilder.construct_query_for_ids(ids)
13
13
  ]
14
14
  end
15
15
 
@@ -8,7 +8,7 @@ module My
8
8
  def show_only_shared_files(solr_parameters, user_parameters)
9
9
  solr_parameters[:fq] ||= []
10
10
  solr_parameters[:fq] += [
11
- "-" + ActiveFedora::SolrService.construct_query_for_rel(depositor: current_user.user_key)
11
+ "-" + ActiveFedora::SolrQueryBuilder.construct_query_for_rel(depositor: current_user.user_key)
12
12
  ]
13
13
  end
14
14
 
@@ -16,9 +16,9 @@ module My
16
16
  super
17
17
  @selected_tab = :shared
18
18
  end
19
-
19
+
20
20
  protected
21
-
21
+
22
22
  def search_action_url *args
23
23
  sufia.dashboard_shares_url *args
24
24
  end
@@ -1,13 +1,10 @@
1
- require 'sufia/single_use_error'
2
-
3
1
  class SingleUseLinksController < ApplicationController
4
2
  prepend_before_filter :normalize_identifier
5
- before_filter :load_asset
6
3
  before_filter :authenticate_user!
7
4
  before_filter :authorize_user!
8
5
 
9
6
  def new_download
10
- @su = SingleUseLink.create itemId: params[:id], path: sufia.download_path(id: @asset)
7
+ @su = SingleUseLink.create itemId: params[:id], path: sufia.download_path(id: asset)
11
8
  @link = sufia.download_single_use_link_path(@su.downloadKey)
12
9
 
13
10
  respond_to do |format|
@@ -17,7 +14,7 @@ class SingleUseLinksController < ApplicationController
17
14
  end
18
15
 
19
16
  def new_show
20
- @su = SingleUseLink.create itemId: params[:id], path: sufia.polymorphic_path(@asset)
17
+ @su = SingleUseLink.create itemId: params[:id], path: sufia.polymorphic_path(asset)
21
18
  @link = sufia.show_single_use_link_path(@su.downloadKey)
22
19
 
23
20
  respond_to do |format|
@@ -38,11 +35,10 @@ class SingleUseLinksController < ApplicationController
38
35
 
39
36
  protected
40
37
  def authorize_user!
41
- authorize! :edit, @asset
38
+ authorize! :edit, asset
42
39
  end
43
40
 
44
- def load_asset
45
- @asset = ActiveFedora::Base.load_instance_from_solr(params[:id])
41
+ def asset
42
+ @asset ||= ActiveFedora::Base.load_instance_from_solr(params[:id])
46
43
  end
47
-
48
44
  end
@@ -19,7 +19,7 @@ class SingleUseLinksViewerController < ApplicationController
19
19
 
20
20
  can :read, ActiveFedora::Base do |obj|
21
21
  single_use_link.valid? and
22
- single_use_link.itemId == obj.pid and single_use_link.destroy!
22
+ single_use_link.itemId == obj.id and single_use_link.destroy!
23
23
  end if single_use_link
24
24
 
25
25
  end
@@ -49,7 +49,7 @@ class SingleUseLinksViewerController < ApplicationController
49
49
  protected
50
50
 
51
51
  def authorize_download!
52
- authorize! :read, @asset
52
+ authorize! :read, asset
53
53
  end
54
54
 
55
55
  def single_use_link
@@ -60,8 +60,8 @@ class SingleUseLinksViewerController < ApplicationController
60
60
  Sufia::SingleUseError.new('Single-Use Link Not Found')
61
61
  end
62
62
 
63
- def load_asset
64
- @asset = ActiveFedora::Base.load_instance_from_solr(single_use_link.itemId)
63
+ def asset
64
+ @asset ||= ActiveFedora::Base.find(single_use_link.itemId)
65
65
  end
66
66
 
67
67
  def current_ability