spree_backend 4.2.0.rc2 → 4.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (168) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree/backend.js +1 -2
  3. data/app/assets/javascripts/spree/backend/address_states.js +20 -9
  4. data/app/assets/javascripts/spree/backend/admin.js +9 -15
  5. data/app/assets/javascripts/spree/backend/calculator.js +2 -0
  6. data/app/assets/javascripts/spree/backend/checkouts/edit.js +99 -71
  7. data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js +1 -1
  8. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +31 -37
  9. data/app/assets/javascripts/spree/backend/option_value_picker.js +50 -23
  10. data/app/assets/javascripts/spree/backend/product_picker.js +35 -19
  11. data/app/assets/javascripts/spree/backend/promotions.js +32 -27
  12. data/app/assets/javascripts/spree/backend/shipments.js +28 -37
  13. data/app/assets/javascripts/spree/backend/spree-select2.js +33 -14
  14. data/app/assets/javascripts/spree/backend/stock_transfer.js +32 -13
  15. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +30 -43
  16. data/app/assets/javascripts/spree/backend/taxons.js +60 -47
  17. data/app/assets/javascripts/spree/backend/user_picker.js +16 -18
  18. data/app/assets/javascripts/spree/backend/variant_autocomplete.js +23 -22
  19. data/app/assets/stylesheets/spree/backend/components/_badges.scss +1 -1
  20. data/app/assets/stylesheets/spree/backend/components/_tables.scss +2 -2
  21. data/app/assets/stylesheets/spree/backend/global/_mixins.scss +19 -0
  22. data/app/assets/stylesheets/spree/backend/global/_variables.scss +1 -1
  23. data/app/assets/stylesheets/spree/backend/plugins/_flatpickr.scss +94 -76
  24. data/app/assets/stylesheets/spree/backend/plugins/_select2_custom.scss +11 -0
  25. data/app/assets/stylesheets/spree/backend/plugins/select2_bootstrap4.scss +622 -0
  26. data/app/assets/stylesheets/spree/backend/shared/_base.scss +4 -0
  27. data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +3 -1
  28. data/app/controllers/spree/admin/base_controller.rb +2 -0
  29. data/app/controllers/spree/admin/general_settings_controller.rb +1 -1
  30. data/app/controllers/spree/admin/images_controller.rb +3 -3
  31. data/app/controllers/spree/admin/orders/customer_details_controller.rb +1 -1
  32. data/app/controllers/spree/admin/orders_controller.rb +15 -2
  33. data/app/controllers/spree/admin/prices_controller.rb +0 -13
  34. data/app/controllers/spree/admin/products_controller.rb +2 -2
  35. data/app/controllers/spree/admin/states_controller.rb +1 -1
  36. data/app/controllers/spree/admin/stores_controller.rb +7 -14
  37. data/app/controllers/spree/admin/taxons_controller.rb +15 -5
  38. data/app/helpers/spree/admin/base_helper.rb +68 -6
  39. data/app/helpers/spree/admin/navigation_helper.rb +11 -1
  40. data/app/helpers/spree/admin/payments_helper.rb +3 -3
  41. data/app/helpers/spree/admin/stock_movements_helper.rb +2 -0
  42. data/app/views/kaminari/admin-twitter-bootstrap-4/_first_page.html.erb +2 -2
  43. data/app/views/kaminari/admin-twitter-bootstrap-4/_gap.html.erb +2 -2
  44. data/app/views/kaminari/admin-twitter-bootstrap-4/_last_page.html.erb +2 -2
  45. data/app/views/kaminari/admin-twitter-bootstrap-4/_next_page.html.erb +2 -2
  46. data/app/views/kaminari/admin-twitter-bootstrap-4/_page.html.erb +2 -2
  47. data/app/views/kaminari/admin-twitter-bootstrap-4/_paginator.html.erb +2 -2
  48. data/app/views/kaminari/admin-twitter-bootstrap-4/_prev_page.html.erb +2 -2
  49. data/app/views/spree/admin/adjustments/index.html.erb +2 -2
  50. data/app/views/spree/admin/countries/index.html.erb +6 -6
  51. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +48 -46
  52. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +3 -1
  53. data/app/views/spree/admin/customer_returns/edit.html.erb +1 -1
  54. data/app/views/spree/admin/customer_returns/index.html.erb +2 -2
  55. data/app/views/spree/admin/customer_returns/new.html.erb +1 -1
  56. data/app/views/spree/admin/general_settings/edit.html.erb +27 -4
  57. data/app/views/spree/admin/images/edit.html.erb +1 -1
  58. data/app/views/spree/admin/log_entries/index.html.erb +1 -1
  59. data/app/views/spree/admin/option_types/index.html.erb +2 -2
  60. data/app/views/spree/admin/orders/_add_line_item.html.erb +1 -1
  61. data/app/views/spree/admin/orders/_add_product.html.erb +1 -1
  62. data/app/views/spree/admin/orders/_adjustments.html.erb +2 -2
  63. data/app/views/spree/admin/orders/_channel_form.html.erb +18 -0
  64. data/app/views/spree/admin/orders/_form.html.erb +6 -10
  65. data/app/views/spree/admin/orders/_line_items.html.erb +1 -1
  66. data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +5 -8
  67. data/app/views/spree/admin/orders/_order_actions.html.erb +1 -2
  68. data/app/views/spree/admin/orders/_risk_analysis.html.erb +3 -3
  69. data/app/views/spree/admin/orders/_shipment.html.erb +3 -2
  70. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +1 -1
  71. data/app/views/spree/admin/orders/cart.html.erb +1 -1
  72. data/app/views/spree/admin/orders/channel.html.erb +7 -0
  73. data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +35 -12
  74. data/app/views/spree/admin/orders/customer_details/_form.html.erb +3 -3
  75. data/app/views/spree/admin/orders/customer_details/edit.html.erb +1 -1
  76. data/app/views/spree/admin/orders/edit.html.erb +1 -1
  77. data/app/views/spree/admin/orders/index.html.erb +12 -11
  78. data/app/views/spree/admin/payment_methods/_form.html.erb +65 -46
  79. data/app/views/spree/admin/payment_methods/index.html.erb +2 -2
  80. data/app/views/spree/admin/payments/_form.html.erb +2 -3
  81. data/app/views/spree/admin/payments/show.html.erb +1 -2
  82. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +3 -4
  83. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +1 -1
  84. data/app/views/spree/admin/prices/_variant_prices.html.erb +5 -5
  85. data/app/views/spree/admin/prices/index.html.erb +2 -2
  86. data/app/views/spree/admin/product_properties/index.html.erb +3 -4
  87. data/app/views/spree/admin/products/_form.html.erb +8 -9
  88. data/app/views/spree/admin/products/index.html.erb +2 -1
  89. data/app/views/spree/admin/products/new.html.erb +5 -3
  90. data/app/views/spree/admin/products/stock.html.erb +2 -2
  91. data/app/views/spree/admin/promotion_rules/create.js.erb +1 -1
  92. data/app/views/spree/admin/promotions/_actions.html.erb +2 -3
  93. data/app/views/spree/admin/promotions/_form.html.erb +10 -11
  94. data/app/views/spree/admin/promotions/_rules.html.erb +1 -1
  95. data/app/views/spree/admin/promotions/actions/_create_adjustment.html.erb +1 -1
  96. data/app/views/spree/admin/promotions/actions/_create_item_adjustments.html.erb +1 -1
  97. data/app/views/spree/admin/promotions/actions/_create_line_items.html.erb +1 -1
  98. data/app/views/spree/admin/promotions/index.html.erb +7 -5
  99. data/app/views/spree/admin/promotions/rules/_option_value.html.erb +8 -7
  100. data/app/views/spree/admin/promotions/rules/_product.html.erb +1 -1
  101. data/app/views/spree/admin/promotions/rules/_taxon.html.erb +2 -2
  102. data/app/views/spree/admin/promotions/rules/_user.html.erb +1 -1
  103. data/app/views/spree/admin/prototypes/_form.html.erb +1 -1
  104. data/app/views/spree/admin/prototypes/show.html.erb +1 -1
  105. data/app/views/spree/admin/refunds/edit.html.erb +2 -2
  106. data/app/views/spree/admin/refunds/new.html.erb +3 -3
  107. data/app/views/spree/admin/reimbursements/edit.html.erb +5 -4
  108. data/app/views/spree/admin/reimbursements/show.html.erb +3 -1
  109. data/app/views/spree/admin/return_authorizations/_form.html.erb +7 -5
  110. data/app/views/spree/admin/return_authorizations/index.html.erb +2 -2
  111. data/app/views/spree/admin/return_index/customer_returns.html.erb +2 -2
  112. data/app/views/spree/admin/return_index/return_authorizations.html.erb +2 -2
  113. data/app/views/spree/admin/roles/index.html.erb +1 -1
  114. data/app/views/spree/admin/shared/_account_nav.html.erb +3 -3
  115. data/app/views/spree/admin/shared/_address_form.html.erb +9 -9
  116. data/app/views/spree/admin/shared/_error_messages.html.erb +1 -1
  117. data/app/views/spree/admin/shared/_head.html.erb +6 -2
  118. data/app/views/spree/admin/shared/_header.html.erb +0 -2
  119. data/app/views/spree/admin/shared/_main_menu.html.erb +1 -1
  120. data/app/views/spree/admin/shared/_order_summary.html.erb +25 -21
  121. data/app/views/spree/admin/shared/_order_tabs.html.erb +9 -0
  122. data/app/views/spree/admin/shared/_refunds.html.erb +2 -2
  123. data/app/views/spree/admin/shared/_report_order_criteria.html.erb +4 -2
  124. data/app/views/spree/admin/shared/_translations.html.erb +9 -38
  125. data/app/views/spree/admin/shared/_update_order_state.js.erb +6 -2
  126. data/app/views/spree/admin/shared/named_types/_index.html.erb +1 -1
  127. data/app/views/spree/admin/shipping_categories/index.html.erb +2 -2
  128. data/app/views/spree/admin/shipping_methods/_form.html.erb +2 -2
  129. data/app/views/spree/admin/shipping_methods/index.html.erb +7 -3
  130. data/app/views/spree/admin/states/index.html.erb +2 -2
  131. data/app/views/spree/admin/stock_locations/_form.html.erb +2 -2
  132. data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +1 -1
  133. data/app/views/spree/admin/stock_locations/index.html.erb +6 -6
  134. data/app/views/spree/admin/stock_movements/_form.html.erb +1 -1
  135. data/app/views/spree/admin/stock_movements/index.html.erb +2 -2
  136. data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +1 -1
  137. data/app/views/spree/admin/stock_transfers/index.html.erb +42 -37
  138. data/app/views/spree/admin/stock_transfers/new.html.erb +1 -1
  139. data/app/views/spree/admin/stock_transfers/show.html.erb +0 -1
  140. data/app/views/spree/admin/stores/_form.html.erb +83 -25
  141. data/app/views/spree/admin/stores/index.html.erb +15 -8
  142. data/app/views/spree/admin/tax_categories/index.html.erb +3 -3
  143. data/app/views/spree/admin/tax_rates/index.html.erb +8 -8
  144. data/app/views/spree/admin/taxonomies/_js_head.html.erb +1 -2
  145. data/app/views/spree/admin/taxonomies/_list.html.erb +1 -1
  146. data/app/views/spree/admin/taxons/_form.html.erb +38 -35
  147. data/app/views/spree/admin/taxons/_taxon_table.html.erb +2 -2
  148. data/app/views/spree/admin/taxons/index.html.erb +1 -1
  149. data/app/views/spree/admin/users/_addresses_form.html.erb +4 -6
  150. data/app/views/spree/admin/users/_form.html.erb +0 -1
  151. data/app/views/spree/admin/users/edit.html.erb +1 -1
  152. data/app/views/spree/admin/users/index.html.erb +2 -2
  153. data/app/views/spree/admin/users/items.html.erb +1 -1
  154. data/app/views/spree/admin/variants/_form.html.erb +5 -3
  155. data/app/views/spree/admin/zones/_country_members.html.erb +1 -1
  156. data/app/views/spree/admin/zones/_form.html.erb +2 -2
  157. data/app/views/spree/admin/zones/index.html.erb +1 -1
  158. data/app/views/spree/admin/zones/new.html.erb +1 -1
  159. data/app/views/spree/layouts/admin.html.erb +2 -3
  160. data/config/initializers/assets.rb +1 -1
  161. data/config/routes.rb +7 -1
  162. data/spree_backend.gemspec +2 -2
  163. metadata +20 -20
  164. data/app/assets/javascripts/spree/backend/flatpickr_locals.js +0 -37
  165. data/app/assets/javascripts/spree/backend/tag_picker.js +0 -52
  166. data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +0 -190
  167. data/app/helpers/spree/admin/currency_helper.rb +0 -14
  168. data/app/views/spree/admin/general_settings/_form.html.erb +0 -17
