jquery_file_download-rails 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 001ac5f6d85fd0d3a155528273e156f9388413e9
4
+ data.tar.gz: cc820635a9a22ce29577e1fb3d850617e2cae303
5
+ SHA512:
6
+ metadata.gz: 1be1e0c7248ede3cc0b26f1d2b93e81ecee75ae316c0784d917afc4454b8312a6286bc929ece7bbd4f4f7ffe89b99b12c2e2ea6dfcbcdf1e3e84e8be75be4ae2
7
+ data.tar.gz: 0834547f4b0c83c903793b26aef1451cd2ab1454d9fdaeef966710c568ffaefca938a393a372e76ede6446e6f14d4c334ef0596f6c9b9151d18ceff7904e2272
@@ -1,5 +1,10 @@
1
1
  # Change log
2
2
 
3
+ ## 0.0.2: Update to jquery.fileDownload 1.4.3
4
+
5
+ * Updated to latest version of jquery.fileDownload
6
+ * Updated README to include link to improved documentation/samples
7
+
3
8
  ## 0.0.1: Trivial fixes
4
9
 
5
10
  * Fixed home page link in gemspec
data/README.md CHANGED
@@ -43,6 +43,11 @@ class DownloadController < ApplicationController
43
43
  end
44
44
  ```
45
45
 
46
+ # Samples
47
+
48
+ * See [jquery_file_download-rails-samples](https://github.com/rcook/jquery_file_download-rails-samples)
49
+ for detailed step-by-step instructions and sample application.
50
+
46
51
  # Usage
47
52
 
48
53
  With the gem installed, the `$.fileDownload` jQuery plugin is available in the browser.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * jQuery File Download Plugin v1.4.2
2
+ * jQuery File Download Plugin v1.4.3
3
3
  *
4
4
  * http://www.johnculviner.com
5
5
  *
@@ -24,7 +24,7 @@
24
24
  '\r': "#13;",
25
25
  '\n': "#10;",
26
26
  '"': 'quot;',
27
- "'": 'apos;' /*single quotes just to be safe*/
27
+ "'": '#39;' /*single quotes just to be safe, IE8 doesn't support &apos;, so use &#39; instead */
28
28
  };
29
29
 
30
30
  $.extend({
@@ -50,6 +50,7 @@ $.extend({
50
50
  //the stock android browser straight up doesn't support file downloads initiated by a non GET: http://code.google.com/p/android/issues/detail?id=1780
51
51
  //specify a message here to display if a user tries with an android browser
52
52
  //if jQuery UI is installed this will be a dialog, otherwise it will be an alert
53
+ //Set to null to disable the message and attempt to download anyway
53
54
  //
54
55
  androidPostUnsupportedMessageHtml: "Unfortunately your Android browser doesn't support this type of file download. Please try again with a different browser.",
55
56
 
@@ -113,6 +114,12 @@ $.extend({
113
114
  //
114
115
  cookiePath: "/",
115
116
 
117
+ //
118
+ //if specified it will be used when attempting to clear the above name value pair
119
+ //useful for when downloads are being served on a subdomain (e.g. downloads.example.com)
120
+ //
121
+ cookieDomain: null,
122
+
116
123
  //
117
124
  //the title for the popup second window as a download is processing in the case of a mobile browser
118
125
  //
@@ -153,7 +160,7 @@ $.extend({
153
160
 
154
161
  var httpMethodUpper = settings.httpMethod.toUpperCase();
155
162
 
156
- if (isAndroid && httpMethodUpper !== "GET") {
163
+ if (isAndroid && httpMethodUpper !== "GET" && settings.androidPostUnsupportedMessageHtml) {
157
164
  //the stock android browser straight up doesn't support file downloads initiated by non GET requests: http://code.google.com/p/android/issues/detail?id=1780
158
165
 
159
166
  if ($().dialog) {
@@ -321,16 +328,18 @@ $.extend({
321
328
 
322
329
 
323
330
  function checkFileDownloadComplete() {
324
-
325
331
  //has the cookie been written due to a file download occuring?
326
332
  if (document.cookie.indexOf(settings.cookieName + "=" + settings.cookieValue) != -1) {
327
333
 
328
334
  //execute specified callback
329
335
  internalCallbacks.onSuccess(fileUrl);
330
336
 
331
- //remove the cookie and iframe
332
- document.cookie = settings.cookieName + "=; expires=" + new Date(1000).toUTCString() + "; path=" + settings.cookiePath;
337
+ //remove cookie
338
+ var cookieData = settings.cookieName + "=; path=" + settings.cookiePath + "; expires=" + new Date(0).toUTCString() + ";";
339
+ if (settings.cookieDomain) cookieData += " domain=" + settings.cookieDomain + ";";
340
+ document.cookie = cookieData;
333
341
 
342
+ //remove iframe
334
343
  cleanUp(false);
335
344
 
336
345
  return;
@@ -352,16 +361,27 @@ $.extend({
352
361
  if ($form && $form.length) {
353
362
  var $contents = $(formDoc.body).contents().first();
354
363
 
355
- if ($contents.length && $contents[0] === $form[0]) {
356
- isFailure = false;
357
- }
364
+ try {
365
+ if ($contents.length && $contents[0] === $form[0]) {
366
+ isFailure = false;
367
+ }
368
+ } catch (e) {
369
+ if (e && e.number == -2146828218) {
370
+ // IE 8-10 throw a permission denied after the form reloads on the "$contents[0] === $form[0]" comparison
371
+ isFailure = true;
372
+ } else {
373
+ throw e;
374
+ }
375
+ }
358
376
  }
359
377
 
360
378
  if (isFailure) {
361
- internalCallbacks.onFail(formDoc.body.innerHTML, fileUrl);
362
-
363
- cleanUp(true);
364
-
379
+ // IE 8-10 don't always have the full content available right away, they need a litle bit to finish
380
+ setTimeout(function () {
381
+ internalCallbacks.onFail(formDoc.body.innerHTML, fileUrl);
382
+ cleanUp(true);
383
+ }, 100);
384
+
365
385
  return;
366
386
  }
367
387
  }
@@ -402,9 +422,11 @@ $.extend({
402
422
  }
403
423
 
404
424
  if (isIos) {
405
- downloadWindow.focus(); //ios safari bug doesn't allow a window to be closed unless it is focused
406
- if (isFailure) {
407
- downloadWindow.close();
425
+ if (downloadWindow.focus) {
426
+ downloadWindow.focus(); //ios safari bug doesn't allow a window to be closed unless it is focused
427
+ if (isFailure) {
428
+ downloadWindow.close();
429
+ }
408
430
  }
409
431
  }
410
432
  }
@@ -424,8 +446,12 @@ $.extend({
424
446
  return '&' + htmlSpecialCharsPlaceHolders[match];
425
447
  });
426
448
  }
427
-
428
- return deferred.promise();
449
+ var promise = deferred.promise();
450
+ promise.abort = function() {
451
+ cleanUp();
452
+ $iframe.remove();
453
+ };
454
+ return promise;
429
455
  }
430
456
  });
431
457
 
@@ -1,7 +1,7 @@
1
1
  module JqueryFileDownload
2
2
  module Rails
3
- VERSION = '0.0.1'
4
- JQUERY_FILE_DOWNLOAD_VERSION = '1.4.2'
3
+ VERSION = '0.0.2'
4
+ JQUERY_FILE_DOWNLOAD_VERSION = '1.4.3'
5
5
  end
6
6
  end
7
7
 
metadata CHANGED
@@ -1,30 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: jquery_file_download-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
5
- prerelease:
4
+ version: 0.0.2
6
5
  platform: ruby
7
6
  authors:
8
7
  - Richard Cook
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2014-01-28 00:00:00.000000000 Z
11
+ date: 2014-12-07 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: railties
16
15
  requirement: !ruby/object:Gem::Requirement
17
- none: false
18
16
  requirements:
19
- - - ! '>='
17
+ - - '>='
20
18
  - !ruby/object:Gem::Version
21
19
  version: 3.1.0
22
20
  type: :runtime
23
21
  prerelease: false
24
22
  version_requirements: !ruby/object:Gem::Requirement
25
- none: false
26
23
  requirements:
27
- - - ! '>='
24
+ - - '>='
28
25
  - !ruby/object:Gem::Version
29
26
  version: 3.1.0
30
27
  description: jquery.fileDownload.js package for Rails 3.1+ asset pipeline
@@ -36,8 +33,8 @@ files:
36
33
  - app/assets/javascripts/jquery.fileDownload.js
37
34
  - lib/jquery_file_download.rb
38
35
  - lib/jquery_file_download/rails.rb
39
- - lib/jquery_file_download/rails/engine.rb
40
36
  - lib/jquery_file_download/rails/version.rb
37
+ - lib/jquery_file_download/rails/engine.rb
41
38
  - LICENSE
42
39
  - Rakefile
43
40
  - README.md
@@ -45,26 +42,25 @@ files:
45
42
  homepage: https://github.com/rcook/jquery_file_download-rails/
46
43
  licenses:
47
44
  - MIT
45
+ metadata: {}
48
46
  post_install_message:
49
47
  rdoc_options: []
50
48
  require_paths:
51
49
  - lib
52
50
  required_ruby_version: !ruby/object:Gem::Requirement
53
- none: false
54
51
  requirements:
55
- - - ! '>='
52
+ - - '>='
56
53
  - !ruby/object:Gem::Version
57
54
  version: '0'
58
55
  required_rubygems_version: !ruby/object:Gem::Requirement
59
- none: false
60
56
  requirements:
61
- - - ! '>='
57
+ - - '>='
62
58
  - !ruby/object:Gem::Version
63
59
  version: '0'
64
60
  requirements: []
65
61
  rubyforge_project:
66
- rubygems_version: 1.8.24
62
+ rubygems_version: 2.0.14
67
63
  signing_key:
68
- specification_version: 3
64
+ specification_version: 4
69
65
  summary: jquery_file_download-rails
70
66
  test_files: []