spree_core 1.1.2.rc1 → 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (31) hide show
  1. data/app/assets/javascripts/admin/admin.js.erb +3 -16
  2. data/app/assets/javascripts/admin/checkouts/edit.js +4 -2
  3. data/app/assets/javascripts/admin/spree_core.js +2 -3
  4. data/app/models/spree/order.rb +0 -4
  5. data/app/views/spree/admin/adjustments/_form.html.erb +12 -11
  6. data/app/views/spree/admin/images/_form.html.erb +17 -15
  7. data/app/views/spree/admin/mail_methods/_form.html.erb +81 -79
  8. data/app/views/spree/admin/option_types/_form.html.erb +12 -10
  9. data/app/views/spree/admin/orders/_add_product.html.erb +5 -2
  10. data/app/views/spree/admin/orders/_form.html.erb +49 -47
  11. data/app/views/spree/admin/orders/customer_details/_form.html.erb +44 -44
  12. data/app/views/spree/admin/payment_methods/_form.html.erb +46 -44
  13. data/app/views/spree/admin/payments/_form.html.erb +13 -11
  14. data/app/views/spree/admin/products/_form.html.erb +89 -87
  15. data/app/views/spree/admin/properties/_form.html.erb +2 -4
  16. data/app/views/spree/admin/prototypes/_form.html.erb +41 -39
  17. data/app/views/spree/admin/return_authorizations/_form.html.erb +67 -65
  18. data/app/views/spree/admin/shared/_head.html.erb +8 -6
  19. data/app/views/spree/admin/shipments/_form.html.erb +65 -63
  20. data/app/views/spree/admin/shipping_categories/_form.html.erb +8 -6
  21. data/app/views/spree/admin/states/_form.html.erb +10 -8
  22. data/app/views/spree/admin/tax_categories/_form.html.erb +16 -12
  23. data/app/views/spree/admin/tax_rates/_form.html.erb +21 -19
  24. data/app/views/spree/admin/taxonomies/_form.html.erb +1 -1
  25. data/app/views/spree/admin/taxons/_form.html.erb +1 -2
  26. data/app/views/spree/admin/trackers/_form.html.erb +29 -27
  27. data/app/views/spree/admin/variants/_form.html.erb +33 -31
  28. data/app/views/spree/admin/zones/_form.html.erb +27 -25
  29. data/lib/spree/core/version.rb +1 -1
  30. metadata +36 -34
  31. data/app/assets/javascripts/admin/spree.routes.js.erb +0 -30
@@ -1,77 +1,79 @@
1
- <table class="index">
2
- <tr data-hook="rma_header">
3
- <th><%= t(:product) %></th>
4
- <th><%= t(:quantity_shipped) %></th>
5
- <th><%= t(:quantity_returned) %></th>
6
- <th><%= t(:return_quantity) %></th>
7
- </tr>
8
- <% @return_authorization.order.inventory_units.group_by(&:variant).each do | variant, units| %>
9
- <tr id="<%= dom_id(variant) %>" data-hook="rma_row">
10
- <td>
11
- <h4 style="margin-bottom:0px;"><%= variant.name %></h4>
12
- <%= variant.options_text %>
13
- </td>
14
- <td><%= units.select(&:shipped?).size %></td>
15
- <td><%= units.select(&:returned?).size %></td>
16
- <td class="return_quantity">
17
- <% if @return_authorization.received? %>
18
- <%= @return_authorization.inventory_units.group_by(&:variant)[variant].try(:size) || 0 %>
19
- <% elsif units.select(&:shipped?).empty? %>
20
- 0
21
- <% else %>
22
- <%= text_field_tag "return_quantity[#{variant.id}]",
23
- @return_authorization.inventory_units.group_by(&:variant)[variant].try(:size) || 0, {:style => 'width:30px;'} %>
24
- <% end %>
25
- </td>
1
+ <div data-hook="admin_return_authorization_form_fields">
2
+ <table class="index">
3
+ <tr data-hook="rma_header">
4
+ <th><%= t(:product) %></th>
5
+ <th><%= t(:quantity_shipped) %></th>
6
+ <th><%= t(:quantity_returned) %></th>
7
+ <th><%= t(:return_quantity) %></th>
26
8
  </tr>