@@ -11,11 +11,11 @@
11
11
  <fieldset>
12
12
  <div data-hook="admin_refund_form_fields">
13
13
  <div class="form-group">
14
- <%= f.label :payment_amount, Spree.t(:payment_amount) %><br/>
14
+ <%= f.label :payment_amount, Spree.t(:payment_amount) %><br>
15
15
  <%= @refund.payment.amount %>
16
16
  </div>
17
17
  <div class="form-group">
18
- <%= f.label :credit_allowed, Spree.t(:credit_allowed) %><br/>
18
+ <%= f.label :credit_allowed, Spree.t(:credit_allowed) %><br>
19
19
  <%= @refund.payment.credit_allowed %>
20
20
  </div>
21
21
  <%= f.field_container :amount, class: ['form-group'] do %>
@@ -25,7 +25,7 @@
25
25
  <% end %>
26
26
  <%= f.field_container :reason, class: ['form-group'] do %>
27
27
  <%= f.label :refund_reason_id, Spree.t(:reason) %>
28
- <%= f.collection_select(:refund_reason_id, refund_reasons, :id, :name, {include_blank: true}, {class: 'select2'}) %>
28
+ <%= f.collection_select(:refund_reason_id, refund_reasons, :id, :name, {include_blank: true}, {class: 'select2-clear'}) %>
29
29
  <%= f.error_message_on :reason %>
