turbolinks-form 0.1.3 → 0.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3d44c1438dcacfd09f3014ba7d7312c7e61e186493bbd89d0245755609055803
4
- data.tar.gz: b9904e1658ed0f34558a0ca22f8241ea25a68d85bdf8757a51f5c9a9390f5783
3
+ metadata.gz: 25d8fc8571af4909c7144b3b47e2bf3ba57b19200f31955fde3694842a2e9acb
4
+ data.tar.gz: c2962e4b8b08b88a4c656d2ba33c12546dd54ecc74f4f98091a57e2e05850ce7
5
5
  SHA512:
6
- metadata.gz: cae713d5842e5e2057935c25d213ea61ae81fab9182fd0f259a2216bf6ea3b9b44591a665670aff335587de4c6524b9ceeee42e9ce7957bf9e8a75407eb10deb
7
- data.tar.gz: 8bea008890c857969354a04c7ca24983dba6cd56f64112f60ef2554486aab44bfca653913ddc53ba226db738c0a397c8acb6f321291cb28a9ff995c1def5c0fc
6
+ metadata.gz: 9915051440cdfadda16263d3bf0354fb92a956e9edbdda53907e005344890393efbec6ca0ac3f3c644b657beb42553193eafa1f7c979ea183a6068e51ffc991b
7
+ data.tar.gz: 7fef86f46fc2a937e16f82b030157cc77b566b4c62f5e53ff7d0888cfbebb4bf1b6a7fd252d5e70c07d30e3849fe015a1c45e81cbfb5d01f126a4f039f618ff2
data/README.md CHANGED
@@ -97,7 +97,7 @@ Turbolinks-form will execute any `<script>` tags that the body of the response c
97
97
  Turbolinks-form ignores Turbolinks caches. It does not populate or uses cache.
98
98
 
99
99
  #### Events
100
- Turbolinks-form will trigger only a subset of the (Turbolink events)[https://github.com/turbolinks/turbolinks#full-list-of-events]. Namely:
100
+ Turbolinks-form will trigger only a subset of the [Turbolink events](https://github.com/turbolinks/turbolinks#full-list-of-events). Namely:
101
101
 
102
102
  * `turbolinks:request-start` fires before Turbolinks-form submits the form. Access the XMLHttpRequest object with `event.data.xhr`.
103
103
 
@@ -150,17 +150,31 @@ TurbolinksForm.on(document, "ajax:error", function(e, xhr) {
150
150
 
151
151
  // Replaces whole body and whole head when a true error occurs (same behavior as turbolinks)
152
152
  // This is done even when there is no turbolinks-form-render header (this affects all AJAX requests)
153
- // because when an error occurrs this header is not added by the server
153
+ // because when an error occurs this header is not added by the server
154
154
  var isError500 = (xhr.status == 500)
155
155
  var isError404 = (xhr.status == 404)
156
156
  if (isError500 || isError404) {
157
157
  console.info("Error Response handled by turbolinks-form");
158
+ // dispatches turbolinks event
159
+ Turbolinks.dispatch('turbolinks:request-end', {data: {xhr: xhr}});
158
160
  TurbolinksForm.handleResponse(xhr, true);
159
161
  return;
160
162
  }
161
163
 
164
+ // Detects timeout to trigger the request-end event. It is up to the developer to handle
165
+ // the timeout on the 'turbolinks:request-end' handler
166
+ // Obs: for the timeout to trigger, it is up to the developer to setup the timeout on the
167
+ // rails-ujs or jquery-ujs (instructions: https://stackoverflow.com/questions/54464003/how-to-set-timeout-using-rails-ujs).
168
+ // Otherwise, the default is no timeout.
169
+ // Ref: https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/readyState
170
+ var isTimeout = (xhr.readyState == 0 || xhr.status == 0);
171
+ if (isTimeout) {
172
+ Turbolinks.dispatch('turbolinks:request-end', {data: {xhr: xhr}});
173
+ return;
174
+ }
175
+
162
176
  // does not intercept unrelated AJAX responses
163
- if (!xhr || !xhr.getResponseHeader('turbolinks-form-render'))
177
+ if (!xhr.getResponseHeader('turbolinks-form-render'))
164
178
  return;
165
179
 
166
180
  // dispatches turbolinks event
@@ -1,5 +1,5 @@
1
1
  module Turbolinks
2
2
  module Form
3
- VERSION = '0.1.3'
3
+ VERSION = '0.1.4'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbolinks-form
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.1.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Henrique Gubert
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-22 00:00:00.000000000 Z
11
+ date: 2019-12-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails