piggybak 0.6.34 → 0.7.0

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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +0 -14
  3. data/Gemfile.lock +18 -149
  4. data/README.md +6 -0
  5. data/app/assets/javascripts/piggybak/piggybak.js +18 -15
  6. data/app/assets/javascripts/piggybak/piggybak.states.js +7 -4
  7. data/app/assets/javascripts/rails_admin/custom/ui.js.erb +33 -28
  8. data/app/controllers/piggybak/orders_controller.rb +15 -3
  9. data/app/models/piggybak/address.rb +8 -11
  10. data/app/models/piggybak/country.rb +3 -4
  11. data/app/models/piggybak/line_item.rb +3 -3
  12. data/app/models/piggybak/order.rb +11 -6
  13. data/app/models/piggybak/order_note.rb +2 -3
  14. data/app/models/piggybak/payment.rb +4 -7
  15. data/app/models/piggybak/payment_method.rb +2 -4
  16. data/app/models/piggybak/payment_method_value.rb +2 -4
  17. data/app/models/piggybak/sellable.rb +4 -7
  18. data/app/models/piggybak/shipment.rb +2 -4
  19. data/app/models/piggybak/shipping_calculator/flat_rate.rb +1 -1
  20. data/app/models/piggybak/shipping_calculator/range.rb +1 -1
  21. data/app/models/piggybak/shipping_method +0 -0
  22. data/app/models/piggybak/shipping_method.rb +3 -6
  23. data/app/models/piggybak/shipping_method_value.rb +2 -3
  24. data/app/models/piggybak/state.rb +0 -1
  25. data/app/models/piggybak/tax_calculator/percent.rb +6 -10
  26. data/app/models/piggybak/tax_method.rb +5 -6
  27. data/app/models/piggybak/tax_method_value.rb +2 -3
  28. data/app/views/piggybak/orders/_user_details.html.erb +2 -2
  29. data/app/views/rails_admin/main/{_copy_from_billing.html.haml → _copy_from_billing.html.erb} +0 -0
  30. data/app/views/rails_admin/main/_location_select.html.haml +2 -4
  31. data/app/views/rails_admin/main/_polymorphic_nested.html.haml +1 -25
  32. data/config/routes.rb +17 -19
  33. data/db/migrate/20140325133841_upgrade_piggybak_tables.rb +19 -0
  34. data/lib/piggybak.rb +1 -477
  35. data/lib/piggybak/config.rb +2 -0
  36. data/lib/piggybak/engine.rb +481 -0
  37. data/lib/piggybak/version.rb +1 -1
  38. metadata +6 -46
  39. data/lib/currency.rb +0 -5
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 94b5a0a0fd89dc240c03223177459facec423547
4
- data.tar.gz: 753d6351fa7aaf93d47ab9c5fa400349c1e39439
3
+ metadata.gz: 9cdf2d5cc0e37659ae8f4feced76d5962cc06951
4
+ data.tar.gz: 4588a015c22ef9592f318cfe73eed056e408661f
5
5
  SHA512:
6
- metadata.gz: fdf32c2d395715e618a7a33454aa1c5b8f1c1585c24b4d18b90903404c8e885a71e83bee78f38c20bb688a2e9b91e6501c1f2914918a3c18640ceabb0902f8aa
7
- data.tar.gz: be61bb408522ff2db2c09f30d320cb1416db0f313393b17322413aca61cf3f6e5abdff905ad44ec9b7b4d31db08ae5322e1c67a66baa38a329705e0b7a903c58
6
+ metadata.gz: 0922ce19a2e5ee163b94d88b832b8cc859a28d1dbb1fade281a2884ef05a447a786d0878c1e7b974a7b8c41b448ea367f6db4ce324f0c2070e9bd91b876f76ab
7
+ data.tar.gz: 12962e94a387f5153892f27a3ab72acbde68ad548ae4c4d90750557345b6e5ad4baeba6030295db95a7f549e2d2a50c1541f3672a109a4415d4bf6016598a2c8
data/Gemfile CHANGED
@@ -4,17 +4,3 @@ source "http://rubygems.org"
4
4
  # Bundler will treat runtime dependencies like base dependencies, and
5
5
  # development dependencies will be added by default to the :development group.
6
6
  gemspec