30
30
  <% end %>
31
31
  </div>
@@ -26,7 +26,9 @@
26
26
  <% return_item = item_fields.object %>
27
27
  <tr>
28
28
  <td>
29
- <div class="variant-name"><%= return_item.inventory_unit.variant.name %></div>
29
+ <div class="variant-name">
30
+ <%= link_to return_item.inventory_unit.variant.name, spree.edit_admin_product_path(return_item.inventory_unit.variant.product) %>
31
+ </div>
30
32
  <div class="variant-options"><%= return_item.inventory_unit.variant.options_text %></div>
31
33
  </td>
32
34
  <td>
@@ -49,7 +51,7 @@
49
51
  <% if return_item.exchange_processed? %>
50
52
  <%= return_item.exchange_variant.exchange_name %>
51
53
  <% else %>
52
- <%= item_fields.collection_select :exchange_variant_id, return_item.eligible_exchange_variants, :id, :exchange_name, { include_blank: true }, { class: "select2 return-item-exchange-selection" } %>
54
+ <%= item_fields.collection_select :exchange_variant_id, return_item.eligible_exchange_variants, :id, :exchange_name, { include_blank: true }, { class: "select2-clear return-item-exchange-selection" } %>
53
55
  <% end %>
54
56
  </td>
55
57
  </tr>
