lol_multiple_uploads 0.0.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/javascripts/lol_multiple_uploads/upload.js +48 -5
- data/app/assets/stylesheets/lol_multiple_uploads/base.css +51 -0
- data/app/controllers/photos_controller.rb +16 -5
- data/app/helpers/image_helper.rb +9 -0
- data/app/uploaders/image_uploader.rb +3 -6
- data/app/views/layouts/lol_multiple_uploads/_photo.html.erb +4 -0
- data/config/routes.rb +2 -2
- data/lib/lol_multiple_uploads/version.rb +1 -1
- metadata +5 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 86d948f983e19f849009a7fd2322101bcbebc11d
|
4
|
+
data.tar.gz: a1a7a58af4e1f3a5eb1c7792f8e4143c06444c10
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f6270075d06347ba790ece4cfb47c0c98e41eb47b2ad440a7856c5355d958000090f4ec1e28811b7fa22e3e9142ef7923d0c3637802aa9b17fecbebe295c43cd
|
7
|
+
data.tar.gz: dd97cda144696b35f57a5b22faba8f845e3102adba88b7589f0d2322707c19cb893f72860bc0531d3e6e27d9968e483aa728d92fb120e684754b666158cc91d1
|
@@ -5,8 +5,45 @@ $(document).ready(function() {
|
|
5
5
|
if($multipleUploadLink[0]){
|
6
6
|
new MultipleUpload($multipleUploadLink);
|
7
7
|
}
|
8
|
+
|
9
|
+
new MultipleUploadsPhotos();
|
8
10
|
});
|
9
11
|
|
12
|
+
var MultipleUploadsPhotos = function(){
|
13
|
+
var _this = this;
|
14
|
+
this.$container = $('.lol-multiple-uploads.images-container');
|
15
|
+
|
16
|
+
this.startup = function(){
|
17
|
+
this.$container.on('click', 'figure a', function(event) {
|
18
|
+
_this.removeImage($(this));
|
19
|
+
return false;
|
20
|
+
});
|
21
|
+
},
|
22
|
+
|
23
|
+
this.removeImage = function($link){
|
24
|
+
if(window.confirm("Você tem certeza?")){
|
25
|
+
$.ajax({
|
26
|
+
url: $link.attr('href'),
|
27
|
+
type: 'DELETE',
|
28
|
+
dataType: 'json'
|
29
|
+
})
|
30
|
+
.done(function() {
|
31
|
+
console.log("success");
|
32
|
+
$link.parent().fadeOut('400', function() {
|
33
|
+
$(this).remove();
|
34
|
+
});
|
35
|
+
})
|
36
|
+
.fail(function() {
|
37
|
+
console.log("error");
|
38
|
+
})
|
39
|
+
.always(function() {
|
40
|
+
console.log("complete");
|
41
|
+
});
|
42
|
+
}
|
43
|
+
},
|
44
|
+
|
45
|
+
this.startup();
|
46
|
+
}
|
10
47
|
|
11
48
|
var MultipleUpload = function(link){
|
12
49
|
var that = this;
|
@@ -26,7 +63,7 @@ var MultipleUpload = function(link){
|
|
26
63
|
},
|
27
64
|
|
28
65
|
this.filePicker = function(){
|
29
|
-
filepicker.setKey(that.filePickerKey);
|
66
|
+
filepicker.setKey(that.filePickerKey);
|
30
67
|
|
31
68
|
filepicker.pickMultiple(function(json){
|
32
69
|
that.storeImages(json);
|
@@ -57,20 +94,26 @@ var MultipleUpload = function(link){
|
|
57
94
|
},
|
58
95
|
|
59
96
|
this.appendImage = function(obj){
|
60
|
-
|
97
|
+
var html = "<figure data-id="+obj._id+">"
|
98
|
+
html += "<img src='"+obj.image.url+"' >"
|
99
|
+
html += "<a rel=nofollow' data-method='delete' href='/remove-image/"+obj._id+".json'>Remover</a>"
|
100
|
+
html += "</figure>"
|
101
|
+
|
102
|
+
$(this.imageContainer).append(html);
|
61
103
|
},
|
62
104
|
|
63
105
|
this.showLoading = function(){
|
64
106
|
jQuery('<img/>', {
|
65
107
|
src: '/assets/lol_multiple_uploads/loading.gif',
|
66
108
|
style: 'position: fixed; bottom: 5px; right: 5px; z-index: 400;',
|
67
|
-
class: 'lol-multiple-uploads'
|
109
|
+
class: 'lol-multiple-uploads loading'
|
68
110
|
}).appendTo('body');
|
69
111
|
},
|
70
112
|
|
71
113
|
this.hideLoading = function(){
|
72
|
-
$('.lol-multiple-uploads:first').remove();
|
114
|
+
$('.lol-multiple-uploads.loading:first').remove();
|
73
115
|
}
|
74
116
|
|
75
117
|
this.startup();
|
76
|
-
}
|
118
|
+
}
|
119
|
+
|
@@ -0,0 +1,51 @@
|
|
1
|
+
.lol-multiple-uploads.images-container{
|
2
|
+
width: 100%;
|
3
|
+
float: left;
|
4
|
+
overflow: hidden;
|
5
|
+
}
|
6
|
+
|
7
|
+
.lol-multiple-uploads.images-container figure{
|
8
|
+
width: 120px;
|
9
|
+
height: 120px;
|
10
|
+
float: left;
|
11
|
+
padding: 0px;
|
12
|
+
margin: 5px;
|
13
|
+
position: relative;
|
14
|
+
overflow: hidden;
|
15
|
+
}
|
16
|
+
|
17
|
+
.lol-multiple-uploads.is-sortable figure{
|
18
|
+
cursor: move;
|
19
|
+
}
|
20
|
+
|
21
|
+
.lol-multiple-uploads.images-container figure a{
|
22
|
+
position: absolute;
|
23
|
+
bottom: -26px;
|
24
|
+
left: 0px;
|
25
|
+
width: 100%;
|
26
|
+
padding: 5px 0;
|
27
|
+
color: #fff;
|
28
|
+
font-family: Helvetica, Arial, sans-serif;
|
29
|
+
font-size: 14px;
|
30
|
+
text-align: center;
|
31
|
+
background-color: rgba(0, 0, 0, 0.7);
|
32
|
+
background: rgba(0, 0, 0, 0.7);
|
33
|
+
-webkit-transition: all 200ms ease-in-out;
|
34
|
+
-moz-transition: all 200ms ease-in-out;
|
35
|
+
-ms-transition: all 200ms ease-in-out;
|
36
|
+
-o-transition: all 200ms ease-in-out;
|
37
|
+
transition: all 200ms ease-in-out;
|
38
|
+
}
|
39
|
+
|
40
|
+
.lol-multiple-uploads.images-container figure:hover a{
|
41
|
+
bottom: 0px;
|
42
|
+
-webkit-transition: all 200ms ease-in-out;
|
43
|
+
-moz-transition: all 200ms ease-in-out;
|
44
|
+
-ms-transition: all 200ms ease-in-out;
|
45
|
+
-o-transition: all 200ms ease-in-out;
|
46
|
+
transition: all 200ms ease-in-out;
|
47
|
+
}
|
48
|
+
|
49
|
+
.lol-multiple-uploads.images-container img{
|
50
|
+
max-width: 100%;
|
51
|
+
}
|
@@ -3,17 +3,28 @@ class PhotosController < ActionController::Base
|
|
3
3
|
|
4
4
|
def create
|
5
5
|
@resource = params[:model].classify.constantize.find params[:model_id]
|
6
|
-
@photo = @resource.photos.build
|
7
|
-
|
8
|
-
|
6
|
+
@photo = @resource.photos.build(remote_image_url: params[:photo])
|
7
|
+
|
9
8
|
respond_with(@photo) do |format|
|
10
9
|
if @photo.save
|
11
|
-
format.json{ render json: @photo}
|
10
|
+
format.json{ render json: @photo }
|
12
11
|
else
|
13
|
-
format.json{ render nothing: true, status: :error}
|
12
|
+
format.json{ render nothing: true, status: :error }
|
14
13
|
end
|
15
14
|
end
|
16
15
|
rescue Exception
|
17
16
|
render nothing: true, status: :error
|
18
17
|
end
|
18
|
+
|
19
|
+
def destroy
|
20
|
+
@photo = Photo.find params[:id]
|
21
|
+
|
22
|
+
respond_with(@photo) do |format|
|
23
|
+
if @photo.destroy
|
24
|
+
format.json{ render json: @photo }
|
25
|
+
else
|
26
|
+
format.json{ render nothing: true, status: :error }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
19
30
|
end
|
@@ -0,0 +1,9 @@
|
|
1
|
+
module ImageHelper
|
2
|
+
|
3
|
+
def list_photos(resource)
|
4
|
+
content_tag(:div, class: 'lol-multiple-uploads images-container is-sortable', 'data-resource' => 'photo') do
|
5
|
+
render partial: '/layouts/lol_multiple_uploads/photo', collection: resource.photos.prioritized
|
6
|
+
end
|
7
|
+
end
|
8
|
+
|
9
|
+
end
|
@@ -16,12 +16,9 @@ class ImageUploader < CarrierWave::Uploader::Base
|
|
16
16
|
end
|
17
17
|
|
18
18
|
# Provide a default URL as a default if there hasn't been a file uploaded:
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
#
|
23
|
-
# "/images/fallback/" + [version_name, "default.png"].compact.join('_')
|
24
|
-
# end
|
19
|
+
def default_url
|
20
|
+
"/assets/fallback/no-image.jpg"
|
21
|
+
end
|
25
22
|
|
26
23
|
# Process files as they are uploaded:
|
27
24
|
# process :scale => [200, 300]
|
data/config/routes.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lol_multiple_uploads
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Eduardo Zaghi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-09-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -90,10 +90,13 @@ extra_rdoc_files: []
|
|
90
90
|
files:
|
91
91
|
- app/assets/images/lol_multiple_uploads/loading.gif
|
92
92
|
- app/assets/javascripts/lol_multiple_uploads/upload.js
|
93
|
+
- app/assets/stylesheets/lol_multiple_uploads/base.css
|
93
94
|
- app/controllers/photos_controller.rb
|
95
|
+
- app/helpers/image_helper.rb
|
94
96
|
- app/helpers/upload_helper.rb
|
95
97
|
- app/models/photo.rb
|
96
98
|
- app/uploaders/image_uploader.rb
|
99
|
+
- app/views/layouts/lol_multiple_uploads/_photo.html.erb
|
97
100
|
- config/initializers/init_lol_multiple_uploads.rb
|
98
101
|
- config/routes.rb
|
99
102
|
- lib/generators/lol_multiple_uploads/install_generator.rb
|