s3ff 0.12.1 → 0.12.2
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/s3ff.js +14 -4
- data/lib/s3ff/version.rb +1 -1
- data/lib/s3ff.rb +12 -12
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c8cde9503b4b5fe42ca23124262e40975130876c
|
4
|
+
data.tar.gz: f021ac639a3ab7f6b0286418bb12ca9738a6864e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6fe225163985de90c5986e27d69a1e68bf1b02c0c1974be65e4f03c6efb4b4fdd92932dd465bc29da14e2097f0c657abe09906719fecd63fa0c252ed9306eb3a
|
7
|
+
data.tar.gz: e4e0c31d105ad69b3738b7b70c734a45469fdf22b7b2608b168775c8a0410195bc53d266bd068b7a659d47c3f8f77538f2833b0b0efb7d020467ff3c7c766193
|
@@ -10,6 +10,14 @@ $(function() {
|
|
10
10
|
}
|
11
11
|
if (! iCanHasCORSRequest()) return;
|
12
12
|
|
13
|
+
function makeArray(value) {
|
14
|
+
if (Array.isArray(value)) {
|
15
|
+
return value;
|
16
|
+
} else {
|
17
|
+
return Array(value);
|
18
|
+
}
|
19
|
+
}
|
20
|
+
|
13
21
|
$(document).on('page:change', function() {
|
14
22
|
if (!window.s3ff) {
|
15
23
|
window.s3ff = {
|
@@ -19,9 +27,10 @@ $(function() {
|
|
19
27
|
|
20
28
|
var that = $(this).addClass('s3ff_enabled');
|
21
29
|
var multi = that.attr('multiple');
|
22
|
-
var
|
23
|
-
var obj = that.data('s3ff') ||
|
24
|
-
|
30
|
+
var placeholders = makeArray(that.data('placeholder'));
|
31
|
+
var obj = that.data('s3ff') || placeholders;
|
32
|
+
function assign_matching_placeholder(i) { this.placeholder = (placeholders[i] || (placeholders[0] && {})); };
|
33
|
+
$.each(obj, assign_matching_placeholder);
|
25
34
|
var wrap = that.wrap('<div class="s3ff_fileinput_wrap"></div>').parent();
|
26
35
|
var dom = $('<label class="s3ff_fileinput_label"></label>').attr('for', that.attr('id'));
|
27
36
|
wrap.after(dom);
|
@@ -43,16 +52,17 @@ $(function() {
|
|
43
52
|
var s3ff_handlers = {
|
44
53
|
drop: function(e, data) {
|
45
54
|
if ((e.delegatedEvent || e.originalEvent).target.parentNode != wrap[0]) return e.preventDefault();
|
55
|
+
$.each(data.files, assign_matching_placeholder);
|
46
56
|
$.observable(obj).refresh(data.files);
|
47
57
|
},
|
48
58
|
change: function(e, data) {
|
59
|
+
$.each(data.files, assign_matching_placeholder);
|
49
60
|
$.observable(obj).refresh(data.files);
|
50
61
|
},
|
51
62
|
send: function(e, data) {
|
52
63
|
$.each(obj, function() {
|
53
64
|
if (data.files[0].unique_id == this.unique_id) {
|
54
65
|
this.progress_pct = "0%";
|
55
|
-
this.placeholder = placeholder;
|
56
66
|
}
|
57
67
|
});
|
58
68
|
$.observable(obj).refresh(obj);
|
data/lib/s3ff/version.rb
CHANGED
data/lib/s3ff.rb
CHANGED
@@ -19,18 +19,18 @@ S3FileField::FormBuilder.class_eval do
|
|
19
19
|
if new_direct_url.present?
|
20
20
|
# this means we're re-rendering :. we should prepopulate the s3ff fields to avoid re-uploading
|
21
21
|
options[:data] ||= {}
|
22
|
-
options[:data]
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
}
|
32
|
-
|
33
|
-
|
22
|
+
options[:data][:s3ff] ||= begin
|
23
|
+
[*new_direct_url].collect do |url|
|
24
|
+
{
|
25
|
+
fieldname: "#{object_name.to_s}[#{direct_url_attr}]#{options[:multiple] ? '[]' : ''}",
|
26
|
+
unique_id: "#{object_name.to_s.parameterize}#{SecureRandom.hex}",
|
27
|
+
result: {
|
28
|
+
filename: File.basename(url),
|
29
|
+
url: url,
|
30
|
+
},
|
31
|
+
}
|
32
|
+
end
|
33
|
+
end
|
34
34
|
end
|
35
35
|
s3_file_field_without_s3ff(method, options)
|
36
36
|
end
|