avatars_for_rails 1.0.3 → 1.0.4
Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4ebebb8262563aef39e2d376b00a5d2f2839ef29
|
4
|
+
data.tar.gz: 6f0b38c248043d84f949d73d2d5307b3851abed9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0473b4237bdba0f6e32462b4b13fe98ddc0ae568d4878914ef9528e96986a94e48b9f34eb658fa0a1a1af362b2aeedfe94447453fd42de667ff7e4862d29a18c
|
7
|
+
data.tar.gz: f2fce31f7c0490717adbf2df9e42238b9b0c793386e68ebce7d39891a69e1acf841efea49f228f754b4a104583b1fc729e44d9261934ab7c2c6625b2df4c22c0
|
@@ -46,13 +46,20 @@ var AvatarForRails = AvatarForRails || (function($, undefined) {
|
|
46
46
|
};
|
47
47
|
|
48
48
|
var initCrop = function(data) {
|
49
|
-
var div = $('section.avatar .update')
|
49
|
+
var div = $('section.avatar .update'),
|
50
|
+
img,
|
51
|
+
ar;
|
52
|
+
|
50
53
|
div.html(data);
|
51
|
-
|
54
|
+
|
55
|
+
img = div.find('img.crop'),
|
56
|
+
ar = parseInt(img.attr('data-aspect_ratio'), 10);
|
57
|
+
|
58
|
+
img.Jcrop({
|
52
59
|
bgColor: 'clear',
|
53
60
|
bgOpacity: 0.6,
|
54
|
-
setSelect: [ 0, 0, 200, 200 ],
|
55
|
-
aspectRatio:
|
61
|
+
setSelect: [ 0, 0, 200, 200 / ar ],
|
62
|
+
aspectRatio: ar,
|
56
63
|
onSelect: updateCrop,
|
57
64
|
onChange: updateCrop
|
58
65
|
});
|
@@ -71,7 +78,6 @@ var AvatarForRails = AvatarForRails || (function($, undefined) {
|
|
71
78
|
$('input[name*="logo_crop_x"]').val(coords.x / iW);
|
72
79
|
$('input[name*="logo_crop_y"]').val(coords.y / iH);
|
73
80
|
$('input[name*="logo_crop_w"]').val(coords.w / iW);
|
74
|
-
$('input[name*="logo_crop_h"]').val(coords.h / iH);
|
75
81
|
};
|
76
82
|
|
77
83
|
addEditCallback(initFileUpload);
|
@@ -1,7 +1,7 @@
|
|
1
|
-
<%= image_tag avatarable.avatar_tmp_public_path(root_path), class: 'crop' %>
|
1
|
+
<%= image_tag avatarable.avatar_tmp_public_path(root_path), class: 'crop', "data-aspect_ratio" => avatarable.class.logo_aspect_ratio %>
|
2
2
|
|
3
3
|
<%= form_for avatarable, url: avatar_path, multipart: true do |f| %>
|
4
|
-
<% %w( x y w
|
4
|
+
<% %w( x y w ).each do |attr| %>
|
5
5
|
<%= f.hidden_field "logo_crop_#{ attr }" %>
|
6
6
|
<% end %>
|
7
7
|
<%= f.hidden_field :avatar_tmp_basename %>
|
@@ -3,6 +3,9 @@ module AvatarsForRails
|
|
3
3
|
extend ActiveSupport::Concern
|
4
4
|
|
5
5
|
included do
|
6
|
+
cattr_accessor :logo_aspect_ratio
|
7
|
+
self.logo_aspect_ratio = 1
|
8
|
+
|
6
9
|
attr_accessor :logo_crop, :logo_crop_x, :logo_crop_y, :logo_crop_w, :logo_crop_h,
|
7
10
|
:avatar_tmp_basename
|
8
11
|
|
@@ -43,7 +46,7 @@ module AvatarsForRails
|
|
43
46
|
def validate_crop_params
|
44
47
|
return if logo_crop_x.blank?
|
45
48
|
|
46
|
-
%w( x y w
|
49
|
+
%w( x y w ).each do |attr|
|
47
50
|
send "logo_crop_#{ attr }=", send("logo_crop_#{ attr }").to_f
|
48
51
|
end
|
49
52
|
|
@@ -57,10 +60,12 @@ module AvatarsForRails
|
|
57
60
|
|
58
61
|
width, height = avatar_tmp_file_dimensions
|
59
62
|
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
63
|
+
crop_x = (logo_crop_x * width).round
|
64
|
+
crop_y = (logo_crop_y * height).round
|
65
|
+
crop_w = (logo_crop_w * width).round
|
66
|
+
crop_h = crop_w / self.class.logo_aspect_ratio
|
67
|
+
|
68
|
+
avatar_magick_image.crop!(crop_x, crop_y, crop_w, crop_h)
|
64
69
|
|
65
70
|
avatar_magick_image.write(avatar_tmp_full_path)
|
66
71
|
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: avatars_for_rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jaime Castro Montero
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-04-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: jquery-rails
|