spree_backend 4.2.0.rc4 → 4.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (104) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree/backend.js +1 -1
  3. data/app/assets/javascripts/spree/backend/admin.js +9 -15
  4. data/app/assets/stylesheets/spree/backend/global/_mixins.scss +19 -0
  5. data/app/assets/stylesheets/spree/backend/plugins/_flatpickr.scss +94 -76
  6. data/app/assets/stylesheets/spree/backend/shared/_base.scss +4 -0
  7. data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +1 -0
  8. data/app/controllers/spree/admin/base_controller.rb +2 -0
  9. data/app/controllers/spree/admin/images_controller.rb +3 -3
  10. data/app/controllers/spree/admin/orders/customer_details_controller.rb +1 -1
  11. data/app/controllers/spree/admin/prices_controller.rb +0 -13
  12. data/app/controllers/spree/admin/stores_controller.rb +6 -13
  13. data/app/helpers/spree/admin/base_helper.rb +47 -1
  14. data/app/views/kaminari/admin-twitter-bootstrap-4/_first_page.html.erb +2 -2
  15. data/app/views/kaminari/admin-twitter-bootstrap-4/_gap.html.erb +2 -2
  16. data/app/views/kaminari/admin-twitter-bootstrap-4/_last_page.html.erb +2 -2
  17. data/app/views/kaminari/admin-twitter-bootstrap-4/_next_page.html.erb +2 -2
  18. data/app/views/kaminari/admin-twitter-bootstrap-4/_page.html.erb +2 -2
  19. data/app/views/kaminari/admin-twitter-bootstrap-4/_paginator.html.erb +2 -2
  20. data/app/views/kaminari/admin-twitter-bootstrap-4/_prev_page.html.erb +2 -2
  21. data/app/views/spree/admin/adjustments/index.html.erb +2 -2
  22. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +48 -48
  23. data/app/views/spree/admin/customer_returns/edit.html.erb +1 -1
  24. data/app/views/spree/admin/general_settings/edit.html.erb +3 -3
  25. data/app/views/spree/admin/images/edit.html.erb +1 -1
  26. data/app/views/spree/admin/log_entries/index.html.erb +1 -1
  27. data/app/views/spree/admin/option_types/index.html.erb +1 -1
  28. data/app/views/spree/admin/orders/_adjustments.html.erb +2 -2
  29. data/app/views/spree/admin/orders/_form.html.erb +6 -10
  30. data/app/views/spree/admin/orders/_line_items.html.erb +1 -1
  31. data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +5 -8
  32. data/app/views/spree/admin/orders/_order_actions.html.erb +1 -2
  33. data/app/views/spree/admin/orders/_risk_analysis.html.erb +3 -3
  34. data/app/views/spree/admin/orders/_shipment.html.erb +0 -1
  35. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +1 -1
  36. data/app/views/spree/admin/orders/cart.html.erb +1 -1
  37. data/app/views/spree/admin/orders/customer_details/_form.html.erb +1 -1
  38. data/app/views/spree/admin/orders/edit.html.erb +1 -1
  39. data/app/views/spree/admin/orders/index.html.erb +2 -0
  40. data/app/views/spree/admin/payment_methods/index.html.erb +1 -1
  41. data/app/views/spree/admin/payments/_form.html.erb +2 -3
  42. data/app/views/spree/admin/payments/show.html.erb +1 -2
  43. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +3 -4
  44. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +1 -1
  45. data/app/views/spree/admin/prices/_variant_prices.html.erb +5 -5
  46. data/app/views/spree/admin/prices/index.html.erb +2 -2
  47. data/app/views/spree/admin/product_properties/index.html.erb +3 -4
  48. data/app/views/spree/admin/products/_form.html.erb +5 -6
  49. data/app/views/spree/admin/products/new.html.erb +3 -1
  50. data/app/views/spree/admin/products/stock.html.erb +2 -2
  51. data/app/views/spree/admin/promotions/_actions.html.erb +2 -3
  52. data/app/views/spree/admin/promotions/_form.html.erb +9 -10
  53. data/app/views/spree/admin/promotions/_rules.html.erb +1 -1
  54. data/app/views/spree/admin/promotions/actions/_create_adjustment.html.erb +1 -1
  55. data/app/views/spree/admin/promotions/actions/_create_item_adjustments.html.erb +1 -1
  56. data/app/views/spree/admin/promotions/index.html.erb +7 -5
  57. data/app/views/spree/admin/promotions/rules/_taxon.html.erb +2 -2
  58. data/app/views/spree/admin/prototypes/_form.html.erb +1 -1
  59. data/app/views/spree/admin/prototypes/show.html.erb +1 -1
  60. data/app/views/spree/admin/refunds/edit.html.erb +2 -2
  61. data/app/views/spree/admin/refunds/new.html.erb +2 -2
  62. data/app/views/spree/admin/reimbursements/edit.html.erb +1 -2
  63. data/app/views/spree/admin/roles/index.html.erb +1 -1
  64. data/app/views/spree/admin/shared/_account_nav.html.erb +2 -2
  65. data/app/views/spree/admin/shared/_address_form.html.erb +2 -2
  66. data/app/views/spree/admin/shared/_error_messages.html.erb +1 -1
  67. data/app/views/spree/admin/shared/_head.html.erb +2 -2
  68. data/app/views/spree/admin/shared/_header.html.erb +0 -2
  69. data/app/views/spree/admin/shared/_main_menu.html.erb +1 -1
  70. data/app/views/spree/admin/shared/_refunds.html.erb +1 -1
  71. data/app/views/spree/admin/shared/_report_order_criteria.html.erb +4 -2
  72. data/app/views/spree/admin/shared/_translations.html.erb +8 -38
  73. data/app/views/spree/admin/shipping_categories/index.html.erb +2 -2
  74. data/app/views/spree/admin/shipping_methods/index.html.erb +2 -2
  75. data/app/views/spree/admin/states/index.html.erb +2 -2
  76. data/app/views/spree/admin/stock_locations/_form.html.erb +1 -1
  77. data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +1 -1
  78. data/app/views/spree/admin/stock_locations/index.html.erb +4 -4
  79. data/app/views/spree/admin/stock_movements/_form.html.erb +1 -1
  80. data/app/views/spree/admin/stock_movements/index.html.erb +2 -2
  81. data/app/views/spree/admin/stock_transfers/new.html.erb +1 -1
  82. data/app/views/spree/admin/stock_transfers/show.html.erb +0 -1
  83. data/app/views/spree/admin/stores/_form.html.erb +20 -15
  84. data/app/views/spree/admin/stores/index.html.erb +4 -2
  85. data/app/views/spree/admin/tax_categories/index.html.erb +2 -2
  86. data/app/views/spree/admin/tax_rates/index.html.erb +6 -6
  87. data/app/views/spree/admin/taxonomies/_js_head.html.erb +1 -2
  88. data/app/views/spree/admin/taxonomies/_list.html.erb +1 -1
  89. data/app/views/spree/admin/taxons/_form.html.erb +1 -2
  90. data/app/views/spree/admin/taxons/_taxon_table.html.erb +2 -2
  91. data/app/views/spree/admin/users/_form.html.erb +0 -1
  92. data/app/views/spree/admin/users/edit.html.erb +1 -1
  93. data/app/views/spree/admin/users/index.html.erb +2 -2
  94. data/app/views/spree/admin/users/items.html.erb +1 -1
  95. data/app/views/spree/admin/variants/_form.html.erb +3 -1
  96. data/app/views/spree/admin/zones/_country_members.html.erb +1 -1
  97. data/app/views/spree/admin/zones/_form.html.erb +2 -2
  98. data/app/views/spree/admin/zones/new.html.erb +1 -1
  99. data/app/views/spree/layouts/admin.html.erb +2 -3
  100. data/config/initializers/assets.rb +1 -1
  101. data/spree_backend.gemspec +1 -1
  102. metadata +14 -15
  103. data/app/assets/javascripts/spree/backend/flatpickr_locals.js +0 -37
  104. data/app/helpers/spree/admin/currency_helper.rb +0 -14
