sufia 0.0.1.pre2 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (169) hide show
  1. data/Gemfile +2 -5
  2. data/README.md +44 -12
  3. data/app/assets/javascripts/{scholarsphere.js → sufia.js} +0 -0
  4. data/app/assets/stylesheets/{scholarsphere.css → sufia.css} +0 -0
  5. data/app/controllers/batch_controller.rb +2 -3
  6. data/app/controllers/batch_edits_controller.rb +4 -4
  7. data/app/controllers/dashboard_controller.rb +5 -3
  8. data/app/controllers/generic_files_controller.rb +77 -41
  9. data/app/controllers/users_controller.rb +9 -21
  10. data/app/helpers/blacklight/render_constraints_helper_behavior.rb +2 -2
  11. data/app/helpers/sufia_helper.rb +23 -2
  12. data/app/models/datastreams/file_content_datastream.rb +17 -9
  13. data/app/models/generic_file.rb +1 -809
  14. data/app/views/_add_assets_links.html.erb +1 -1
  15. data/app/views/_user_util_links.html.erb +2 -2
  16. data/app/views/batch/_metadata.html.erb +16 -16
  17. data/app/views/batch/edit.html.erb +16 -10
  18. data/app/views/batch_edits/_metadata.html.erb +16 -16
  19. data/app/views/catalog/_index_partials/_list_files.html.erb +2 -2
  20. data/app/views/catalog/index.html.erb +5 -0
  21. data/app/views/dashboard/_facet_limit.html.erb +1 -1
  22. data/app/views/dashboard/_facet_pagination.html.erb +4 -4
  23. data/app/views/dashboard/_facet_selected.html.erb +1 -1
  24. data/app/views/dashboard/_index_partials/_list_files.html.erb +8 -8
  25. data/app/views/dashboard/_search_form.html.erb +1 -1
  26. data/app/views/dashboard/_sort_and_per_page.html.erb +1 -1
  27. data/app/views/dashboard/index.html.erb +0 -1
  28. data/app/views/generic_files/_breadcrumbs.html.erb +1 -1
  29. data/app/views/generic_files/_descriptions.html.erb +3 -3
  30. data/app/views/generic_files/_field_form +3 -3
  31. data/app/views/generic_files/_media_display.html.erb +5 -4
  32. data/app/views/generic_files/_permission.html.erb +5 -5
  33. data/app/views/generic_files/_versioning.html.erb +1 -1
  34. data/app/views/generic_files/edit.html.erb +2 -2
  35. data/app/views/generic_files/show.html.erb +3 -3
  36. data/app/views/static/versions.html.erb +1 -1
  37. data/app/views/users/edit.html.erb +5 -3
  38. data/app/views/users/index.html.erb +3 -3
  39. data/app/views/users/show.html.erb +6 -6
  40. data/config/jetty.yml +6 -0
  41. data/config/routes.rb +8 -4
  42. data/features/browse_dashboard_files.feature +11 -1
  43. data/features/browse_files.feature +6 -5
  44. data/features/contact_form.feature +4 -0
  45. data/features/display_dashboard.feature +6 -3
  46. data/features/ingest_upload_files.feature +2 -2
  47. data/features/step_definitions/fixture_steps.rb +6 -5
  48. data/features/step_definitions/scholarsphere.rb +24 -1
  49. data/features/step_definitions/user_steps.rb +2 -2
  50. data/features/step_definitions/web_steps.rb +1 -1
  51. data/features/support/env.rb +26 -0
  52. data/features/users.feature +18 -0
  53. data/lib/active_support/core_ext/marshal.rb +22 -0
  54. data/lib/generators/sufia/sufia_generator.rb +18 -2
  55. data/lib/generators/sufia/templates/catalog_controller.rb +3 -4
  56. data/{spec/support → lib/generators/sufia/templates}/config/redis.yml +0 -0
  57. data/lib/generators/sufia/templates/config/sufia.rb +68 -0
  58. data/lib/generators/sufia/templates/migrations/add_ldap_attrs_to_user.rb +41 -0
  59. data/lib/kaminari/helpers/tag.rb +11 -0
  60. data/lib/sufia.rb +30 -7
  61. data/lib/sufia/controller.rb +1 -5
  62. data/lib/sufia/generic_file.rb +200 -0
  63. data/lib/sufia/generic_file/audit.rb +119 -0
  64. data/lib/sufia/generic_file/characterization.rb +82 -0
  65. data/lib/sufia/generic_file/export.rb +339 -0
  66. data/lib/sufia/generic_file/permissions.rb +64 -0
  67. data/lib/sufia/generic_file/thumbnail.rb +68 -0
  68. data/{app/models → lib/sufia/jobs}/audit_job.rb +13 -3
  69. data/lib/sufia/jobs/batch_update_job.rb +86 -0
  70. data/lib/sufia/jobs/characterize_job.rb +35 -0
  71. data/{app/models → lib/sufia/jobs}/content_delete_event_job.rb +3 -1
  72. data/{app/models → lib/sufia/jobs}/content_deposit_event_job.rb +1 -1
  73. data/{app/models → lib/sufia/jobs}/content_new_version_event_job.rb +1 -1
  74. data/{app/models → lib/sufia/jobs}/content_restored_version_event_job.rb +8 -0
  75. data/{app/models → lib/sufia/jobs}/content_update_event_job.rb +1 -1
  76. data/{app/models → lib/sufia/jobs}/event_job.rb +7 -3
  77. data/{app/models → lib/sufia/jobs}/resolrize_job.rb +4 -2
  78. data/lib/sufia/jobs/transcode_video_job.rb +79 -0
  79. data/{app/models → lib/sufia/jobs}/unzip_job.rb +11 -3
  80. data/{app/models → lib/sufia/jobs}/user_edit_profile_event_job.rb +6 -0
  81. data/{app/models → lib/sufia/jobs}/user_follow_event_job.rb +9 -4
  82. data/{app/models → lib/sufia/jobs}/user_unfollow_event_job.rb +6 -0
  83. data/lib/sufia/queue/resque.rb +30 -0
  84. data/lib/sufia/role_mapper.rb +0 -1
  85. data/{app/models/characterize_job.rb → lib/sufia/solr_document_behavior.rb} +6 -7
  86. data/lib/sufia/user.rb +3 -3
  87. data/lib/sufia/version.rb +1 -1
  88. data/lib/tasks/fixtures.rake +38 -38
  89. data/lib/tasks/resque.rake +1 -0
  90. data/solr_conf/conf/solrconfig.xml +32 -1615
  91. data/solr_conf/solr.xml +1 -1
  92. data/spec/active_fedora/unsaved_digital_object_spec.rb +4 -4
  93. data/spec/config/host_to_vhost_spec.rb +4 -4
  94. data/spec/controllers/authorities_controller_spec.rb +1 -1
  95. data/spec/controllers/batch_controller_spec.rb +12 -10
  96. data/spec/controllers/catalog_controller_spec.rb +13 -13
  97. data/spec/controllers/dashboard_controller_spec.rb +15 -15
  98. data/spec/controllers/downloads_controller_spec.rb +14 -14
  99. data/spec/controllers/generic_files_controller_spec.rb +88 -46
  100. data/spec/controllers/mailbox_controller_spec.rb +2 -2
  101. data/spec/controllers/sessions_controller_spec.rb +1 -1
  102. data/spec/controllers/single_use_link_controller_spec.rb +18 -18
  103. data/spec/controllers/users_controller_spec.rb +47 -31
  104. data/spec/fixtures/countdown.avi +0 -0
  105. data/spec/fixtures/sufia/.gitignore +1 -0
  106. data/spec/fixtures/{scholarsphere → sufia}/bg_header.jpg +0 -0
  107. data/spec/fixtures/sufia/sufia_test1.descMeta.txt +12 -0
  108. data/spec/fixtures/{scholarsphere → sufia}/sufia_test1.foxml.erb +2 -2
  109. data/spec/fixtures/{scholarsphere/scholarsphere_test1.txt → sufia/sufia_test1.txt} +0 -0
  110. data/spec/fixtures/sufia/sufia_test2.descMeta.txt +12 -0
  111. data/spec/fixtures/{scholarsphere/scholarsphere_test2.docx → sufia/sufia_test2.docx} +0 -0
  112. data/spec/fixtures/{scholarsphere/scholarsphere_test2.foxml.erb → sufia/sufia_test2.foxml.erb} +6 -6
  113. data/spec/fixtures/sufia/sufia_test3.descMeta.txt +12 -0
  114. data/spec/fixtures/{scholarsphere/scholarsphere_test3.foxml.erb → sufia/sufia_test3.foxml.erb} +6 -6
  115. data/spec/fixtures/{scholarsphere/scholarsphere_test3.xls → sufia/sufia_test3.xls} +0 -0
  116. data/spec/fixtures/sufia/sufia_test4.descMeta.txt +12 -0
  117. data/spec/fixtures/{scholarsphere/scholarsphere_test4.foxml.erb → sufia/sufia_test4.foxml.erb} +6 -6
  118. data/spec/fixtures/{scholarsphere/scholarsphere_test4.pdf → sufia/sufia_test4.pdf} +0 -0
  119. data/spec/fixtures/sufia/sufia_test5.descMeta.txt +19 -0
  120. data/spec/fixtures/{scholarsphere → sufia}/sufia_test5.foxml.erb +3 -3
  121. data/spec/fixtures/{scholarsphere/scholarsphere_test5.mp3 → sufia/sufia_test5.mp3} +0 -0
  122. data/spec/fixtures/sufia/sufia_test5.txt +1 -0
  123. data/spec/fixtures/sufia/sufia_test6.descMeta.txt +12 -0
  124. data/spec/fixtures/{scholarsphere/scholarsphere_test6.foxml.erb → sufia/sufia_test6.foxml.erb} +6 -6
  125. data/spec/fixtures/{scholarsphere/scholarsphere_test6.jp2 → sufia/sufia_test6.jp2} +0 -0
  126. data/spec/fixtures/sufia/sufia_test6.txt +1 -0
  127. data/spec/fixtures/sufia_generic_stub.descMeta.txt +12 -0
  128. data/spec/fixtures/{scholarsphere_generic_stub.foxml.erb → sufia_generic_stub.foxml.erb} +3 -3
  129. data/spec/fixtures/sufia_generic_stub.txt +1 -0
  130. data/spec/lib/sufia/role_mapper_spec.rb +1 -1
  131. data/spec/models/audit_job_spec.rb +8 -11
  132. data/spec/models/batch_spec.rb +5 -5
  133. data/spec/models/batch_update_job_spec.rb +18 -15
  134. data/spec/models/checksum_audit_log_spec.rb +6 -19
  135. data/spec/models/event_jobs_spec.rb +23 -23
  136. data/spec/models/file_content_datastream_spec.rb +14 -14
  137. data/spec/models/fits_datastream_spec.rb +1 -1
  138. data/spec/models/generic_file_spec.rb +88 -41
  139. data/spec/models/single_use_link_spec.rb +3 -3
  140. data/spec/models/transcode_video_job_spec.rb +30 -0
  141. data/spec/models/unzip_job_spec.rb +6 -4
  142. data/spec/rake/{scholarsphere_fixtures_spec.rb → sufia_fixtures_spec.rb} +16 -16
  143. data/spec/routing/route_spec.rb +4 -8
  144. data/spec/spec_helper.rb +0 -7
  145. data/spec/support/Gemfile +4 -2
  146. data/spec/support/fedora_conf/fedora.fcfg +953 -0
  147. data/spec/support/lib/generators/test_app_generator.rb +1 -11
  148. data/sufia.gemspec +5 -3
  149. data/tasks/{scholarsphere-db.rake → sufia-db.rake} +1 -1
  150. data/tasks/{scholarsphere-dev.rake → sufia-dev.rake} +7 -3
  151. data/tasks/{scholarsphere-fixtures.rake → sufia-fixtures.rake} +43 -43
  152. data/tasks/{scholarsphere.rake → sufia.rake} +2 -2
  153. metadata +126 -95
  154. data/app/models/batch_update_job.rb +0 -82
  155. data/app/models/solr_document.rb +0 -50
  156. data/lib/sufia/permissions.rb +0 -43
  157. data/spec/fixtures/scholarsphere/scholarsphere_test1.descMeta.txt +0 -12
  158. data/spec/fixtures/scholarsphere/scholarsphere_test2.descMeta.txt +0 -12
  159. data/spec/fixtures/scholarsphere/scholarsphere_test3.descMeta.txt +0 -12
  160. data/spec/fixtures/scholarsphere/scholarsphere_test4.descMeta.txt +0 -12
  161. data/spec/fixtures/scholarsphere/scholarsphere_test5.descMeta.txt +0 -19
  162. data/spec/fixtures/scholarsphere/scholarsphere_test5.txt +0 -1
  163. data/spec/fixtures/scholarsphere/scholarsphere_test6.descMeta.txt +0 -12
  164. data/spec/fixtures/scholarsphere/scholarsphere_test6.txt +0 -1
  165. data/spec/fixtures/scholarsphere/sufia_scholarsphere1.descMeta.txt +0 -12
  166. data/spec/fixtures/scholarsphere/sufia_scholarsphere1.foxml.erb +0 -79
  167. data/spec/fixtures/scholarsphere/sufia_scholarsphere1.txt +0 -1
  168. data/spec/fixtures/scholarsphere_generic_stub.descMeta.txt +0 -12
  169. data/spec/fixtures/scholarsphere_generic_stub.txt +0 -1