@@ -64,7 +66,7 @@
64
66
  </div>
65
67
  <% end %>
66
68
 
67
- <fieldset class="margint">
69
+ <fieldset class="mt-3">
68
70
  <legend><%= Spree.t(:calculated_reimbursements) %></legend>
69
71
  <div class="table-responsive">
70
72
  <table class="table table-condensed table-bordered">
@@ -91,7 +93,6 @@
91
93
  <%= "#{Spree.t('note')}: #{Spree.t('this_order_has_already_received_a_refund')}. #{Spree.t('make_sure_the_above_reimbursement_amount_is_correct')}." %>
92
94
  </div>
93
95
  <% end %>
94
-
95
96
  <div class="form-actions" data-hook="reimburse-buttons">
96
97
  <% if !@reimbursement.reimbursed? %>
97
98
  <%= button_to [:perform, :admin, @order, @reimbursement], { class: 'btn btn-primary', method: 'post' } do %>
@@ -24,7 +24,9 @@
24
24
  <% @reimbursement.return_items.each do |return_item| %>
25
25
  <tr>
26
26
  <td>
27
- <div class="variant-name"><%= return_item.inventory_unit.variant.name %></div>
27
+ <div class="variant-name">
28
+ <%= link_to return_item.inventory_unit.variant.name, spree.edit_admin_product_path(return_item.inventory_unit.variant.product) %>
29
+ </div>
28
30
  <div class="variant-options"><%= return_item.inventory_unit.variant.options_text %></div>
29
31
  </td>
30
32
  <td>
@@ -33,7 +33,9 @@
33
33
  <% end %>
34
34
  </td>
35
35
  <td>
36
- <div class="variant-name"><%= inventory_unit.variant.name %></div>
36
+ <div class="variant-name">
37
+ <%= link_to return_item.inventory_unit.variant.name, spree.edit_admin_product_path(return_item.inventory_unit.variant.product) %>
38
+ </div>
37
39
  <div class="variant-options"><%= inventory_unit.variant.options_text %></div>
38
40
  </td>
39
41
  <td><%= inventory_unit.state.humanize %></td>
@@ -59,7 +61,7 @@
59
61
  </td>
60
62
  <td>
61
63
  <% if editable %>
62
- <%= item_fields.select :preferred_reimbursement_type_id, @reimbursement_types.collect{|r|[r.name.humanize, r.id]}, {include_blank: true}, {class: 'select2'} %>
64
+ <%= item_fields.select :preferred_reimbursement_type_id, @reimbursement_types.collect{|r|[r.name.humanize, r.id]}, {include_blank: true}, {class: 'select2-clear'} %>
63
65
  <% end %>
64
66
  </td>
65
67
  <td>
@@ -67,7 +69,7 @@
67
69
  <% if return_item.exchange_processed? %>
68
70
  <%= return_item.exchange_variant.exchange_name %>
69
71
  <% else %>
70
- <%= item_fields.collection_select :exchange_variant_id, return_item.eligible_exchange_variants, :id, :exchange_name, { include_blank: true }, { class: "select2 return-item-exchange-selection" } %>
72
+ <%= item_fields.collection_select :exchange_variant_id, return_item.eligible_exchange_variants, :id, :exchange_name, { include_blank: true }, { class: "select2-clear return-item-exchange-selection" } %>
71
73
  <% end %>
72
74
  <% end %>
73
75
  </td>
@@ -82,13 +84,13 @@
82
84
 
83
85
  <%= f.field_container :stock_location, class: ['form-group'] do %>
84
86
  <%= f.label :stock_location, Spree.t(:stock_location) %> <span class="required">*</span>
85
- <%= f.select :stock_location_id, Spree::StockLocation.order_default.active.to_a.collect{|l|[l.name, l.id]}, {include_blank: true}, {class: 'select2', "data-placeholder" => Spree.t(:select_a_stock_location)} %>
87
+ <%= f.select :stock_location_id, Spree::StockLocation.order_default.active.to_a.collect{|l|[l.name, l.id]}, {include_blank: true}, {class: 'select2-clear', "data-placeholder" => Spree.t(:select_a_stock_location)} %>
86
88
  <%= f.error_message_on :stock_location %>
87
89
  <% end %>
88
90
 
89
91
  <%= f.field_container :reason, class: ['form-group'] do %>
90
92
  <%= f.label :reason, Spree.t(:reason) %> <span class="required">*</span>
91
- <%= f.select :return_authorization_reason_id, @reasons.collect{|r|[r.name, r.id]}, {include_blank: true}, {class: 'select2', "data-placeholder" => Spree.t(:select_a_return_authorization_reason)} %>
93
+ <%= f.select :return_authorization_reason_id, @reasons.collect{|r|[r.name, r.id]}, {include_blank: true}, {class: 'select2-clear', "data-placeholder" => Spree.t(:select_a_return_authorization_reason)} %>
92
94
  <%= f.error_message_on :reason %>