@@ -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) %>
@@ -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
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,13 +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
25
  <%== "var ADDRESS_FIELDS = #{Spree::Address::ADDRESS_FIELDS}" %>
26
26
  <% if Rails.env.test? %>
27
27
  jQuery.fx.off = false
28
28
  <% end %>
29
- <% end %>
29
+ </script>
30
30
 
31
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
 
@@ -15,7 +15,7 @@
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
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>
@@ -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),
@@ -72,11 +38,15 @@
72
38
  tags_placeholder: Spree.t(:tags_placeholder),
73
39
  tracking: Spree.t(:tracking),
74
40
  variant_placeholder: Spree.t(:variant_placeholder),
75
- 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
+
76
47
  }.to_json
77
48
  %>
78
49
  </script>
79
50
 
80
- <% if I18n.locale != :en %>
81
- <%= javascript_include_tag "select2_locale_#{I18n.locale}" %>
82
- <% end %>
51
+ <%= javascript_include_tag "select2_locale_#{select2_local_fallback}" %>
52
+ <%= javascript_include_tag "flatpickr/l10n/#{flatpickr_local_fallback}" %>
@@ -16,7 +16,7 @@
16
16
  </tr>
17
17
  </thead>
18
18
  <tbody>
19
- <% @shipping_categories.each do |shipping_category|%>
19
+ <% @shipping_categories.each do |shipping_category| %>
20
20
  <tr id="<%= spree_dom_id shipping_category %>" data-hook="category_row">