@@ -174,7 +174,6 @@ z-index:1;
174
174
 
175
175
  <% end %>
176
176
 
177
-
178
177
  <% @page_title = application_name + " Dashboard" %>
179
178
 
180
179
  <div class="row">
@@ -21,7 +21,7 @@ limitations under the License.
21
21
 
22
22
  case request.referer
23
23
  when /dashboard/
24
- crumbs << link_to('Dashboard', dashboard_path)
24
+ crumbs << link_to('Dashboard', sufia.dashboard_index_path)
25
25
  when /files/
26
26
  crumbs << link_to('Back to previous', request.referer)
27
27
  when /catalog/
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  %>
16
16
 
17
- <%= form_for @generic_file, :url => generic_file_path, :html => {:multipart => true, :class => 'form-horizontal', :id => 'fileupload'} do |f| %>
17
+ <%= form_for @generic_file, :url => sufia.generic_file_path, :html => {:multipart => true, :class => 'form-horizontal', :id => 'fileupload'} do |f| %>
18
18
  <%= hidden_field_tag('generic_file[terms_of_service]', '1') %>
19
19
  <%= hidden_field_tag('redirect_tab', 'descriptions') %>
20
20
  <div id="descriptions_display">
@@ -25,8 +25,8 @@ limitations under the License.
25
25
  <%= f.label :resource_type, "Resource Types", :class=>"control-label", :for=>"resource_type" %>
26
26
  <div class="controls">
27
27
  <p class="help-block">You may select multiple types to apply<p>
28
- <%= f.select "resource_type", options_for_select(ScholarSphere::Application::config.resource_types.keys, @generic_file.resource_type.to_a), {}, {:multiple=>true, :size=>7} %>
29
- <a href="#" id="generic_file_resource_type_help" rel="popover" data-content="<%= ScholarSphere::Application.config.metadata_help['generic_file_resource_type'] %>" data-original-title="Resource Type"><i class="icon-question-sign icon-large"></i></a>
28
+ <%= f.select "resource_type", options_for_select(Sufia::Engine.config.resource_types.keys, @generic_file.resource_type.to_a), {}, {:multiple=>true, :size=>7} %>
29
+ <a href="#" id="generic_file_resource_type_help" rel="popover" data-content="<%= Sufia::Engine.config.metadata_help['generic_file_resource_type'] %>" data-original-title="Resource Type"><i class="icon-question-sign icon-large"></i></a>
30
30
  </div>
31
31
  </div><!-- /control-group -->
32
32
 
@@ -18,13 +18,13 @@
18
18
  <% if key == "description" %>
19
19
  <%= f.text_area :description, :name=>"generic_file[#{key}][]", :id => "generic_file_"+key, :value=>v, :class => "input-large" %>