9
+ <% @return_authorization.order.inventory_units.group_by(&:variant).each do | variant, units| %>
10
+ <tr id="<%= dom_id(variant) %>" data-hook="rma_row">
11
+ <td>
12
+ <h4 style="margin-bottom:0px;"><%= variant.name %></h4>
13
+ <%= variant.options_text %>
14
+ </td>
15
+ <td><%= units.select(&:shipped?).size %></td>
16
+ <td><%= units.select(&:returned?).size %></td>
17
+ <td class="return_quantity">
18
+ <% if @return_authorization.received? %>
19
+ <%= @return_authorization.inventory_units.group_by(&:variant)[variant].try(:size) || 0 %>
20
+ <% elsif units.select(&:shipped?).empty? %>
21
+ 0
22
+ <% else %>
23
+ <%= text_field_tag "return_quantity[#{variant.id}]",
24
+ @return_authorization.inventory_units.group_by(&:variant)[variant].try(:size) || 0, {:style => 'width:30px;'} %>
25
+ <% end %>
26
+ </td>
27
+ </tr>
28
+ <% end %>
29
+ </table>
30
+
31
+ <%= f.field_container :amount do %>
32
+ <%= f.label :amount, t(:amount) %> <span class="required">*</span><br />
33
+ <% if @return_authorization.received? %>
34
+ <%= number_to_currency @return_authorization.amount %>
35
+ <% else %>
36
+ <%= f.text_field :amount, {:style => 'width:80px;'} %> <%= t(:rma_value) %>: <span id="rma_value"></span>
37
+ <%= f.error_message_on :amount %>
38
+ <% end %>
27
39
  <% end %>
28
- </table>
29
40
 
30
- <%= f.field_container :amount do %>
31
- <%= f.label :amount, t(:amount) %> <span class="required">*</span><br />
32
- <% if @return_authorization.received? %>
33
- <%= number_to_currency @return_authorization.amount %>
34
- <% else %>
35
- <%= f.text_field :amount, {:style => 'width:80px;'} %> <%= t(:rma_value) %>: <span id="rma_value"></span>
36
- <%= f.error_message_on :amount %>
41
+ <%= f.field_container :reason do %>
42
+ <%= f.label :reason, t(:reason) %>
43
+ <%= f.text_area :reason, {:style => 'height:100px;', :class => 'fullwidth'} %>
44
+ <%= f.error_message_on :reason %>
37
45
  <% end %>
38
- <% end %>
39
46
 
40
- <%= f.field_container :reason do %>
41
- <%= f.label :reason, t(:reason) %>
42
- <%= f.text_area :reason, {:style => 'height:100px;', :class => 'fullwidth'} %>
43
- <%= f.error_message_on :reason %>
44
- <% end %>
45
47
 
48
+ <% content_for :head do %>
49
+ <%= javascript_tag do -%>
50
+ var variant_prices = new Array();
51
+ <% @return_authorization.order.inventory_units.group_by(&:variant).each do | variant, units| %>
52
+ variant_prices[<%= variant.id.to_s %>] = <%= variant.price %>;
53
+ <% end %>
46
54
 
