vanilla_nested 1.2.2 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4a6640e42d6a7195a2266b57ce2c77d3edffb1a1de0662ede0b6d19aa4b126bf
4
- data.tar.gz: 1b74a76aed703a1a2019f2b98d24ba6595f7faf72ac52acc22f8470b43204fc3
3
+ metadata.gz: 8b6d8ed9c309bf72014920bec0254c922804f9077967492047139cb3aabc54f3
4
+ data.tar.gz: 890d67164554668f8054724329cb9bfe56884e73ab44a864ef3b8283c011cae9
5
5
  SHA512:
6
- metadata.gz: 536f8c0238182518afda5f82662a90a8695d0324f526d2666b69235c5e482275f3d95b4a77e8e519d523c208a81beb4fcfa776dceded510187052ce97f384b5d
7
- data.tar.gz: 50775a3000f06c76bc2e99c53669ded2a26c7c92775438b4ef4400f905835c60028a947f47c74c7b6853474926efdf669e2ff724e08ac5e7049b203e427759de
6
+ metadata.gz: c6df5288710235fce651f21a7d03aff41c9d7d529bbb1f0626677bdfe3bf8f670b1277fde0b942c8978a7240de1ecd0586f96d218e6c63f4a27eb63325539964
7
+ data.tar.gz: f2b7ec1060c226133354d30cb0643620bf12251657771357429f21a3069c76390085715eeb7fcc381ae4ca016ec0d6a632f0573eb1ec5f7df7bac6f1fa835296
@@ -4,7 +4,10 @@
4
4
  window.addVanillaNestedFields = function(event) {
5
5
  event.preventDefault();
6
6
 
7
- const element = event.target;
7
+ let element = event.target;
8
+ if (!element.classList.contains('vanilla-nested-add'))
9
+ element = element.closest('.vanilla-nested-add')
10
+
8
11
  const data = element.dataset;
9
12
  const container = document.querySelector(data.containerSelector);
10
13
  const newHtml = data.html.replace(/_idx_placeholder_/g, Date.now());
@@ -25,7 +28,7 @@
25
28
 
26
29
  let removeLink = inserted.querySelector('.vanilla-nested-remove');
27
30
  if (removeLink)
28
- removeLink.addEventListener('click', removeVanillaNestedFields);
31
+ removeLink.addEventListener('click', removeVanillaNestedFields, true);
29
32
 
30
33
  // dispatch an event if we reached the limit configured on the model
31
34
  if (data.limit) {
@@ -40,7 +43,10 @@
40
43
  window.removeVanillaNestedFields = function(event) {
41
44
  event.preventDefault();
42
45
 
43
- const element = event.target;
46
+ let element = event.target;
47
+ if (!element.classList.contains('vanilla-nested-remove'))
48
+ element = element.closest('.vanilla-nested-remove')
49
+
44
50
  const data = element.dataset;
45
51
  let wrapper = element.parentElement;
46
52
  if (sel = data.fieldsWrapperSelector) wrapper = element.closest(sel);
@@ -121,13 +127,24 @@
121
127
  return undo;
122
128
  }
123
129
 
124
- document.addEventListener('DOMContentLoaded', function(){
130
+ function initVanillaNested() {
125
131
  document.querySelectorAll('.vanilla-nested-add').forEach(el => {
126
- el.addEventListener('click', addVanillaNestedFields);
132
+ el.addEventListener('click', addVanillaNestedFields, true);
127
133
  })
128
134
 
129
135
  document.querySelectorAll('.vanilla-nested-remove').forEach(el => {
130
- el.addEventListener('click', removeVanillaNestedFields);
136
+ el.addEventListener('click', removeVanillaNestedFields, true);
131
137
  })
138
+ }
139
+
140
+ document.addEventListener('DOMContentLoaded', function(){
141
+ initVanillaNested();
142
+ })
143
+
144
+ // Don't run turbolinks event callback for first load, we already do it with DOMContentLoaded
145
+ const notEmpty = (obj) => Object.keys(obj).length;
146
+
147
+ document.addEventListener('turbolinks:load', function(e){
148
+ if (notEmpty(e.data.timing)) initVanillaNested();
132
149
  })
133
150
  })()
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: vanilla_nested
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ariel Juodziukynas <arieljuod@gmail.com>
@@ -21,7 +21,7 @@ files:
21
21
  - lib/vanilla_nested/view_helpers.rb
22
22
  homepage: https://github.com/arielj/vanilla-nested
23
23
  licenses:
24
- - GPL-3.0
24
+ - MIT
25
25
  metadata: {}
26
26
  post_install_message:
27
27
  rdoc_options: []
@@ -38,7 +38,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
38
38
  - !ruby/object:Gem::Version
39
39
  version: '0'
40
40
  requirements: []
41
- rubygems_version: 3.0.6
41
+ rubygems_version: 3.0.9
42
42
  signing_key:
43
43
  specification_version: 4
44
44
  summary: Dynamic nested forms using vanilla javascript