sufia 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- 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"}
|