7
-
8
- # jquery-rails is used by the dummy application
9
- gem "jquery-rails"
10
-
11
- # Declare any dependencies that are still in development here instead of in
12
- # your gemspec. These might include edge Rails or gems from your path or
13
- # Git. Remember to move these dependencies to your gemspec before releasing
14
- # your gem to rubygems.org.
15
-
16
- # To use debugger
17
- # gem 'debugger'
18
-
19
- gem "countries"
20
- gem "rack-ssl-enforcer"
@@ -1,34 +1,18 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- piggybak (0.6.34)
4
+ piggybak (0.7.0)
5
5
  activemerchant
6
6
  countries
7
- devise
8
7
  rack-ssl-enforcer
9
- rails (~> 3.2.8)
10
- rails_admin (~> 0.4.5)
11
8
 
12
9
  GEM
13
10
  remote: http://rubygems.org/
14
11
  specs:
15
- actionmailer (3.2.16)
16
- actionpack (= 3.2.16)
17
- mail (~> 2.5.4)
18
- actionpack (3.2.16)
19
- activemodel (= 3.2.16)
20
- activesupport (= 3.2.16)
21
- builder (~> 3.0.0)
22
- erubis (~> 2.7.0)
23
- journey (~> 1.0.4)
24
- rack (~> 1.4.5)
25
- rack-cache (~> 1.2)
26
- rack-test (~> 0.6.1)
27
- sprockets (~> 2.2.1)
28
- active_utils (2.0.1)
12
+ active_utils (2.0.2)
29
13
  activesupport (>= 2.3.11)
30
14
  i18n
31
- activemerchant (1.42.4)
15
+ activemerchant (1.42.7)
32
16
  active_utils (~> 2.0, >= 2.0.1)
33
17
  activesupport (>= 2.3.14, < 5.0.0)
34
18
  builder (>= 2.1.2, < 4.0.0)
@@ -36,148 +20,33 @@ GEM
36
20
  json (~> 1.7)
37
21
  money (< 7.0.0)
38
22
  nokogiri (~> 1.4)
39
- activemodel (3.2.16)
40
- activesupport (= 3.2.16)
41
- builder (~> 3.0.0)
42
- activerecord (3.2.16)
43
- activemodel (= 3.2.16)
44
- activesupport (= 3.2.16)
45
- arel (~> 3.0.2)
46
- tzinfo (~> 0.3.29)
47
- activeresource (3.2.16)
48
- activemodel (= 3.2.16)
49
- activesupport (= 3.2.16)
50
- activesupport (3.2.16)
51
- i18n (~> 0.6, >= 0.6.4)
52
- multi_json (~> 1.0)
53
- arel (3.0.3)
54
- atomic (1.1.14)
55
- bcrypt-ruby (3.1.2)
56
- bootstrap-sass (2.3.2.2)
57
- sass (~> 3.2)
58
- builder (3.0.4)
59
- coffee-rails (3.2.2)
60
- coffee-script (>= 2.2.0)
61
- railties (~> 3.2.0)
62
- coffee-script (2.2.0)
63
- coffee-script-source
64
- execjs
65
- coffee-script-source (1.6.3)
23
+ activesupport (4.0.4)
24
+ i18n (~> 0.6, >= 0.6.9)
25
+ minitest (~> 4.2)
26
+ multi_json (~> 1.3)
27
+ thread_safe (~> 0.1)
28
+ tzinfo (~> 0.3.37)
29
+ atomic (1.1.16)
30
+ builder (3.2.2)
66
31
  countries (0.9.3)
67
32
  currencies (~> 0.4.2)
68
33
  currencies (0.4.2)
69
- devise (3.2.2)
70
- bcrypt-ruby (~> 3.0)
71
- orm_adapter (~> 0.1)
72
- railties (>= 3.2.6, < 5)
73
- thread_safe (~> 0.1)
74
- warden (~> 1.2.3)
75
- erubis (2.7.0)
76
- execjs (2.0.2)
77
- font-awesome-rails (3.2.1.3)
78
- railties (>= 3.2, < 5.0)
79
- haml (4.0.5)
80
- tilt
81
- hike (1.2.3)
82
34
  i18n (0.6.9)
