sufia 1.2.0 → 1.3.0
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.
- 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:
|