h5_uploader 0.3.1 → 0.3.2

Sign up to get free protection for your applications and to get access to all the features.
data/README.md CHANGED
@@ -20,4 +20,16 @@ Run bundle install.
20
20
 
21
21
 
22
22
  ##js library options and docs
23
- See [file-upload](https://github.com/jgoguen/file-uploader)
23
+ See [file-upload](https://github.com/jgoguen/file-uploader)
24
+
25
+ ##Custom options
26
+ Added a custom option *evalResponse* default to false. This is useful when Rails return a js to be evaluated and not to be converted into json. Note that if multiple file are uploaded the code is evaluated for any response and not on upload complete.
27
+ If option is true a valid response for the uploader is soemthing like this:
28
+
29
+ (function(){
30
+
31
+ // your callback code here
32
+
33
+ return {success:true};
34
+ })();
35
+
@@ -261,7 +261,7 @@ var qq = qq || {};
261
261
  qq.FileUploaderBasic = function(o){
262
262
  this._options = {
263
263
  // set to true to see the server response
264
- debug: false,
264
+ debug: true,
265
265
  action: '/server/upload',
266
266
  params: {},
267
267
  button: null,
@@ -273,11 +273,12 @@ qq.FileUploaderBasic = function(o){
273
273
  allowedExtensions: [],
274
274
  sizeLimit: 0,
275
275
  minSizeLimit: 0,
276
+ evalResponse : false, // used in rails UJS perform the direct callback evaluation
276
277
  // events
277
278
  // return false to cancel submit
278
279
  onSubmit: function(id, fileName){},
279
280
  onProgress: function(id, fileName, loaded, total){},
280
- onComplete: function(id, fileName, responseJSON){},
281
+ onComplete: function(id, fileName, responseJSON,qq){},
281
282
  onCancel: function(id, fileName){},
282
283
  // messages
283
284
  messages: {
@@ -338,13 +339,14 @@ qq.FileUploaderBasic.prototype = {
338
339
  debug: this._options.debug,
339
340
  action: this._options.action,
340
341
  maxConnections: this._options.maxConnections,
342
+ evalResponse : this._options.evalResponse,
341
343
  onProgress: function(id, fileName, loaded, total){
342
344
  self._onProgress(id, fileName, loaded, total);
343
345
  self._options.onProgress.call(self, id, fileName, loaded, total);
344
346
  },
345
- onComplete: function(id, fileName, result){
346
- self._onComplete(id, fileName, result);
347
- self._options.onComplete.call(self, id, fileName, result);
347
+ onComplete: function(id, fileName, result,qq){
348
+ self._onComplete(id, fileName, result,qq);
349
+ self._options.onComplete.call(self, id, fileName, result,qq);
348
350
  },
349
351
  onCancel: function(id, fileName){
350
352
  self._onCancel(id, fileName);
@@ -372,7 +374,7 @@ qq.FileUploaderBasic.prototype = {
372
374
  },
373
375
  _onProgress: function(id, fileName, loaded, total){
374
376
  },
375
- _onComplete: function(id, fileName, result){
377
+ _onComplete: function(id, fileName, result,qq){
376
378
  this._filesInProgress--;
377
379
  if (result.error){
378
380
  this._options.showMessage(result.error);
@@ -910,7 +912,7 @@ qq.UploadHandlerAbstract = function(o){
910
912
  // maximum number of concurrent uploads
911
913
  maxConnections: 999,
912
914
  onProgress: function(id, fileName, loaded, total){},
913
- onComplete: function(id, fileName, response){},
915
+ onComplete: function(id, fileName, response,qq){},
914
916
  onCancel: function(id, fileName){}
915
917
  };
916
918
  qq.extend(this._options, o);
@@ -1062,7 +1064,7 @@ qq.extend(qq.UploadHandlerForm.prototype, {
1062
1064
 
1063
1065
  var response = self._getIframeContentJSON(iframe);
1064
1066
 
1065
- self._options.onComplete(id, fileName, response);
1067
+ self._options.onComplete(id, fileName, response,qq);
1066
1068
  self._dequeue(id);
1067
1069
 
1068
1070
  delete self._inputs[id];
@@ -1271,15 +1273,21 @@ qq.extend(qq.UploadHandlerXhr.prototype, {
1271
1273
  var response;
1272
1274
 
1273
1275
  try {
1274
- response = eval("(" + xhr.responseText + ")");
1276
+
1277
+ if(this._options.evalResponse){
1278
+ response = eval(xhr.responseText);
1279
+ }else{
1280
+ response = eval("(" + xhr.responseText + ")");
1281
+ }
1282
+
1275
1283
  } catch(err){
1276
1284
  response = {};
1277
1285
  }
1278
1286
 
1279
- this._options.onComplete(id, name, response);
1287
+ this._options.onComplete(id, name, response,this);
1280
1288
 
1281
1289
  } else {
1282
- this._options.onComplete(id, name, {});
1290
+ this._options.onComplete(id, name, {},this);
1283
1291
  }
1284
1292
 
1285
1293
  this._files[id] = null;
@@ -12,7 +12,8 @@ module Fg
12
12
  jss = jss << ",params: #{options[:params].to_json}" unless options[:params].nil?
13
13
 
14
14
  options.each do |key,value| next if [:id,:allowedExtensions,:params].include?(key)
15
- jss = jss << ",#{key}: '#{value}'"
15
+ val = (key =~ /[^(on|show|mess)]/) > 0 ? "#{value}" : "'#{value}'"
16
+ jss = jss << ",#{key}: #{val}"
16
17
  end
17
18
 
18
19
  jss = jss << "});"
@@ -1,3 +1,3 @@
1
1
  module Uploader
2
- VERSION = "0.3.1"
2
+ VERSION = "0.3.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: h5_uploader
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.1
4
+ version: 0.3.2
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,12 +9,12 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-07-07 00:00:00.000000000 +02:00
12
+ date: 2011-07-08 00:00:00.000000000 +02:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rack-raw-upload
17
- requirement: &2157964420 !ruby/object:Gem::Requirement
17
+ requirement: &2154180720 !ruby/object:Gem::Requirement
18
18
  none: false
19
19
  requirements:
20
20
  - - ! '>='
@@ -22,10 +22,10 @@ dependencies:
22
22
  version: '0'
23
23
  type: :runtime
24
24
  prerelease: false
25
- version_requirements: *2157964420
25
+ version_requirements: *2154180720
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: actionpack
28
- requirement: &2157964000 !ruby/object:Gem::Requirement
28
+ requirement: &2154180300 !ruby/object:Gem::Requirement
29
29
  none: false
30
30
  requirements:
31
31
  - - ! '>='
@@ -33,7 +33,7 @@ dependencies:
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
- version_requirements: *2157964000
36
+ version_requirements: *2154180300
37
37
  description: Gem add a form builder called uploader that shows a button for multiple
38
38
  file uploads usign html5 techniques
39
39
  email: