sufia 1.2.0 → 1.3.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile +3 -3
- data/History.md +16 -0
- data/app/assets/javascripts/sufia.js +2 -0
- data/app/assets/javascripts/sufia/batch_select_all.js +57 -128
- data/app/controllers/batch_controller.rb +4 -5
- data/app/controllers/concerns/sufia/users_controller_behavior.rb +2 -2
- data/app/controllers/contact_form_controller.rb +2 -24
- data/app/controllers/dashboard_controller.rb +1 -66
- data/app/controllers/single_use_link_controller.rb +3 -2
- data/app/helpers/generic_file_helper.rb +1 -4
- data/app/models/checksum_audit_log.rb +1 -1
- data/app/views/_footer.html.erb +2 -4
- data/app/views/batch_edits/_check_all.html.erb +3 -8
- data/app/views/batch_edits/_delete_selected.html.erb +1 -1
- data/app/views/batch_edits/edit.html.erb +2 -3
- data/app/views/dashboard/_facet_pagination.html.erb +2 -2
- data/app/views/generic_files/_asset_permissions_denial_flash.html.erb +1 -1
- data/app/views/generic_files/_asset_saved_flash.html.erb +1 -1
- data/app/views/generic_files/_asset_updated_flash.html.erb +1 -1
- data/app/views/generic_files/_media_display.html.erb +1 -1
- data/app/views/generic_files/edit.html.erb +1 -1
- data/app/views/generic_files/show.html.erb +1 -1
- data/app/views/single_use_link/generate_download.html.erb +1 -1
- data/app/views/single_use_link/generate_show.html.erb +1 -1
- data/app/views/single_use_link/show.html.erb +1 -1
- data/app/views/users/_trophy_edit.html.erb +1 -1
- data/app/views/users/show.html.erb +1 -1
- data/features/browse_dashboard_files.feature +1 -4
- data/features/display_dashboard.feature +1 -4
- data/features/step_definitions/scholarsphere.rb +1 -1
- data/lib/sufia.rb +4 -1
- data/lib/sufia/batch_edits_controller_behavior.rb +3 -4
- data/lib/sufia/contact_form_controller_behavior.rb +45 -0
- data/lib/sufia/dashboard_controller_behavior.rb +92 -0
- data/lib/sufia/downloads_controller_behavior.rb +6 -39
- data/lib/sufia/files_controller_behavior.rb +7 -7
- data/lib/sufia/generic_file.rb +3 -5
- data/lib/sufia/generic_file/web_form.rb +15 -0
- data/lib/sufia/jobs/batch_update_job.rb +1 -2
- data/lib/sufia/jobs/transcode_audio_job.rb +2 -3
- data/lib/sufia/jobs/unzip_job.rb +22 -13
- data/lib/sufia/model_methods.rb +6 -0
- data/lib/sufia/version.rb +1 -1
- data/spec/controllers/batch_edits_controller_spec.rb +22 -2
- data/spec/controllers/downloads_controller_spec.rb +9 -15
- data/spec/controllers/generic_files_controller_spec.rb +32 -0
- data/spec/controllers/single_use_link_controller_spec.rb +2 -1
- data/spec/controllers/users_controller_spec.rb +13 -0
- data/spec/models/generic_file_spec.rb +41 -0
- data/spec/support/Gemfile +1 -0
- data/sufia.gemspec +1 -1
- metadata +7 -6
- data/app/views/static/versions.html.erb +0 -52
@@ -53,14 +53,14 @@ module Sufia
|
|
53
53
|
|
54
54
|
# routed to /files/:id/edit
|
55
55
|
def edit
|
56
|
-
|
56
|
+
@generic_file.initialize_fields
|
57
57
|
@groups = current_user.groups
|
58
58
|
end
|
59
59
|
|
60
60
|
# routed to /files/:id (DELETE)
|
61
61
|
def destroy
|
62
62
|
pid = @generic_file.noid
|
63
|
-
@generic_file.
|
63
|
+
@generic_file.destroy
|
64
64
|
Sufia.queue.push(ContentDeleteEventJob.new(pid, current_user.user_key))
|
65
65
|
redirect_to sufia.dashboard_index_path, :notice => render_to_string(:partial=>'generic_files/asset_deleted_flash', :locals => { :generic_file => @generic_file })
|
66
66
|
end
|
@@ -115,7 +115,7 @@ module Sufia
|
|
115
115
|
|
116
116
|
if params.has_key?(:revision) and params[:revision] != @generic_file.content.latest_version.versionID
|
117
117
|
revision = @generic_file.content.get_version(params[:revision])
|
118
|
-
@generic_file.add_file_datastream(revision.content, :dsid => 'content')
|
118
|
+
@generic_file.add_file_datastream(revision.content, :dsid => 'content', :mimeType => revision.mimeType)
|
119
119
|
version_event = true
|
120
120
|
Sufia.queue.push(ContentRestoredVersionEventJob.new(@generic_file.pid, current_user.user_key, params[:revision]))
|
121
121
|
end
|
@@ -182,13 +182,13 @@ module Sufia
|
|
182
182
|
end
|
183
183
|
|
184
184
|
# override this method if you need to initialize more complex RDF assertions (b-nodes)
|
185
|
+
# @deprecated use @generic_file.initialize_fields instead
|
185
186
|
def initialize_fields(file)
|
186
|
-
file.
|
187
|
-
# if value is empty, we create an one element array to loop over for output
|
188
|
-
file[key] = [''] if file[key].empty?
|
189
|
-
end
|
187
|
+
file.initialize_fields
|
190
188
|
end
|
191
189
|
|
190
|
+
ActiveSupport::Deprecation.deprecate_methods(FilesControllerBehavior, :initialize_fields)
|
191
|
+
|
192
192
|
# The name of the datastream where we store the file data
|
193
193
|
def datastream_id
|
194
194
|
'content'
|
data/lib/sufia/generic_file.rb
CHANGED
@@ -12,6 +12,7 @@ module Sufia
|
|
12
12
|
autoload :Audit
|
13
13
|
autoload :Actions
|
14
14
|
autoload :Permissions
|
15
|
+
autoload :WebForm
|
15
16
|
include Sufia::ModelMethods
|
16
17
|
include Sufia::Noid
|
17
18
|
include Sufia::GenericFile::Thumbnail
|
@@ -19,6 +20,7 @@ module Sufia
|
|
19
20
|
include Sufia::GenericFile::Characterization
|
20
21
|
include Sufia::GenericFile::Audit
|
21
22
|
include Sufia::GenericFile::Permissions
|
23
|
+
include Sufia::GenericFile::WebForm
|
22
24
|
|
23
25
|
included do
|
24
26
|
has_metadata :name => "descMetadata", :type => GenericFileRdfDatastream
|
@@ -37,11 +39,7 @@ module Sufia
|
|
37
39
|
|
38
40
|
around_save :characterize_if_changed, :retry_warming
|
39
41
|
before_save :remove_blank_assertions
|
40
|
-
|
41
|
-
|
42
|
-
def delete
|
43
|
-
self.cleanup_trophies
|
44
|
-
super
|
42
|
+
before_destroy :cleanup_trophies
|
45
43
|
end
|
46
44
|
|
47
45
|
def remove_blank_assertions
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Sufia
|
2
|
+
module GenericFile
|
3
|
+
module WebForm
|
4
|
+
|
5
|
+
# override this method if you need to initialize more complex RDF assertions (b-nodes)
|
6
|
+
def initialize_fields
|
7
|
+
terms_for_editing.each do |key|
|
8
|
+
# if value is empty, we create an one element array to loop over for output
|
9
|
+
self[key] = [''] if self[key].empty?
|
10
|
+
end
|
11
|
+
end
|
12
|
+
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -14,7 +14,6 @@
|
|
14
14
|
|
15
15
|
class BatchUpdateJob
|
16
16
|
include Hydra::PermissionsQuery
|
17
|
-
include GenericFileHelper
|
18
17
|
include Rails.application.routes.url_helpers
|
19
18
|
|
20
19
|
def queue_name
|
@@ -79,7 +78,7 @@ class BatchUpdateJob
|
|
79
78
|
end
|
80
79
|
|
81
80
|
def file_list ( files)
|
82
|
-
return files.map {|gf| '<a href="'+Sufia::Engine.routes.url_helpers.generic_files_path+'/'+gf.noid+'">'+
|
81
|
+
return files.map {|gf| '<a href="'+Sufia::Engine.routes.url_helpers.generic_files_path+'/'+gf.noid+'">'+gf.to_s+'</a>'}.join(', ')
|
83
82
|
|
84
83
|
end
|
85
84
|
|
@@ -28,10 +28,9 @@ class TranscodeAudioJob < FfmpegTranscodeJob
|
|
28
28
|
opts = ""
|
29
29
|
if generic_file.mime_type == 'audio/mpeg'
|
30
30
|
# Don't re-encode, just copy
|
31
|
-
generic_file.add_file_datastream(generic_file.content.read, :dsid=>'mp3', :mimeType=>'audio/
|
32
|
-
#generic_file.content.rewind
|
31
|
+
generic_file.add_file_datastream(generic_file.content.read, :dsid=>'mp3', :mimeType=>'audio/mpeg')
|
33
32
|
else
|
34
|
-
encode_datastream('mp3', 'audio/
|
33
|
+
encode_datastream('mp3', 'audio/mpeg', opts)
|
35
34
|
end
|
36
35
|
end
|
37
36
|
|
data/lib/sufia/jobs/unzip_job.rb
CHANGED
@@ -24,22 +24,31 @@ class UnzipJob
|
|
24
24
|
end
|
25
25
|
|
26
26
|
def run
|
27
|
-
zip_file = GenericFile.find(pid)
|
28
27
|
Zip::Archive.open_buffer(zip_file.content.content) do |archive|
|
29
28
|
archive.each do |f|
|
30
|
-
|
31
|
-
@generic_file.batch_id = zip_file.batch.pid
|
32
|
-
file_name = f.name
|
33
|
-
mime_types = MIME::Types.of(file_name)
|
34
|
-
mime_type = mime_types.empty? ? "application/octet-stream" : mime_types.first.content_type
|
35
|
-
options = {:label=>file_name, :dsid=>'content', :mimeType=>mime_type}
|
36
|
-
@generic_file.add_file_datastream(f.read, options)
|
37
|
-
@generic_file.set_title_and_label( file_name, :only_if_blank=>true )
|
38
|
-
@generic_file.apply_depositor_metadata(zip_file.edit_users.first)
|
39
|
-
@generic_file.date_uploaded = Time.now.ctime
|
40
|
-
@generic_file.date_modified = Time.now.ctime
|
41
|
-
@generic_file.save
|
29
|
+
create_file(f)
|
42
30
|
end
|
43
31
|
end
|
44
32
|
end
|
33
|
+
|
34
|
+
protected
|
35
|
+
|
36
|
+
def create_file(f)
|
37
|
+
@generic_file = GenericFile.new
|
38
|
+
@generic_file.batch_id = zip_file.batch.pid
|
39
|
+
file_name = f.name
|
40
|
+
mime_types = MIME::Types.of(file_name)
|
41
|
+
mime_type = mime_types.empty? ? "application/octet-stream" : mime_types.first.content_type
|
42
|
+
options = {:label=>file_name, :dsid=>'content', :mimeType=>mime_type}
|
43
|
+
@generic_file.add_file_datastream(f.read, options)
|
44
|
+
@generic_file.set_title_and_label( file_name, :only_if_blank=>true )
|
45
|
+
@generic_file.apply_depositor_metadata(zip_file.edit_users.first)
|
46
|
+
@generic_file.date_uploaded = Time.now.ctime
|
47
|
+
@generic_file.date_modified = Time.now.ctime
|
48
|
+
@generic_file.save
|
49
|
+
end
|
50
|
+
|
51
|
+
def zip_file
|
52
|
+
@zip_file ||= GenericFile.find(pid)
|
53
|
+
end
|
45
54
|
end
|
data/lib/sufia/model_methods.rb
CHANGED
data/lib/sufia/version.rb
CHANGED
@@ -20,8 +20,7 @@ describe BatchEditsController do
|
|
20
20
|
@two.apply_depositor_metadata('mjg36')
|
21
21
|
@one.save!
|
22
22
|
@two.save!
|
23
|
-
|
24
|
-
put :add, :id =>@two.pid
|
23
|
+
controller.batch = [@one.pid, @two.pid]
|
25
24
|
controller.should_receive(:can?).with(:edit, @one.pid).and_return(true)
|
26
25
|
controller.should_receive(:can?).with(:edit, @two.pid).and_return(true)
|
27
26
|
end
|
@@ -35,4 +34,25 @@ describe BatchEditsController do
|
|
35
34
|
assigns[:show_file].language.should == ["en"]
|
36
35
|
end
|
37
36
|
end
|
37
|
+
|
38
|
+
describe "update" do
|
39
|
+
before do
|
40
|
+
@one = GenericFile.new(:creator=>"Fred", :language=>'en')
|
41
|
+
@one.apply_depositor_metadata('mjg36')
|
42
|
+
@two = GenericFile.new(:creator=>"Wilma", :publisher=>'Rand McNally', :language=>'en')
|
43
|
+
@two.apply_depositor_metadata('mjg36')
|
44
|
+
@one.save!
|
45
|
+
@two.save!
|
46
|
+
controller.batch = [@one.pid, @two.pid]
|
47
|
+
controller.should_receive(:can?).with(:edit, @one.pid).and_return(true)
|
48
|
+
controller.should_receive(:can?).with(:edit, @two.pid).and_return(true)
|
49
|
+
end
|
50
|
+
it "should be successful" do
|
51
|
+
put :update , update_type:"delete_all"
|
52
|
+
response.should be_redirect
|
53
|
+
expect {GenericFIle.find(@one.id)}.to raise_error
|
54
|
+
expect {GenericFIle.find(@two.id)}.to raise_error
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
38
58
|
end
|
@@ -16,17 +16,6 @@ require 'spec_helper'
|
|
16
16
|
|
17
17
|
describe DownloadsController do
|
18
18
|
|
19
|
-
describe "default_datastream?" do
|
20
|
-
it "should be true when no datastram_id is passed" do
|
21
|
-
controller.should be_default_datastream
|
22
|
-
end
|
23
|
-
it "should be false when a datastream_id is passed" do
|
24
|
-
controller.params[:datastream_id] = 'descMetadata'
|
25
|
-
controller.should_not be_default_datastream
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
|
30
19
|
describe "with a file" do
|
31
20
|
before do
|
32
21
|
@f = GenericFile.new(:pid => 'sufia:test1')
|
@@ -56,29 +45,34 @@ describe DownloadsController do
|
|
56
45
|
DownloadsController.default_content_dsid.should == "content"
|
57
46
|
controller.stub(:render) # send_data calls render internally
|
58
47
|
expected_content = ActiveFedora::Base.find("sufia:test1").content.content
|
59
|
-
controller.should_receive(:
|
48
|
+
controller.should_receive(:send_file_headers!).with({:filename => 'world.png', :disposition => 'inline', :type => 'image/png' })
|
60
49
|
get "show", :id => "test1"
|
50
|
+
response.body.should == expected_content
|
61
51
|
response.should be_success
|
62
52
|
end
|
63
53
|
it "should return requested datastreams" do
|
64
54
|
controller.stub(:render) # send_data calls render internally
|
65
55
|
expected_content = ActiveFedora::Base.find("sufia:test1").descMetadata.content
|
66
|
-
controller.should_receive(:
|
56
|
+
controller.should_receive(:send_file_headers!).with({:filename => 'descMetadata', :disposition => 'inline', :type => 'text/plain' })
|
67
57
|
get "show", :id => "test1", :datastream_id => "descMetadata"
|
58
|
+
response.body.should == expected_content
|
68
59
|
response.should be_success
|
69
60
|
end
|
70
61
|
it "should support setting disposition to inline" do
|
71
62
|
controller.stub(:render) # send_data calls render internally
|
72
63
|
expected_content = ActiveFedora::Base.find("sufia:test1").content.content
|
73
|
-
controller.should_receive(:
|
64
|
+
controller.should_receive(:send_file_headers!).with({:filename => 'world.png', :disposition => 'inline', :type => 'image/png' })
|
74
65
|
get "show", :id => "test1", :disposition => "inline"
|
66
|
+
response.body.should == expected_content
|
75
67
|
response.should be_success
|
76
68
|
end
|
69
|
+
|
77
70
|
it "should allow you to specify filename for download" do
|
78
71
|
controller.stub(:render) # send_data calls render internally
|
79
72
|
expected_content = ActiveFedora::Base.find("sufia:test1").content.content
|
80
|
-
controller.should_receive(:
|
73
|
+
controller.should_receive(:send_file_headers!).with({:filename => 'my%20dog.png', :disposition => 'inline', :type => 'image/png' })
|
81
74
|
get "show", :id => "test1", "filename" => "my%20dog.png"
|
75
|
+
response.body.should == expected_content
|
82
76
|
end
|
83
77
|
end
|
84
78
|
end
|
@@ -260,6 +260,38 @@ describe GenericFilesController do
|
|
260
260
|
@user.delete
|
261
261
|
end
|
262
262
|
|
263
|
+
it "should change mime type when restoring a revision with a different mime type" do
|
264
|
+
@user = FactoryGirl.find_or_create(:user)
|
265
|
+
sign_in @user
|
266
|
+
|
267
|
+
file = fixture_file_upload('/world.png','image/png')
|
268
|
+
post :update, :id=>@generic_file.pid, :filedata=>file, :Filename=>"The world", :generic_file=>{:tag=>[''], :permissions=>{:new_user_name=>{'archivist1@example.com'=>'edit'}}}
|
269
|
+
|
270
|
+
posted_file = GenericFile.find(@generic_file.pid)
|
271
|
+
version1 = posted_file.content.latest_version
|
272
|
+
posted_file.content.version_committer(version1).should == @user.user_key
|
273
|
+
|
274
|
+
file = fixture_file_upload('/image.jp2','image/jp2')
|
275
|
+
post :update, :id=>@generic_file.pid, :filedata=>file, :Filename=>"The world", :generic_file=>{:tag=>[''], :permissions=>{:new_user_name=>{'archivist1@example.com'=>'edit'}}}
|
276
|
+
|
277
|
+
posted_file = GenericFile.find(@generic_file.pid)
|
278
|
+
version2 = posted_file.content.latest_version
|
279
|
+
posted_file.content.version_committer(version2).should == @user.user_key
|
280
|
+
|
281
|
+
posted_file.content.mimeType.should == "image/jp2"
|
282
|
+
post :update, :id=>@generic_file.pid, :revision=>'content.0'
|
283
|
+
|
284
|
+
|
285
|
+
restored_file = GenericFile.find(@generic_file.pid)
|
286
|
+
version3 = restored_file.content.latest_version
|
287
|
+
version3.versionID.should_not == version2.versionID
|
288
|
+
version3.versionID.should_not == version1.versionID
|
289
|
+
restored_file.content.version_committer(version3).should == @user.user_key
|
290
|
+
restored_file.content.mimeType.should == "image/png"
|
291
|
+
@user.delete
|
292
|
+
end
|
293
|
+
|
294
|
+
|
263
295
|
it "should record what user added a new version" do
|
264
296
|
@user = FactoryGirl.find_or_create(:user)
|
265
297
|
sign_in @user
|
@@ -85,8 +85,9 @@ describe SingleUseLinkController do
|
|
85
85
|
it "and_return http success" do
|
86
86
|
controller.stub(:render)
|
87
87
|
expected_content = ActiveFedora::Base.find(@file.pid).content.content
|
88
|
-
controller.should_receive(:
|
88
|
+
controller.should_receive(:send_file_headers!).with({:filename => 'world.png', :disposition => 'inline', :type => 'image/png' })
|
89
89
|
get :download, id:@dhash
|
90
|
+
response.body.should == expected_content
|
90
91
|
response.should be_success
|
91
92
|
end
|
92
93
|
it "and_return 404 on second attempt" do
|
@@ -139,6 +139,19 @@ describe UsersController do
|
|
139
139
|
u.facebook_handle.should == 'face'
|
140
140
|
u.googleplus_handle.should == 'goo'
|
141
141
|
end
|
142
|
+
it "should remove a trophy" do
|
143
|
+
f = GenericFile.create(title:"myFile")
|
144
|
+
f.apply_depositor_metadata(@user.user_key)
|
145
|
+
f.save
|
146
|
+
file_id = f.pid.split(":").last
|
147
|
+
Trophy.create(:generic_file_id => file_id, :user_id => @user.id)
|
148
|
+
@user.trophy_ids.length.should == 1
|
149
|
+
post :update, uid: @user.user_key, 'remove_trophy_'+file_id=> 'yes'
|
150
|
+
response.should redirect_to(@routes.url_helpers.profile_path(URI.escape(@user.user_key,'@.')))
|
151
|
+
flash[:notice].should include("Your profile has been updated")
|
152
|
+
@user.trophy_ids.length.should == 0
|
153
|
+
f.destroy
|
154
|
+
end
|
142
155
|
end
|
143
156
|
describe "#follow" do
|
144
157
|
after(:all) do
|
@@ -20,6 +20,25 @@ describe GenericFile do
|
|
20
20
|
@file = subject #TODO remove this line someday (use subject instead)
|
21
21
|
end
|
22
22
|
|
23
|
+
describe '#to_s' do
|
24
|
+
it 'uses the provided titles' do
|
25
|
+
subject.title = ["Hello", "World"]
|
26
|
+
expect(subject.to_s).to eq("Hello | World")
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'falls back on label if no titles are given' do
|
30
|
+
subject.title = []
|
31
|
+
subject.label = 'Spam'
|
32
|
+
expect(subject.to_s).to eq("Spam")
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'with no label or titles it is "No Title"' do
|
36
|
+
subject.title = []
|
37
|
+
subject.label = nil
|
38
|
+
expect(subject.to_s).to eq("No Title")
|
39
|
+
end
|
40
|
+
end
|
41
|
+
|
23
42
|
describe "terms_for_editing" do
|
24
43
|
it "should return a list" do
|
25
44
|
@file.terms_for_editing.should == [ :contributor, :creator, :title, :description, :publisher,
|
@@ -346,6 +365,28 @@ describe GenericFile do
|
|
346
365
|
end
|
347
366
|
end
|
348
367
|
end
|
368
|
+
describe "trophies" do
|
369
|
+
before(:all) do
|
370
|
+
@u = FactoryGirl.create(:user)
|
371
|
+
@f = GenericFile.new.tap do |gf|
|
372
|
+
gf.apply_depositor_metadata(@u.user_key)
|
373
|
+
gf.stub(:characterize_if_changed).and_yield #don't run characterization
|
374
|
+
gf.save!
|
375
|
+
end
|
376
|
+
@t = Trophy.create(user_id: @u.id, generic_file_id: @f.pid)
|
377
|
+
end
|
378
|
+
after(:all) do
|
379
|
+
@u.destroy
|
380
|
+
end
|
381
|
+
it "should have a trophy" do
|
382
|
+
Trophy.where(generic_file_id: @f.pid).count.should == 1
|
383
|
+
end
|
384
|
+
it "should remove all trophies when file is deleted" do
|
385
|
+
@f.should_receive(:cleanup_trophies)
|
386
|
+
@f.destroy
|
387
|
+
Trophy.where(generic_file_id: @f.pid).count.should == 0
|
388
|
+
end
|
389
|
+
end
|
349
390
|
describe "audit" do
|
350
391
|
before(:each) do
|
351
392
|
u = FactoryGirl.create(:user)
|
data/spec/support/Gemfile
CHANGED
data/sufia.gemspec
CHANGED
@@ -21,7 +21,7 @@ Gem::Specification.new do |gem|
|
|
21
21
|
gem.add_dependency "hydra-head", "~> 6.0"
|
22
22
|
|
23
23
|
gem.add_dependency 'noid', '~> 0.6.6'
|
24
|
-
gem.add_dependency 'hydra-batch-edit', '~> 0
|
24
|
+
gem.add_dependency 'hydra-batch-edit', '~> 1.0'
|
25
25
|
|
26
26
|
gem.add_dependency 'resque', '~> 1.23.0'#, :require => 'resque/server'
|
27
27
|
gem.add_dependency 'resque-pool', '0.3.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sufia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - ~>
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0
|
89
|
+
version: '1.0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - ~>
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0
|
96
|
+
version: '1.0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: resque
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -623,7 +623,6 @@ files:
|
|
623
623
|
- app/views/static/mendeley.html.erb
|
624
624
|
- app/views/static/subject_libraries.html.erb
|
625
625
|
- app/views/static/terms.html.erb
|
626
|
-
- app/views/static/versions.html.erb
|
627
626
|
- app/views/static/zotero.html.erb
|
628
627
|
- app/views/users/_activity_log.html.erb
|
629
628
|
- app/views/users/_notify_link.html.erb
|
@@ -686,7 +685,9 @@ files:
|
|
686
685
|
- lib/sufia/active_fedora/redis.rb
|
687
686
|
- lib/sufia/active_record/redis.rb
|
688
687
|
- lib/sufia/batch_edits_controller_behavior.rb
|
688
|
+
- lib/sufia/contact_form_controller_behavior.rb
|
689
689
|
- lib/sufia/controller.rb
|
690
|
+
- lib/sufia/dashboard_controller_behavior.rb
|
690
691
|
- lib/sufia/downloads_controller_behavior.rb
|
691
692
|
- lib/sufia/file_content.rb
|
692
693
|
- lib/sufia/file_content/extract_metadata.rb
|
@@ -699,6 +700,7 @@ files:
|
|
699
700
|
- lib/sufia/generic_file/export.rb
|
700
701
|
- lib/sufia/generic_file/permissions.rb
|
701
702
|
- lib/sufia/generic_file/thumbnail.rb
|
703
|
+
- lib/sufia/generic_file/web_form.rb
|
702
704
|
- lib/sufia/id_service.rb
|
703
705
|
- lib/sufia/jobs/audit_job.rb
|
704
706
|
- lib/sufia/jobs/batch_update_job.rb
|
@@ -1003,4 +1005,3 @@ test_files:
|
|
1003
1005
|
- spec/views/single_user_link/generate_download.html.erb_spec.rb
|
1004
1006
|
- spec/views/single_user_link/generate_show.html.erb_spec.rb
|
1005
1007
|
- spec/views/single_user_link/show.html.erb_spec.rb
|
1006
|
-
has_rdoc:
|