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
@@ -12,7 +12,8 @@
12
12
  <thead>
13
13
  <th><%= Spree.t(:name) %></th>
14
14
  <th><%= Spree.t(:url) %></th>
15
- <th><%= Spree.t(:currency) %></th>
15
+ <th><%= Spree.t(:supported_currencies) %></th>
16
+ <th><%= Spree.t(:supported_locales) %></th>
16
17
  <th><%= Spree.t(:default) %>?</th>
17
18
  <th data-hook="admin_stores_index_header_actions" class="actions"></th>
18
19
  <thead>
@@ -20,21 +21,27 @@
20
21
  <% @stores.each do |store| %>
21
22
  <tr>
22
23
  <td><%= store.unique_name %></td>
23
- <td><%= link_to store.url, 'https://' + store.url, target: :blank %></td>
24
- <td><%= store.default_currency %></td>
25
- <td><%= store.default ? "<strong>#{Spree.t(:say_yes)}</strong>".html_safe : Spree.t(:say_no) %>
24
+ <td><%= link_to store.url, store.formatted_url, target: :blank %></td>
25
+ <td><%= store.supported_currencies_list.map(&:iso_code).join(', ') %></td>
26
+ <td><%= store.supported_locales_list.map {|l| locale_presentation(l).first }.join(', ') %></td>
27
+ <td><%= active_badge(store.default) %></td>
26
28
  <td class="actions actions-2 text-right" data-hook="admin_stores_index_row_actions">
27
- <% if can?(:edit, store) && !store.default %>
28
- <%= link_to_with_icon('save.svg', Spree.t(:store_set_default_button), spree.set_default_admin_store_path(store), no_text: true, method: :put, class: 'btn btn-warning btn-sm with-tip') %>
29
- <% end %>
30
29
  <%= link_to_edit_url spree.edit_admin_store_path(store), no_text: true if can?(:edit, store) %>
30
+
31
+ <% if can?(:edit, store) %>
32
+ <% btn_url = store.default? ? '#' : spree.set_default_admin_store_path(store) %>
33
+ <% btn_class = store.default? ? 'outline-secondary disabled' : 'warning' %>
34
+ <% btn_label = store.default? ? nil : Spree.t(:store_set_default_button) %>
35
+ <%= link_to_with_icon('save.svg', btn_label, btn_url, no_text: true, method: (store.default? ? nil : :put), class: "btn btn-#{btn_class} btn-sm with-tip", aria: {disabled: store.default?}) %>
36
+ <% end %>
37
+
31
38
  <%= link_to_delete store, no_text: true, url: spree.admin_store_path(store) if can?(:destroy, store) %>
32
39
  </td>
33
40
  </tr>
34
41
  <% end %>
35
42
  </tbody>
36
43
  </table>
37
- </div>
44
+ </div>
38
45
  <% else %>
39
46
  <div class="alert alert-info no-objects-found">
40
47
  <%= Spree.t(:no_resource_found, resource: plural_resource_name(Spree::StoreCredit)) %>
@@ -21,13 +21,13 @@
21
21
  <tbody>
22
22
  <% @tax_categories.each do |tax_category|
23
23
  @edit_url = edit_admin_tax_category_path(tax_category)
24
- @delete_url = admin_tax_category_path(tax_category)
25
- %>
24
+ @delete_url = admin_tax_category_path(tax_category) %>
25
+
26
26
  <tr id="<%= spree_dom_id tax_category %>" data-hook="tax_row">
27
27
  <td><%= tax_category.name %></td>
28
28
  <td><%= tax_category.tax_code %></td>
29
29
  <td><%= tax_category.description %></td>
30
- <td><%= tax_category.is_default? ? Spree.t(:say_yes) : Spree.t(:say_no) %></td>
30
+ <td><%= active_badge(tax_category.is_default?) %></td>
31
31
  <td class="actions actions-2 text-right">
32
32
  <%= link_to_edit(tax_category, no_text: true) if can? :edit, tax_category %>
33
33
  <%= link_to_delete(tax_category, no_text: true) if can? :delete, tax_category %>
@@ -22,15 +22,15 @@
22
22
  </tr>
23
23
  </thead>
24
24
  <tbody>
25
- <% @tax_rates.each do |tax_rate|%>
25
+ <% @tax_rates.each do |tax_rate| %>
26
26
  <tr id="<%= spree_dom_id tax_rate %>" data-hook="rate_row">