20
20
  <% elsif key == "rights" %>
21
- <% choices = ScholarSphere::Application::config.cc_licenses %>
21
+ <% choices = Sufia::Engine.config.cc_licenses %>
22
22
  <% choices = {""=>""}.merge(choices) %>
23
23
  <%= f.select "rights", options_for_select(choices, v) %>
24
24
  <% elsif key == "resource_type" %>
25
25
  <% if (index == 0) %>
26
26
  <p class="help-block">You may select multiple types to apply<p>
27
- <% choices = ScholarSphere::Application::config.resource_types.keys %>
27
+ <% choices = Sufia::Engine.config.resource_types.keys %>
28
28
  <%= f.select "resource_type", options_for_select(choices, vals.to_a), {}, {:multiple=>true, :size=>7} %>
29
29
  <%end%>
30
30
  <% else %>
@@ -35,7 +35,7 @@
35
35
  <button class="adder btn" name="additional_<%= key %>" id="additional_<%= key %>_submit">+<span class="accessible-hidden">add another <%= key %></span></button>
36
36
  &nbsp;
37
37
  <% end %>
38
- <a href="#" id="generic_file_<%= key %>_help" rel="popover" data-content="<%= ScholarSphere::Application.config.metadata_help['generic_file_' + key] %>" data-original-title="<%= label %>"><i class="icon-question-sign icon-large"></i></a>
38
+ <a href="#" id="generic_file_<%= key %>_help" rel="popover" data-content="<%= Sufia::Engine.config.metadata_help['generic_file_' + key] %>" data-original-title="<%= label %>"><i class="icon-question-sign icon-large"></i></a>
39
39
  <%= render :partial => "generic_files/rights_modal" if key == "rights" %>
40
40
  <% elsif (key != "resource_type") %>
41
41
  <button class="remover btn" name="additional_<%= key %>" id="additional_<%= key %>_submit">-<span class="accessible-hidden">add another <%= key %></span></button>
@@ -14,18 +14,19 @@ See the License for the specific language governing permissions and
14
14
  limitations under the License.
15
15
  %>
16
16
 
17
- <% if ['image/jpeg', 'image/png', 'image/bmp', 'image/gif', 'image/jpg'].include?(@generic_file.mime_type) %>
17
+ <% if @generic_file.image? %>
18
18
  <a href="<%= sufia.download_path(@generic_file.noid) %>" target="_new"><img src="<%= sufia.download_path(@generic_file.noid) %>" width="338" /></a>
19
- <% elsif ['video/mp4'].include?(@generic_file.mime_type) %>
19
+ <% elsif @generic_file.video? %>
20
20
  <video controls="controls" class="video-js vjs-default-skin" data-setup="{}" preload="auto">
21
- <source src="<%= sufia.download_path(@generic_file.noid) %>" type="<%= @generic_file.mime_type %>" />
21
+ <source src="<%= sufia.download_path(@generic_file.noid, datastream_id: 'webm') %>" type="video/webm" />
22
+ <source src="<%= sufia.download_path(@generic_file.noid, datastream_id: 'mp4') %>" type="video/mp4" />
22
23
  Your browser does not support the audio tag.
23
24
  </video>
24
25
  <% elsif ['audio/mp3', 'audio/mpeg'].include?(@generic_file.mime_type) %>
25
26
  <audio src="<%= sufia.download_path(@generic_file.noid, format:'audio') %>" type="<%= @generic_file.mime_type %>" />
26
27
  Your browser does not support the audio tag.
27
28
  </audio>
28
- <% elsif ['application/pdf'].include?(@generic_file.mime_type) %>
29
+ <% elsif @generic_file.pdf?%>
29
30
  <a href="<%= sufia.download_path(@generic_file.noid) %>" target="_new"><img src="<%= sufia.download_path(@generic_file.noid, {:datastream_id => 'thumbnail'}) %>" width="338" height="493" /></a>
30
31
  <% else %>
31
32
  <a href="<%= sufia.download_path(@generic_file.noid) %>" target="_new"><img src="/assets/default.png" alt="No preview available" width="338" height="493" /></a>
@@ -39,7 +39,7 @@ limitations under the License.
39
39
  </div>
40
40
  <div class="modal-body">
41
41
  <h3>Visibility</h3>
42
- <p>This setting will determine who can view your file, and the associated metadata in ScholarSphere. Setting
42
+ <p>This setting will determine who can view your file, and the associated metadata. Setting
43
43
  the visibility to <span class="label label-success">Open Access</span> will allow your content to be discovered in Google and viewed by anyone.
44
44
  The visibility setting <span class="label label-info"><%=t('sufia.institution_name') %></span> will only allow users who are logged into <%=t('sufia.product_name') %>
45
45
  (via WebAccess) to view the content. Files that are marked <span class="label label-important">Private</span> are only able to be viewed
@@ -98,7 +98,7 @@ limitations under the License.
98
98
  <div class="input-append">
99
99
  <p class="help-block">Enter <%=t('sufia.account_label') %> (one at a time)</p>
100
100
  <%= text_field_tag 'new_user_name_skel', nil, :class => "span29" %><span class="add-on">@psu.edu</span>