21
21
  <td><%= shipping_category.name %></td>
22
22
  <td class="actions actions-2 text-right">
@@ -27,7 +27,7 @@
27
27
  <% end %>
28
28
  </tbody>
29
29
  </table>
30
- </div>
30
+ </div>
31
31
  <% else %>
32
32
  <div class="alert alert-info no-objects-found">
33
33
  <%= Spree.t(:no_resource_found, resource: plural_resource_name(Spree::ShippingCategory)) %>,
@@ -19,7 +19,7 @@
19
19
  </tr>
20
20
  </thead>
21
21
  <tbody>
22
- <% @shipping_methods.includes(:zones, :calculator).each do |shipping_method|%>
22
+ <% @shipping_methods.includes(:zones, :calculator).each do |shipping_method| %>
23
23
  <tr id="<%= spree_dom_id shipping_method %>" data-hook="admin_shipping_methods_index_rows">
24
24
  <td><%= shipping_method.admin_name + ' / ' if shipping_method.admin_name.present? %><%= shipping_method.name %></td>
25
25
  <td>
@@ -37,7 +37,7 @@
37
37
  <% end %>
38
38
  </tbody>
39
39
  </table>
40
- </div>
40
+ </div>
41
41
  <% else %>
42
42
  <div class="alert alert-info no-objects-found">
43
43
  <%= Spree.t(:no_resource_found, resource: plural_resource_name(Spree::ShippingMethod)) %>,
@@ -8,11 +8,11 @@
8
8
 
9
9
  <div data-hook="country" class="form-group">
10
10
  <%= label_tag :country, Spree.t(:country) %>
11
- <select id="country" class='observe_field select2' data-base-url="<%=admin_states_path(format: :js) %>?country_id=" data-update="#state-list">
11
+ <select id="country" class='observe_field select2' data-base-url="<%= admin_states_path(format: :js) %>?country_id=" data-update="#state-list">
12
12
  <%= options_from_collection_for_select(@countries, :id, :name, @country.id) %>
13
13
  </select>
14
14
  </div>
15
15
 
16
16
  <div id="state-list" data-hook>
17
- <%= render partial: 'state_list'%>
17
+ <%= render partial: 'state_list' %>
18
18
  </div>
@@ -3,7 +3,7 @@
3
3
  <div class="col-12 col-md-9" data-hook="stock_location_names">
4
4
  <div data-hook="stock_location_name">
5
5
  <%= f.field_container :name, class: ['form-group'] do %>
6
- <%= f.label :name, Spree.t(:name) %> <span class="required">*</span><br />
6
+ <%= f.label :name, Spree.t(:name) %> <span class="required">*</span><br>
7
7
  <%= f.text_field :name, class: 'form-control', required: true %>