47
- <% content_for :head do %>
48
- <%= javascript_tag do -%>
49
- var variant_prices = new Array();
50
- <% @return_authorization.order.inventory_units.group_by(&:variant).each do | variant, units| %>
51
- variant_prices[<%= variant.id.to_s %>] = <%= variant.price %>;
52
- <% end %>
55
+ function calculate_rma_price(object, value){
56
+ var rma_amount = 0;
53
57
 
54
- function calculate_rma_price(object, value){
55
- var rma_amount = 0;
58
+ $.each($("td.return_quantity input"), function(i, inpt){
59
+ var variant_id = $(inpt).attr('id').replace("return_quantity_", "");
60
+ rma_amount += variant_prices[variant_id] * $(inpt).val()
61
+ });
56
62
 
57
- $.each($("td.return_quantity input"), function(i, inpt){
58
- var variant_id = $(inpt).attr('id').replace("return_quantity_", "");
59
- rma_amount += variant_prices[variant_id] * $(inpt).val()
60
- });
61
-
62
- if(!isNaN(rma_amount)){
63
- $("span#rma_value").html(rma_amount.toFixed(2));
63
+ if(!isNaN(rma_amount)){
64
+ $("span#rma_value").html(rma_amount.toFixed(2));
65
+ }
64
66
  }
65
- }
66
67
 
67
- $(document).ready(function(){
68
- $.each($("td.return_quantity input"), function(i, inpt){
69
- $(inpt).delayedObserver(function() {
70
- calculate_rma_price();
71
- }, 0.5);
72
- });
68
+ $(document).ready(function(){
69
+ $.each($("td.return_quantity input"), function(i, inpt){
70
+ $(inpt).delayedObserver(function() {
71
+ calculate_rma_price();
72
+ }, 0.5);
73
+ });
73
74
 
74
- calculate_rma_price();
75
- });
76
- <% end -%>
77
- <% end %>
75
+ calculate_rma_price();
76
+ });
77
+ <% end -%>
78
+ <% end %>
79
+ </div>
@@ -2,11 +2,15 @@
2
2
  <%= csrf_meta_tags %>
3
3
  <title><%= "Spree #{t('administration')}: " %>
4
4
  <%= t(controller.controller_name, :default => controller.controller_name.titleize) %></title>
5
+
6
+ <%= stylesheet_link_tag 'admin/all' %>
7
+ <%= javascript_include_tag 'admin/all' %>
8
+
5
9
  <%= javascript_tag do %>
6
- ajax_urls = <%== {
7
- :product_search_json => spree.admin_products_path(:format => 'json'),
8
- :product_search_basic_json => spree.admin_products_path(:format => 'json', :json_format => 'basic', :limit => 10),
9
- :user_search_basic_json => spree.admin_users_path(:format => 'json', :json_format => 'basic', :limit => 10)
10
+ Spree.routes = <%== {
11
+ :product_search => spree.admin_products_path(:format => 'json'),
12
+ :product_search_basic => spree.admin_products_path(:format => 'json', :json_format => 'basic', :limit => 10),
13
+ :user_search => spree.admin_users_path(:format => 'json', :limit => 10)
10
14
  }.to_json %>;
11
15
 
12
16
  strings = <%==
@@ -15,8 +19,6 @@
15
19
  %>
16
20
  <% end %>
17
21
 
18
- <%= stylesheet_link_tag 'admin/all' %>
19
- <%= javascript_include_tag 'admin/all' %>
20
22
  <%= javascript_tag do -%>
21
23
  jQuery.alerts.dialogClass = 'spree';
22
24
  <%== "var AUTH_TOKEN = #{form_authenticity_token.inspect};" if protect_against_forgery? %>
@@ -1,73 +1,75 @@
1
- <% unless @shipment.order.cart? %>
2
- <table class="index" style="width:100%;" data-hook="admin_shipment_form_inventory_units">
3
- <tr data-hook="shipments_header">
4
- <th style="width:130px;"><%= t(:include_in_shipment) %></th>
5
- <th><%= t(:sku) %></th>
6
- <th><%= t(:item_description) %></th>
7
- <th><%= t(:status) %></th>
8
- <th><%= t(:note) %></th>
9
- </tr>
10
-
11
- <% @shipment.order.inventory_units.each do |inventory_unit| %>
12
- <tr data-hook="shipments_row">
13
- <td style="text-align:center;">
14
- <%= check_box_tag "inventory_units[#{inventory_unit.id}]",
15
- :true,
16
- (inventory_unit.shipment == @shipment),
17
- { :disabled => %w(shipped backordered returned).include?(inventory_unit.state),
18
- :class => 'inventory_unit'} %>
19
- </td>
20
- <td style="vertical-align:top; width:120px;"><%= inventory_unit.variant.sku %></td>
21
- <td style="width:300px;">
22
- <%=inventory_unit.variant.product.name %>
23
- <%= '(' + variant_options(inventory_unit.variant) + ')' unless inventory_unit.variant.option_values.empty? %>
24
- </td>
25
- <td><%= t(inventory_unit.state) %></td>
26
- <td>
27
- <% if inventory_unit.shipment == @shipment %>
28
- <%= t(:included_in_this_shipment) %>
29
- <% elsif !inventory_unit.shipment.nil? %>
30
- <%= t(:included_in_other_shipment) %> - <%= link_to inventory_unit.shipment.number, edit_admin_order_shipment_url(inventory_unit.order, inventory_unit.shipment) %>
31
- <% end %>
32
- </td>
1
+ <div data-hook="admin_shipment_form_fields">
2
+ <% unless @shipment.order.cart? %>
3
+ <table class="index" style="width:100%;" data-hook="admin_shipment_form_inventory_units">
4
+ <tr data-hook="shipments_header">
5
+ <th style="width:130px;"><%= t(:include_in_shipment) %></th>
6
+ <th><%= t(:sku) %></th>
7
+ <th><%= t(:item_description) %></th>
8
+ <th><%= t(:status) %></th>
9
+ <th><%= t(:note) %></th>
33
10
  </tr>
34
- <% end %>
35
- </table>
36
- <% end %>
37
11
 
38
- <div data-hook="admin_shipment_form_address">
39
- <% shipment_form.fields_for 'address' do |sa_form| %>
40
- <%= render :partial => 'spree/admin/shared/address_form', :locals => { :f => sa_form, :name => t(:shipping_address), :use_billing => false } %>
12
+ <% @shipment.order.inventory_units.each do |inventory_unit| %>
13
+ <tr data-hook="shipments_row">
14
+ <td style="text-align:center;">
15
+ <%= check_box_tag "inventory_units[#{inventory_unit.id}]",
16
+ :true,
17
+ (inventory_unit.shipment == @shipment),
18
+ { :disabled => %w(shipped backordered returned).include?(inventory_unit.state),
19
+ :class => 'inventory_unit'} %>
20
+ </td>
21
+ <td style="vertical-align:top; width:120px;"><%= inventory_unit.variant.sku %></td>
22
+ <td style="width:300px;">
23
+ <%=inventory_unit.variant.product.name %>
24
+ <%= '(' + variant_options(inventory_unit.variant) + ')' unless inventory_unit.variant.option_values.empty? %>
25
+ </td>
26
+ <td><%= t(inventory_unit.state) %></td>
27
+ <td>
28
+ <% if inventory_unit.shipment == @shipment %>
29
+ <%= t(:included_in_this_shipment) %>
30
+ <% elsif !inventory_unit.shipment.nil? %>
31
+ <%= t(:included_in_other_shipment) %> - <%= link_to inventory_unit.shipment.number, edit_admin_order_shipment_url(inventory_unit.order, inventory_unit.shipment) %>
32
+ <% end %>
33
+ </td>
34
+ </tr>
35
+ <% end %>
36
+ </table>
41
37
  <% end %>
42
- </div>
43
38
 
44
- <div data-hook="admin_shipment_form_details">
45
- <table class="index">
46
- <tr>
47
- <th colspan="8"><%= t(:shipment_details) %></th>
48
- </tr>
49
- <tr>
50
- <td>
51
- <%= shipment_form.label :shipping_method_id, t(:shipping_method) + ':' %>
52
- </td>
53
- <td>
54
- <%= shipment_form.select :shipping_method_id,
55
- @shipping_methods.map {|sm| ["#{sm.name} - #{sm.zone.name}", sm.id] } %>
56
- </td>
57
- <td>
58
- <%= shipment_form.label :tracking, t(:tracking) + ':' %>
59
- </td>
60
- <td><%= shipment_form.text_field :tracking %></td>
61
- </tr>
62
- <% if Spree::Config[:shipping_instructions] %>
39
+ <div data-hook="admin_shipment_form_address">
40
+ <% shipment_form.fields_for 'address' do |sa_form| %>
41
+ <%= render :partial => 'spree/admin/shared/address_form', :locals => { :f => sa_form, :name => t(:shipping_address), :use_billing => false } %>
42
+ <% end %>
43
+ </div>
44
+
45
+ <div data-hook="admin_shipment_form_details">
46
+ <table class="index">
47
+ <tr>
48
+ <th colspan="8"><%= t(:shipment_details) %></th>
49
+ </tr>
63
50
  <tr>
64
51
  <td>
65
- <%= shipment_form.label :special_instructions, t(:special_instructions) + ':' %>
52
+ <%= shipment_form.label :shipping_method_id, t(:shipping_method) + ':' %>
66
53
  </td>
67
- <td colspan="3">
68
- <%= shipment_form.text_area :special_instructions %>
54
+ <td>
55
+ <%= shipment_form.select :shipping_method_id,
56
+ @shipping_methods.map {|sm| ["#{sm.name} - #{sm.zone.name}", sm.id] } %>
69
57
  </td>
58
+ <td>
59
+ <%= shipment_form.label :tracking, t(:tracking) + ':' %>
60
+ </td>
61
+ <td><%= shipment_form.text_field :tracking %></td>
70
62
  </tr>
71
- <% end %>
72
- </table>
63
+ <% if Spree::Config[:shipping_instructions] %>
64
+ <tr>
65
+ <td>
66
+ <%= shipment_form.label :special_instructions, t(:special_instructions) + ':' %>
67
+ </td>
68
+ <td colspan="3">
69
+ <%= shipment_form.text_area :special_instructions %>
70
+ </td>
71
+ </tr>
72
+ <% end %>
73
+ </table>
74
+ </div>
73
75
  </div>
@@ -1,6 +1,8 @@
1
- <table data-hook="name">
2
- <tr>
3
- <td><%= t(:name) %>:</td>
4
- <td><%= f.text_field :name, {'style' => 'width:200px'} %></td>
5
- </tr>
6
- </table>
1
+ <div data-hook="admin_shipping_category_form_fields">
2
+ <table data-hook="name">
3
+ <tr>
4
+ <td><%= t(:name) %>:</td>
5
+ <td><%= f.text_field :name, {'style' => 'width:200px'} %></td>
6
+ </tr>
7
+ </table>
8
+ </div>
@@ -1,9 +1,11 @@
1
- <%= f.field_container :name do %>
2
- <%= f.label :name, t(:name) %><br />
3
- <%= f.text_field :name %>
4
- <% end %>
1
+ <div data-hook="admin_state_form_fields">
2
+ <%= f.field_container :name do %>
3
+ <%= f.label :name, t(:name) %><br />
4
+ <%= f.text_field :name %>
5
+ <% end %>
5
6
 
6
- <%= f.field_container :abbr do %>
7
- <%= f.label :abbr, t(:abbreviation) %><br />
8
- <%= f.text_field :abbr %>
9
- <% end %>
7
+ <%= f.field_container :abbr do %>
8
+ <%= f.label :abbr, t(:abbreviation) %><br />
9
+ <%= f.text_field :abbr %>
10
+ <% end %>
11
+ </div>
@@ -1,12 +1,16 @@
1
- <%= f.field_container :name do %>
2
- <%= f.label :name, t(:name) %><br />
3
- <%= f.text_field :name %>
4
- <% end %>
5
- <%= f.field_container :description do %>
6
- <%= f.label :description, t(:description) %><br />
7
- <%= f.text_field :description %>
8
- <% end %>
9
- <%= f.field_container :is_default do %>
10
- <%= f.label :is_default, t(:default) %><br />
11
- <%= f.check_box :is_default %>
12
- <% end %>
1
+ <div data-hook="admin_tax_category_form_fields">
2
+ <%= f.field_container :name do %>
3
+ <%= f.label :name, t(:name) %><br />
4
+ <%= f.text_field :name %>
5
+ <% end %>
6
+
7
+ <%= f.field_container :description do %>
8
+ <%= f.label :description, t(:description) %><br />
9
+ <%= f.text_field :description %>
10
+ <% end %>
11
+
12
+ <%= f.field_container :is_default do %>
13
+ <%= f.label :is_default, t(:default) %><br />
14
+ <%= f.check_box :is_default %>
15
+ <% end %>
16
+ </div>
@@ -1,20 +1,22 @@
1
- <table data-hook="tax_rates">
2
- <tr data-hook="zone">
3
- <td><%= f.label :zone, t(:zone) %></td>
4
- <td><%= f.collection_select(:zone_id, @available_zones, :id, :name) %></td>
5
- </tr>
6
- <tr data-hook="category">
7
- <td><%= f.label :tax_category_id, t(:tax_category) %></td>
8
- <td><%= f.collection_select(:tax_category_id, @available_categories,:id, :name) %></td>
9
- </tr>
10
- <tr data-hook="included">
11
- <td><%= f.label :included_in_price, t(:included_in_price) %></td>
12
- <td><%= f.check_box :included_in_price %></td>
13
- </tr>
14
- <tr data-hook="rate">
15
- <td><%= f.label :amount, t(:rate) %></td>
16
- <td><%= f.text_field :amount %></td>
17
- </tr>
18
- </table>
1
+ <div data-hook="admin_tax_rate_form_fields">
2
+ <table data-hook="tax_rates">
3
+ <tr data-hook="zone">
4
+ <td><%= f.label :zone, t(:zone) %></td>
5
+ <td><%= f.collection_select(:zone_id, @available_zones, :id, :name) %></td>
6
+ </tr>
7
+ <tr data-hook="category">
8
+ <td><%= f.label :tax_category_id, t(:tax_category) %></td>
9
+ <td><%= f.collection_select(:tax_category_id, @available_categories,:id, :name) %></td>
10
+ </tr>
11
+ <tr data-hook="included">
12
+ <td><%= f.label :included_in_price, t(:included_in_price) %></td>
13
+ <td><%= f.check_box :included_in_price %></td>
14
+ </tr>
15
+ <tr data-hook="rate">
16
+ <td><%= f.label :amount, t(:rate) %></td>
17
+ <td><%= f.text_field :amount %></td>
18
+ </tr>
19
+ </table>
19
20
 
20
- <%= render :partial => 'spree/admin/shared/calculator_fields', :locals => { :f => f } %>
21
+ <%= render :partial => 'spree/admin/shared/calculator_fields', :locals => { :f => f } %>
22
+ </div>
@@ -1,4 +1,4 @@
1
- <div data-hook="admin_inside_taxonomy_form">
1
+ <div data-hook="admin_taxonomy_form_fields">
2
2
  <%= f.field_container :name do %>
3
3
  <%= f.label :name, t(:name) %> <span class="required">*</span><br />
4
4
  <%= error_message_on :taxonomy, :name, :class => 'fullwidth title' %>
@@ -1,4 +1,4 @@
1
- <div data-hook="admin_inside_taxon_form">
1
+ <div data-hook="admin_taxon_form_fields">
2
2
  <%= f.field_container :name do %>
3
3
  <%= f.label :name, t(:name) %> <span class="required">*</span><br />
4
4
  <%= error_message_on :taxon, :name, :class => 'fullwidth title' %>
@@ -19,5 +19,4 @@
19
19
  <%= f.label :description, t(:description) %><br />
20
20
  <%= f.text_area :description %>
21
21
  <% end %>
22
-
23
22
  </div>
@@ -1,27 +1,29 @@
1
- <table>
2
- <tr data-hook="analytics_id">
3
- <td><%= label_tag nil, t(:google_analytics_id) %></td>
4
- <td><%= text_field :tracker, :analytics_id, {'style' => 'width:200px;'} %></td>
5
- </tr>
6
- <tr data-hook="environment">
7
- <td><%= label_tag nil, t(:environment) %></td>
8
- <td>
9
- <%= collection_select(:tracker, :environment, Rails.configuration.database_configuration.keys.sort, :to_s, :titleize, {}, {:id => 'tracker-env'}) %>
10
- </td>
11
- </tr>
12
- <tr data-hook="active">
13
- <td><%= label_tag nil, t(:active) %></td>
14
- <td>
15
- <label class="sub">
16
- <%= radio_button(:tracker, :active, true) %>
17
- <%= t(:yes) %>
18
- </label> &nbsp;
19
- <label class="sub">
20
- <%= radio_button(:tracker, :active, false) %>
21
- <%= t(:no) %>
22
- </label>
23
- </td>
24
- </tr>
25
- <tbody data-hook="additional_tracker_fields">
26
- </tbody>
27
- </table>
1
+ <div data-hook="admin_tracker_form_fields">
2
+ <table>
3
+ <tr data-hook="analytics_id">
4
+ <td><%= label_tag nil, t(:google_analytics_id) %></td>
5
+ <td><%= text_field :tracker, :analytics_id, {'style' => 'width:200px;'} %></td>
6
+ </tr>
7
+ <tr data-hook="environment">
8
+ <td><%= label_tag nil, t(:environment) %></td>
9
+ <td>
10
+ <%= collection_select(:tracker, :environment, Rails.configuration.database_configuration.keys.sort, :to_s, :titleize, {}, {:id => 'tracker-env'}) %>
11
+ </td>
12
+ </tr>
13
+ <tr data-hook="active">
14
+ <td><%= label_tag nil, t(:active) %></td>
15
+ <td>
16
+ <label class="sub">
17
+ <%= radio_button(:tracker, :active, true) %>
18
+ <%= t(:yes) %>
19
+ </label> &nbsp;
20
+ <label class="sub">
21
+ <%= radio_button(:tracker, :active, false) %>
22
+ <%= t(:no) %>
23
+ </label>
24
+ </td>
25
+ </tr>
26
+ <tbody data-hook="additional_tracker_fields">
27
+ </tbody>
28
+ </table>
29
+ </div>