27
- <td><%=tax_rate.zone.try(:name) || Spree.t(:not_available) %></td>
28
- <td><%=tax_rate.name %></td>
29
- <td><%=tax_rate.tax_category.try(:name) || Spree.t(:not_available) %></td>
30
- <td><%=tax_rate.amount %></td>
31
- <td><%=tax_rate.included_in_price? ? Spree.t(:say_yes) : Spree.t(:say_no) %></td>
32
- <td><%=tax_rate.show_rate_in_label? ? Spree.t(:say_yes) : Spree.t(:say_no) %></td>
33
- <td><%=tax_rate.calculator.to_s %></td>
27
+ <td><%= tax_rate.zone.try(:name) || Spree.t(:not_available) %></td>
28
+ <td><%= tax_rate.name %></td>
29
+ <td><%= tax_rate.tax_category.try(:name) || Spree.t(:not_available) %></td>
30
+ <td><%= tax_rate.amount %></td>
31
+ <td><%= active_badge(tax_rate.included_in_price?) %></td>
32
+ <td><%= active_badge(tax_rate.show_rate_in_label?) %></td>
33
+ <td><%= tax_rate.calculator.to_s %></td>
34
34
  <td class="actions actions-2 text-right">
35
35
  <%= link_to_edit(tax_rate, no_text: true) if can? :edit, tax_rate %>
36
36
  <%= link_to_delete(tax_rate, no_text: true) if can? :delete, tax_rate %>
@@ -3,6 +3,5 @@
3
3
  $(document).ready(function(){
4
4
  setup_taxonomy_tree(taxonomy_id);
5
5
  });
6
- "
7
- %>
6
+ " %>
8
7
  <% end %>
@@ -9,7 +9,7 @@
9
9
  </thead>
10
10
  <tbody id="sortVert">
11
11
  <% @taxonomies.each do |taxonomy| %>
12
- <tr id="<%= spree_dom_id taxonomy %>" data-hook="taxonomies_row" >
12
+ <tr id="<%= spree_dom_id taxonomy %>" data-hook="taxonomies_row">
13
13
  <td class="move-handle">
14
14
  <%= svg_icon name: "sort.svg", width: '18', height: '18' %>
15
15
  </td>
@@ -1,43 +1,46 @@
1
1
  <div data-hook="admin_inside_taxon_form">
2
- <div class="row">
3
- <div class="col-12 col-md-5">
4
- <%= f.field_container :name, class: ['form-group'] do %>
5
- <%= f.label :name, Spree.t(:name) %> <span class="required">*</span>
6
- <%= text_field :taxon, :name, class: 'form-control' %>
7
- <%= f.error_message_on :name, class: 'error-message' %>
8
- <% end %>
2
+ <%= f.field_container :name, class: ['form-group'] do %>
3
+ <%= f.label :name, raw(Spree.t(:name) + required_span_tag) %>
4
+ <%= text_field :taxon, :name, class: 'form-control' %>
5
+ <%= f.error_message_on :name, class: 'error-message' %>
6
+ <% end %>
9
7
 
10
- <%= f.field_container :permalink, class: ['form-group'] do %>
11
- <%= label_tag :permalink_part, Spree.t(:permalink) %> <span class="required">*</span>
12
- <%= text_field_tag :permalink_part, @permalink_part, class: 'form-control', required: true %>
13
- <small class="form-text text-muted" id="permalink_part_display">
14
- <%= @taxon.permalink.split('/')[0...-1].join('/') + '/' %>
15
- </small>
16
- <% end %>
8
+ <%= f.field_container :permalink, class: ['form-group'] do %>
9
+ <%= label_tag :permalink_part, raw(Spree.t(:permalink) + required_span_tag) %>
10
+ <div class="input-group mb-3">
11
+ <div class="input-group-prepend">
12
+ <span class="input-group-text" id="basic-addon3">
13
+ <%= [current_store.formatted_url, 't', @parent_permalink].join('/') %>
14
+ </span>
15
+ </div>
16
+ <%= text_field_tag :permalink_part, @permalink_part, class: 'form-control', required: true %>
17
+ </div>
18
+ <% end %>
17
19
 
