vanilla-ujs 0.1.1 → 0.1.2
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
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 35391c52899afd088a8cdac42198e3de52d3a520
|
4
|
+
data.tar.gz: 770eb30a0399cbb97951c15632ba35490ac6290f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 28b838f0b51d2a7bee8c04cf844b447059e287b64bf3285e0fc9a6547d18e37d171f84c5be994f4cc1efa3afb8fe8175ed586164bd0488ad59a1f824f007a950
|
7
|
+
data.tar.gz: 06a9dbfdd0746ee473e67688f6fa4c0cf6f0ff4ddc78fd6cbf497676abf282bb1187a1b157ba5f6b801c69a62e6a3c49d17a12ba6f349370439a4a648f04aa04
|
data/vanilla-ujs.gemspec
CHANGED
@@ -3,7 +3,7 @@ document.addEventListener('click', function (event) {
|
|
3
3
|
|
4
4
|
element = event.target;
|
5
5
|
|
6
|
-
if (matches.call(element, 'a[data-confirm], button[data-confirm]')) {
|
6
|
+
if (matches.call(element, 'a[data-confirm], button[data-confirm], input[data-confirm]')) {
|
7
7
|
message = element.getAttribute('data-confirm');
|
8
8
|
if (!confirm(message)) {
|
9
9
|
event.stopPropagation();
|
@@ -0,0 +1,20 @@
|
|
1
|
+
document.addEventListener('submit', function(event) {
|
2
|
+
|
3
|
+
var form = event.target;
|
4
|
+
|
5
|
+
if (matches.call(form, 'form[data-remote]')) {
|
6
|
+
url = form.action;
|
7
|
+
method = form.method || form.getAttribute('data-method').toUpperCase() || 'POST';
|
8
|
+
data = new FormData(form);
|
9
|
+
|
10
|
+
if (CSRF.param() && CSRF.token()) {
|
11
|
+
data[CSRF.param()] = CSRF.token();
|
12
|
+
}
|
13
|
+
|
14
|
+
if (LiteAjax.ajax({ url: url, method: method, data: data })){
|
15
|
+
event.preventDefault();
|
16
|
+
} else {
|
17
|
+
return true;
|
18
|
+
}
|
19
|
+
}
|
20
|
+
});
|
@@ -3,8 +3,7 @@ var LiteAjax = (function () {
|
|
3
3
|
|
4
4
|
LiteAjax.options = {
|
5
5
|
method: 'GET',
|
6
|
-
url: window.location.href
|
7
|
-
async: true,
|
6
|
+
url: window.location.href
|
8
7
|
};
|
9
8
|
|
10
9
|
LiteAjax.ajax = function (url, options) {
|
@@ -15,12 +14,18 @@ var LiteAjax = (function () {
|
|
15
14
|
|
16
15
|
options = options || {};
|
17
16
|
url = url || options.url || location.href || '';
|
17
|
+
data = options.data;
|
18
18
|
|
19
19
|
var xhr;
|
20
20
|
|
21
21
|
xhr = new XMLHttpRequest();
|
22
22
|
|
23
23
|
xhr.addEventListener('load', function () {
|
24
|
+
responseType = xhr.getResponseHeader('content-type');
|
25
|
+
if(responseType === 'text/javascript; charset=utf-8') {
|
26
|
+
eval(xhr.response);
|
27
|
+
}
|
28
|
+
|
24
29
|
var event = new CustomEvent('ajaxComplete', {detail: xhr});
|
25
30
|
document.dispatchEvent(event);
|
26
31
|
});
|
@@ -41,10 +46,17 @@ var LiteAjax = (function () {
|
|
41
46
|
});
|
42
47
|
}
|
43
48
|
|
44
|
-
xhr.open(options.method || 'GET', url
|
49
|
+
xhr.open(options.method || 'GET', url);
|
50
|
+
xhr.setRequestHeader('X-Requested-With', 'XmlHttpRequest');
|
51
|
+
|
52
|
+
if(options.json) {
|
53
|
+
xhr.setRequestHeader('Content-type', 'application/json');
|
54
|
+
data = JSON.stringify(data)
|
55
|
+
}
|
56
|
+
|
45
57
|
var beforeSend = new CustomEvent('ajax:before', {detail: xhr});
|
46
58
|
document.dispatchEvent(beforeSend);
|
47
|
-
xhr.send(
|
59
|
+
xhr.send(data);
|
48
60
|
|
49
61
|
return xhr;
|
50
62
|
};
|
metadata
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vanilla-ujs
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alex Tsokurov
|
8
|
-
- Łukasz Niemier
|
8
|
+
- "Łukasz Niemier"
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-09-21 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: This gem provides Rails UJS features without jQuery library.
|
15
15
|
email:
|
@@ -24,6 +24,7 @@ files:
|
|
24
24
|
- vanilla-ujs.gemspec
|
25
25
|
- vendor/assets/javascripts/src/confirm.js
|
26
26
|
- vendor/assets/javascripts/src/csrf.js
|
27
|
+
- vendor/assets/javascripts/src/form.js
|
27
28
|
- vendor/assets/javascripts/src/liteajax.js
|
28
29
|
- vendor/assets/javascripts/src/method.js
|
29
30
|
- vendor/assets/javascripts/src/polyfills.js
|
@@ -38,17 +39,17 @@ require_paths:
|
|
38
39
|
- lib
|
39
40
|
required_ruby_version: !ruby/object:Gem::Requirement
|
40
41
|
requirements:
|
41
|
-
- -
|
42
|
+
- - ">="
|
42
43
|
- !ruby/object:Gem::Version
|
43
44
|
version: '0'
|
44
45
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
45
46
|
requirements:
|
46
|
-
- -
|
47
|
+
- - ">="
|
47
48
|
- !ruby/object:Gem::Version
|
48
49
|
version: 1.3.6
|
49
50
|
requirements: []
|
50
51
|
rubyforge_project:
|
51
|
-
rubygems_version: 2.2.
|
52
|
+
rubygems_version: 2.2.5
|
52
53
|
signing_key:
|
53
54
|
specification_version: 4
|
54
55
|
summary: UJS without jQuery dependency
|