101
- <%= select_tag 'new_user_permission_skel', options_for_select(ScholarSphere::Application::config.permission_levels), :class=> 'span17' %>
101
+ <%= select_tag 'new_user_permission_skel', options_for_select(Sufia::Engine.config.permission_levels), :class=> 'span17' %>
102
102
  <button class="btn btn-mini btn-inverse" id="add_new_user_skel"><i class="icon-plus-sign"></i> Add</button>
103
103
  <br /> <span id="directory_user_result"></span>
104
104
  </div>
@@ -109,7 +109,7 @@ limitations under the License.
109
109
  <div class="input-append">
110
110
  <% @groups.unshift('Select a group') %>
111
111
  <%= select_tag 'new_group_name_skel', options_for_select(@groups), :class => 'span38' %>
112
- <%= select_tag 'new_group_permission_skel', options_for_select(ScholarSphere::Application::config.permission_levels), :class => 'span17' %>
112
+ <%= select_tag 'new_group_permission_skel', options_for_select(Sufia::Engine.config.permission_levels), :class => 'span17' %>
113
113
  <button class="btn btn-mini btn-inverse" id="add_new_group_skel" ><i class="icon-plus-sign"></i> Add</button>
114
114
  <br /><span id="directory_group_result"></span>
115
115
  </div>
@@ -124,7 +124,7 @@ limitations under the License.
124
124
  <tr id="file_permissions">
125
125
  <td><%= label_tag :owner_access, "Depositor (<span id=\"file_owner\">#{link_to_profile depositor}</span>)".html_safe, :class=>"control-label" %></td>
126
126
  <td>
127
- <%= ScholarSphere::Application::config.owner_permission_levels.keys[0] %>
127
+ <%= Sufia::Engine.config.owner_permission_levels.keys[0] %>
128
128
  </td>
129
129
  </tr>
130
130
  <% gf.permissions.each do |permission| %>
@@ -135,7 +135,7 @@ limitations under the License.
135
135
  <tr>
136
136
  <td><%= label_tag "generic_file[permissions][#{permission[:type]}][#{permission[:name]}]", permission[:name], :class=>"control-label" %></td>
137
137
  <td>
138
- <%= select_tag "generic_file[permissions][#{permission[:type]}][#{permission[:name]}]", options_for_select(ScholarSphere::Application::config.permission_levels, permission[:access]), :class=>'span20 select_perm' %>
138
+ <%= select_tag "generic_file[permissions][#{permission[:type]}][#{permission[:name]}]", options_for_select(Sufia::Engine.config.permission_levels, permission[:access]), :class=>'span20 select_perm' %>
139
139
  <button class="btn close remove_perm">X</button>
140
140
  </td>
141
141
  </tr>
@@ -17,7 +17,7 @@ limitations under the License.
17
17
  <div id="versioning_display">
18
18
  <h2 class="non lower">Versions</h2>
19
19
  <div class="well">
20
- <%= form_for @generic_file, :url => generic_file_path, :html => {:multipart => true, :class => 'form-horizontal', :id => 'fileupload'} do |f| %>
20
+ <%= form_for @generic_file, :url => sufia.generic_file_path, :html => {:multipart => true, :class => 'form-horizontal', :id => 'fileupload'} do |f| %>
21
21
  <%= hidden_field_tag('generic_file[terms_of_service]', '1') %>
22
22
  <%= hidden_field_tag('redirect_tab', 'versions') %>
23
23
  <h3>Upload New Version</h3>
@@ -84,7 +84,7 @@ $("a[rel=popover]").popover();
84
84
  </div>
85
85
  <div class="span2">&nbsp;</div>
86
86
  <div class="span68">
87
- <%= link_to "&lt;&lt;Browse view".html_safe, generic_file_path %></li>
87
+ <%= link_to "&lt;&lt;Browse view".html_safe, sufia.generic_file_path %></li>
88
88
  <ul class="nav nav-tabs">
89
89
  <li id="edit_descriptions_link"><a href="#"><i class="icon-tags"></i> Descriptions</a></li>
90
90
  <li id="edit_versioning_link"><a href="#"><i class="icon-sitemap"></i> Versions</a></li>
@@ -92,7 +92,7 @@ $("a[rel=popover]").popover();
92
92
  </ul>
93
93
  <%= render :partial => "descriptions", :locals => { :generic_file => @generic_file } %>
94
94
 
95
- <%= form_for @generic_file, :url => generic_file_path, :html => {:multipart => true, :class => 'form-horizontal', :id => 'fileupload'} do |f| %>
95
+ <%= form_for @generic_file, :url => sufia.generic_file_path, :html => {:multipart => true, :class => 'form-horizontal', :id => 'fileupload'} do |f| %>
96
96
  <%= hidden_field_tag('redirect_tab', 'permissions') %>
97
97
  <%= render :partial => "permission", :locals => { :gf => @generic_file, :f=> f } %>
98
98
  <% end %>
@@ -170,7 +170,7 @@ var addthis_config = {"data_track_addressbar":true};
170
170
  <th>Rights</th>
171
171
  <td>
172
172
  <% @generic_file.rights.each do |r| %>
173
- <%=link_to_field('rights',r, ScholarSphere::Application::config.cc_licenses_reverse[r])%> <%= iconify_auto_link(r,false) %><br />
173
+ <%=link_to_field('rights',r, Sufia::Engine.config.cc_licenses_reverse[r])%> <%= iconify_auto_link(r,false) %><br />
174
174
  <% end %>