18
- <%= f.field_container :hide_from_nav, class: ['form-group'] do %>
19
- <%= f.label :hide_from_nav do %>
20
- <%= Spree.t(:hide_from_subcategories_nav) %>
21
- <br>
22
- <%= f.check_box :hide_from_nav, { checked: @taxon.hide_from_nav } %>
23
- <small><%= Spree.t(:say_yes) %></small>
24
- <% end %>
25
- <% end %>
20
+ <%= f.field_container :hide_from_nav, class: ['form-group'] do %>
21
+ <%= f.label :hide_from_nav do %>
22
+ <%= Spree.t(:hide_from_subcategories_nav) %>
23
+ <br>
24
+ <%= f.check_box :hide_from_nav, { checked: @taxon.hide_from_nav } %>
25
+ <small><%= Spree.t(:say_yes) %></small>
26
+ <% end %>
27
+ <% end %>
26
28
 
27
- <%= f.field_container :icon, class: ['form-group'] do %>
28
- <%= f.label :icon, Spree.t(:header_banner) %>
29
- <%= image_tag(main_app.url_for(@taxon.icon.try(:attachment)), class: 'w-100') if @taxon.icon %>
30
- <%= f.file_field :icon %>
31
- <% end %>
32
- </div>
29
+ <%= f.field_container :icon, class: ['form-group'] do %>
30
+ <%= f.label :icon, Spree.t(:header_banner) %>
31
+ <%= image_tag(main_app.url_for(@taxon.icon.try(:attachment)), class: 'w-100') if @taxon.icon %>
32
+ <%= f.file_field :icon %>
33
+ <% if @taxon.icon.present? %>
34
+ <%= link_to Spree.t(:remove_image),
35
+ remove_icon_admin_taxonomy_taxon_url(@taxonomy.id, @taxon.id),
36
+ method: :delete %>
37
+ <% end %>
38
+ <% end %>
33
39
 
34
- <div class="col-12 col-md-7">
35
- <%= f.field_container :description, class: ['form-group'] do %>
36
- <%= f.label :description, Spree.t(:description) %>
37
- <%= f.text_area :description, class: 'form-control', rows: 6 %>
38
- <% end %>
39
- </div>
40
- </div>
40
+ <%= f.field_container :description, class: ['form-group'] do %>
41
+ <%= f.label :description, Spree.t(:description) %>
42
+ <%= f.text_area :description, class: 'form-control', rows: 6 %>
43
+ <% end %>
41
44
 
42
45
  <%= f.field_container :meta_title, class: ['form-group'] do %>
43
46
  <%= f.label :meta_title, Spree.t(:meta_title) %>
@@ -8,12 +8,12 @@
8
8
  </tr>
9
9
  </thead>
10
10
  <tbody>
11
- <% taxons.each do |taxon| %>
11
+ <% taxons.each do |taxonp| %>
12
12
  <tr id="<%= spree_dom_id(taxon) %>" data-hook="taxons_row">
13
13
  <td><%= taxon.name %></td>
14
14
  <td><%= taxon_path taxon %></td>
15
15
  <td class="actions">