93
95
  <% end %>
94
96
 
@@ -27,9 +27,9 @@
27
27
  <tr id="<%= spree_dom_id(return_authorization) %>" data-hook="rma_row">
28
28
  <td><%= return_authorization.number %></td>
29
29
  <td>
30
- <span class="badge badge-<%= return_authorization.state %>">
30
+ <strong class="badge badge-<%= return_authorization.state %> text-uppercase">
31
31
  <%= Spree.t("return_authorization_states.#{return_authorization.state}") %>
32
- </span>
32
+ </strong>
33
33
  </td>
34
34
  <td><%= return_authorization.display_pre_tax_total.to_html %></td>
35
35
  <td><%= pretty_time(return_authorization.created_at) %></td>
@@ -41,9 +41,9 @@
41
41
  <td><%= link_to customer_return.order.number, spree.edit_admin_order_path(customer_return.order) %></td>
42
42
  <td>
43
43
  <% if customer_return.fully_reimbursed? %>
44
- <span class="badge badge-success"><%= Spree.t(:reimbursed) %></span>
44
+ <span class="badge badge-success text-uppercase"><%= Spree.t(:reimbursed) %></span>
45
45
  <% else %>
46
- <span class="badge badge-info"><%= Spree.t(:incomplete) %></span>
46
+ <span class="badge badge-inactive text-uppercase"><%= Spree.t(:incomplete) %></span>
47
47
  <% end %>
48
48
  </td>
49
49
  <td><%= customer_return.display_pre_tax_total.to_html %></td>
@@ -33,7 +33,7 @@
33
33
  <div class="col-12 col-lg-6">
34
34
  <div class="form-group">
35
35
  <%= label_tag :q_state_eq, Spree.t(:status) %>
36
- <%= f.select :state_eq, Spree::ReturnAuthorization.state_machines[:state].states.collect {|s| [Spree.t("return_authorization_states.#{s.name}"), s.value]}, {include_blank: true}, class: 'select2 js-filterable' %>
36
+ <%= f.select :state_eq, Spree::ReturnAuthorization.state_machines[:state].states.collect {|s| [Spree.t("return_authorization_states.#{s.name}"), s.value]}, {include_blank: true}, class: 'select2-clear js-filterable' %>
37
37
  </div>
38
38
  </div>
39
39
  </div>
@@ -63,7 +63,7 @@
63
63
  <td><%= link_to return_authorization.number, spree.edit_admin_order_return_authorization_path(return_authorization.order, return_authorization) %></td>
64
64
  <td><%= link_to return_authorization.order.number, spree.edit_admin_order_path(return_authorization.order) %></td>
65
65
  <td>
66
- <span class="badge badge-<%= return_authorization.state %>"><%= Spree.t("return_authorization_states.#{return_authorization.state}") %></span>
66
+ <span class="badge badge-<%= return_authorization.state %> text-uppercase"><%= Spree.t("return_authorization_states.#{return_authorization.state}") %></span>
67
67
  </td>
68
68
  <td class="actions actions-1 text-right">
69
69
  <%= link_to_edit return_authorization, url: spree.edit_admin_order_return_authorization_path(return_authorization.order, return_authorization), no_text: true if can?(:edit, return_authorization) %>
@@ -16,7 +16,7 @@
16
16
  </tr>
17
17
  </thead>
18
18
  <tbody>
19
- <% @roles.each do |role|%>
19
+ <% @roles.each do |role| %>
20
20
  <tr id="<%= spree_dom_id role %>" data-hook="admin_roles_index_rows">
21
21
  <td><%= role.name %></td>
22
22
  <td class="actions text-right">
@@ -5,7 +5,7 @@
5
5
  <%= svg_icon name: "user.svg", width: '24', height: '24' %>
6
6
  </button>
7
7
 
8
- <div class="dropdown-menu dropdown-menu-right mt-2 p-0 mr-2">
8
+ <div class="dropdown-menu dropdown-menu-right overflow-hidden mt-2 p-0 mr-2">
9
9
  <div class="dropdown-item px-0 text-center bg-light">
10
10
  <span class="d-block text-dark py-2 px-4"><%= try_spree_current_user.email %></span>
11
11
  </div>
@@ -27,8 +27,8 @@
27
27
  <% end %>
28
28
  <% end %>
29
29
 
30
- <% if defined?(spree_logout_path) %>
31
- <%= link_to spree_logout_path, class: 'd-block text-dark py-3 px-4 dropdown-item' do %>
30
+ <% if admin_logout_link %>
31
+ <%= link_to admin_logout_link, class: 'd-block text-dark py-3 px-4 dropdown-item' do %>
32
32
  <%= svg_icon name: "exit.svg", width: '18', height: '18' %>
33
33
  &nbsp;
34
34
  <%= Spree.t(:logout) %>
@@ -4,25 +4,25 @@
4
4
  <% if field == "country" %>