175
175
  </td>
176
176
  </tr>
@@ -257,14 +257,14 @@ var addthis_config = {"data_track_addressbar":true};
257
257
  <% label = label.humanize %>
258
258
  <% if values.is_a? Array %>
259
259
  <% length = values.length %>
260
- <% length = ScholarSphere::Application::config.fits_message_length-1 if term == :status_message && values.length > ScholarSphere::Application::config.fits_message_length-1 %>
260
+ <% length = Sufia::Engine.config.fits_message_length-1 if term == :status_message && values.length > Sufia::Engine.config.fits_message_length-1 %>
261
261
  <% values[0..length].each_with_index do |value, idx| %>
262
262
  <% next if value.empty? %>
263
263
  <%= "#{label}: #{value.truncate(250)}" %>
264
264
  <%= "<br />".html_safe unless idx == length %>
265
265
  <% end %>
266
266
  <% if length != values.length %>
267
- <%= render :partial => "generic_files/extra_fields_modal", :locals=>{:name=>term, :values=> values, :start=>ScholarSphere::Application::config.fits_message_length}%>
267
+ <%= render :partial => "generic_files/extra_fields_modal", :locals=>{:name=>term, :values=> values, :start=>Sufia::Engine.config.fits_message_length}%>
268
268
  <% end %>
269
269
  <% else %>
270
270
  <%= "#{label}: #{values.truncate(250)}" %><br />
@@ -15,7 +15,7 @@ limitations under the License.
15
15
  %>
16
16
 
17
17
  <h1>Versions</h1>
18
- <h3>Version <%= ScholarSphere::Application::config.scholarsphere_version %> (<%= ScholarSphere::Application::config.scholarsphere_release_date %>)</h3>
18
+ <h3>Version <%= Sufia::Engine::config.scholarsphere_version %> (<%= Sufia::Engine::config.scholarsphere_release_date %>)</h3>
19
19
  <p>
20
20
  <ul>
21
21
  <li>Added batch edit and delete</li>
@@ -27,7 +27,7 @@ $("a[rel=popover]").popover();
27
27
 
28
28
  <h1>Edit Profile</h1>
29
29
  <div class="span45 well">
30
- <%= form_for @user, :url => update_profile_path(@user.login), :html => {:multipart => true, :class => 'form-horizontal' } do |f| %>
30
+ <%= form_for @user, :url => sufia.update_profile_path(URI.escape(@user.to_s, '@.')), :html => {:multipart => true, :class => 'form-horizontal' } do |f| %>
31
31
  <div class="control-group">
32
32
  <%= f.label :avatar, '<i class="icon-camera-retro"></i> Change picture'.html_safe, :class => "control-label" %>
33
33
  <div class="controls">
@@ -93,8 +93,10 @@ $("a[rel=popover]").popover();
93
93
  <hr />
94
94
 
95
95
  <h3><i class="icon-group"></i> User Managed Groups Info (UMG) <%= link_to 'Manage UMG', 'http://umg.its.psu.edu/', :class => 'btn btn-mini btn-primary' %> </h3>
96
- <% @groups.each do |g| %>
97
- <i class="icon-caret-right"></i> <%= g %><br />
96
+ <% if @groups %>
97
+ <% @groups.each do |g| %>
98
+ <i class="icon-caret-right"></i> <%= g %><br />
99
+ <% end %>
98
100
  <% end %>
99
101
  </div>
100
102
 
@@ -32,9 +32,9 @@ limitations under the License.
32
32
  <tbody>
33
33
  <% @users.each do |user| %>
34
34
  <tr class="<%= cycle("","zebra") %>">
35
- <td><a href="<%= profile_path(user.login) %>" class="btn btn-small " ><%= image_tag user.avatar.url(:thumb), :width => 30 %></a></td>
36
- <td ><a href="<%= profile_path(user.login) %>" ><%= user.name %><a></td>
37
- <td><a href="<%= profile_path(user.login) %>" ><%= user.login %><a></td>
35
+ <td><a href="<%= sufia.profile_path(URI.escape(user.login,'@.'i)) %>" class="btn btn-small " ><%= image_tag user.avatar.url(:thumb), :width => 30 %></a></td>
36
+ <td ><a href="<%= sufia.profile_path(URI.escape(user.login,'@.'i)) %>" ><%= user.name %><a></td>
37
+ <td><a href="<%= sufia.profile_path(URI.escape(user.login,'@.'i)) %>" ><%= user.login %><a></td>
38
38
  <td><%= user.department %> </td>
39
39
  <td><%= GenericFile.find(:depositor_t => user.to_s).count %> </td>
40
40
  </tr>
@@ -17,18 +17,18 @@ limitations under the License.
17
17
  <h1 class="span110">
18
18
  <span class="span60">
19
19
  <%= image_tag @user.avatar.url(:thumb), :width => 100 %>
20
- <%= @user.name %> (<%= @user.login %>)
20
+ <%= @user.name %> (<%= @user.user_key %>)
21
21
  </span>
22
22
 
23
23
  <span class="span20 offset20">
24
24
  <% if not signed_in? %>
25
25
  <!-- sign in to access social functions -->
26
26
  <% elsif current_user == @user %>