16
- <%= link_to_delete taxon, url: remove_admin_product_taxon_url(@product, taxon), name: icon('delete.svg) + ' ' + Spree.t(:remove) %>
16
+ <%= link_to_delete taxon, url: remove_admin_product_taxon_url(@product, taxon), name: icon('delete.svg') + ' ' + Spree.t(:remove) %>
17
17
  </td>
18
18
  </tr>
19
19
  <% end %>
@@ -4,7 +4,7 @@
4
4
 
5
5
  <div class="taxon-products-view">
6
6
  <div class="form-group">
7
- <%= text_field_tag :taxon_id %>
7
+ <%= select_tag :taxon_id, nil, class: 'd-block w-100' %>
8
8
  </div>
9
9
 
10
10
  <ul id="taxon_products" class="taxon row"></ul>
@@ -25,12 +25,10 @@
25
25
  </div>
26
26
 
27
27
  <div class="card-body">
28
- <p class="field checkbox" data-hook="use_billing">
29
- <%= label_tag :use_billing, id: 'use_billing' do %>
30
- <% checked = @user.bill_address.nil? ? false : @user.bill_address == @user.ship_address %>
31
- <%= check_box_tag 'user[use_billing]', '1', checked %>
32
- <%= Spree.t(:use_billing_address) %>
33
- <% end %>
28
+ <p class="form-group" data-hook="use_billing">
29
+ <% checked = @user.bill_address.nil? ? false : @user.bill_address == @user.ship_address %>
30
+ <%= check_box_tag 'user[use_billing]', '1', checked, class: 'checkbox' %>
31
+ <%= label_tag :use_billing, Spree.t(:use_billing_address), for: 'user_use_billing', id: 'use_billing', class: 'form-check-label' %>
34
32
  </p>
35
33
  <%= f.fields_for :ship_address, (@user.ship_address || Spree::Address.default(@user, "ship")) do |sa_form| %>
36
34
  <% sa_form.object ||= Spree::Address.new(country: Spree::Country.new) %>
@@ -17,7 +17,6 @@
17
17
  </div>
18
18
  <% end %>
19
19
  </div>
20
-
21
20
  </div>
22
21
 
23
22
  <div data-hook="admin_user_form_password_fields" class="col-12 col-md-6">
@@ -49,7 +49,7 @@
49
49
  <%= button Spree.t('clear_key', scope: 'api'), 'delete.svg', 'submit', class: "btn-danger" %>
50
50
  <% end %>
51
51
 
52
- <span class="or"><%= Spree.t(:or)%></span>
52
+ <span class="or"><%= Spree.t(:or) %></span>
53
53
 
54
54
  <%= form_tag spree.generate_api_key_admin_user_path(@user), method: :put do %>
55
55
  <%= button Spree.t('regenerate_key', scope: 'api'), 'recycle.svg' %>
@@ -56,9 +56,9 @@
56
56
  </tr>
57
57
  </thead>
58
58
  <tbody>
59
- <% @users.each do |user|%>
59
+ <% @users.each do |user| %>
60
60
  <tr id="<%= spree_dom_id user %>" data-hook="admin_users_index_rows">
61
- <td class='user_email'><%=link_to user.email, edit_admin_user_url(user) %></td>
61
+ <td class='user_email'><%= link_to user.email, edit_admin_user_url(user) %></td>
62
62
  <td data-hook="admin_users_index_row_actions" class="actions actions-2 text-right">
63
63
  <%= link_to_edit user, no_text: true if can?(:edit, user) %>
64
64
  <%= link_to_delete user, no_text: true if can?(:delete, user) %>
@@ -31,7 +31,7 @@
31
31
  </td>
32
32
  <td class="item-name">
33
33
  <%= item.name %>
34
- <br />
34
+ <br>
35
35
  <%= "(#{item.options_text})" if item.options_text.present? %>
36
36
  <% if item.sku.present? %>
37
37
  <strong><%= Spree.t(:sku) %>:</strong> <%= item.variant.sku %>
@@ -6,10 +6,10 @@
6
6
  <%= label :new_variant, option_type.presentation %>
7
7
  <% if option_type.name == 'color' %>
8
8
  <%= f.collection_select 'option_value_ids', option_type.option_values, :id, :name,
9
- { include_blank: true }, { name: 'variant[option_value_ids][]', class: 'select2' } %>
9
+ { include_blank: true }, { name: 'variant[option_value_ids][]', class: 'select2-clear', id: "option_value_ids-#{option_type.id}" } %>
10
10
  <% else %>
11
11
  <%= f.collection_select 'option_value_ids', option_type.option_values, :id, :presentation,
12
- { include_blank: true }, { name: 'variant[option_value_ids][]', class: 'select2' } %>
12
+ { include_blank: true }, { name: 'variant[option_value_ids][]', class: 'select2-clear', id: "option_value_ids-#{option_type.id}" } %>
13
13
  <% end %>
14
14
  </div>
15
15
  <% end %>
@@ -42,7 +42,9 @@
42
42
  <div class="form-group" data-hook="discontinue_on">
43
43
  <%= f.label :discontinue_on, Spree.t(:discontinue_on) %>
44
44
  <%= f.error_message_on :discontinue_on %>
45
- <div class="input-group datepicker" data-wrap="true" >
45
+ <div class="input-group datepicker"
46
+ data-wrap="true"
47
+ data-alt-format="<%= Spree.t(:fpr_human_friendly_date_format, scope: 'date_picker', default: 'M j, Y') %>">
46
48
  <%= f.text_field :discontinue_on,
47
49
  value: datepicker_field_value(@variant.discontinue_on),
48
50
  placeholder: Spree.t(:select_a_date),
@@ -12,5 +12,5 @@
12
12
  <%= zone_form.collection_select :country_ids, @countries, :id, :name, {}, { multiple: true, class: "select2" } %>
13
13
  <% end %>
14
14
  </div>
15
- </div>
15
+ </div>
16
16
  </div>
@@ -2,7 +2,7 @@
2
2
  <div class="col-12 col-lg-6" data-hook="admin_zone_form_fields">
3
3
  <div class="card mb-3">
4
4
  <div class="card-header">
5
- <h1 class="card-title mb-0 h5"><%= Spree.t(:general_settings)%></h1>
5
+ <h1 class="card-title mb-0 h5"><%= Spree.t(:general_settings) %></h1>
6
6
  </div>
7
7
 
8
8
  <div class="card-body">
@@ -43,7 +43,7 @@
43
43
  </div>
44
44
  </div>
45
45
  <div class="col-12 col-lg-6">
46
- <%= render partial: 'state_members', locals: { zone_form: zone_form }%>
46
+ <%= render partial: 'state_members', locals: { zone_form: zone_form } %>
47
47
  <%= render partial: 'country_members', locals: { zone_form: zone_form } %>
48
48
  </div>
49
49
  </div>
@@ -24,7 +24,7 @@
24
24
  <tr id="<%= spree_dom_id zone %>" data-hook="zones_row">
25
25
  <td><%= zone.name %></td>
26
26
  <td><%= zone.description %></td>
27
- <td><%= zone.default_tax? ? Spree.t(:say_yes) : Spree.t(:say_no) %></td>
27
+ <td><%= active_badge(zone.default_tax?) %></td>
28
28
  <td class="actions actions-2 text-right">
29
29
  <%= link_to_edit(zone, no_text: true) if can? :edit, zone %>
30
30
  <%= link_to_delete(zone, no_text: true) if can? :delete, zone %>
@@ -6,6 +6,6 @@
6
6
  <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @zone } %>
