sufia 3.6.0 → 3.6.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/SUFIA_VERSION +1 -1
- data/app/views/users/edit.html.erb +3 -6
- data/lib/sufia/version.rb +1 -1
- data/spec/controllers/users_controller_spec.rb +7 -9
- data/sufia-models/app/models/concerns/sufia/user.rb +5 -8
- data/sufia-models/app/models/sufia/avatar_uploader.rb +22 -0
- data/sufia-models/app/models/sufia/avatar_validator.rb +8 -0
- data/sufia-models/lib/generators/sufia/models/templates/migrations/add_avatars_to_users.rb +8 -2
- data/sufia-models/lib/sufia/models.rb +1 -1
- data/sufia-models/lib/sufia/models/engine.rb +1 -1
- data/sufia-models/lib/sufia/models/version.rb +1 -1
- data/sufia-models/sufia-models.gemspec +2 -8
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b53a899aa9c270ada0aab595ca8da81fc10d7325
|
4
|
+
data.tar.gz: 2acd0577db3a932cc963588569d7bde1e96a8bb5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a85c16093df9b3a1baded8276f9bdd8f38f93c45c448c36658cba440fc4d5527c0b7fa031a0a8f78d01c89cd73deb2930df1be6eaa36721b949233f3c8339be0
|
7
|
+
data.tar.gz: 81ef3a1faa2ceba2551cf4039ae9fffc8a87e78b853fc8eeb250ffac73579f15d75edf6f62b829b08a936ee9bc3403d4f63108c72edd16d9c4f058330e490c90
|
data/SUFIA_VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
3.6.
|
1
|
+
3.6.1
|
@@ -9,10 +9,9 @@ $("a[rel=popover]").popover({ html: true });
|
|
9
9
|
<div class="control-group">
|
10
10
|
<%= f.label :avatar, '<i class="icon-camera-retro"></i> Change picture'.html_safe, :class => "control-label" %>
|
11
11
|
<div class="controls">
|
12
|
-
|
13
|
-
<%= image_tag @user.avatar.url(:thumb) %>
|
14
|
-
<% end %>
|
12
|
+
<%= image_tag @user.avatar.url(:thumb) if @user.avatar? %>
|
15
13
|
<%= f.file_field :avatar %>
|
14
|
+
<%= f.hidden_field :avatar_cache %>
|
16
15
|
<span class="label label-important">JPG, GIF, or PNG (less than 2MB)</span>
|
17
16
|
</div>
|
18
17
|
</div>
|
@@ -21,7 +20,7 @@ $("a[rel=popover]").popover({ html: true });
|
|
21
20
|
<%= f.label :delete_avatar, '<i class="icon-remove"></i> Delete picture'.html_safe, :class => 'control-label' %>
|
22
21
|
<div class="controls">
|
23
22
|
<label class="checkbox">
|
24
|
-
<%=
|
23
|
+
<%= f.check_box :remove_avatar %> Yes
|
25
24
|
<a href="#" id="delete_picture_help" rel="popover" data-content="If you would like to remove your picture entirely, check the box and save your profile." data-original-title="Delete Picture"><i class="icon-question-sign icon-large"></i></a>
|
26
25
|
</label>
|
27
26
|
</div>
|
@@ -60,7 +59,6 @@ $("a[rel=popover]").popover({ html: true });
|
|
60
59
|
|
61
60
|
<%= render :partial => 'trophy_edit', :locals => {:trophies => @trophies} %>
|
62
61
|
|
63
|
-
|
64
62
|
<div class="form-actions">
|
65
63
|
<%= f.button '<i class="icon-save"></i> Save Profile'.html_safe, :type => 'submit', :class => "btn-primary btn-large" %>
|
66
64
|
</div>
|
@@ -78,4 +76,3 @@ $("a[rel=popover]").popover({ html: true });
|
|
78
76
|
<i class="icon-caret-right"></i> <%= g %><br />
|
79
77
|
<% end %>
|
80
78
|
</div>
|
81
|
-
|
data/lib/sufia/version.rb
CHANGED
@@ -69,7 +69,7 @@ describe UsersController do
|
|
69
69
|
flash[:alert].should include("Permission denied: cannot access this page.")
|
70
70
|
end
|
71
71
|
it "should set an avatar and redirect to profile" do
|
72
|
-
@user.avatar
|
72
|
+
@user.avatar?.should be_false
|
73
73
|
s1 = double('one')
|
74
74
|
UserEditProfileEventJob.should_receive(:new).with(@user.user_key).and_return(s1)
|
75
75
|
Sufia.queue.should_receive(:push).with(s1).once
|
@@ -77,23 +77,21 @@ describe UsersController do
|
|
77
77
|
post :update, id: @user.user_key, user: { avatar: f }
|
78
78
|
response.should redirect_to(@routes.url_helpers.profile_path(URI.escape(@user.user_key,'@.')))
|
79
79
|
flash[:notice].should include("Your profile has been updated")
|
80
|
-
User.find_by_user_key(@user.user_key).avatar
|
80
|
+
User.find_by_user_key(@user.user_key).avatar?.should be_true
|
81
81
|
end
|
82
82
|
it "should validate the content type of an avatar" do
|
83
|
-
#Resque.should_receive(:enqueue).with(UserEditProfileEventJob, @user.user_key).never
|
84
83
|
Sufia.queue.should_receive(:push).never
|
85
84
|
f = fixture_file_upload('/image.jp2', 'image/jp2')
|
86
85
|
post :update, id: @user.user_key, user: { avatar: f }
|
87
86
|
response.should redirect_to(@routes.url_helpers.edit_profile_path(URI.escape(@user.user_key,'@.')))
|
88
|
-
flash[:alert].should include("Avatar
|
87
|
+
flash[:alert].should include("Avatar You are not allowed to upload \"jp2\" files, allowed types: jpg, jpeg, png, gif, bmp, tif, tiff")
|
89
88
|
end
|
90
89
|
it "should validate the size of an avatar" do
|
91
90
|
f = fixture_file_upload('/4-20.png', 'image/png')
|
92
|
-
#Resque.should_receive(:enqueue).with(UserEditProfileEventJob, @user.user_key).never
|
93
91
|
Sufia.queue.should_receive(:push).never
|
94
92
|
post :update, id: @user.user_key, user: { avatar: f }
|
95
93
|
response.should redirect_to(@routes.url_helpers.edit_profile_path(URI.escape(@user.user_key,'@.')))
|
96
|
-
flash[:alert].should include("Avatar file size must be less than
|
94
|
+
flash[:alert].should include("Avatar file size must be less than 2MB")
|
97
95
|
end
|
98
96
|
it "should delete an avatar" do
|
99
97
|
s1 = double('one')
|
@@ -102,7 +100,7 @@ describe UsersController do
|
|
102
100
|
post :update, id: @user.user_key, delete_avatar: true
|
103
101
|
response.should redirect_to(@routes.url_helpers.profile_path(URI.escape(@user.user_key,'@.')))
|
104
102
|
flash[:notice].should include("Your profile has been updated")
|
105
|
-
@user.avatar
|
103
|
+
@user.avatar?.should be_false
|
106
104
|
end
|
107
105
|
it "should refresh directory attributes" do
|
108
106
|
s1 = double('one')
|
@@ -132,11 +130,11 @@ describe UsersController do
|
|
132
130
|
file_id = f.pid.split(":").last
|
133
131
|
Trophy.create(:generic_file_id => file_id, :user_id => @user.id)
|
134
132
|
@user.trophy_ids.length.should == 1
|
135
|
-
post :update, id: @user.user_key, 'remove_trophy_'+file_id=> 'yes'
|
133
|
+
post :update, id: @user.user_key, 'remove_trophy_'+file_id=> 'yes'
|
136
134
|
response.should redirect_to(@routes.url_helpers.profile_path(URI.escape(@user.user_key,'@.')))
|
137
135
|
flash[:notice].should include("Your profile has been updated")
|
138
136
|
@user.trophy_ids.length.should == 0
|
139
|
-
f.destroy
|
137
|
+
f.destroy
|
140
138
|
end
|
141
139
|
end
|
142
140
|
describe "#follow" do
|
@@ -21,14 +21,11 @@ module Sufia::User
|
|
21
21
|
# Setup accessible (or protected) attributes for your model
|
22
22
|
deprecated_attr_accessible *permitted_attributes
|
23
23
|
|
24
|
-
|
25
|
-
|
26
|
-
validates :avatar, :attachment_content_type => { :content_type => /^image\/(jpg|jpeg|pjpeg|png|x-png|gif)$/ }, :if => Proc.new { |p| p.avatar.file? }
|
27
|
-
validates :avatar, :attachment_size => { :less_than => 2.megabytes }, :if => Proc.new { |p| p.avatar.file? }
|
28
|
-
|
24
|
+
mount_uploader :avatar, AvatarUploader, :mount_on => :avatar_file_name
|
25
|
+
validates_with AvatarValidator
|
29
26
|
end
|
30
27
|
|
31
|
-
# Format the json for select2 which requires just an id and a field called text.
|
28
|
+
# Format the json for select2 which requires just an id and a field called text.
|
32
29
|
# If we need an alternate format we should probably look at a json template gem
|
33
30
|
def as_json(opts = nil)
|
34
31
|
{id: user_key, text: display_name ? "#{display_name} (#{user_key})" : user_key}
|
@@ -76,8 +73,8 @@ module Sufia::User
|
|
76
73
|
module ClassMethods
|
77
74
|
|
78
75
|
def permitted_attributes
|
79
|
-
[:email, :login, :display_name, :address, :admin_area,
|
80
|
-
:department, :title, :office, :chat_id, :website, :affiliation,
|
76
|
+
[:email, :login, :display_name, :address, :admin_area,
|
77
|
+
:department, :title, :office, :chat_id, :website, :affiliation,
|
81
78
|
:telephone, :avatar, :group_list, :groups_last_update, :facebook_handle,
|
82
79
|
:twitter_handle, :googleplus_handle]
|
83
80
|
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
class Sufia::AvatarUploader < CarrierWave::Uploader::Base
|
2
|
+
include CarrierWave::MiniMagick
|
3
|
+
include CarrierWave::Compatibility::Paperclip
|
4
|
+
|
5
|
+
process convert: 'png'
|
6
|
+
|
7
|
+
version :medium do
|
8
|
+
process resize_to_limit: [300, 300]
|
9
|
+
end
|
10
|
+
|
11
|
+
version :thumb do
|
12
|
+
process resize_to_limit: [100, 100]
|
13
|
+
end
|
14
|
+
|
15
|
+
def default_url
|
16
|
+
"/assets/missing_#{version_name}.png"
|
17
|
+
end
|
18
|
+
|
19
|
+
def extension_white_list
|
20
|
+
%w(jpg jpeg png gif bmp tif tiff)
|
21
|
+
end
|
22
|
+
end
|
@@ -1,9 +1,15 @@
|
|
1
1
|
class AddAvatarsToUsers < ActiveRecord::Migration
|
2
2
|
def self.up
|
3
|
-
|
3
|
+
add_column :users, "avatar_file_name", :string
|
4
|
+
add_column :users, "avatar_content_type", :string
|
5
|
+
add_column :users, "avatar_file_size", :integer
|
6
|
+
add_column :users, "avatar_updated_at", :datetime
|
4
7
|
end
|
5
8
|
|
6
9
|
def self.down
|
7
|
-
|
10
|
+
remove_column :users, "avatar_file_name"
|
11
|
+
remove_column :users, "avatar_content_type"
|
12
|
+
remove_column :users, "avatar_file_size"
|
13
|
+
remove_column :users, "avatar_updated_at"
|
8
14
|
end
|
9
15
|
end
|
@@ -22,7 +22,7 @@ module Sufia
|
|
22
22
|
config.fits_path = "fits.sh"
|
23
23
|
config.enable_contact_form_delivery = false
|
24
24
|
config.dropbox_api_key = nil
|
25
|
-
config.enable_local_ingest = nil
|
25
|
+
config.enable_local_ingest = nil
|
26
26
|
config.queue = Sufia::Resque::Queue
|
27
27
|
|
28
28
|
config.autoload_paths += %W(
|
@@ -29,20 +29,14 @@ Gem::Specification.new do |spec|
|
|
29
29
|
spec.add_dependency 'rails', '> 4.0.0', '< 5.0'
|
30
30
|
spec.add_dependency 'activeresource' # No longer a dependency of rails 4.0
|
31
31
|
|
32
|
-
|
33
|
-
# Since hydra 6.1 isn't out yet, we'll just build it so that it's compatible
|
34
|
-
# without an explicit dependency
|
35
|
-
spec.add_dependency "active-fedora", "~> 6.7.0"
|
36
|
-
spec.add_dependency "blacklight", "~> 4.5.0"
|
37
|
-
spec.add_dependency "hydra-head", "~> 6.4.0"
|
38
|
-
|
32
|
+
spec.add_dependency "hydra", "6.1.0"
|
39
33
|
spec.add_dependency 'nest', '~> 1.1.1'
|
40
34
|
spec.add_dependency 'resque', '~> 1.23'
|
41
35
|
spec.add_dependency 'resque-pool', '0.3.0'
|
42
36
|
spec.add_dependency 'noid', '~> 0.6.6'
|
43
37
|
spec.add_dependency 'mailboxer', '~> 0.11.0'
|
44
38
|
spec.add_dependency 'acts_as_follower', '>= 0.1.1', '< 0.3'
|
45
|
-
spec.add_dependency '
|
39
|
+
spec.add_dependency 'carrierwave', '~> 0.9.0'
|
46
40
|
spec.add_dependency 'hydra-derivatives', '~> 0.0.5'
|
47
41
|
spec.add_dependency 'activerecord-import'
|
48
42
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sufia
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.6.
|
4
|
+
version: 3.6.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 3.6.
|
19
|
+
version: 3.6.1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 3.6.
|
26
|
+
version: 3.6.1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: blacklight_advanced_search
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -613,6 +613,8 @@ files:
|
|
613
613
|
- sufia-models/app/models/local_authority_entry.rb
|
614
614
|
- sufia-models/app/models/single_use_link.rb
|
615
615
|
- sufia-models/app/models/subject_local_authority_entry.rb
|
616
|
+
- sufia-models/app/models/sufia/avatar_uploader.rb
|
617
|
+
- sufia-models/app/models/sufia/avatar_validator.rb
|
616
618
|
- sufia-models/app/models/trophy.rb
|
617
619
|
- sufia-models/app/models/version_committer.rb
|
618
620
|
- sufia-models/config/locales/sufia.en.yml
|