27
- <a class="btn btn-primary" href="<%= edit_profile_path(@user.to_s) %>"><i class="icon-edit"></i> Edit Your Profile </a>
27
+ <a class="btn btn-primary" href="<%= sufia.edit_profile_path(URI.escape(@user.to_s, '@.')) %>"><i class="icon-edit"></i> Edit Your Profile </a>
28
28
  <% elsif current_user.following?(@user) %>
29
- <a class="btn btn-primary" href="<%= unfollow_user_path(@user.to_s) %>"><i class="icon-eye-close"></i> Unfollow </a>
29
+ <a class="btn btn-primary" href="<%= sufia.unfollow_user_path(@user.to_s) %>"><i class="icon-eye-close"></i> Unfollow </a>
30
30
  <% else %>
31
- <a class="btn btn-primary" href="<%= follow_user_path(@user.to_s) %>"><i class="icon-eye-open"></i> Follow</a>
31
+ <a class="btn btn-primary" href="<%= sufia.follow_user_path(@user.to_s) %>"><i class="icon-eye-open"></i> Follow</a>
32
32
  <% end %>
33
33
  </span>
34
34
  </h1>
@@ -48,7 +48,7 @@ limitations under the License.
48
48
  <ul class="thumbnails">
49
49
  <% @followers.each do |f| %>
50
50
  <li class="span8">
51
- <%= link_to(image_tag(f.avatar.url(:thumb)), profile_path(f.login), { :title => f.name } ) %>
51
+ <%= link_to(image_tag(f.avatar.url(:thumb)), sufia.profile_path(f.login), { :title => f.name } ) %>
52
52
  <li>
53
53
  <% end %>
54
54
  </ul>
@@ -59,7 +59,7 @@ limitations under the License.
59
59
  <ul class="thumbnails">
60
60
  <% @following.each do |f| %>
61
61
  <li class="span8">
62
- <%= link_to(image_tag(f.avatar.url(:thumb)), profile_path(f.login), { :title => f.name } ) %>
62
+ <%= link_to(image_tag(f.avatar.url(:thumb)), sufia.profile_path(f.login), { :title => f.name } ) %>
63
63
  <li>
64
64
  <% end %>
65
65
  </ul>
data/config/jetty.yml ADDED
@@ -0,0 +1,6 @@
1
+ default:
2
+ startup_wait: 45
3
+ jetty_port: 8983
4
+ java_opts:
5
+ - "-Xmx256m"
6
+ - "-XX:MaxPermSize=128m"
data/config/routes.rb CHANGED
@@ -20,7 +20,6 @@ Sufia::Engine.routes.draw do
20
20
  member do
21
21
  get 'citation', :as => :citation
22
22
  post 'audit'
23
- post 'permissions'
24
23
  end
25
24
  end
26
25
 
@@ -46,9 +45,14 @@ Sufia::Engine.routes.draw do
46
45
  match 'users/:uid/unfollow' => 'users#unfollow', :as => :unfollow_user
47
46
 
48
47
  # Dashboard routes (based partly on catalog routes)
49
- match 'dashboard' => 'dashboard#index', :as => :dashboard
50
- match 'dashboard/activity' => 'dashboard#activity', :as => :dashboard_activity
51
- match 'dashboard/facet/:id' => 'dashboard#facet', :as => :dashboard_facet
48
+ resources 'dashboard', :only=>:index do
49
+ collection do
50
+ get 'page/:page', :action => :index
51
+ get 'activity', :action => :activity, :as => :dashboard_activity
52
+ get 'facet/:id', :action => :facet, :as => :dashboard_facet
53
+ end
54
+ end
55
+
52
56
 
53
57
  # advanced routes for advanced search
54
58
  match 'search' => 'advanced#index', :as => :advanced
@@ -1,9 +1,19 @@
1
1
  Feature: Browse Dashboard files
2
2
 
3
+
3
4
  Scenario: Browse via Fixtures
4
- Given I load scholarsphere fixtures
5
5
  Given I am logged in as "archivist2@example.com"
6
6
  And I follow "dashboard"
7
7
  And I follow "more Keywords"
8
8
  And I follow "keyf"
9
9
  Then I should see "Test mp3"
10
+
11
+ Scenario: Edit Dashboard File
12
+ Given I am logged in as "archivist2@example.com"
13
+ And I follow "dashboard"
14
+ When I follow the link within
15
+ """
16
+ a[href="/files/test5/edit"]
17
+ """
18
+ Then I should see "Edit Test mp3"
19
+
@@ -1,15 +1,16 @@
1
1
  Feature: Browse files
2
2
 
3
3
  Scenario: Browse via Fixtures
4
- Given I load scholarsphere fixtures
4
+ # Given I load sufia fixtures
5
5
  When I go to the home page
6
6
  And I follow "more Keyword"
7
7
  And I follow "test"
8
- Then I should see "Displaying all 4 items"
8
+ Then I should see "1 - 4 of 4"
9
9
  When I follow "Test Document PDF"
10
10
  Then I should see "Download"
11
11
  But I should not see "Edit"
12
- Given I am logged in as "archivist1"
13
- When I follow "test"
14
- And I follow "Test Document PDF"
12
+ Given I am logged in as "archivist1@example.com"
13
+ And I follow "more Keyword"
14
+ And I follow "test"
15
+ When I follow "Test Document PDF"
15
16
  And I should see "Edit"
@@ -1,6 +1,8 @@
1
1
  Feature: Sending an email via the contact form