7
7
 
8
8
  <%= form_for [:admin, @zone] do |zone_form| %>
9
- <%= render partial: 'form', locals: { zone_form: zone_form } %>
9
+ <%= render partial: 'form', locals: { zone_form: zone_form } %>
10
10
  <%= render partial: 'spree/admin/shared/new_resource_links' %>
11
11
  <% end %>
@@ -57,8 +57,8 @@
57
57
  <%#-------------------------------------------------%>
58
58
  <%# Main content %>
59
59
  <%#-------------------------------------------------%>
60
- <div class="<%= content_for?(:sidebar) ? 'with-sidebar col-12 col-lg-9' : 'col-12' %>" id="content" data-hook>
61
- <%= render partial: 'spree/admin/shared/table_filter' if content_for?(:table_filter)%>
60
+ <div class="<%= content_for?(:sidebar) ? 'with-sidebar col-12 col-lg-9' : 'col-12' %>" id="content" data-hook>
61
+ <%= render partial: 'spree/admin/shared/table_filter' if content_for?(:table_filter) %>
62
62
  <%= yield %>
63
63
  </div>
64
64
 
@@ -87,6 +87,5 @@
87
87
  <%# Alerts %>
88
88
  <%#-------------------------------------------------%>
89
89
  <%= flash_alert(flash) %>
90
-
91
90
  </body>
92
91
  </html>