8
8
  <%= f.error_message_on :name %>
9
9
  <% end %>
@@ -1,6 +1,6 @@
1
1
  <%= form_tag transfer_stock_admin_stock_locations_path do %>
2
2
  <fieldset>
3
- <legend><%= Spree.t(:move_stock_between_locations)%></legend>
3
+ <legend><%= Spree.t(:move_stock_between_locations) %></legend>
4
4
  <div data-hook="admin_stock_movements_form_fields" class="row">
5
5
  <div class="col-12 col-md-5">
6
6
  <div class="form-group" id="stock_movement_transfer_from_field">
@@ -19,12 +19,12 @@
19
19
  </thead>
20
20
  <tbody>
21
21
  <% @stock_locations.each do |stock_location|
22
- @edit_url = edit_admin_stock_location_path(stock_location)
23
- @delete_url = admin_stock_location_path(stock_location)
24
- %>
22
+ @edit_url = spree.edit_admin_stock_location_path(stock_location)
23
+ @delete_url = spree.admin_stock_location_path(stock_location) %>
24
+
25
25
  <tr id="<%= spree_dom_id stock_location %>" data-hook="stock_location_row">
26
26
  <td><%= display_name(stock_location) %></td>
27
- <td><%= link_to Spree.t(:stock_movements), admin_stock_location_stock_movements_path(stock_location.id) %> </td>
27
+ <td><%= link_to Spree.t(:stock_movements), spree.admin_stock_location_stock_movements_path(stock_location.id) %> </td>
28
28
  <td><%= active_badge(stock_location.active, label: Spree.t(state(stock_location))) %></td>
29
29
  <td class="actions actions-2 text-center">
30
30
  <%= link_to_edit(stock_location, no_text: true) if can? :create, stock_location %>
@@ -5,7 +5,7 @@
5
5
  <% end %>
6
6
  <%= f.field_container :stock_item_id, class: ['form-group'] do %>
7
7
  <%= f.label :stock_item_id, Spree.t(:stock_item_id) %>
8
- <%= f.text_field 'stock_item_id', :'data-stock-location-id' => params[:stock_location_id] %>
8
+ <%= select_tag 'stock_movement[stock_item_id]', nil , class: 'variant_autocomplete d-block w-100', :'data-stock-location-id' => params[:stock_location_id] %>
9
9
  <% end %>
10
10
  </div>
11
11
 
@@ -17,13 +17,13 @@
17
17
  </colgroup>
18
18
  <thead>
19
19
  <tr data-hook="admin_stock_movements_index_headers">
20
- <th><%= Spree.t(:stock_item) %>
20
+ <th><%= Spree.t(:variant) %>
21
21
  <th><%= Spree.t(:quantity) %></th>
22
22
  <th><%= Spree.t(:action) %></th>
23
23
  </tr>
24
24
  </thead>
25
25
  <tbody>
26
- <% @stock_movements.each do |stock_movement|%>
26
+ <% @stock_movements.each do |stock_movement| %>
27
27
  <tr id="<%= spree_dom_id stock_movement %>" data-hook="admin_stock_movements_index_rows">
28
28
  <td>
29
29
  <%= display_variant(stock_movement) %>
@@ -66,7 +66,7 @@
66
66
  <div class="form-group" id="stock_movement_variant_id_field">
67
67
  <%= label_tag 'variant_id', Spree.t(:variant) %>
68
68
  <div class="input-group">
69
- <%= select_tag 'transfer_variant', nil, class: 'd-block w-100', id: 'transfer_variant' %>
69
+ <%= select_tag 'transfer_variant', nil, class: 'd-block w-100', id: 'transfer_variant' %>
70
70
  </div>
71
71
  </div>
72
72
  </div>
@@ -40,5 +40,4 @@
40
40
  <%= render partial: 'stock_movements', object: @stock_transfer.destination_movements %>
41
41
  </fieldset>
42
42
  <% end %>
43
-
44
43
  </fieldset>
@@ -14,7 +14,7 @@
14
14
  <%= image_tag main_app.url_for(@store.logo) %>