2
2
 
3
3
  Scenario: Input info to contact form and send
4
+ # this step allows delivery even if the mail server is down
5
+ Given I have a mail server
4
6
  Given I am on the home page
5
7
  When I follow "Contact"
6
8
  Then I should see "Contact Form"
@@ -11,6 +13,8 @@ Feature: Sending an email via the contact form
11
13
  And I select "Depositing content" from "contact_form_category"
12
14
  And I press "Send"
13
15
  Then I should see "Thank you"
16
+ # this step allows the delivery to go back to normal
17
+ Then I reset the mail server
14
18
 
15
19
  Scenario: Input no selection for contact type
16
20
  Given I am on the home page
@@ -31,12 +31,15 @@ Feature: As an authenticate and authorized
31
31
  Then I should not see "Dashboard"
32
32
  Then the "search-field-header" field should contain "ss search"
33
33
 
34
- @javascript
34
+ @culerity
35
35
  Scenario: I have files on my dashboard I should see icons
36
- Given I load scholarsphere fixtures
36
+ #Given I load sufia fixtures
37
37
  And I am logged in as "archivist1@example.com"
38
38
  And I follow "dashboard"
39
39
  Then I should see "Test Document Text"
40
- Given I follow "Delete"
40
+ When I follow the link within
41
+ """
42
+ a[href="/files/test3"].itemtrash
43
+ """
41
44
  Then I should see "The file has been deleted"
42
45
 
@@ -11,11 +11,11 @@ Feature: Uploading files via web form
11
11
  And I should see "Cancel upload"
12
12
  And I should see a file chooser button
13
13
 
14
- @javascript
14
+ @celerity
15
15
  Scenario: Upload a file without checking terms of service
16
16
  Given I am logged in as "contentauthor@psu.edu"
17
17
  When I am on the "ingest" page
18
18
  And I attach the file "spec/fixtures/image.jp2" to "files[]"
19
- And I attach the file "spec/fixtures/libra-oa_1.foxml.xml" to "files[]"
19
+ And I attach the file "spec/fixtures/jp2_fits.xml" to "files[]"
20
20
  And I press "Start upload"
21
21
  Then I should see "You must accept the terms of service!"
@@ -22,13 +22,14 @@ def activefedora_path
22
22
  Gem.loaded_specs['active-fedora'].full_gem_path
23
23
  end
24
24
 
25
- Given /^I load scholarsphere fixtures$/ do
25
+ Given /^I load sufia fixtures$/ do
26
26
  @rake = Rake::Application.new
27
27
  Rake.application = @rake
28
- Rake.application.rake_require("lib/tasks/fixtures", ["."], loaded_files_excluding_current_rake_file)
29
- Rake.application.rake_require("lib/tasks/active_fedora", [activefedora_path], loaded_files_excluding_current_rake_file)
28
+ Rake.application.rake_require("tasks/sufia-fixtures", ["."], loaded_files_excluding_current_rake_file)
29
+ Rake.application.rake_require("lib/tasks/fixtures", ["."], loaded_files_excluding_current_rake_file)
30
+ Rake.application.rake_require("lib/tasks/active_fedora", [activefedora_path], loaded_files_excluding_current_rake_file)
30
31
  Rake::Task.define_task(:environment)
31
- @rake['scholarsphere:fixtures:refresh'].invoke
32
- @rake['scholarsphere:fixtures:fix'].invoke
32
+ @rake['sufia:fixtures:refresh'].invoke
33
+ @rake['sufia:fixtures:fix'].invoke
33
34
  end
34
35
 
@@ -11,7 +11,6 @@
11
11
  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12
12
  # See the License for the specific language governing permissions and
13
13
  # limitations under the License.
14
-
15
14
  When /^I attach a file "([^"]*)" to the dynamically created "([^"]*)"$/ do |path, field|
16
15
  find(field).native.send_keys(File.expand_path(path, Rails.root))
17
16
  end
@@ -20,6 +19,23 @@ Given /^And I click the anchor "([^"]*)"$/ do |link|
20
19
  click_link(link)
21
20
  end
22
21
 
22
+ Given /^And I click within the anchor "(.*?)"$/ do |selector|
23
+ #Given /^(?:|I )click within the anchor "([^"]*)"$/ do |selector|
24
+ find(selector).click
25
+ end
26
+
27
+ Given /^I have a mail server$/ do
28
+ ContactForm.any_instance.stubs(:deliver).returns(true)
29
+ end
30
+
31
+ Then /^I reset the mail server$/ do
32
+ ContactForm.any_instance.unstub(:deliver)
33
+ end
34
+
35
+ When /^I follow the link within$/ do |selector|
36
+ find(selector).click
37
+ end
38
+
23
39
  # tests wether a select option is choosen
24
40
  Then /^"([^"]*)" should be selected for "([^"]*)"(?: within "([^\"]*)")?$/ do |value, field, selector|
25
41
  with_scope(selector) do
@@ -42,3 +58,10 @@ Then /^"([^\"]*)" should( not)? be disabled$/ do |label, negate|
42
58
  end
43
59
  ["false", "", nil].send(negate ? :should : :should_not, include(field[:disabled]))
44
60
  end
61
+
62
+ Given /^I load users$/ do
63
+ FactoryGirl.create(:user)
64
+ FactoryGirl.create(:archivist)
65
+ FactoryGirl.create(:curator)
66
+ end
67
+