5
5
  <%= field_container (s_or_b + '_' + field), nil, class: ["form-group", "#{type}-row"] do %>
6
6
  <%= f.label :country_id, Spree.t(:country) %>
7
- <span id="<%= s_or_b %>country">
8
- <%= f.collection_select :country_id, available_countries, :id, :name, {}, { class: 'select2' } %>
9
- </span>
7
+ <div id="<%= s_or_b %>country">
8
+ <%= f.collection_select :country_id, available_countries, :id, :name, {}, { class: 'select2 w-100' } %>
9
+ </div>
10
10
  <% end %>
11
11
  <% elsif field == "state" %>
12
12
  <%= field_container (s_or_b + '_' + field), :state, class: ["form-group", "#{type}-row"] do %>
13
13
  <%= f.label :state_id, Spree.t(:state) %>
14
- <span id="<%= s_or_b %>state">
14
+ <div id="<%= s_or_b %>state">
15
15
  <% if f.object.country.try(:states) %>
16
16
  <%= f.text_field :state_name,
17
17
  style: "display: #{f.object.country.try(:states) && f.object.country.states.empty? ? 'block' : 'none' };",
18
18
  disabled: !(f.object.country.try(:states) && f.object.country.states.empty?), class: 'form-control state_name' %>
19
- <%= f.collection_select :state_id, f.object.country.states.sort, :id, :name, { include_blank: true }, { class: 'select2', style: "display: #{ f.object.country.states.empty? ? 'none' : 'block' };", disabled: f.object.country.states.empty? } %>
19
+ <%= f.collection_select :state_id, f.object.country.states.sort, :id, :name, { include_blank: true }, { class: 'select2 w-100', disabled: f.object.country.states.empty? } %>
20
20
  <% else %>
21
21
  <div>
22
22
  <em><%= Spree.t(:no_country) %></em>
23
23
  </div>
24
24
  <% end %>
25
- </span>
25
+ </div>
26
26
  <%= error_message_on f.object, :state_id %>
27
27
  <% end %>
28
28
  <% else %>
@@ -36,9 +36,9 @@
36
36
  </div>
37
37
 
38
38
  <% content_for :head do %>
39
- <%= javascript_tag do %>
39
+ <script>
40
40
  $(document).ready(function(){
41
- $('span#<%= s_or_b %>country .select2').on('change', function() { update_state('<%= s_or_b %>'); });
41
+ $('#<%= s_or_b %>country select').on('change', function() { update_state('<%= s_or_b %>'); });
42
42
  });
43
- <% end %>
43
+ </script>
44
44
  <% end %>
@@ -1,7 +1,7 @@
1
1
  <% if target && target.errors.any? %>
2
2
  <div id="errorExplanation" class="errorExplanation alert alert-danger" data-hook>
3
3
  <p>
4
- <strong><%= Spree.t(:errors_prohibited_this_record_from_being_saved, count: target.errors.size) %>:</strong><br/>
4
+ <strong><%= Spree.t(:errors_prohibited_this_record_from_being_saved, count: target.errors.size) %>:</strong><br>
5
5
  </p>
6
6
  <ul class="ul-with-markup">
7
7
  <% target.errors.full_messages.each do |msg| %>
@@ -19,9 +19,13 @@
19
19
  <%= javascript_include_tag 'spree/backend/all' %>
20
20
  <%= render "spree/admin/shared/translations" %>
21
21
 
22
- <%= javascript_tag do %>
22
+ <script>
23
23
  <%== "var AUTH_TOKEN = #{form_authenticity_token.inspect};" %>
24
24
  <%== "Spree.api_key = '#{try_spree_current_user.spree_api_key}';" if try_spree_current_user %>
25
- <% end %>
25
+ <%== "var ADDRESS_FIELDS = #{Spree::Address::ADDRESS_FIELDS}" %>
26
+ <% if Rails.env.test? %>
27
+ jQuery.fx.off = false
28
+ <% end %>
29
+ </script>
26
30
 
27
31
  <%= yield :head %>
@@ -1,5 +1,4 @@
1
1
  <header class="header logged-in">
2
-
3
2
  <nav class="navbar fixed-top navbar-dark align-items-middle">
4
3
  <div class="col-3 col-sm-4 p-0 d-lg-none">
5
4
  <button
@@ -23,5 +22,4 @@
23
22
  <%= render partial: 'spree/admin/shared/account_nav' %>
24
23
  </div>
25
24
  </nav>
26
-
27
25
  </header>
@@ -30,7 +30,7 @@
30
30
 
31
31
  <% if can? :admin, Spree::Admin::ReportsController %>
32
32
  <ul class="nav nav-sidebar border-bottom" id="sidebarReport">
33
- <%= tab *Spree::BackendConfiguration::REPORT_TABS, icon: 'report.svg' %>
33
+ <%= tab *Spree::BackendConfiguration::REPORT_TABS, icon: 'report.svg' %>
34
34
  </ul>
35
35
  <% end %>
36
36
 
@@ -10,7 +10,7 @@
10
10
  <strong><%= Spree.t(:status) %>:</strong>
11
11
  </td>
12
12
  <td>