15
15
  <% end %>
16
16
  <%= f.field_container :logo, class: ['form-group'] do %>
17
- <%= f.label :logo, Spree.t(:logo) %><br />
17
+ <%= f.label :logo, Spree.t(:logo) %><br>
18
18
  <%= f.file_field :logo %>
19
19
  <%= f.error_message_on :logo %>
20
20
  <% end %>
@@ -24,7 +24,7 @@
24
24
  <%= image_tag main_app.url_for(@store.mailer_logo.variant(resize: '244x104>')) %>
25
25
  <% end %>
26
26
  <%= f.field_container :mailer_logo, class: ['form-group'] do %>
27
- <%= f.label :mailer_logo, Spree.t(:mailer_logo) %><br />
27
+ <%= f.label :mailer_logo, Spree.t(:mailer_logo) %><br>
28
28
  <%= f.file_field :mailer_logo, accept: 'image/png, image/jpeg' %>
29
29
  <%= f.error_message_on :mailer_logo %>
30
30
  <% end %>
@@ -43,7 +43,7 @@
43
43
  <%= f.error_message_on :code %>
44
44
  <% end %>
45
45
  <%= f.field_container :url, class: ['form-group'] do %>
46
- <%= f.label :url, raw(Spree.t(:url) + required_span_tag) %>
46
+ <%= f.label :url, raw(Spree.t(:url) + required_span_tag) %>
47
47
  <div class="input-group mb-3">
48
48
  <div class="input-group-prepend">
49
49
  <span class="input-group-text" id="basic-addon3">https://</span>
@@ -68,12 +68,12 @@
68
68
  <%= f.error_message_on :seo_title %>
69
69
  <% end %>
70
70
  <%= f.field_container :meta_description, class: ['form-group'] do %>
71
- <%= f.label :meta_description, Spree.t(:meta_description) %>
71
+ <%= f.label :meta_description, Spree.t(:meta_description) %>
72
72
  <%= f.text_area :meta_description, class: 'form-control' %>
73
73
  <%= f.error_message_on :meta_description %>
74
74
  <% end %>
75
75
  <%= f.field_container :meta_keywords, class: ['form-group'] do %>
76
- <%= f.label :meta_keywords, Spree.t(:meta_keywords) %>
76
+ <%= f.label :meta_keywords, Spree.t(:meta_keywords) %>
77
77
  <%= f.text_field :meta_keywords, class: 'form-control' %>
78
78
  <%= f.error_message_on :meta_keywords %>
79
79
  <% end %>
@@ -132,7 +132,7 @@
132
132
  </div>
133
133
  <div class="card-body">
134
134
  <%= f.field_container :default_currency, class: ['form-group'] do %>
135
- <%= f.label :default_currency, Spree.t(:currency) %>
135
+ <%= f.label :default_currency %>
136
136
  <%= f.select :default_currency, currency_options(@store.default_currency), {}, { class: 'select2' } %>
137
137
  <%= f.error_message_on :default_currency %>
138
138
  <% end %>
@@ -150,15 +150,20 @@
150
150
  <%= f.error_message_on :checkout_zone_id %>
151
151
  <% end %>
152
152
  <%= f.field_container :default_locale, class: ['form-group'] do %>
153
- <%= f.label :default_locale, Spree.t('i18n.language') %>
154
- <%= f.select :default_locale, options_from_collection_for_select(all_locales_options, :last, :first, @store.default_locale), {}, { class: 'select2' } %>
153
+ <%= f.label :default_locale %>
154
+ <%= f.select :default_locale, options_from_collection_for_select(all_locales_options, :last, :first, @store.default_locale || I18n.locale), {}, { class: 'select2' } %>
155
155
  <%= f.error_message_on :default_locale %>
156
156
  <% unless defined?(SpreeI18n) %>
157
157
  <small class="form-text text-muted">
158
- <%= raw(Spree.t('store_form.languages_help')) %>
158
+ <%= raw(Spree.t('store_form.locales_help')) %>
159
159
  </small>
160
160
  <% end %>
161
161
  <% end %>