83
- journey (1.0.4)
84
- jquery-rails (3.0.4)
85
- railties (>= 3.0, < 5.0)
86
- thor (>= 0.14, < 2.0)
87
- jquery-ui-rails (3.0.1)
88
- jquery-rails
89
- railties (>= 3.1.0)
90
35
  json (1.8.1)
91
- kaminari (0.15.1)
92
- actionpack (>= 3.0.0)
93
- activesupport (>= 3.0.0)
94
- mail (2.5.4)
95
- mime-types (~> 1.16)
96
- treetop (~> 1.4.8)
97
- mime-types (1.25.1)
98
- mini_portile (0.5.2)
99
- monetize (0.1.3)
100
- money (6.0.1)
36
+ mini_portile (0.5.3)
37
+ minitest (4.7.5)
38
+ money (6.1.1)
101
39
  i18n (~> 0.6.4)
102
- monetize (~> 0.1.3)
103
- multi_json (1.8.4)
104
- nested_form (0.3.2)
40
+ multi_json (1.9.2)
105
41
  nokogiri (1.6.1)
106
42
  mini_portile (~> 0.5.0)
107
- orm_adapter (0.5.0)
108
- polyglot (0.3.3)
109
- rack (1.4.5)
110
- rack-cache (1.2)
111
- rack (>= 0.4)
112
- rack-pjax (0.7.0)
113
- nokogiri (~> 1.5)
114
- rack (~> 1.3)
115
- rack-ssl (1.3.3)
116
- rack
117
43
  rack-ssl-enforcer (0.2.6)
118
- rack-test (0.6.2)
119
- rack (>= 1.0)
120
- rails (3.2.16)
121
- actionmailer (= 3.2.16)
122
- actionpack (= 3.2.16)
123
- activerecord (= 3.2.16)
124
- activeresource (= 3.2.16)
125
- activesupport (= 3.2.16)
126
- bundler (~> 1.0)
127
- railties (= 3.2.16)
128
- rails_admin (0.4.9)
129
- bootstrap-sass (~> 2.2)
130
- builder (~> 3.0)
131
- coffee-rails (>= 3.1, < 5)
132
- font-awesome-rails (~> 3.0)
133
- haml (~> 4.0)
134
- jquery-rails (>= 2.1, < 4)
135
- jquery-ui-rails (~> 3.0)
136
- kaminari (~> 0.14)
137
- nested_form (~> 0.3)
138
- rack-pjax (~> 0.6)
139
- rails (~> 3.1)
140
- remotipart (~> 1.0)
141
- safe_yaml (~> 0.6)
142
- sass-rails (~> 3.1)
143
- railties (3.2.16)
144
- actionpack (= 3.2.16)
145
- activesupport (= 3.2.16)
146
- rack-ssl (~> 1.3.2)
147
- rake (>= 0.8.7)
148
- rdoc (~> 3.4)
149
- thor (>= 0.14.6, < 2.0)
150
- rake (10.1.1)
151
- rdoc (3.12.2)
152
- json (~> 1.4)
153
- remotipart (1.2.1)
154
- safe_yaml (0.9.7)
155
- sass (3.2.13)
156
- sass-rails (3.2.6)
157
- railties (~> 3.2.0)
158
- sass (>= 3.1.10)
159
- tilt (~> 1.3)
160
- sprockets (2.2.2)
161
- hike (~> 1.2)
162
- multi_json (~> 1.0)
163
- rack (~> 1.0)
164
- tilt (~> 1.1, != 1.3.0)
165
- thor (0.18.1)
166
- thread_safe (0.1.3)
167
- atomic
168
- tilt (1.4.1)
169
- treetop (1.4.15)
170
- polyglot
171
- polyglot (>= 0.3.1)
172
- tzinfo (0.3.38)
173
- warden (1.2.3)
174
- rack (>= 1.0)
44
+ thread_safe (0.3.1)
45
+ atomic (>= 1.1.7, < 2)
46
+ tzinfo (0.3.39)
175
47
 
176
48
  PLATFORMS
177
49
  ruby
178
50
 
179
51
  DEPENDENCIES
180
- countries
181
- jquery-rails
182
52
  piggybak!
183
- rack-ssl-enforcer
data/README.md CHANGED
@@ -11,6 +11,8 @@ Modular / mountable ecommerce gem. Features:
11
11
 