@@ -1 +1 @@
1
- Rails.application.config.assets.precompile += %w(admin/* credit_cards/credit_card.gif)
1
+ Rails.application.config.assets.precompile += %w(admin/* credit_cards/credit_card.gif flatpickr/l10n*)
data/config/routes.rb CHANGED
@@ -86,6 +86,8 @@ Spree::Core::Engine.add_routes do
86
86
  put :resume
87
87
  get :store
88
88
  put :set_store
89
+ get :channel
90
+ put :set_channel
89
91
  end
90
92
 
91
93
  resources :state_changes, only: [:index]
@@ -134,7 +136,11 @@ Spree::Core::Engine.add_routes do
134
136
  collection do
135
137
  post :update_positions
136
138
  end
137
- resources :taxons
139
+ resources :taxons do
140
+ member do
141
+ delete :remove_icon
142
+ end
143
+ end
138
144
  end
139
145
 
140
146
  resources :taxons, only: [:index, :show]
@@ -28,11 +28,11 @@ Gem::Specification.new do |s|
28
28
  s.add_dependency 'spree_api', s.version
29
29
  s.add_dependency 'spree_core', s.version
30
30
 
31
- s.add_dependency 'bootstrap', '>= 4.3.1', '< 4.6.0'
31
+ s.add_dependency 'bootstrap', '>= 4.3.1', '< 4.7.0'
32
32
  s.add_dependency 'glyphicons', '~> 1.0.2'
33
33
  s.add_dependency 'flatpickr', '~> 4.6.0'
34
34
  s.add_dependency 'inline_svg', '~> 1.5'
35
35
  s.add_dependency 'jquery-rails', '~> 4.3'
36
36
  s.add_dependency 'jquery-ui-rails', '~> 6.0.1'
37
- s.add_dependency 'select2-rails', '~> 3.5.0'
37
+ s.add_dependency 'select2-rails', '~> 4.0.0'
38
38
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_backend
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.2.0.rc2
4
+ version: 4.2.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sean Schofield
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2020-11-10 00:00:00.000000000 Z
12
+ date: 2021-03-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: spree_api
@@ -17,28 +17,28 @@ dependencies:
17
17
  requirements:
18
18
  - - '='
19
19
  - !ruby/object:Gem::Version
20
- version: 4.2.0.rc2
20
+ version: 4.2.1
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - '='
26
26
  - !ruby/object:Gem::Version
27
- version: 4.2.0.rc2
27
+ version: 4.2.1
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: spree_core
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - '='
33
33
  - !ruby/object:Gem::Version
34
- version: 4.2.0.rc2
34
+ version: 4.2.1
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - '='
40
40
  - !ruby/object:Gem::Version
41
- version: 4.2.0.rc2
41
+ version: 4.2.1
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: bootstrap
44
44
  requirement: !ruby/object:Gem::Requirement
@@ -48,7 +48,7 @@ dependencies:
48
48
  version: 4.3.1
49
49
  - - "<"
50
50
  - !ruby/object:Gem::Version
51
- version: 4.6.0
51
+ version: 4.7.0
52
52
  type: :runtime
53
53
  prerelease: false
54
54
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +58,7 @@ dependencies:
58
58
  version: 4.3.1
59
59
  - - "<"
60
60
  - !ruby/object:Gem::Version
61
- version: 4.6.0
61
+ version: 4.7.0
62
62
  - !ruby/object:Gem::Dependency
63
63
  name: glyphicons
64
64
  requirement: !ruby/object:Gem::Requirement
@@ -135,14 +135,14 @@ dependencies:
135
135
  requirements:
136
136
  - - "~>"
137
137
  - !ruby/object:Gem::Version
138
- version: 3.5.0
138
+ version: 4.0.0
139
139
  type: :runtime
140
140
  prerelease: false
141
141
  version_requirements: !ruby/object:Gem::Requirement
142
142
  requirements:
143
143
  - - "~>"
144
144
  - !ruby/object:Gem::Version
145
- version: 3.5.0
145
+ version: 4.0.0
146
146
  description: Required dependency for Spree
147
147
  email: hello@spreecommerce.org
148
148
  executables: []
@@ -222,7 +222,6 @@ files:
222
222
  - app/assets/javascripts/spree/backend/admin.js
223
223
  - app/assets/javascripts/spree/backend/calculator.js
224
224
  - app/assets/javascripts/spree/backend/checkouts/edit.js
225
- - app/assets/javascripts/spree/backend/flatpickr_locals.js
226
225
  - app/assets/javascripts/spree/backend/gateway.js
227
226
  - app/assets/javascripts/spree/backend/general_settings.js
228
227
  - app/assets/javascripts/spree/backend/handlebar_extensions.js
@@ -246,7 +245,6 @@ files:
246
245
  - app/assets/javascripts/spree/backend/stock_management.js
247
246
  - app/assets/javascripts/spree/backend/stock_movement.js
248
247
  - app/assets/javascripts/spree/backend/stock_transfer.js
249
- - app/assets/javascripts/spree/backend/tag_picker.js
250
248
  - app/assets/javascripts/spree/backend/taxon_autocomplete.js
251
249
  - app/assets/javascripts/spree/backend/taxon_permalink_preview.js
252
250
  - app/assets/javascripts/spree/backend/taxon_tree_menu.js
@@ -272,10 +270,12 @@ files:
272
270
  - app/assets/stylesheets/spree/backend/components/_spinner.scss
273
271
  - app/assets/stylesheets/spree/backend/components/_tables.scss
274
272
  - app/assets/stylesheets/spree/backend/components/_taxon_products_view.scss
273
+ - app/assets/stylesheets/spree/backend/global/_mixins.scss
275
274
  - app/assets/stylesheets/spree/backend/global/_variables.scss
276
275
  - app/assets/stylesheets/spree/backend/plugins/_flatpickr.scss
277
276
  - app/assets/stylesheets/spree/backend/plugins/_jquery_ui.scss
278
- - app/assets/stylesheets/spree/backend/plugins/_select2.scss
277
+ - app/assets/stylesheets/spree/backend/plugins/_select2_custom.scss
278
+ - app/assets/stylesheets/spree/backend/plugins/select2_bootstrap4.scss
279
279
  - app/assets/stylesheets/spree/backend/shared/_base.scss
280
280
  - app/assets/stylesheets/spree/backend/shared/_forms.scss
281
281
  - app/assets/stylesheets/spree/backend/shared/_glyphicons_urls_fix.scss
@@ -338,7 +338,6 @@ files:
338
338
  - app/controllers/spree/admin/zones_controller.rb
339
339
  - app/helpers/spree/admin/adjustments_helper.rb
340
340
  - app/helpers/spree/admin/base_helper.rb
341
- - app/helpers/spree/admin/currency_helper.rb
342
341
  - app/helpers/spree/admin/customer_returns_helper.rb
343
342
  - app/helpers/spree/admin/images_helper.rb
344
343
  - app/helpers/spree/admin/navigation_helper.rb
@@ -376,7 +375,6 @@ files:
376
375
  - app/views/spree/admin/customer_returns/edit.html.erb
377
376
  - app/views/spree/admin/customer_returns/index.html.erb
378
377
  - app/views/spree/admin/customer_returns/new.html.erb
379
- - app/views/spree/admin/general_settings/_form.html.erb
380
378
  - app/views/spree/admin/general_settings/edit.html.erb
381
379
  - app/views/spree/admin/images/_form.html.erb
382
380
  - app/views/spree/admin/images/edit.html.erb
@@ -391,6 +389,7 @@ files:
391
389
  - app/views/spree/admin/orders/_add_line_item.html.erb
392
390
  - app/views/spree/admin/orders/_add_product.html.erb
393
391
  - app/views/spree/admin/orders/_adjustments.html.erb
392
+ - app/views/spree/admin/orders/_channel_form.html.erb
394
393
  - app/views/spree/admin/orders/_form.html.erb
395
394
  - app/views/spree/admin/orders/_line_items.html.erb
396
395
  - app/views/spree/admin/orders/_line_items_edit_form.html.erb
@@ -400,6 +399,7 @@ files:
400
399
  - app/views/spree/admin/orders/_shipment_manifest.html.erb
401
400
  - app/views/spree/admin/orders/_store_form.html.erb
402
401
  - app/views/spree/admin/orders/cart.html.erb
402
+ - app/views/spree/admin/orders/channel.html.erb
403
403
  - app/views/spree/admin/orders/customer_details/_autocomplete.js.erb
404
404
  - app/views/spree/admin/orders/customer_details/_form.html.erb
405
405
  - app/views/spree/admin/orders/customer_details/edit.html.erb
@@ -652,9 +652,9 @@ licenses:
652
652
  - BSD-3-Clause
653
653
  metadata:
654
654
  bug_tracker_uri: https://github.com/spree/spree/issues
655
- changelog_uri: https://github.com/spree/spree/releases/tag/v4.2.0.rc2
655
+ changelog_uri: https://github.com/spree/spree/releases/tag/v4.2.1
656
656
  documentation_uri: https://guides.spreecommerce.org/
657
- source_code_uri: https://github.com/spree/spree/tree/v4.2.0.rc2
657
+ source_code_uri: https://github.com/spree/spree/tree/v4.2.1
658
658
  post_install_message:
659
659
  rdoc_options: []
660
660
  require_paths:
@@ -666,12 +666,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
666
666
  version: 2.5.0
667
667
  required_rubygems_version: !ruby/object:Gem::Requirement
668
668
  requirements:
669
- - - ">"
669
+ - - ">="
670
670
  - !ruby/object:Gem::Version
671
- version: 1.3.1
671
+ version: '0'
672
672
  requirements:
673
673
  - none
674
- rubygems_version: 3.1.2
674
+ rubygems_version: 3.2.3
675
675
  signing_key:
676
676
  specification_version: 4
677
677
  summary: backend e-commerce functionality for the Spree project.