sufia 6.0.0.rc2 → 6.0.0.rc3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (198) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +5 -5
  3. data/History.md +14 -0
  4. data/LICENSE +15 -0
  5. data/SUFIA_VERSION +1 -1
  6. data/app/assets/javascripts/sufia/batch_edit.js +1 -1
  7. data/app/assets/javascripts/sufia/permissions.js +8 -12
  8. data/app/assets/stylesheets/sufia.css.scss +1 -1
  9. data/app/assets/stylesheets/sufia/_multi_value_fields.css.scss +67 -0
  10. data/app/assets/stylesheets/sufia/_settings.scss +1 -0
  11. data/app/assets/stylesheets/sufia/_styles.scss +4 -0
  12. data/app/assets/stylesheets/sufia/_tinymce.scss +14 -0
  13. data/app/controllers/batch_controller.rb +11 -2
  14. data/app/controllers/concerns/sufia/breadcrumbs.rb +2 -3
  15. data/app/controllers/concerns/sufia/collections_controller_behavior.rb +0 -1
  16. data/app/controllers/concerns/sufia/contact_form_controller_behavior.rb +1 -2
  17. data/app/controllers/concerns/sufia/controller.rb +1 -7
  18. data/app/controllers/concerns/sufia/downloads_controller_behavior.rb +3 -8
  19. data/app/controllers/concerns/sufia/files_controller/local_ingest_behavior.rb +2 -3
  20. data/app/controllers/concerns/sufia/files_controller/upload_complete_behavior.rb +1 -2
  21. data/app/controllers/concerns/sufia/files_controller_behavior.rb +27 -14
  22. data/app/controllers/concerns/sufia/homepage_controller.rb +3 -2
  23. data/app/controllers/content_blocks_controller.rb +17 -1
  24. data/app/controllers/downloads_controller.rb +0 -1
  25. data/app/controllers/my/shares_controller.rb +1 -0
  26. data/app/controllers/single_use_links_controller.rb +0 -1
  27. data/app/controllers/single_use_links_viewer_controller.rb +3 -8
  28. data/app/forms/sufia/forms/generic_file_edit_form.rb +1 -8
  29. data/app/helpers/content_block_helper.rb +30 -10
  30. data/app/helpers/generic_file_helper.rb +4 -4
  31. data/app/helpers/sufia/dashboard_helper_behavior.rb +2 -2
  32. data/app/helpers/sufia/sufia_helper_behavior.rb +4 -4
  33. data/app/helpers/trophy_helper.rb +3 -3
  34. data/app/jobs/content_delete_event_job.rb +1 -2
  35. data/app/jobs/content_deposit_event_job.rb +1 -1
  36. data/app/jobs/content_depositor_change_event_job.rb +1 -1
  37. data/app/jobs/content_new_version_event_job.rb +1 -1
  38. data/app/jobs/content_restored_version_event_job.rb +1 -1
  39. data/app/jobs/content_update_event_job.rb +1 -1
  40. data/app/models/concerns/sufia/solr_document_behavior.rb +5 -9
  41. data/app/models/content_block.rb +20 -0
  42. data/app/models/featured_work_list.rb +4 -0
  43. data/app/presenters/sufia/collection_presenter.rb +14 -2
  44. data/app/presenters/sufia/generic_file_presenter.rb +16 -0
  45. data/app/presenters/sufia/version_list_presenter.rb +1 -1
  46. data/app/views/batch/_metadata.html.erb +4 -4
  47. data/app/views/batch_edits/edit.html.erb +1 -1
  48. data/app/views/collections/_action_menu.html.erb +4 -5
  49. data/app/views/collections/_show_descriptions.html.erb +1 -5
  50. data/app/views/collections/_show_document_list.html.erb +0 -2
  51. data/app/views/collections/_show_document_list_menu.html.erb +5 -6
  52. data/app/views/collections/_show_document_list_row.html.erb +9 -9
  53. data/app/views/collections/_sort_and_per_page.html.erb +1 -1
  54. data/app/views/collections/_view_type_group.html.erb +1 -1
  55. data/app/views/collections/show.html.erb +3 -3
  56. data/app/views/generic_files/_asset_permissions_denial_flash.html.erb +1 -1
  57. data/app/views/generic_files/_asset_saved_flash.html.erb +1 -1
  58. data/app/views/generic_files/_asset_updated_flash.html.erb +1 -1
  59. data/app/views/generic_files/_browse_everything.html.erb +4 -4
  60. data/app/views/generic_files/_media_display.html.erb +9 -9
  61. data/app/views/generic_files/_permission_form.html.erb +1 -1
  62. data/app/views/generic_files/_show_actions.html.erb +1 -1
  63. data/app/views/generic_files/_show_collections.html.erb +2 -2
  64. data/app/views/generic_files/_show_details.html.erb +1 -1
  65. data/app/views/generic_files/_versioning.html.erb +9 -5
  66. data/app/views/generic_files/jq_upload.json.jbuilder +1 -1
  67. data/app/views/generic_files/new.html.erb +2 -3
  68. data/app/views/generic_files/show.html.erb +13 -16
  69. data/app/views/generic_files/upload/_alerts.html.erb +2 -2
  70. data/app/views/generic_files/upload/_form_fields.html.erb +1 -1
  71. data/app/views/generic_files/upload/_local_file_import_chooser.html.erb +1 -1
  72. data/app/views/generic_files/upload/_script_templates.html.erb +2 -2
  73. data/app/views/homepage/_featured.html.erb +2 -4
  74. data/app/views/homepage/_featured_researcher.html.erb +1 -1
  75. data/app/views/homepage/_featured_works.html.erb +5 -3
  76. data/app/views/homepage/_home_content.html.erb +1 -1
  77. data/app/views/homepage/_recent_document.html.erb +2 -2
  78. data/app/views/homepage/_sortable_featured.html.erb +1 -2
  79. data/app/views/my/_action_menu.html.erb +8 -8
  80. data/app/views/my/_collection_action_menu.html.erb +4 -4
  81. data/app/views/my/_index_partials/_list_collections.html.erb +9 -12
  82. data/app/views/my/_index_partials/_list_files.html.erb +9 -9
  83. data/app/views/my/index.html.erb +0 -1
  84. data/app/views/records/_rights_modal.html.erb +1 -0
  85. data/app/views/users/_contributions.html.erb +2 -3
  86. data/app/views/users/_edit_primary.html.erb +68 -0
  87. data/app/views/users/_edit_secondary.html.erb +1 -0
  88. data/app/views/users/_trophy_edit.html.erb +1 -3
  89. data/app/views/users/edit.html.erb +4 -78
  90. data/config/initializers/simple_form.rb +167 -0
  91. data/config/initializers/simple_form_bootstrap.rb +137 -0
  92. data/config/locales/simple_form.en.yml +31 -0
  93. data/config/locales/sufia.en.yml +7 -4
  94. data/config/routes.rb +1 -1
  95. data/lib/generators/sufia/templates/catalog_controller.rb +1 -1
  96. data/lib/sufia/single_use_error.rb +1 -1
  97. data/lib/sufia/version.rb +1 -1
  98. data/spec/actors/generic_file/actor_spec.rb +5 -5
  99. data/spec/controllers/batch_controller_spec.rb +15 -0
  100. data/spec/controllers/collections_controller_spec.rb +1 -1
  101. data/spec/controllers/content_blocks_controller_spec.rb +23 -3
  102. data/spec/controllers/downloads_controller_spec.rb +5 -5
  103. data/spec/controllers/generic_files_controller_spec.rb +12 -12
  104. data/spec/controllers/homepage_controller_spec.rb +19 -6
  105. data/spec/controllers/my/files_controller_spec.rb +8 -10
  106. data/spec/controllers/my/shares_controller_spec.rb +34 -23
  107. data/spec/controllers/single_use_links_controller_spec.rb +2 -3
  108. data/spec/controllers/single_use_links_viewer_controller_spec.rb +19 -20
  109. data/spec/controllers/users_controller_spec.rb +8 -8
  110. data/spec/factories/generic_files.rb +4 -4
  111. data/spec/factories/users.rb +2 -3
  112. data/spec/features/browse_dashboard_files_spec.rb +8 -8
  113. data/spec/features/collection_spec.rb +15 -8
  114. data/spec/features/edit_file_spec.rb +26 -0
  115. data/spec/features/single_use_links_spec.rb +3 -3
  116. data/spec/forms/generic_file_edit_form_spec.rb +8 -1
  117. data/spec/helpers/content_block_helper_spec.rb +10 -0
  118. data/spec/helpers/dashboard_helper_spec.rb +42 -0
  119. data/spec/helpers/sufia_helper_spec.rb +34 -7
  120. data/spec/helpers/trophy_helper_spec.rb +6 -6
  121. data/spec/inputs/select_with_help_input_spec.rb +16 -0
  122. data/spec/jobs/audit_job_spec.rb +1 -1
  123. data/spec/jobs/characterize_job_spec.rb +2 -7
  124. data/spec/jobs/create_derivatives_job_spec.rb +27 -38
  125. data/spec/jobs/import_url_job_spec.rb +2 -2
  126. data/spec/jobs/ingest_local_file_job_spec.rb +6 -8
  127. data/spec/lib/sufia/id_service_spec.rb +0 -7
  128. data/spec/lib/sufia/messages_spec.rb +16 -13
  129. data/spec/models/ability_spec.rb +3 -0
  130. data/spec/models/checksum_audit_log_spec.rb +1 -1
  131. data/spec/models/content_block_spec.rb +41 -0
  132. data/spec/models/featured_work_list_spec.rb +23 -9
  133. data/spec/models/file_content_datastream_spec.rb +4 -4
  134. data/spec/models/file_usage_spec.rb +1 -1
  135. data/spec/models/fits_datastream_spec.rb +4 -4
  136. data/spec/models/generic_file_spec.rb +31 -15
  137. data/spec/models/single_use_link_spec.rb +2 -2
  138. data/spec/models/solr_document_spec.rb +8 -5
  139. data/spec/models/user_spec.rb +3 -3
  140. data/spec/presenters/sufia/collection_presenter_spec.rb +34 -0
  141. data/spec/presenters/sufia/generic_file_presenter_spec.rb +41 -1
  142. data/spec/presenters/sufia/version_list_presenter_spec.rb +12 -2
  143. data/spec/services/generic_file_audit_service_spec.rb +3 -3
  144. data/spec/services/noid_spec.rb +4 -11
  145. data/spec/services/repository_audit_service_spec.rb +1 -1
  146. data/spec/spec_helper.rb +1 -0
  147. data/spec/support/fixture_helpers.rb +2 -3
  148. data/spec/support/selectors.rb +7 -7
  149. data/spec/test_app_templates/Gemfile.extra +1 -0
  150. data/spec/views/batch/edit.html.erb_spec.rb +14 -17
  151. data/spec/views/collections/_show_descriptions.html.erb_spec.rb +1 -1
  152. data/spec/views/generic_file/_permission_form.html.erb_spec.rb +29 -7
  153. data/spec/views/generic_file/edit.html.erb_spec.rb +1 -1
  154. data/spec/views/generic_file/show.html.erb_spec.rb +69 -151
  155. data/spec/views/generic_file/stats.html.erb_spec.rb +1 -1
  156. data/spec/views/homepage/_featured_works.html.erb_spec.rb +29 -0
  157. data/spec/views/users/show.html.erb_spec.rb +1 -1
  158. data/sufia-models/app/actors/sufia/generic_file/actor.rb +12 -8
  159. data/sufia-models/app/jobs/batch_update_job.rb +2 -2
  160. data/sufia-models/app/jobs/import_url_job.rb +5 -3
  161. data/sufia-models/app/jobs/ingest_local_file_job.rb +46 -0
  162. data/sufia-models/app/jobs/resolrize_job.rb +1 -8
  163. data/sufia-models/app/models/batch.rb +0 -7
  164. data/sufia-models/app/models/concerns/sufia/ability.rb +1 -1
  165. data/sufia-models/app/models/concerns/sufia/{collection.rb → collection_behavior.rb} +1 -13
  166. data/sufia-models/app/models/concerns/sufia/generic_file/batches.rb +3 -4
  167. data/sufia-models/app/models/concerns/sufia/generic_file/export.rb +1 -1
  168. data/sufia-models/app/models/concerns/sufia/generic_file/featured.rb +1 -4
  169. data/sufia-models/app/models/concerns/sufia/generic_file/metadata.rb +7 -7
  170. data/sufia-models/app/models/concerns/sufia/generic_file/trophies.rb +1 -2
  171. data/sufia-models/app/models/concerns/sufia/generic_file/virus_check.rb +16 -11
  172. data/sufia-models/app/models/concerns/sufia/model_methods.rb +1 -14
  173. data/sufia-models/app/models/concerns/sufia/user.rb +5 -0
  174. data/sufia-models/app/models/file_usage.rb +1 -1
  175. data/sufia-models/app/models/file_view_stat.rb +1 -1
  176. data/sufia-models/app/models/sufia/collection.rb +5 -0
  177. data/sufia-models/app/services/sufia/generic_file_indexing_service.rb +1 -1
  178. data/sufia-models/app/services/sufia/id_service.rb +1 -2
  179. data/sufia-models/app/services/sufia/noid.rb +4 -24
  180. data/sufia-models/lib/generators/sufia/models/install_generator.rb +6 -1
  181. data/sufia-models/lib/generators/sufia/models/templates/app/models/collection.rb +2 -0
  182. data/sufia-models/lib/generators/sufia/models/templates/config/resque_config.rb +1 -1
  183. data/sufia-models/lib/generators/sufia/models/templates/config/solrconfig.xml +46 -0
  184. data/sufia-models/lib/generators/sufia/models/templates/config/sufia.rb +9 -5
  185. data/sufia-models/lib/generators/sufia/models/templates/migrations/add_external_key_to_content_blocks.rb +6 -0
  186. data/sufia-models/lib/generators/sufia/models/update_content_blocks_generator.rb +18 -0
  187. data/sufia-models/lib/sufia/messages.rb +11 -12
  188. data/sufia-models/lib/sufia/models/engine.rb +2 -1
  189. data/sufia-models/lib/sufia/models/stats/user_stat_importer.rb +9 -5
  190. data/sufia-models/lib/sufia/models/version.rb +1 -1
  191. data/sufia-models/sufia-models.gemspec +5 -5
  192. data/sufia.gemspec +15 -15
  193. data/tasks/sufia-dev.rake +0 -16
  194. metadata +86 -64
  195. data/LICENSE.md +0 -14
  196. data/app/jobs/ingest_local_file_job.rb +0 -39
  197. data/sufia-models/app/models/collection.rb +0 -3
  198. data/sufia-models/app/services/sufia/indexing_service.rb +0 -15
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 66e90cd7b7ad05dfa098aeaa54478231dadb82e7
4
- data.tar.gz: ad0c57d24b26850de77ee710268983018abe0bca
3
+ metadata.gz: a67f16943a8f2a6992d93cd1b9a2f55a983864f9
4
+ data.tar.gz: a1ded0b6d953e9821b63b8662e4ade6d28444e93
5
5
  SHA512:
6
- metadata.gz: e579cba46ffd2ed1e926e4b0948b7871cd768e22670338f9ffd5cb707e801df5e48be5b8859963675f55511630daac955e6a1e3e682b5ea542932d51fed059a1
7
- data.tar.gz: 098a5f9024a5948189286035b180e8778de2bb2fc051929931f0fceb400633b94f11e9a6fa365691fd18c809a75db21e98ba86249bab6ad28e6c7406c6a026e7
6
+ metadata.gz: dbc993658fa74c21bf7413c5339aed88aa1235f7b3d964005182a1395d3c767dfa06679225f7ae964c75086b076837e064d0b0288c8d5dbd84768d8700c4a0de
7
+ data.tar.gz: 182feec8e0a68c2a11eecfbcd3f896d43018e891151be4b491e23b127c49511e7efe6bbdd39a095f18aeaef2391a68a5924f34b936f16f0222dcd916c3986320
@@ -2,7 +2,11 @@ language: ruby
2
2
  cache: bundler
3
3
  sudo: false
4
4
  rvm:
5
- - 2.1
5
+ - 2.2
6
+ matrix:
7
+ include:
8
+ - rvm: 2.1
9
+ env: "RAILS_VERSION=4.1.8"
6
10
  env:
7
11
  global:
8
12
  - NOKOGIRI_USE_SYSTEM_LIBRARIES=true