12
12
  * Fully defined backend RailsAdmin interface for adding orders on the backend
13
13
 
14
+ * Piggybak 0.7.0 is compatible with Rails 4, and earlier versions compatible with Rails 3.
15
+
14
16
 
15
17
  Announcements
16
18
  ========
@@ -42,6 +44,10 @@ Installation
42
44
 
43
45
  piggybak install
44
46
 
47
+ * Add piggybak/piggybak-application to your main application.js:
48
+
49
+ //= require piggybak/piggybak-application
50
+
45
51
  (NOTE: If you run into an error saying that piggybak gem is missing, use bundle exec piggybak install)
46
52
 
47
53
  * Follow the instructions [here][documentation] to read more about the integration points and product configuration in Piggybak.
@@ -4,15 +4,18 @@ var page_load = 1;
4
4
  var shipping_field;
5
5
 
6
6
  $(function() {
7
- shipping_field = $('#piggybak_order_line_items_attributes_0_shipment_attributes_shipping_method_id');
7
+ if($('form#new_order').size() == 0) {
8
+ return;
9
+ }
10
+ shipping_field = $('#order_line_items_attributes_0_shipment_attributes_shipping_method_id');
8
11
  piggybak.initialize_listeners();
9
- piggybak.update_shipping_options($('#piggybak_order_shipping_address_attributes_state_id'), function() {
10
- $('#piggybak_order_shipments_attributes_0_shipping_method_id').val(previous_shipping);
12
+ piggybak.update_shipping_options($('#order_shipping_address_attributes_state_id'), function() {
13
+ $('#order_shipments_attributes_0_shipping_method_id').val(previous_shipping);
11
14
  });
12
15
  piggybak.update_tax();
13
- $('#new_piggybak_order').validate({
16
+ $('#new_order').validate({
14
17
  submitHandler: function(form) {
15
- var submit = $($('#new_piggybak_order input[type=submit]'));
18
+ var submit = $($('#new_order input[type=submit]'));
16
19
  submit.prop('disabled',true);
17
20
  submit.attr('value','Processing...');
18
21
  form.submit()
@@ -21,20 +24,20 @@ $(function() {
21
24
  });
22
25
 
23
26
  var piggybak = {
24
- shipping_els: '#piggybak_order_shipping_address_attributes_state_id,#piggybak_order_shipping_address_attributes_country_id,#piggybak_order_shipping_address_attributes_zip',
27
+ shipping_els: '#order_shipping_address_attributes_state_id,#order_shipping_address_attributes_country_id,#order_shipping_address_attributes_zip',
25
28
  initialize_listeners: function() {
26
29
  $(document).on('change', piggybak.shipping_els, function() {
27
30
  piggybak.update_shipping_options($(this));
28
31
  });
29
- $(document).on('change', '#piggybak_order_billing_address_attributes_state_id', function() {
32
+ $(document).on('change', '#order_billing_address_attributes_state_id', function() {
30
33
  piggybak.update_tax();
31
34
  });
32
35
  $('#shipping select').change(function() {
33
36
  piggybak.update_totals();
34
37
  });
35
- $('#shipping_address #copy').click(function() {
38
+ $('#shipping_address #copy').on('click', function() {
36
39
  piggybak.copy_from_billing();
37
- piggybak.update_shipping_options($('#piggybak_order_shipping_address_attributes_state_id'));
40
+ piggybak.update_shipping_options($('#order_shipping_address_attributes_state_id'));
38
41
  return false;
39
42
  });
40
43
  return;
@@ -44,11 +47,11 @@ var piggybak = {
44
47
  var id = $(j).attr('id').replace(/billing_address/, 'shipping_address');
45
48
  $('#' + id).val($(j).val());
46
49
  });
47
- var country = $('#piggybak_order_billing_address_attributes_country_id').val();
48
- $('#piggybak_order_shipping_address_attributes_country_id').val(country);
50
+ var country = $('#order_billing_address_attributes_country_id').val();
51
+ $('#order_shipping_address_attributes_country_id').val(country);
49
52
  piggybak_states.update_state_option('shipping', function() {
50
- var state = $('#piggybak_order_billing_address_attributes_state_id').val();
51
- $('#piggybak_order_shipping_address_attributes_state_id').val(state);
53
+ var state = $('#order_billing_address_attributes_state_id').val();
54
+ $('#order_shipping_address_attributes_state_id').val(state);
52
55
  });
53
56
  $('#shipping_address input').valid();
54
57
  },
@@ -107,7 +110,7 @@ var piggybak = {
107
110
  });
108
111
  $('#billing_address input, #billing_address select').each(function(i, j) {
109
112
  var id = $(j).attr('id');
110
- id = id.replace("piggybak_order_billing_address_attributes_", '');
113
+ id = id.replace("order_billing_address_attributes_", '');
111
114
  billing_data[id] = $(j).val();
112
115
  });
113
116
  $.ajax({
@@ -141,7 +144,7 @@ var piggybak = {
141
144
  $('#shipping_address input, #shipping_address select').each(function(i, j) {
142
145
  var id = $(j).attr('id');
143
146
  if(typeof(id) !== 'undefined') {
144
- id = id.replace("piggybak_order_shipping_address_attributes_", '');
147
+ id = id.replace("order_shipping_address_attributes_", '');
145
148
  if($(j).is(':checkbox')) {
146
149
  shipping_data[id] = $(j).is(':checked');
147
150
  } else {
@@ -2,10 +2,10 @@ var geodata;
2
2
 
3
3
  var piggybak_states = {
4
4
  initialize_listeners: function() {
5
- $('#piggybak_order_shipping_address_attributes_country_id').change(function() {
5
+ $('#order_shipping_address_attributes_country_id').change(function() {
6
6
  piggybak_states.update_state_option('shipping');
7
7
  });
8
- $('#piggybak_order_billing_address_attributes_country_id').change(function() {
8
+ $('#order_billing_address_attributes_country_id').change(function() {
9
9
  piggybak_states.update_state_option('billing');
10
10
  });
11
11
  return;
@@ -23,7 +23,7 @@ var piggybak_states = {
23
23
  });
24
24
  },
25
25
  update_state_option: function(type, block) {
26
- var country_field = $('#piggybak_order_' + type + '_address_attributes_country_id');
26
+ var country_field = $('#order_' + type + '_address_attributes_country_id');
27
27
  var country_id = country_field.val();
28
28
  var new_field;
29
29
 
@@ -35,7 +35,7 @@ var piggybak_states = {
35
35
  } else {
36
36
  new_field = $('<input>');
37
37
  }
38
- var old_field = $('#piggybak_order_' + type + '_address_attributes_state_id');
38
+ var old_field = $('#order_' + type + '_address_attributes_state_id');
39
39
  new_field.attr('name', old_field.attr('name')).attr('id', old_field.attr('id'));
40
40
  if(old_field.prop('tagName') == new_field.prop('tagName')) {
41
41
  new_field.val(old_field.val());
@@ -50,6 +50,9 @@ var piggybak_states = {
50
50
  };
51
51
 
52
52
  $(function() {
53
+ if($('form#new_order').size() == 0) {
54
+ return;
55
+ }
53
56
  piggybak_states.populate_geodata();
54
57
  piggybak_states.initialize_listeners();
55
58
  });
@@ -38,17 +38,17 @@ var piggybak_rails_admin = {
38
38
 
39
39
  if(country_id == '') {
40
40
  country_id = "<%= ::Piggybak::Country.where(abbr: Piggybak.config.default_country).first.id %>";
41
- }
41
+ }
42
42
  if(geodata.countries["country_" + country_id].length > 0) {
43
43
  new_field = $('<select>');
44
44
  $.each(geodata.countries["country_" + country_id], function(i, j) {
45
45
  new_field.append($('<option>').val(j.id).html(j.name));
46
- });
46
+ });
47
47
  } else {
48
48
  new_field = $('<input>');
49
49
  }
50
50
 
51
- var old_field = $('#piggybak_order_' + type + '_address_attributes_state_id');
51
+ var old_field = $('#' + type + '_state_id');
52
52
  new_field.attr('name', old_field.attr('name')).attr('id', old_field.attr('id'));
53
53
  if(old_field.prop('tagName') == new_field.prop('tagName')) {
54
54
  new_field.val(old_field.val());
@@ -64,12 +64,12 @@ var piggybak_rails_admin = {
64
64
  toggle_line_item: function(el) {
65
65
  var line_item = el.parent().parent().parent();
66
66
  line_item.find('> div.control-group').not('.line_item_type_field').hide();
67
- if(piggybak_rails_admin.line_item_types[el.val()].fields !== undefined) {
68
- $.each(piggybak_rails_admin.line_item_types[el.val()].fields, function(a, b) {
69
- line_item.find('> div.' + b + '_field').show();
70
- });
67
+ if(piggybak_rails_admin.line_item_types[el.val()].fields !== undefined) {
68
+ $.each(piggybak_rails_admin.line_item_types[el.val()].fields, function(a, b) {
69
+ line_item.find('> div.' + b + '_field').show();
70
+ });
71
71
  }
72
- }
72
+ }
73
73
  };
74
74
 
75
75
  $(function() {
@@ -80,30 +80,35 @@ $(function() {
80
80
  piggybak_rails_admin.populate_geodata();
81
81
  piggybak_rails_admin.initialize_listeners();
82
82
 
83
- $('#copy_from_billing').click(function(e) {
83
+ $('#copy_from_billing').click(function(e) {
84
84
  e.preventDefault();
85
85
 
86
- $.each($('#piggybak_order_billing_address_attributes_field input'), function(i, el) {
87
- if($(el).attr('id') !== undefined) {
88
- var shipping_id = $(el).attr('id').replace('billing', 'shipping');
89
- $('#' + shipping_id).val($(el).val());
90
- }
91
- });
92
- $('#piggybak_order_shipping_address_attributes_country_id').val($('#piggybak_order_billing_address_attributes_country_id').val());
93
- piggybak_rails_admin.update_state_option('shipping', function() {
94
- $('#piggybak_order_shipping_address_attributes_state_id').val($('#piggybak_order_billing_address_attributes_state_id').val());
86
+ $.each($('#piggybak_order_billing_address_attributes_field input'), function(i, el) {
87
+ if($(el).attr('id') !== undefined) {
88
+ var shipping_id = $(el).attr('id').replace('billing', 'shipping');
89
+ $('#' + shipping_id).val($(el).val());
90
+ }
91
+ });
92
+ $('#piggybak_order_shipping_address_attributes_country_id option:last').remove();
93
+ $('<option>').val($('#piggybak_order_billing_address_attributes_country_id').val()).html($('#piggybak_order_billing_address_attributes_country_id_field input').val()).appendTo($('#piggybak_order_shipping_address_attributes_country_id'));
94
+ $('#piggybak_order_shipping_address_attributes_country_id').val($('#piggybak_order_billing_address_attributes_country_id').val());
95
+ $('#piggybak_order_shipping_address_attributes_country_id_field input').val($('#piggybak_order_billing_address_attributes_country_id_field input').val());
96
+ piggybak_rails_admin.update_state_option('shipping', function() {
97
+ $('#shipping_state_id').val($('#billing_state_id').val());
98
+ $('#piggybak_order_shipping_address_attributes_state_id').val($('#shipping_state_id').val());
95
99
  });
96
- });
100
+ return false;
101
+ });
97
102
 
98
103
  //From polymorphic
99
- $.each($('.line_item_type_field select,.line_item_type_field input'), function(i, el) {
100
- piggybak_rails_admin.toggle_line_item($(el));
101
- });
102
- //Removing delete-ability of line_item_types that can't be destroyed
103
- $.each($('.line_item_type_field input'), function(i, el) {
104
- if(!piggybak_rails_admin.line_item_types[$(el).val()].allow_destroy) {
105
- $(el).parentsUntil('fieldset').parent().parent().find('.remove_nested_fields').remove();
106
- }
107
- });
104
+ $.each($('.line_item_type_field select,.line_item_type_field input'), function(i, el) {
105
+ piggybak_rails_admin.toggle_line_item($(el));
106
+ });
107
+ //Removing delete-ability of line_item_types that can't be destroyed
108
+ $.each($('.line_item_type_field input'), function(i, el) {
109
+ if(!piggybak_rails_admin.line_item_types[$(el).val()].allow_destroy) {
110
+ $(el).parentsUntil('fieldset').parent().parent().find('.remove_nested_fields').remove();
111
+ }
112
+ });
108
113
  });
109
114