vanilla_nested 1.2.2 → 1.2.5

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: 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