@@ -11,10 +15,6 @@ env:
11
15
  - "RAILS_VERSION=4.1.8"
12
16
  - "RAILS_VERSION=4.2.0"
13
17
 
14
- matrix:
15
- allow_failures:
16
- - env: "RAILS_VERSION=4.2.0"
17
-
18
18
  notifications:
19
19
  email:
20
20
  recipients:
data/History.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # History of Sufia releases
2
2
 
3
+ ## 5.0.0
4
+
5
+ * Update README to be more specific about dependency versions [Michael J. Giarlo]
6
+ * Pulled in code from curate to manage add/remove fields on edit forms. Also story #3978 [Carolyn Cole]
7
+ * Changing the file query to be a solr query for loading the file id, so we do not wait large file content to load. This speed up the runs significantly on systems with large file. [Carolyn Cole]
8
+ * Users controller should not call an undefined method. Fixes #532. [Michael J. Giarlo]
9
+ * Fix problem where batch edit forms weren't expanding. Fixes #820 [Carolyn Cole]
10
+ * Update and rename LICENSE.md to LICENSE per community convention. [Michael J. Giarlo]
11
+ * Brings some of the fixes in fedora-4/master into master. [Michael J. Giarlo]
12
+ * Adds condition to make the version of sass-rails dependent on the value of RAILS_VERSION [Michael J. Giarlo]
13
+ * Merge travis config change to speed up the build [Michael J. Giarlo]
14
+ * Adding the browse view link into the bread crumbs so it shows on both the edit and the stats page. [Carolyn Cole]
15
+
16
+
3
17
  ## 4.3.1
