sufia 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/Gemfile +1 -4
- data/README.md +1 -1
- data/app/assets/javascripts/sufia.js +5 -312
- data/app/assets/javascripts/sufia/permissions.js +216 -0
- data/app/assets/javascripts/sufia/tabs.js +58 -0
- data/app/assets/stylesheets/generic_files.css +4 -0
- data/app/assets/stylesheets/jquery-ui.css +474 -0
- data/app/assets/stylesheets/{sufia.css → sufia.css.scss} +4 -1
- data/app/controllers/directory_controller.rb +17 -11
- data/app/controllers/users_controller.rb +5 -3
- data/app/models/datastreams/file_content_datastream.rb +2 -53
- data/app/views/batch/_metadata.html.erb +0 -1
- data/app/views/batch_edits/_metadata.html.erb +0 -1
- data/app/views/batch_edits/edit.html.erb +0 -1
- data/app/views/dashboard/_facet_pagination.html.erb +20 -39
- data/app/views/dashboard/_index_partials/_thumbnail_display.html.erb +1 -1
- data/app/views/dashboard/facet.html.erb +29 -34
- data/app/views/generic_files/_descriptions.html.erb +0 -1
- data/app/views/generic_files/_groups_description.html.erb +5 -0
- data/app/views/generic_files/_multiple_upload.html.erb +135 -0
- data/app/views/generic_files/_permission.html.erb +2 -5
- data/app/views/generic_files/_versioning.html.erb +0 -1
- data/app/views/generic_files/edit.html.erb +0 -3
- data/app/views/generic_files/new.html.erb +2 -138
- data/app/views/layouts/hydra-head.html.erb +1 -0
- data/app/views/users/index.html.erb +6 -4
- data/config/locales/sufia.en.yml +2 -0
- data/lib/sufia.rb +1 -1
- data/lib/sufia/file_content.rb +8 -0
- data/lib/sufia/file_content/extract_metadata.rb +53 -0
- data/lib/sufia/file_content/versions.rb +23 -0
- data/lib/sufia/files_controller_behavior.rb +17 -33
- data/lib/sufia/generic_file.rb +0 -8
- data/lib/sufia/generic_file/characterization.rb +0 -1
- data/lib/sufia/generic_file/thumbnail.rb +2 -4
- data/lib/sufia/jobs/unzip_job.rb +0 -1
- data/lib/sufia/user.rb +0 -3
- data/lib/sufia/version.rb +1 -1
- data/spec/controllers/batch_controller_spec.rb +11 -12
- data/spec/controllers/catalog_controller_spec.rb +2 -3
- data/spec/controllers/generic_files_controller_spec.rb +14 -16
- data/spec/controllers/single_use_link_controller_spec.rb +0 -1
- data/spec/models/batch_update_job_spec.rb +2 -3
- data/spec/models/checksum_audit_log_spec.rb +1 -2
- data/spec/models/file_content_datastream_spec.rb +1 -6
- data/spec/models/generic_file_spec.rb +2 -9
- data/spec/models/single_use_link_spec.rb +0 -2
- data/spec/models/transcode_video_job_spec.rb +1 -1
- data/spec/support/Gemfile +3 -5
- data/sufia.gemspec +2 -2
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.effect-highlight.js +50 -0
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.effect.js +1276 -0
- data/vendor/assets/javascripts/jquery-ui-1.9.2/jquery.ui.position.js +498 -0
- metadata +26 -21
- data/app/assets/stylesheets/font-awesome-ie7.css +0 -645
- data/app/assets/stylesheets/font-awesome.css +0 -303
- data/app/views/catalog/_facet_pagination.html.erb +0 -28
- data/app/views/catalog/facet.html.erb +0 -27
- data/public/robots.txt +0 -4
- data/vendor/assets/fonts/fontawesome-webfont.eot +0 -0
@@ -59,10 +59,7 @@ limitations under the License.
|
|
59
59
|
<button class="btn btn-mini btn-inverse" onclick="return false;"><i class="icon-plus-sign" ></i>Add</button>.
|
60
60
|
</p>
|
61
61
|
|
62
|
-
|
63
|
-
The list of groups in the drop-down marked "Select a group" is a list of User Managed Groups that you are a member of, and are managed by <%=t('sufia.institution_name') %>'s ITS department. You may select a specific group and assign an access
|
64
|
-
level for a file within <%=t('sufia.product_name') %>, similarly to adding user access levels. However, management of these groups and their membership is handled centrally at <a href="http://umg.its.psu.edu" target="_blank">umg.its.psu.edu</a>.
|
65
|
-
</p>
|
62
|
+
<%= render partial: 'groups_description' %>
|
66
63
|
|
67
64
|
<h3>Permission Definitions</h3>
|
68
65
|
<p>
|
@@ -97,7 +94,7 @@ limitations under the License.
|
|
97
94
|
<div id="new-user">
|
98
95
|
<div class="input-append">
|
99
96
|
<p class="help-block">Enter <%=t('sufia.account_label') %> (one at a time)</p>
|
100
|
-
<%= text_field_tag 'new_user_name_skel', nil, :class => "span29" %><span class="add-on"
|
97
|
+
<%= text_field_tag 'new_user_name_skel', nil, :class => "span29" %><span class="add-on"><%=t('sufia.directory.suffix') %></span>
|
101
98
|
<%= select_tag 'new_user_permission_skel', options_for_select(Sufia::Engine.config.permission_levels), :class=> 'span17' %>
|
102
99
|
<button class="btn btn-mini btn-inverse" id="add_new_user_skel"><i class="icon-plus-sign"></i> Add</button>
|
103
100
|
<br /> <span id="directory_user_result"></span>
|
@@ -18,7 +18,6 @@ limitations under the License.
|
|
18
18
|
<h2 class="non lower">Versions</h2>
|
19
19
|
<div class="well">
|
20
20
|
<%= form_for @generic_file, :url => sufia.generic_file_path, :html => {:multipart => true, :class => 'form-horizontal'} do |f| %>
|
21
|
-
<%= hidden_field_tag('generic_file[terms_of_service]', '1') %>
|
22
21
|
<%= hidden_field_tag('redirect_tab', 'versions') %>
|
23
22
|
<h3>Upload New Version</h3>
|
24
23
|
<p>Upload a new version of this file from your computer.</p>
|
@@ -58,9 +58,6 @@ $("a[rel=popover]").popover();
|
|
58
58
|
label.error { float: left; color: red; padding-left: .5em; vertical-align: top; }
|
59
59
|
<% end %>
|
60
60
|
|
61
|
-
|
62
|
-
|
63
|
-
<% end %>
|
64
61
|
<%= render :partial => 'breadcrumbs' %>
|
65
62
|
|
66
63
|
<h1 class="lower">Edit <%= display_title(@generic_file) %></h1>
|
@@ -15,141 +15,5 @@ limitations under the License.
|
|
15
15
|
%>
|
16
16
|
|
17
17
|
<h2>Upload</h2>
|
18
|
-
|
19
|
-
|
20
|
-
<strong>Note:</strong> You must agree to <a href='/agreement/' target="_blank"><%= t('sufia.deposit_agreement') %></a> before starting your upload.
|
21
|
-
</div>
|
22
|
-
|
23
|
-
<div class="alert alert-info hide" id="redirect-loc" type="text/x-jquery-tmpl">
|
24
|
-
<%=sufia.batch_edit_path(@batch_noid)%>
|
25
|
-
</div>
|
26
|
-
|
27
|
-
<div id="upload_tooltip"><%= t('sufia.upload_tooltip') %></div>
|
28
|
-
|
29
|
-
<div class="alert alert-info hide" id="success">
|
30
|
-
You have successfully uploaded some of your files. Either continue to upload or edit use the links below to abandon the rest of your added files.
|
31
|
-
<p>
|
32
|
-
<%= link_to 'Add Descriptions', sufia.batch_edit_path(@batch_noid), :class=>'btn' %>
|
33
|
-
</p>
|
34
|
-
</div>
|
35
|
-
|
36
|
-
<div class="alert hide" id="fail">
|
37
|
-
There was a problem during upload. Please click the "Start Upload" button or <%= link_to 'start over', sufia.new_generic_file_path %>
|
38
|
-
</div>
|
39
|
-
|
40
|
-
<div class="alert hide" id="partial_fail">
|
41
|
-
One or more files did not upload successfully. To continue using the files uploaded use one of the links below.<br />
|
42
|
-
<%= link_to 'Add Descriptions', sufia.batch_edit_path(@batch_noid), :class=>'btn' %>
|
43
|
-
</div>
|
44
|
-
|
45
|
-
<div class="alert hide" id="errmsg"> </div>
|
46
|
-
|
47
|
-
<!-- The file upload form used as target for the file upload widget -->
|
48
|
-
<%= form_for(@generic_file, :url => sufia.generic_files_path, :html => {:multipart => true, :class => 'form-horizontal well', :id => 'fileupload'}) do |f| %>
|
49
|
-
<%= hidden_field_tag(:total_upload_size, 0) %>
|
50
|
-
<%= hidden_field_tag(:relative_path) %>
|
51
|
-
<%= hidden_field_tag(:batch_id, @batch_noid) %>
|
52
|
-
<label class="checkbox">
|
53
|
-
<%= check_box_tag 'terms_of_service' %> I have read and do agree
|
54
|
-
to <%= link_to t('sufia.deposit_agreement'),
|
55
|
-
'/agreement/', :target => "_blank" %>.
|
56
|
-
</label>
|
57
|
-
<!-- The fileupload-buttonbar contains buttons to add/delete files and start/cancel the upload -->
|
58
|
-
<div class="row fileupload-buttonbar">
|
59
|
-
<div class="span70">
|
60
|
-
<!-- The fileinput-button span is used to style the file input field as button -->
|
61
|
-
<span class="btn btn-success fileinput-button">
|
62
|
-
<i class="icon-plus icon-white"></i>
|
63
|
-
<span>Select files...</span>
|
64
|
-
<input type="file" name="files[]" multiple />
|
65
|
-
</span>
|
66
|
-
<% ua = request.env['HTTP_USER_AGENT'] %>
|
67
|
-
<% if !!(ua =~ /Chrome/) %>
|
68
|
-
<span class="btn btn-success fileinput-button">
|
69
|
-
<i class="icon-plus icon-white"></i>
|
70
|
-
<span>Select folder...</span>
|
71
|
-
<input type="file" name="files[]" directory webkitdirectory mozdirectory />
|
72
|
-
</span>
|
73
|
-
<% end %>
|
74
|
-
<span id="main_upload_start_span">
|
75
|
-
<button type="submit" class="btn btn-primary start" id='main_upload_start'>
|
76
|
-
<i class="icon-upload icon-white"></i>
|
77
|
-
<span>Start upload</span>
|
78
|
-
</button>
|
79
|
-
</span>
|
80
|
-
<button type="reset" class="btn btn-warning cancel">
|
81
|
-
<i class="icon-ban-circle icon-white"></i>
|
82
|
-
<span>Cancel upload</span>
|
83
|
-
</button>
|
84
|
-
</div>
|
85
|
-
<div class="span50">
|
86
|
-
<!-- The global progress bar -->
|
87
|
-
<div class="progress progress-success progress-striped active fade">
|
88
|
-
<div class="bar" style="width:0%;"></div>
|
89
|
-
</div>
|
90
|
-
</div>
|
91
|
-
</div>
|
92
|
-
<!-- The loading indicator is shown during image processing -->
|
93
|
-
<div class="fileupload-loading"></div>
|
94
|
-
<br />
|
95
|
-
<!-- The table listing the files available for upload/download -->
|
96
|
-
<table id="file-table" class="table table-striped"><tbody class="files" data-toggle="modal-gallery" data-target="#modal-gallery"></tbody></table>
|
97
|
-
</form>
|
98
|
-
<% end %>
|
99
|
-
|
100
|
-
<!-- The template to display files available for upload -->
|
101
|
-
<script id="template-upload" type="text/x-jquery-tmpl">
|
102
|
-
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
103
|
-
|
104
|
-
<tr class="template-upload fade">
|
105
|
-
<td class="preview"><span class="fade"></span></td>
|
106
|
-
<td class="name"><span>{%=file.name%}</span></td>
|
107
|
-
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
|
108
|
-
{% if (file.error) { %}
|
109
|
-
<td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
|
110
|
-
{% } else if (o.files.valid && !i) { %}
|
111
|
-
<td>
|
112
|
-
<div class="progress progress-success progress-striped active"><div class="bar" style="width:0%;"></div></div>
|
113
|
-
</td>
|
114
|
-
<td class="start">{% if (!o.options.autoUpload) { %}
|
115
|
-
<button class="btn btn-primary hide">
|
116
|
-
<i class="icon-upload icon-white"></i>
|
117
|
-
<span>{%=locale.fileupload.start%}</span>
|
118
|
-
</button>
|
119
|
-
{% } %}</td>
|
120
|
-
{% } else { %}
|
121
|
-
<td colspan="2"></td>
|
122
|
-
{% } %}
|
123
|
-
<td class="cancel">{% if (!i) { %}
|
124
|
-
<button class="btn btn-warning">
|
125
|
-
<i class="icon-ban-circle icon-white"></i>
|
126
|
-
<span>{%=locale.fileupload.cancel%}</span>
|
127
|
-
</button>
|
128
|
-
{% } %}</td>
|
129
|
-
</tr>
|
130
|
-
{% } %}
|
131
|
-
</script>
|
132
|
-
<!-- The template to display files available for download -->
|
133
|
-
<script id="template-download" type="text/x-jquery-tmpl">
|
134
|
-
{% for (var i=0, file; file=o.files[i]; i++) { %}
|
135
|
-
<tr class="template-download fade">
|
136
|
-
{% if (file.error) { %}
|
137
|
-
<td><span></span></td>
|
138
|
-
<td class="name"><span>{%=file.name%}</span></td>
|
139
|
-
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
|
140
|
-
<td class="error" colspan="2"><span class="label label-important">{%=locale.fileupload.error%}</span> {%=locale.fileupload.errors[file.error] || file.error%}</td>
|
141
|
-
{% } else { %}
|
142
|
-
<td class="preview">
|
143
|
-
{% if (file.thumbnail_url) { %} <span class="label label-success">Success</span> {% } %}
|
144
|
-
</td>
|
145
|
-
<td class="name">
|
146
|
-
{%=file.name%}
|
147
|
-
<!--a href="{%=file.url%}" title="{%=file.name%}" rel="{%=file.thumbnail_url&&'gallery'%}" download="{%=file.name%}" target="_blank">{%=file.name%}</a-->
|
148
|
-
</td>
|
149
|
-
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
|
150
|
-
<td colspan="2"></td>
|
151
|
-
{% } %}
|
152
|
-
</tr>
|
153
|
-
{% } %}
|
154
|
-
</script>
|
155
|
-
|
18
|
+
<%# using partials rather than inlining, so implementers can add or change stuff on this page without much duplication %>
|
19
|
+
<%= render partial: 'multiple_upload' %>
|
@@ -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="<%= sufia.profile_path(URI.escape(user.
|
36
|
-
<td ><a href="<%= sufia.profile_path(URI.escape(user.
|
37
|
-
<td><a href="<%= sufia.profile_path(URI.escape(user.
|
35
|
+
<td><a href="<%= sufia.profile_path(URI.escape(user.user_key,'@.')) %>" class="btn btn-small " ><%= image_tag user.avatar.url(:thumb), :width => 30 %></a></td>
|
36
|
+
<td ><a href="<%= sufia.profile_path(URI.escape(user.user_key,'@.')) %>" ><%= user.name %><a></td>
|
37
|
+
<td><a href="<%= sufia.profile_path(URI.escape(user.user_key,'@.')) %>" ><%= user.user_key %><a></td>
|
38
38
|
<td><%= user.department %> </td>
|
39
39
|
<td><%= GenericFile.find(:depositor_t => user.to_s).count %> </td>
|
40
40
|
</tr>
|
@@ -42,5 +42,7 @@ limitations under the License.
|
|
42
42
|
<% end %>
|
43
43
|
</tbody>
|
44
44
|
</table>
|
45
|
-
|
45
|
+
<div class="pager">
|
46
|
+
<%= paginate @users, :theme => 'blacklight'%>
|
47
|
+
</div>
|
46
48
|
</div>
|
data/config/locales/sufia.en.yml
CHANGED
data/lib/sufia.rb
CHANGED
@@ -8,7 +8,6 @@ require 'resque/server'
|
|
8
8
|
require 'mailboxer'
|
9
9
|
require 'acts_as_follower'
|
10
10
|
require 'paperclip'
|
11
|
-
require 'will_paginate'
|
12
11
|
require 'nest'
|
13
12
|
require 'RMagick'
|
14
13
|
require 'activerecord-import'
|
@@ -78,5 +77,6 @@ module Sufia
|
|
78
77
|
autoload :SolrDocumentBehavior
|
79
78
|
autoload :FilesControllerBehavior
|
80
79
|
autoload :DownloadsControllerBehavior
|
80
|
+
autoload :FileContent
|
81
81
|
end
|
82
82
|
|
@@ -0,0 +1,53 @@
|
|
1
|
+
require 'open3'
|
2
|
+
module Sufia
|
3
|
+
module FileContent
|
4
|
+
module ExtractMetadata
|
5
|
+
include Open3
|
6
|
+
|
7
|
+
def extract_metadata
|
8
|
+
out = nil
|
9
|
+
to_tempfile do |f|
|
10
|
+
out = run_fits!(f.path)
|
11
|
+
end
|
12
|
+
out
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_tempfile &block
|
16
|
+
return if content.nil?
|
17
|
+
f = Tempfile.new("#{pid}-#{dsVersionID}")
|
18
|
+
f.binmode
|
19
|
+
if content.respond_to? :read
|
20
|
+
f.write(content.read)
|
21
|
+
else
|
22
|
+
f.write(content)
|
23
|
+
end
|
24
|
+
f.close
|
25
|
+
content.rewind if content.respond_to? :rewind
|
26
|
+
yield(f)
|
27
|
+
f.unlink
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
|
34
|
+
def run_fits!(file_path)
|
35
|
+
command = "#{fits_path} -i #{file_path}"
|
36
|
+
stdin, stdout, stderr = popen3(command)
|
37
|
+
stdin.close
|
38
|
+
out = stdout.read
|
39
|
+
stdout.close
|
40
|
+
err = stderr.read
|
41
|
+
stderr.close
|
42
|
+
raise "Unable to execute command \"#{command}\"\n#{err}" unless err.empty? or err.include? "Error parsing Exiftool XML Output"
|
43
|
+
out
|
44
|
+
end
|
45
|
+
|
46
|
+
|
47
|
+
def fits_path
|
48
|
+
Sufia::Engine.config.fits_path
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Sufia
|
2
|
+
module FileContent
|
3
|
+
module Versions
|
4
|
+
def get_version(version_id)
|
5
|
+
self.versions.select { |v| v.versionID == version_id}.first
|
6
|
+
end
|
7
|
+
|
8
|
+
def latest_version
|
9
|
+
self.versions.first
|
10
|
+
end
|
11
|
+
|
12
|
+
def version_committer(version)
|
13
|
+
vc = VersionCommitter.where(:obj_id => version.pid,
|
14
|
+
:datastream_id => version.dsid,
|
15
|
+
:version_id => version.versionID)
|
16
|
+
return vc.empty? ? nil : vc.first.committer_login
|
17
|
+
end
|
18
|
+
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
@@ -78,23 +78,22 @@ module Sufia
|
|
78
78
|
begin
|
79
79
|
retval = " "
|
80
80
|
# check error condition No files
|
81
|
-
if !params.has_key?(:files)
|
82
|
-
retval = render :json => [{:error => "Error! No file to save"}].to_json
|
81
|
+
return render(:json => [{:error => "Error! No file to save"}].to_json) if !params.has_key?(:files)
|
83
82
|
|
83
|
+
file = params[:files][0]
|
84
84
|
# check error condition empty file
|
85
|
-
|
86
|
-
retval = render :json => [{ :name =>
|
87
|
-
|
88
|
-
|
89
|
-
retval = render :json => [{ :name => params[:files][0].original_filename, :error => "Error! Zero Length File!"}].to_json
|
90
|
-
|
85
|
+
if ((file.respond_to?(:tempfile)) && (file.tempfile.size == 0))
|
86
|
+
retval = render :json => [{ :name => file.original_filename, :error => "Error! Zero Length File!"}].to_json
|
87
|
+
elsif ((file.respond_to?(:size)) && (file.size == 0))
|
88
|
+
retval = render :json => [{ :name => file.original_filename, :error => "Error! Zero Length File!"}].to_json
|
91
89
|
elsif (params[:terms_of_service] != '1')
|
92
|
-
retval = render :json => [{ :name =>
|
90
|
+
retval = render :json => [{ :name => file.original_filename, :error => "You must accept the terms of service!"}].to_json
|
93
91
|
|
94
92
|
# process file
|
95
93
|
else
|
96
|
-
create_and_save_generic_file
|
94
|
+
create_and_save_generic_file(file, params[:relative_path], params[:batch_id], file.original_filename)
|
97
95
|
if @generic_file
|
96
|
+
Sufia.queue.push(UnzipJob.new(@generic_file.pid)) if file.content_type == 'application/zip'
|
98
97
|
Sufia.queue.push(ContentDepositEventJob.new(@generic_file.pid, current_user.user_key))
|
99
98
|
respond_to do |format|
|
100
99
|
format.html {
|
@@ -115,7 +114,7 @@ module Sufia
|
|
115
114
|
retval = render :json => [{:error => "Error occurred while creating generic file."}].to_json
|
116
115
|
ensure
|
117
116
|
# remove the tempfile (only if it is a temp file)
|
118
|
-
|
117
|
+
file.tempfile.delete if file.respond_to?(:tempfile)
|
119
118
|
end
|
120
119
|
|
121
120
|
return retval
|
@@ -154,7 +153,7 @@ module Sufia
|
|
154
153
|
|
155
154
|
if params.has_key?(:filedata)
|
156
155
|
return unless virus_check(params[:filedata]) == 0
|
157
|
-
add_posted_blob_to_asset(@generic_file, params[:filedata])
|
156
|
+
add_posted_blob_to_asset(@generic_file, params[:filedata], params[:filedata].original_filename)
|
158
157
|
version_event = true
|
159
158
|
Sufia.queue.push(ContentNewVersionEventJob.new(@generic_file.pid, current_user.user_key))
|
160
159
|
end
|
@@ -192,35 +191,21 @@ module Sufia
|
|
192
191
|
end
|
193
192
|
end
|
194
193
|
|
195
|
-
def create_and_save_generic_file
|
196
|
-
unless params.has_key?(:files)
|
197
|
-
logger.warn "!!!! No Files !!!!"
|
198
|
-
return
|
199
|
-
end
|
200
|
-
file = params[:files][0]
|
194
|
+
def create_and_save_generic_file(file, relative_path, batch_id, file_name)
|
201
195
|
return nil unless virus_check(file) == 0
|
202
196
|
|
203
197
|
@generic_file = ::GenericFile.new
|
204
|
-
|
205
|
-
|
206
|
-
#if (file.tempfile.size == 0)
|
207
|
-
# logger.warn "Encountered an empty file... Creating a new temp file with on space."
|
208
|
-
# f = Tempfile.new ("emptyfile")
|
209
|
-
# f.write " "
|
210
|
-
# f.rewind
|
211
|
-
# file.tempfile = f
|
212
|
-
#end
|
213
|
-
add_posted_blob_to_asset(@generic_file,file)
|
198
|
+
#This depends on the 3 arg constructor in hh 5.2.0
|
199
|
+
add_posted_blob_to_asset(@generic_file,file, file_name)
|
214
200
|
|
215
201
|
@generic_file.apply_depositor_metadata(user_key)
|
216
202
|
@generic_file.date_uploaded = Time.now.ctime
|
217
203
|
@generic_file.date_modified = Time.now.ctime
|
218
|
-
@generic_file.relative_path =
|
204
|
+
@generic_file.relative_path = relative_path if relative_path
|
219
205
|
@generic_file.creator = current_user.name
|
220
206
|
|
221
|
-
if
|
222
|
-
|
223
|
-
@generic_file.add_relationship("isPartOf", "info:fedora/#{batch_id}")
|
207
|
+
if batch_id
|
208
|
+
@generic_file.add_relationship("isPartOf", "info:fedora/#{Sufia::Noid.namespaceize(batch_id)}")
|
224
209
|
else
|
225
210
|
logger.warn "unable to find batch to attach to"
|
226
211
|
end
|
@@ -238,7 +223,6 @@ module Sufia
|
|
238
223
|
end
|
239
224
|
|
240
225
|
record_version_committer(@generic_file, current_user)
|
241
|
-
Sufia.queue.push(UnzipJob.new(@generic_file.pid)) if file.content_type == 'application/zip'
|
242
226
|
return @generic_file
|
243
227
|
end
|
244
228
|
end
|
data/lib/sufia/generic_file.rb
CHANGED
@@ -35,10 +35,6 @@ module Sufia
|
|
35
35
|
:publisher, :date_created, :subject,
|
36
36
|
:resource_type, :identifier, :language]
|
37
37
|
around_save :characterize_if_changed, :retry_warming
|
38
|
-
|
39
|
-
#make sure the terms of service is present and set to 1 before saving
|
40
|
-
validates_acceptance_of :terms_of_service, :allow_nil => false
|
41
|
-
after_find :preset_terms
|
42
38
|
end
|
43
39
|
|
44
40
|
def pdf?
|
@@ -174,10 +170,6 @@ module Sufia
|
|
174
170
|
return (!self.batch.status.empty?) && (self.batch.status.count == 1) && (self.batch.status[0] == "processing")
|
175
171
|
end
|
176
172
|
|
177
|
-
def preset_terms
|
178
|
-
self.terms_of_service = '1'
|
179
|
-
end
|
180
|
-
|
181
173
|
module ClassMethods
|
182
174
|
# TODO this could probably be better handled by i18n
|
183
175
|
@@FIELD_LABEL_MAP = {"based_near"=>"Location", 'description'=>"Abstract or Summary", 'tag'=>"Keyword", 'date_created'=>"Date Created", 'related_url'=>"Related URL"}
|