13
- <span class="state badge badge-<%= @order.state %>">
13
+ <span class="state badge badge-<%= @order.state %> text-uppercase">
14
14
  <%= Spree.t(@order.state, scope: :order_state) %>
15
15
  </span>
16
16
  </td>
@@ -71,26 +71,30 @@
71
71
  </tr>
72
72
 
73
73
  <% if @order.completed? %>
74
- <tr>
75
- <td>
76
- <strong><%= Spree.t(:shipment) %>:</strong>
77
- </td>
78
- <td id='shipment_status'>
79
- <span class="state badge badge-<%= @order.shipment_state %>">
80
- <%= Spree.t(@order.shipment_state, scope: :shipment_states, default: [:missing, "none"]) %>
81
- </span>
82
- </td>
83
- </tr>
84
- <tr>
85
- <td>
86
- <strong><%= Spree.t(:payment) %>:</strong>
87
- </td>
88
- <td id='payment_status'>
89
- <span class="state badge badge-<%= @order.payment_state %>">
90
- <%= Spree.t(@order.payment_state, scope: :payment_states, default: [:missing, "none"]) %>
91
- </span>
92
- </td>
93
- </tr>
74
+ <% if @order.shipment_state.present? %>
75
+ <tr>
76
+ <td>
77
+ <strong><%= Spree.t(:shipment) %>:</strong>
78
+ </td>
79
+ <td id='shipment_status'>
80
+ <span class="state badge badge-<%= @order.shipment_state %> text-uppercase">
81
+ <%= Spree.t(@order.shipment_state, scope: :shipment_states, default: [:missing, "none"]) %>
82
+ </span>
83
+ </td>
84
+ </tr>
85
+ <% end %>
86
+ <% if @order.payment_state.present? %>
87
+ <tr>
88
+ <td>
89
+ <strong><%= Spree.t(:payment) %>:</strong>
90
+ </td>
91
+ <td id='payment_status'>
92
+ <span class="state badge badge-<%= @order.payment_state %> text-uppercase">
93
+ <%= Spree.t(@order.payment_state, scope: :payment_states, default: [:missing, "none"]) %>
94
+ </span>
95
+ </td>
96
+ </tr>
97
+ <% end %>
94
98
  <tr>
95
99
  <td data-hook='admin_order_tab_date_completed_title'>
96
100
  <strong><%= Spree.t(:date_completed) %>:</strong>
@@ -23,6 +23,15 @@
23
23
  </li>
24
24
  <% end %>
25
25
 
26
+ <% if can? :update, @order %>
27
+ <li data-hook='admin_order_tabs_channel_details'>
28
+ <%= link_to_with_icon 'split.svg',
29
+ Spree.t(:channel),
30
+ channel_admin_order_url(@order),
31
+ class: "#{'active' if current == :channel} nav-link" %>
32
+ </li>
33
+ <% end %>
34
+
26
35
  <% if can?(:update, @order) && @order.checkout_steps.include?("address") %>
27
36
  <li data-hook='admin_order_tabs_customer_details'>
28
37
  <%= link_to_with_icon 'user.svg',
@@ -15,9 +15,9 @@
15
15
  </thead>
16
16
  <tbody>
17
17
  <% refunds.each do |refund| %>
18
- <tr id="<%= dom_id(refund) %>" data-hook="refunds_row" class="<%= cycle('odd', 'even', name: 'refund_table_cycle')%>">
18
+ <tr id="<%= dom_id(refund) %>" data-hook="refunds_row" class="<%= cycle('odd', 'even', name: 'refund_table_cycle') %>">
19
19
  <td><%= pretty_time(refund.created_at) %></td>
20
- <td><%= refund.payment.number %></td>
20
+ <td><%= link_to refund.payment.number, spree.admin_order_payment_path(refund.payment.order, refund.payment) %></td>
21
21
  <td class="amount"><%= refund.display_amount %></td>
22
22
  <td><%= payment_method_name(refund.payment) %></td>
23
23
  <td><%= refund.transaction_id %></td>
@@ -5,7 +5,8 @@
5
5
  <div class="col-12 col-md-6 mb-3 mb-md-0">
6
6
  <div class="input-group datePickerFrom"
7
7
  data-wrap="true"
8
- data-max-date="<%= params[:q][:completed_at_lt] %>" >
8
+ data-alt-format="<%= Spree.t(:fpr_human_friendly_date_format, scope: 'date_picker', default: 'M j, Y') %>"
9
+ data-max-date="<%= params[:q][:completed_at_lt] %>">
9
10
  <%= s.text_field :completed_at_gt,
10
11
  class: 'form-control shadow-none',
11
12
  placeholder: Spree.t(:starting_from),
@@ -19,7 +20,8 @@
19
20
  <div class="col-12 col-md-6 mt-3 mt-md-0">
20
21
  <div class="input-group datePickerTo"
21
22
  data-wrap="true"
22
- data-min-date="<%= params[:q][:completed_at_gt] %>" >
23
+ data-alt-format="<%= Spree.t(:fpr_human_friendly_date_format, scope: 'date_picker', default: 'M j, Y') %>"
24
+ data-min-date="<%= params[:q][:completed_at_gt] %>">
23
25
 