162
+ <%= f.field_container :supported_locales, class: ['form-group'] do %>
163
+ <%= f.label :supported_locales, Spree.t(:supported_locales) %>
164
+ <%= f.select :supported_locales, options_from_collection_for_select(all_locales_options, :last, :first, @store.supported_locales&.split(',')), {}, { multiple: true, class: 'select2' } %>
165
+ <%= f.error_message_on :supported_locales %>
166
+ <% end %>
162
167
  <%= f.field_container :default_country_id, class: ['form-group'] do %>
163
168
  <%= f.label :default_country_id, Spree.t('i18n.default_country') %>
164
169
  <%= f.select :default_country_id, options_from_collection_for_select(@countries, :id, :name, @store.default_country_id || Spree::Config[:default_country_id]), {}, { class: 'select2' } %>
@@ -182,7 +187,7 @@
182
187
  </div>
183
188
 
184
189
  <%= f.field_container :facebook, class: ['form-group'] do %>
185
- <%= f.label :facebook, Spree.t(:facebook) %>
190
+ <%= f.label :facebook, Spree.t(:facebook) %>
186
191
  <div class="input-group mb-3">
187
192
  <div class="input-group-prepend">
188
193
  <span class="input-group-text" id="basic-addon3">https://facebook.com</span>
@@ -192,7 +197,7 @@
192
197
  <%= f.error_message_on :facebook %>
193
198
  <% end %>
194
199
  <%= f.field_container :twitter, class: ['form-group'] do %>
195
- <%= f.label :twitter, Spree.t(:twitter) %>
200
+ <%= f.label :twitter, Spree.t(:twitter) %>
196
201
  <div class="input-group mb-3">
197
202
  <div class="input-group-prepend">
198
203
  <span class="input-group-text" id="basic-addon3">https://twitter.com</span>
@@ -202,7 +207,7 @@
202
207
  <%= f.error_message_on :twitter %>
203
208
  <% end %>
204
209
  <%= f.field_container :instagram, class: ['form-group'] do %>
205
- <%= f.label :instagram, Spree.t(:instagram) %>
210
+ <%= f.label :instagram, Spree.t(:instagram) %>
206
211
  <div class="input-group mb-3">
207
212
  <div class="input-group-prepend">
208
213
  <span class="input-group-text" id="basic-addon3">https://instagram.com</span>
@@ -226,17 +231,17 @@
226
231
  </div>
227
232
 
228
233
  <%= f.field_container :description, class: ['form-group'] do %>
229
- <%= f.label :description, Spree.t(:description) %>
234
+ <%= f.label :description, Spree.t(:description) %>
230
235
  <%= f.text_area :description, class: 'form-control' %>
231
236
  <%= f.error_message_on :description %>
232
237
  <% end %>
233
238
  <%= f.field_container :address, class: ['form-group'] do %>
234
- <%= f.label :address, Spree.t(:address) %>
239
+ <%= f.label :address, Spree.t(:address) %>
235
240
  <%= f.text_area :address, class: 'form-control' %>
236
241
  <%= f.error_message_on :address %>
237
242
  <% end %>
238
243
  <%= f.field_container :contact_phone, class: ['form-group'] do %>
239
- <%= f.label :contact_phone, Spree.t(:contact_phone) %>
244
+ <%= f.label :contact_phone, Spree.t(:contact_phone) %>
240
245
  <%= f.text_field :contact_phone, class: 'form-control' %>
241
246
  <%= f.error_message_on :contact_phone %>
242
247
  <% end %>
@@ -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>
@@ -21,7 +22,8 @@
21
22
  <tr>
22
23
  <td><%= store.unique_name %></td>
23
24
  <td><%= link_to store.url, store.formatted_url, target: :blank %></td>
24
- <td><%= store.default_currency %></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>
25
27
  <td><%= active_badge(store.default) %></td>
26
28
  <td class="actions actions-2 text-right" data-hook="admin_stores_index_row_actions">
27
29
  <%= link_to_edit_url spree.edit_admin_store_path(store), no_text: true if can?(:edit, store) %>
@@ -21,8 +21,8 @@
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>