sufia 3.6.0 → 3.6.1
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/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
|