24
26
  <%= s.text_field :completed_at_lt,
25
27
  class: 'form-control shadow-none',
@@ -10,40 +10,6 @@
10
10
  confirm_delete: Spree.t(:confirm_delete),
11
11
  currency_separator: I18n.t('number.currency.format.separator'),
12
12
  cut: Spree.t(:cut),
13
-
14
- date_picker: Spree.t(:js_format, scope: 'date_picker', default: 'yy/mm/dd'),
15
- firstDay: Spree.t(:first_day, scope: 'date_picker', default: (0).to_i),
16
- rangeSep: Spree.t(:rangeSeparator, scope: 'date_picker', default: ' to '),
17
- weekAbbr: Spree.t(:weekAbbreviation, scope: 'date_picker', default: 'Wk'),
18
- scrollTitle: Spree.t(:scrollTitle, scope: 'date_picker', default: 'Scroll to increment'),
19
- toggleTitle: Spree.t(:toggleTitle, scope: 'date_picker', default: 'Click to toggle'),
20
- am: Spree.t(:am, scope: 'date_picker', default: 'AM'),
21
- pm: Spree.t(:pm, scope: 'date_picker', default: 'PM'),
22
- yearAriaLabel: Spree.t(:yearAriaLabel, scope: 'date_picker', default: 'Year'),
23
- hourAriaLabel: Spree.t(:hourAriaLabel, scope: 'date_picker', default: 'Hour'),
24
- minuteAriaLabel: Spree.t(:minuteAriaLabel, scope: 'date_picker', default: 'Minute'),
25
-
26
- sun: Spree.t(:sun, scope: 'date_picker', default: 'Sun'),
27
- mon: Spree.t(:mon, scope: 'date_picker', default: 'Mon'),
28
- tue: Spree.t(:tue, scope: 'date_picker', default: 'Tue'),
29
- wed: Spree.t(:wed, scope: 'date_picker', default: 'Wed'),
30
- thu: Spree.t(:thu, scope: 'date_picker', default: 'Thu'),
31
- fri: Spree.t(:fri, scope: 'date_picker', default: 'Fri'),
32
- sat: Spree.t(:sat, scope: 'date_picker', default: 'Sat'),
33
-
34
- lh_jan: Spree.t(:lh_jan, scope: 'date_picker', default: 'January'),
35
- lh_feb: Spree.t(:lh_feb, scope: 'date_picker', default: 'February'),
36
- lh_mar: Spree.t(:lh_mar, scope: 'date_picker', default: 'March'),
37
- lh_apr: Spree.t(:lh_apr, scope: 'date_picker', default: 'April'),
38
- lh_may: Spree.t(:lh_may, scope: 'date_picker', default: 'May'),
39
- lh_jun: Spree.t(:lh_jun, scope: 'date_picker', default: 'June'),
40
- lh_jul: Spree.t(:lh_jul, scope: 'date_picker', default: 'July'),
41
- lh_aug: Spree.t(:lh_aug, scope: 'date_picker', default: 'August'),
42
- lh_sep: Spree.t(:lh_sep, scope: 'date_picker', default: 'September'),
43
- lh_oct: Spree.t(:lh_oct, scope: 'date_picker', default: 'October'),
44
- lh_nov: Spree.t(:lh_nov, scope: 'date_picker', default: 'November'),
45
- lh_dec: Spree.t(:lh_dec, scope: 'date_picker', default: 'December'),
46
-
47
13
  destroy: Spree.t(:destroy, scope: :actions),
48
14
  edit: Spree.t(:edit, scope: :actions),
49
15
  find_a_taxon: Spree.t(:find_a_taxon),
@@ -64,6 +30,7 @@
64
30
  save: Spree.t(:save, scope: :actions),
65
31
  searching: Spree.t(:searching),
66
32
  server_error: Spree.t(:server_error),
33
+ select_an_option: Spree.t(:select_an_option),
67
34
  sku: Spree.t(:sku),
68
35
  type_to_search: Spree.t(:type_to_search),
69
36
  taxon_placeholder: Spree.t(:taxon_placeholder),
@@ -71,11 +38,15 @@
71
38
  tags_placeholder: Spree.t(:tags_placeholder),
72
39
  tracking: Spree.t(:tracking),
73
40
  variant_placeholder: Spree.t(:variant_placeholder),
74
- value: Spree.t(:value)
41
+ value: Spree.t(:value),
42
+
43
+ # Substitute - for _ converting zh-tw to zh_tw
44
+ # Flatpickr not making things easy here.
45
+ flatpickr_locale: "#{flatpickr_local_fallback.sub("-", "_")}"
46
+
75
47
  }.to_json
76
48
  %>
77
49
  </script>
78
50
 
79
- <% if I18n.locale != :en %>
80
- <%= javascript_include_tag "select2_locale_#{I18n.locale}" %>
81
- <% end %>
51
+ <%= javascript_include_tag "select2_locale_#{select2_local_fallback}" %>
52
+ <%= javascript_include_tag "flatpickr/l10n/#{flatpickr_local_fallback}" %>