summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohann Pardanaud <pardanaud.j@gmail.com>2016-02-16 19:50:23 +0100
committerJohann Pardanaud <pardanaud.j@gmail.com>2016-02-16 19:50:23 +0100
commit78588cfca15348ba062d33061c79df3cfa6b9883 (patch)
tree39039288941628aab622b0aebdf749d1b51d3349
parent3ca16ec2ecd5d999f60ea9f667428184675c610e (diff)
downloadgitlab-ce-78588cfca15348ba062d33061c79df3cfa6b9883.tar.gz
Improve user experience for avatar cropping
- Avoid incomprehensible errors on non-integer cropping values - Set the default cropping area to 80%
-rw-r--r--app/assets/javascripts/profile.js.coffee1
-rw-r--r--app/uploaders/avatar_uploader.rb9
2 files changed, 8 insertions, 2 deletions
diff --git a/app/assets/javascripts/profile.js.coffee b/app/assets/javascripts/profile.js.coffee
index 01def4fe63e..d13c6007819 100644
--- a/app/assets/javascripts/profile.js.coffee
+++ b/app/assets/javascripts/profile.js.coffee
@@ -31,7 +31,6 @@ class @Profile
setTimeout ( -> # The cropper must be asynchronously initialized
$modalCropImg.cropper
aspectRatio: 1
- autoCropArea: 1
modal: false
scalable: false
rotatable: false
diff --git a/app/uploaders/avatar_uploader.rb b/app/uploaders/avatar_uploader.rb
index 239c99e06dc..60ee80cf002 100644
--- a/app/uploaders/avatar_uploader.rb
+++ b/app/uploaders/avatar_uploader.rb
@@ -10,8 +10,15 @@ class AvatarUploader < CarrierWave::Uploader::Base
process :cropper
+ def is_integer? string
+ true if Integer(string) rescue false
+ end
+
def cropper
- if model.instance_of? User
+ is_compliant = model.kind_of?(User) && is_integer?(model.avatar_crop_size)
+ is_compliant = is_compliant && is_integer?(model.avatar_crop_x) && is_integer?(model.avatar_crop_y)
+
+ if is_compliant
manipulate! do |img|
img.crop "#{model.avatar_crop_size}x#{model.avatar_crop_size}+#{model.avatar_crop_x}+#{model.avatar_crop_y}"
end