4
18
 
5
19
  * Adds an ORCID field to the user model. [Michael J. Giarlo]
data/LICENSE ADDED
@@ -0,0 +1,15 @@
1
+ ##########################################################################
2
+ # Copyright 2012 Penn State University
3
+ # Additional copyright may be held by others, as reflected in the commit log
4
+ #
5
+ # Licensed under the Apache License, Version 2.0 (the "License");
6
+ # you may not use this file except in compliance with the License.
7
+ # You may obtain a copy of the License at
8
+ #
9
+ # http://www.apache.org/licenses/LICENSE-2.0
10
+ #
11
+ # Unless required by applicable law or agreed to in writing, software
12
+ # distributed under the License is distributed on an "AS IS" BASIS,
13
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ # See the License for the specific language governing permissions and
15
+ # limitations under the License.
@@ -1 +1 @@
1
- 6.0.0.rc2
1
+ 6.0.0.rc3
@@ -69,7 +69,7 @@ function batch_edit_init () {
69
69
  if (typeof req.form === 'object') {
70
70
  for (f in req.form) {
71
71
  form_id = form[f];
72
- after_ajax(form_id);
72
+ after_ajax(new BatchEditField($("#"+form_id)));
73
73
  }
74
74
  }
75
75
  this.tid = setTimeout(function () {
@@ -136,30 +136,26 @@ Blacklight.onLoad(function() {
136
136
  return $('#file_permissions').parent().children().size() - 1;
137
137
  }
138
138
 
139
- $('.remove_perm').on('click', function() {
140
- var top = $(this).parent().parent();
141
- top.addClass('hidden'); // do not show the block
142
- addDestroyField(top);
143
- showPermissionNote();
144
- return false;
139
+ $('.remove_perm').on('click', function(evt) {
140
+ evt.preventDefault();
141
+ var top = $(this).parent().parent();
142
+ top.addClass('hidden'); // do not show the block
143
+ addDestroyField(top, $(this).attr('data-index'));
144
+ showPermissionNote();
145
145
  });
146
146
 
147
147
  function showPermissionNote() {
148
148
  $('#save_perm_note').removeClass('hidden');
149
149
  }
150
150
 
151
- function addDestroyField(element) {
151
+ function addDestroyField(element, index) {
152
152
  $('<input>').attr({
153
153
  type: 'hidden',
154
- name: 'generic_file[permissions_attributes][' + indexOf(element) + '][_destroy]',
154
+ name: 'generic_file[permissions_attributes][' + index + '][_destroy]',
155
155
  value: 'true'
156
156
  }).appendTo(element);
157
157
  }
158
158
 
159
- function indexOf(element) {
160
- return $('#file_permissions').parent().children().index(element) - 1;
161
- }
162
-
163
159
  });
164
160
 
165
161
  // return the files visibility level (institution, open, restricted);
@@ -18,7 +18,7 @@
18
18
  @import 'sufia/settings', 'sufia/header', 'sufia/styles', 'sufia/file-listing',
19
19
  'sufia/collections', 'sufia/batch-edit', 'sufia/dashboard', 'sufia/home-page',
20
20
  'sufia/featured', 'sufia/tagcloud', 'sufia/usage-stats', 'sufia/catalog', 'sufia/buttons',
21
- 'sufia/proxy-rights';
21
+ 'sufia/tinymce', 'sufia/proxy-rights';
22
22
  @import 'hydra-editor/multi_value_fields';
23
23
 
24
24
  #browse-everything {
@@ -0,0 +1,67 @@
1
+ .multi_value, .single_value {
2
+ .field-wrapper {
3
+ list-style-type:none;
4
+ }
5
+
6
+ .listing {
7
+ margin-left: 0;
8
+ max-width: 40em;
9
+ padding-left: 0px;
10
+ .input-group {
11
+ margin-bottom: 1px;
12
+ }
13
+ }
14
+
15
+ .field-controls span {
16
+ margin-left:.2em;
17
+ }
18
+
19
+ .field-controls {
20
+ margin-left: 2em;
21
+ }
22
+
23
+ .message{
24
+ background-size: 40px 40px;
25
+ background-image: linear-gradient(135deg, rgba(255, 255, 255, .05) 25%, transparent 25%,
26
+ transparent 50%, rgba(255, 255, 255, .05) 50%, rgba(255, 255, 255, .05) 75%,
27
+ transparent 75%, transparent);
28
+ box-shadow: inset 0 -1px 0 rgba(255,255,255,.4);
29
+ width: 100%;
30
+ border: 1px solid;
31
+ color: #fff;
32
+ padding: 10px;
33
+ text-shadow: 0 1px 0 rgba(0,0,0,.5);
34
+ animation: animate-bg 5s linear infinite;
35
+ border-radius: $border-radius-base;
36
+ }
37
+
38
+ .has-error{
39
+ background-color: #de4343;
40
+ border-color: #c43d3d;
41
+ }
42
+
43
+ .has-warning{
44
+ background-color: #eaaf51;
45
+ border-color: #d99a36;
46
+ }
47
+ }
48
+
49
+ // The contributor listing needs some normalization
50
+ #contributors .listing {
51
+ max-width:20em;
52
+ }
53
+
54
+ #collection_title.listing {
55
+ max-width:37em;
56
+ }
57
+
58
+ .collection_description .listing {
59
+ max-width:35.5em;
60
+ }
61
+
62
+ #descriptions_display {
63
+ .form-group, .batch-group {
64
+ margin-left: 0;
65
+ margin-bottom: 0.5em;
66
+ }
67
+ }
@@ -14,6 +14,7 @@ $brown-light: #D2B48C;
14
14
  $classic-white: #FFF;
15
15
  $cream-light: #FCFBF7;
16
16
  $gray-dark: #333;
17
+ $gray-med-dark: #888;
17
18
  $gray-medium: #CECDCD;
18
19
  $gray-light: #DDD;
19
20
  $gray-lighter: #E1E1E1;
@@ -82,6 +82,10 @@ label.required, span.required {
82
82
  }
83
83
  }
84
84
 
85
+ label.disabled {
86
+ color: $gray-med-dark;
87
+ }
88
+
85
89
  @media only screen and (min-width: 768px) {
86
90
  #masthead {
87
91
  min-height: 8em;
@@ -0,0 +1,14 @@
1
+
2
+ .content_block_preview button {
3
+ margin-right: 1em;
4
+ }
5
+
6
+ .tinymce-form {
7
+ label {
8
+ margin: 1em 1em 1em 0;
9
+ }
10
+ }
11
+
12
+ .home_marketing_text #content_block_external_key {
13
+ color: black;
14
+ }
@@ -3,7 +3,6 @@ class BatchController < ApplicationController
3
3
  layout "sufia-one-column"
4
4
 
5
5
  before_filter :has_access?
6
- prepend_before_filter :normalize_identifier, only: [:edit, :show, :update, :destroy]
7
6
 
8
7
  def edit
9
8
  @batch = Batch.find_or_create(params[:id])
@@ -18,7 +17,11 @@ class BatchController < ApplicationController
18
17
  file_attributes = Sufia::Forms::BatchEditForm.model_attributes(params[:generic_file])
19
18
  Sufia.queue.push(BatchUpdateJob.new(current_user.user_key, params[:id], params[:title], file_attributes, params[:visibility]))
20
19
  flash[:notice] = 'Your files are being processed by ' + t('sufia.product_name') + ' in the background. The metadata and access controls you specified are being applied. Files will be marked <span class="label label-danger" title="Private">Private</span> until this process is complete (shouldn\'t take too long, hang in there!). You may need to refresh your dashboard to see these updates.'
21
- redirect_to sufia.dashboard_files_path
20
+ if uploading_on_behalf_of? @batch
21
+ redirect_to sufia.dashboard_shares_path
22
+ else
23
+ redirect_to sufia.dashboard_files_path
24
+ end
22
25
  end
23
26
 
24
27
  protected
@@ -33,5 +36,11 @@ class BatchController < ApplicationController
33
36
  file.initialize_fields
34
37
  end
35
38
 
39
+ def uploading_on_behalf_of? batch
40
+ file = batch.generic_files.first
41
+ return false if file.nil? || file.on_behalf_of.blank?
42
+ current_user.user_key != file.on_behalf_of
43
+ end
44
+
36
45
  ActiveSupport::Deprecation.deprecate_methods(BatchController, :initialize_fields)
37
46
  end
@@ -3,7 +3,7 @@
3
3
  extend ActiveSupport::Concern
4
4
 
5
5
  def build_breadcrumbs
6
- if request.referer
6
+ if request.referer
7
7
  trail_from_referer
8
8
  else
9
9
  default_trail
@@ -38,9 +38,8 @@
38
38
 
39
39
  def add_breadcrumb_for_action
40
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"])
41
+ add_breadcrumb I18n.t("sufia.generic_file.browse_view"), sufia.generic_file_path(params["id"])
42
42
  end
43
43
  end
44
-
45
44
  end
46
45
  end
@@ -9,7 +9,6 @@ module Sufia
9
9
  include BlacklightAdvancedSearch::Controller
10
10
  include Sufia::Breadcrumbs
11
11
 
12
- prepend_before_filter :normalize_identifier, except: [:index, :create, :new]
13
12
  before_filter :filter_docs_with_read_access!, except: :show
14
13
  before_filter :has_access?, except: :show
15
14
  before_filter :build_breadcrumbs, only: [:edit, :show]
@@ -8,8 +8,7 @@ module Sufia
8
8
  @contact_form = ContactForm.new(params[:contact_form])
9
9
  @contact_form.request = request
10
10
  # not spam and a valid form
11
- logger.warn "*** MARK ***"
12
- if @contact_form.deliver
11
+ if @contact_form.respond_to?(:deliver_now) ? @contact_form.deliver_now : @contact_form.deliver
13
12
  flash.now[:notice] = 'Thank you for your message!'
14
13
  after_deliver
15
14
  render :new
@@ -12,12 +12,6 @@ module Sufia::Controller
12
12
  user_signed_in? ? current_user.ability : super
13
13
  end
14
14
 
15
- def normalize_identifier
16
- # nop
17
- # If you want to override you can do something like this:
18
- # params[:id] = Sufia::Noid.namespaceize(params[:id])
19
- end
20
-
21
15
  def render_404(exception)
22
16
  logger.error("Rendering 404 page due to exception: #{exception.inspect} - #{exception.backtrace if exception.respond_to? :backtrace}")
23
17
  render template: '/error/404', layout: "error", formats: [:html], status: 404
@@ -39,7 +33,7 @@ module Sufia::Controller
39
33
  return if action_name == "index" && controller_name == "mailbox"
40
34
  if user_signed_in?
41
35
  @notify_number = current_user.mailbox.inbox(unread: true).count
42
- @batches = current_user.mailbox.inbox.map { |msg| msg.last_message.body[/<span id="(.*)"><a (href=|data-content=)(.*)/,1] }.select{ |val| !val.blank? }
36
+ @batches = current_user.mailbox.inbox.map { |msg| msg.last_message.body[/<span id="(.*)"><a (href=|data-content=|rel=)(.*)/,1] }.select{ |val| !val.blank? }
43
37
  end
44
38
  end
45
39
 
@@ -3,16 +3,11 @@ module Sufia
3
3
  extend ActiveSupport::Concern
4
4
  include Hydra::Controller::DownloadBehavior
5
5
 
6
- included do
7
- # moved check into the routine so we can handle the user with no access
8
- prepend_before_filter :normalize_identifier
9
- end
10
-
11
- def datastream_name
12
- if !params[:datastream_id] || params[:datastream_id] == self.class.default_content_dsid
6
+ def file_name
7
+ if !params[:file] || params[:file] == self.class.default_file_path
13
8
  params[:filename] || asset.label
14
9
  else
15
- params[:datastream_id]
10
+ params[:file]
16
11
  end
17
12
  end
18
13
  end
@@ -10,9 +10,9 @@ module Sufia
10
10
  end
11
11
  end
12
12
 
13
-
13
+
14
14
  private
15
-
15
+
16
16
  def perform_local_ingest
17
17
  if Sufia.config.enable_local_ingest && current_user.respond_to?(:directory)
18
18
  if ingest_local_file
@@ -61,6 +61,5 @@ module Sufia
61
61
  Sufia.queue.push(IngestLocalFileJob.new(gf.id, current_user.directory, filename, current_user.user_key))
62
62
  end
63
63
  end
64
-
65
64
  end # /FilesController::LocalIngestBehavior
66
65
  end # /Sufia
@@ -7,6 +7,5 @@ module Sufia
7
7
  def destroy_complete_path(params)
8
8
  Sufia::Engine.routes.url_helpers.dashboard_files_path
9
9
  end
10
-
11
10
  end # /FilesController::UploadCompleteBehavior
12
- end # /Sufia
11
+ end # /Sufia
@@ -38,21 +38,18 @@ module Sufia
38
38
  before_filter :authenticate_user!, except: [:show, :citation, :stats]
39
39
  before_filter :has_access?, except: [:show]
40
40
  before_filter :build_breadcrumbs, only: [:show, :edit, :stats]
41
- prepend_before_filter :normalize_identifier, except: [:index, :create, :new]
42
41
  load_resource only: [:audit]
43
42
  load_and_authorize_resource except: [:index, :audit]
44
43
  end
45
44
 
46
45
  # routed to /files/new
47
46
  def new
48
- @batch_noid = Batch.create.noid
47
+ @batch_id = Batch.create.id
49
48
  end
50
49
 
51
50
  # routed to /files/:id/edit
52
51
  def edit
53
- @form = edit_form
54
- @groups = current_user.groups
55
- @version_list = version_list
52
+ set_variables_for_edit_form
56
53
  end
57
54
 
58
55
  # routed to /files/:id/stats
@@ -119,7 +116,7 @@ module Sufia
119
116
  def update
120
117
  success = if wants_to_revert?
121
118
  update_version
122
- elsif params.has_key? :filedata
119
+ elsif wants_to_upload_new_version?
123
120
  update_file
124
121
  elsif params.has_key? :generic_file
125
122
  update_metadata
@@ -131,16 +128,20 @@ module Sufia
131
128
  redirect_to sufia.edit_generic_file_path(tab: params[:redirect_tab]), notice:
132
129
  render_to_string(partial: 'generic_files/asset_updated_flash', locals: { generic_file: @generic_file })
133
130
  else
131
+ flash[:error] ||= 'Update was unsuccessful.'
132
+ set_variables_for_edit_form
134
133
  render action: 'edit'
135
134
  end
136
- rescue => error
137
- flash[:error] = error.message
138
- logger.error "GenericFilesController::update rescued #{error.class}\n\t#{error.message}\n #{error.backtrace.join("\n")}\n\n"
139
- render action: 'edit'
140
135
  end
141
136
 
142
137
  protected
143
138
 
139
+ def set_variables_for_edit_form
140
+ @form = edit_form
141
+ @groups = current_user.groups
142
+ @version_list = version_list
143
+ end
144
+
144
145
  def presenter
145
146
  Sufia::GenericFilePresenter.new(@generic_file)
146
147
  end
@@ -161,6 +162,13 @@ module Sufia
161
162
  params.has_key?(:revision) && params[:revision] != @generic_file.content.latest_version.label
162
163
  end
163
164
 
165
+ def wants_to_upload_new_version?
166
+ has_file_data = params.has_key?(:filedata)
167
+ on_version_tab = params[:redirect_tab] == 'versions'
168
+
169
+ has_file_data || (on_version_tab && !wants_to_revert?)
170
+ end
171
+
164
172
  def actor
165
173
  @actor ||= Sufia::GenericFile::Actor.new(@generic_file, current_user)
166
174
  end
@@ -170,7 +178,12 @@ module Sufia
170
178
  end
171
179
 
172
180
  def update_file
173
- actor.update_content(params[:filedata], datastream_id)
181
+ if params[:filedata]
182
+ actor.update_content(params[:filedata], file_path)
183
+ else
184
+ flash[:error] = 'Please select a file.'
185
+ false
186
+ end
174
187
  end
175
188
 
176
189
  # this is provided so that implementing application can override this behavior and map params to different attributes
@@ -196,7 +209,7 @@ module Sufia
196
209
  def process_file(file)
197
210
  update_metadata_from_upload_screen
198
211
  actor.create_metadata(params[:batch_id])
199
- if actor.create_content(file, file.original_filename, datastream_id)
212
+ if actor.create_content(file, file.original_filename, file_path, file.content_type)
200
213
  respond_to do |format|
201
214
  format.html {
202
215
  render 'jq_upload', formats: 'json', content_type: 'text/html'
@@ -225,8 +238,8 @@ module Sufia
225
238
 
226
239
  ActiveSupport::Deprecation.deprecate_methods(FilesControllerBehavior, :initialize_fields)
227
240
 
228
- # The name of the datastream where we store the file data
229
- def datastream_id
241
+ # The path of the fedora node where we store the file data
242
+ def file_path
230
243
  'content'
231
244
  end
232
245