spree_admin 5.1.0.beta4 → 5.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/spree/admin/components/_badges.scss +4 -0
  3. data/app/assets/stylesheets/spree/admin/components/_buttons.scss +13 -2
  4. data/app/assets/stylesheets/spree/admin/components/_filters.scss +8 -1
  5. data/app/assets/stylesheets/spree/admin/components/_main.scss +13 -1
  6. data/app/assets/stylesheets/spree/admin/components/_media_form.scss +1 -1
  7. data/app/assets/stylesheets/spree/admin/components/_modals.scss +3 -1
  8. data/app/assets/stylesheets/spree/admin/components/_navbar.scss +1 -1
  9. data/app/assets/stylesheets/spree/admin/components/_tables.scss +6 -10
  10. data/app/assets/stylesheets/spree/admin/components/_variants_form.scss +1 -1
  11. data/app/assets/stylesheets/spree/admin/global/_variables.scss +12 -7
  12. data/app/assets/stylesheets/spree/admin/shared/_base.scss +7 -6
  13. data/app/controllers/spree/admin/gift_card_batches_controller.rb +23 -0
  14. data/app/controllers/spree/admin/gift_cards_controller.rb +94 -0
  15. data/app/controllers/spree/admin/orders_controller.rb +25 -3
  16. data/app/controllers/spree/admin/payments_controller.rb +3 -0
  17. data/app/controllers/spree/admin/products_controller.rb +3 -3
  18. data/app/controllers/spree/admin/reimbursements_controller.rb +5 -1
  19. data/app/controllers/spree/admin/resource_controller.rb +12 -1
  20. data/app/controllers/spree/admin/search_controller.rb +22 -0
  21. data/app/controllers/spree/admin/store_credits_controller.rb +8 -5
  22. data/app/controllers/spree/admin/translations_controller.rb +31 -25
  23. data/app/helpers/spree/admin/base_helper.rb +55 -0
  24. data/app/helpers/spree/admin/navigation_helper.rb +2 -2
  25. data/app/helpers/spree/admin/payments_helper.rb +0 -5
  26. data/app/helpers/spree/admin/products_helper.rb +1 -1
  27. data/app/helpers/spree/admin/promotion_rules_helper.rb +13 -1
  28. data/app/helpers/spree/admin/shipment_helper.rb +2 -0
  29. data/app/javascript/spree/admin/application.js +2 -0
  30. data/app/javascript/spree/admin/controllers/active_storage_upload_controller.js +2 -11
  31. data/app/javascript/spree/admin/controllers/return_items_controller.js +6 -1
  32. data/app/javascript/spree/admin/controllers/sticky_controller.js +24 -0
  33. data/app/javascript/spree/admin/controllers/variants_form_controller.js +1 -1
  34. data/app/javascript/spree/admin/helpers/uppy_active_storage.js +15 -3
  35. data/app/views/active_storage/_upload_form.html.erb +3 -3
  36. data/app/views/spree/admin/coupon_codes/_coupon_code.html.erb +2 -6
  37. data/app/views/spree/admin/coupon_codes/index.csv.erb +1 -1
  38. data/app/views/spree/admin/custom_domains/edit.html.erb +2 -3
  39. data/app/views/spree/admin/custom_domains/new.html.erb +2 -3
  40. data/app/views/spree/admin/dashboard/_setup_progress.html.erb +2 -3
  41. data/app/views/spree/admin/dashboard/_store_preview.html.erb +3 -9
  42. data/app/views/spree/admin/gift_card_batches/_form.html.erb +30 -0
  43. data/app/views/spree/admin/gift_card_batches/new.html.erb +15 -0
  44. data/app/views/spree/admin/gift_cards/_filters.html.erb +43 -0
  45. data/app/views/spree/admin/gift_cards/_form.html.erb +30 -0
  46. data/app/views/spree/admin/gift_cards/_gift_card.html.erb +28 -0
  47. data/app/views/spree/admin/gift_cards/_list.html.erb +24 -0
  48. data/app/views/spree/admin/gift_cards/_table_filter_dropdown.html.erb +25 -0
  49. data/app/views/spree/admin/gift_cards/edit.html.erb +20 -0
  50. data/app/views/spree/admin/gift_cards/index.csv.erb +22 -0
  51. data/app/views/spree/admin/gift_cards/index.html.erb +41 -0
  52. data/app/views/spree/admin/gift_cards/new.html.erb +30 -0
  53. data/app/views/spree/admin/gift_cards/show.html.erb +199 -0
  54. data/app/views/spree/admin/integrations/new.html.erb +7 -4
  55. data/app/views/spree/admin/oauth_applications/edit.html.erb +2 -3
  56. data/app/views/spree/admin/oauth_applications/new.html.erb +2 -3
  57. data/app/views/spree/admin/option_types/edit.html.erb +4 -0
  58. data/app/views/spree/admin/orders/_customer.html.erb +5 -2
  59. data/app/views/spree/admin/orders/_payments.html.erb +1 -1
  60. data/app/views/spree/admin/orders/_return_authorizations.html.erb +3 -1
  61. data/app/views/spree/admin/orders/_shipment.html.erb +1 -1
  62. data/app/views/spree/admin/orders/_shipments.html.erb +1 -1
  63. data/app/views/spree/admin/orders/return_authorizations/_form.html.erb +13 -11
  64. data/app/views/spree/admin/page_sections/forms/_featured_posts.html.erb +0 -5
  65. data/app/views/spree/admin/pages/_form.html.erb +20 -26
  66. data/app/views/spree/admin/pages/new.html.erb +10 -4
  67. data/app/views/spree/admin/payments/_payment.html.erb +14 -9
  68. data/app/views/spree/admin/payments/new.html.erb +1 -1
  69. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +1 -1
  70. data/app/views/spree/admin/post_categories/edit.html.erb +2 -3
  71. data/app/views/spree/admin/post_categories/new.html.erb +2 -3
  72. data/app/views/spree/admin/products/edit.html.erb +2 -2
  73. data/app/views/spree/admin/promotion_actions/_promotion_action.html.erb +1 -1
  74. data/app/views/spree/admin/promotion_actions/edit.html.erb +2 -2
  75. data/app/views/spree/admin/promotion_rules/_promotion_rule.html.erb +26 -9
  76. data/app/views/spree/admin/promotion_rules/edit.html.erb +2 -2
  77. data/app/views/spree/admin/promotion_rules/forms/_option_value.html.erb +1 -1
  78. data/app/views/spree/admin/promotions/_actions.html.erb +2 -2
  79. data/app/views/spree/admin/promotions/_rules.html.erb +2 -2
  80. data/app/views/spree/admin/promotions/_sidebar.html.erb +5 -13
  81. data/app/views/spree/admin/properties/_property.html.erb +2 -2
  82. data/app/views/spree/admin/properties/edit.html.erb +12 -5
  83. data/app/views/spree/admin/properties/new.html.erb +9 -5
  84. data/app/views/spree/admin/refunds/new.html.erb +6 -1
  85. data/app/views/spree/admin/reimbursement_types/edit.html.erb +2 -3
  86. data/app/views/spree/admin/reimbursement_types/new.html.erb +2 -4
  87. data/app/views/spree/admin/shared/_content_header.html.erb +9 -4
  88. data/app/views/spree/admin/shared/_edit_resource_links.html.erb +3 -1
  89. data/app/views/spree/admin/shared/_header.html.erb +2 -2
  90. data/app/views/spree/admin/shared/_index_table_options.html.erb +1 -1
  91. data/app/views/spree/admin/shared/_preferences.html.erb +1 -0
  92. data/app/views/spree/admin/shared/_sidebar.html.erb +1 -1
  93. data/app/views/spree/admin/shared/_user.html.erb +2 -7
  94. data/app/views/spree/admin/shared/named_types/_edit.html.erb +2 -3
  95. data/app/views/spree/admin/shared/named_types/_new.html.erb +2 -3
  96. data/app/views/spree/admin/shared/sortable_tree/_taxonomy.html.erb +2 -2
  97. data/app/views/spree/admin/shipping_categories/edit.html.erb +7 -4
  98. data/app/views/spree/admin/shipping_categories/new.html.erb +7 -6
  99. data/app/views/spree/admin/shipping_methods/form/_display.html.erb +23 -1
  100. data/app/views/spree/admin/stock_locations/_form.html.erb +35 -51
  101. data/app/views/spree/admin/stock_locations/edit.html.erb +8 -3
  102. data/app/views/spree/admin/stock_locations/new.html.erb +8 -5
  103. data/app/views/spree/admin/store_credit_events/_store_credit_event.html.erb +29 -0
  104. data/app/views/spree/admin/store_credits/_form.html.erb +13 -21
  105. data/app/views/spree/admin/store_credits/_list.html.erb +4 -24
  106. data/app/views/spree/admin/store_credits/_store_credit.html.erb +11 -0
  107. data/app/views/spree/admin/store_credits/edit.html.erb +16 -31
  108. data/app/views/spree/admin/store_credits/new.html.erb +14 -12
  109. data/app/views/spree/admin/store_credits/show.html.erb +145 -0
  110. data/app/views/spree/admin/storefront/edit.html.erb +1 -1
  111. data/app/views/spree/admin/stores/form/_basic.html.erb +28 -12
  112. data/app/views/spree/admin/tax_categories/_form.html.erb +1 -1
  113. data/app/views/spree/admin/tax_categories/edit.html.erb +7 -4
  114. data/app/views/spree/admin/tax_categories/new.html.erb +7 -4
  115. data/app/views/spree/admin/tax_rates/_form.html.erb +34 -32
  116. data/app/views/spree/admin/tax_rates/edit.html.erb +7 -4
  117. data/app/views/spree/admin/tax_rates/new.html.erb +7 -7
  118. data/app/views/spree/admin/taxonomies/edit.html.erb +2 -4
  119. data/app/views/spree/admin/taxonomies/new.html.erb +2 -2
  120. data/app/views/spree/admin/translations/edit.html.erb +37 -29
  121. data/app/views/spree/admin/translations/option_types/_form.html.erb +17 -0
  122. data/app/views/spree/admin/translations/products/_form.html.erb +11 -20
  123. data/app/views/spree/admin/translations/properties/_form.html.erb +5 -0
  124. data/app/views/spree/admin/translations/stores/_form.html.erb +11 -20
  125. data/app/views/spree/admin/translations/taxonomies/_form.html.erb +3 -18
  126. data/app/views/spree/admin/translations/taxons/_form.html.erb +11 -34
  127. data/app/views/spree/admin/translations/translation_rows/_permalink_field_row.html.erb +41 -0
  128. data/app/views/spree/admin/translations/translation_rows/_rich_textarea_row.html.erb +13 -0
  129. data/app/views/spree/admin/translations/translation_rows/_text_field_row.html.erb +7 -0
  130. data/app/views/spree/admin/translations/translation_rows/_textarea_row.html.erb +11 -0
  131. data/app/views/spree/admin/users/_details.html.erb +1 -0
  132. data/app/views/spree/admin/users/index.html.erb +1 -1
  133. data/app/views/spree/admin/users/new.html.erb +9 -5
  134. data/app/views/spree/admin/users/show.html.erb +3 -3
  135. data/app/views/spree/admin/variants/form/_inventory.html.erb +1 -1
  136. data/app/views/spree/admin/zones/_form.html.erb +36 -40
  137. data/app/views/spree/admin/zones/edit.html.erb +7 -5
  138. data/app/views/spree/admin/zones/new.html.erb +7 -4
  139. data/config/locales/en.yml +12 -1
  140. data/config/routes.rb +8 -2
  141. metadata +33 -8
@@ -3,9 +3,12 @@
3
3
  <%= @tax_category.name %>
4
4
  <% end %>
5
5
 
6
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @tax_category } %>
7
-
8
6
  <%= form_for [:admin, @tax_category] do |f| %>
9
- <%= render 'form', f: f %>
10
- <%= render 'spree/admin/shared/edit_resource_links', f: f %>
7
+ <div class="row">
8
+ <div class="col-lg-6 offset-lg-3">
9
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @tax_category } %>
10
+ <%= render 'form', f: f %>
11
+ <%= render 'spree/admin/shared/edit_resource_links', f: f %>
12
+ </div>
13
+ </div>
11
14
  <% end %>
@@ -3,9 +3,12 @@
3
3
  <%= Spree.t(:new_tax_category) %>
4
4
  <% end %>
5
5
 
6
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @tax_category } %>
7
-
8
6
  <%= form_for [:admin, @tax_category] do |f| %>
9
- <%= render 'form', f: f %>
10
- <%= render 'spree/admin/shared/new_resource_links' %>
7
+ <div class="row">
8
+ <div class="col-lg-6 offset-lg-3">
9
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @tax_category } %>
10
+ <%= render 'form', f: f %>
11
+ <%= render 'spree/admin/shared/new_resource_links' %>
12
+ </div>
13
+ </div>
11
14
  <% end %>
@@ -6,40 +6,42 @@
6
6
  </div>
7
7
 
8
8
  <div class="card-body">
9
- <div class="row">
10
- <div class="col-12 col-lg-6">
11
- <div class="form-group">
12
- <%= f.label :name, Spree.t(:name) %>
13
- <%= f.text_field :name, class: 'form-control', required: true, autofocus: f.object.new_record? %>
14
- <%= f.error_message_on :name %>
15
- </div>
16
- <div class="form-group">
17
- <%= f.label :amount, Spree.t(:rate) %>
18
- <%= f.number_field :amount, class: 'form-control', min: 0, step: 0.0001, required: true %>
19
- <%= f.error_message_on :amount %>
20
- <small class="form-text text-muted">
21
- <%= Spree.t(:tax_rate_amount_explanation) %>
22
- </small>
23
- </div>
24
- <div class="custom-control custom-checkbox mb-3">
25
- <%= f.check_box :included_in_price, class: 'custom-control-input' %>
26
- <%= f.label :included_in_price, class: 'custom-control-label' %>
27
- </div>
9
+ <div class="form-group">
10
+ <%= f.label :name, Spree.t(:name) %>
11
+ <%= f.text_field :name, class: 'form-control', required: true, autofocus: f.object.new_record? %>
12
+ <%= f.error_message_on :name %>
13
+ </div>
14
+ <div class="form-group">
15
+ <%= f.label :amount, Spree.t(:rate) %>
16
+ <%= f.number_field :amount, class: 'form-control', min: 0, step: 0.0001, required: true %>
17
+ <%= f.error_message_on :amount %>
18
+ <small class="form-text text-muted">
19
+ <%= Spree.t(:tax_rate_amount_explanation) %>
20
+ </small>
21
+ </div>
22
+
23
+ <div class="form-group">
24
+ <%= f.label :zone_id, Spree.t(:zone) %>
25
+ <%= f.collection_select(:zone_id, @available_zones, :id, :name, {}, { class: 'custom-select' }) %>
26
+ </div>
27
+ <div class="form-group">
28
+ <%= f.label :tax_category_id, Spree.t(:tax_category) %>
29
+ <%= f.collection_select(:tax_category_id, @available_categories,:id, :name, {}, { class: 'custom-select' }) %>
30
+ </div>
31
+
32
+ <hr class="my-4" />
33
+
34
+ <div class="form-group">
35
+ <div class="custom-control custom-checkbox">
36
+ <%= f.check_box :included_in_price, class: 'custom-control-input' %>
37
+ <%= f.label :included_in_price, class: 'custom-control-label' %>
28
38
  </div>
39
+ </div>
29
40
 
30
- <div class="col-12 col-lg-6">
31
- <div class="form-group">
32
- <%= f.label :zone_id, Spree.t(:zone) %>
33
- <%= f.collection_select(:zone_id, @available_zones, :id, :name, {}, { class: 'custom-select' }) %>
34
- </div>
35
- <div class="form-group">
36
- <%= f.label :tax_category_id, Spree.t(:tax_category) %>
37
- <%= f.collection_select(:tax_category_id, @available_categories,:id, :name, {}, { class: 'custom-select' }) %>
38
- </div>
39
- <div class="custom-control custom-checkbox">
40
- <%= f.check_box :show_rate_in_label, class: 'custom-control-input' %>
41
- <%= f.label :show_rate_in_label, class: 'custom-control-label' %>
42
- </div>
41
+ <div class="form-group">
42
+ <div class="custom-control custom-checkbox">
43
+ <%= f.check_box :show_rate_in_label, class: 'custom-control-input' %>
44
+ <%= f.label :show_rate_in_label, class: 'custom-control-label' %>
43
45
  </div>
44
46
  </div>
45
47
  </div>
@@ -3,9 +3,12 @@
3
3
  <%= @tax_rate.name %>
4
4
  <% end %>
5
5
 
6
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @tax_rate } %>
7
-
8
6
  <%= form_for [:admin, @tax_rate] do |f| %>
9
- <%= render 'form', f: f %>
10
- <%= render 'spree/admin/shared/edit_resource_links', f: f %>
7
+ <div class="row">
8
+ <div class="col-lg-6 offset-lg-3">
9
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @tax_rate } %>
10
+ <%= render 'form', f: f %>
11
+ <%= render 'spree/admin/shared/edit_resource_links', f: f %>
12
+ </div>
13
+ </div>
11
14
  <% end %>
@@ -3,12 +3,12 @@
3
3
  <%= Spree.t(:new_tax_rate) %>
4
4
  <% end %>
5
5
 
6
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @tax_rate } %>
7
-
8
6
  <%= form_for [:admin, @tax_rate] do |f| %>
9
- <fieldset>
10
- <%= render 'form', f: f %>
11
-
12
- <%= render 'spree/admin/shared/new_resource_links' %>
13
- </fieldset>
7
+ <div class="row">
8
+ <div class="col-lg-6 offset-lg-3">
9
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @tax_rate } %>
10
+ <%= render 'form', f: f %>
11
+ <%= render 'spree/admin/shared/new_resource_links' %>
12
+ </div>
13
+ </div>
14
14
  <% end %>
@@ -7,14 +7,12 @@
7
7
  <%= link_to_edit_translations(@taxonomy) %>
8
8
  <% end %>
9
9
 
10
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @taxonomy } %>
11
-
12
10
  <div class="row">
13
- <div class="col-lg-6">
11
+ <div class="col-lg-6 offset-lg-3">
14
12
  <%= form_for [:admin, @taxonomy] do |f| %>
13
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @taxonomy } %>
15
14
  <div class="card mb-4">
16
15
  <div class="card-body">
17
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @taxonomy } %>
18
16
  <div class="form-group">
19
17
  <%= f.label :name, raw(Spree.t(:name) + required_span_tag) %>
20
18
  <%= f.text_field :name, class: 'form-control' %>
@@ -2,11 +2,11 @@
2
2
  <%= page_header_back_button spree.admin_taxonomies_path %>
3
3
  <%= Spree.t(:new_taxonomy) %>
4
4
  <% end %>
5
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @taxonomy } %>
6
5
 
7
6
  <div class="row">
8
- <div class="col-lg-6">
7
+ <div class="col-lg-6 offset-lg-3">
9
8
  <%= form_for [:admin, @taxonomy] do |f| %>
9
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @taxonomy } %>
10
10
  <div class="card mb-4">
11
11
  <div class="card-body">
12
12
  <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @taxonomy } %>
@@ -1,6 +1,6 @@
1
1
  <% content_for :page_title do %>
2
2
  <%= page_header_back_button @back_path %>
3
- <span class="mr-3"><%= Spree.t(:translations_for, resource_name: @resource_name) %></span>
3
+ <span class="mr-3"><%= Spree.t(:translations_for, resource_name: @resource.try(:name)) %></span>
4
4
  <% end %>
5
5
  <% if @locales.any?%>
6
6
  <% if @locales.many? %>
@@ -11,35 +11,43 @@
11
11
  </div>
12
12
  <% end %>
13
13
  <% end %>
14
- <%= form_with url: spree.admin_translation_path(@resource, resource_type: @resource.class.to_s), method: :put, class: 'form-horizontal' do |f| %>
15
- <%= turbo_frame_tag :translations_table, class: "table-responsive border rounded bg-white my-3", refresh: "morph" do %>
16
- <%= hidden_field_tag :translation_locale, @selected_translation_locale %>
17
- <table class="table">
18
- <thead>
19
- <tr>
20
- <th scope="col" class="text-center"><%= Spree.t(:field) %></th>
21
- <th scope="col" class="text-center" style="width: 40%;"><%= Spree.t('i18n.this_file_language', locale: :en) %> (<%= Spree.t(:default) %>)</th>
22
- <th scope="col" class="text-center"><%= Spree.t('i18n.this_file_language', locale: @selected_translation_locale) %></th>
23
- </tr>
24
- </thead>
25
- <tbody>
26
- <% options = { resource: @resource, selected_translation_locale: @selected_translation_locale } %>
27
- <% case @resource %>
28
- <% when Spree::Product %>
29
- <%= render 'spree/admin/translations/products/form', options %>
30
- <% when Spree::Taxon %>
31
- <%= render 'spree/admin/translations/taxons/form', options %>
32
- <% when Spree::Taxonomy %>
33
- <%= render 'spree/admin/translations/taxonomies/form', options %>
34
- <% when Spree::Store %>
35
- <%= render 'spree/admin/translations/stores/form', options %>
36
- <% end %>
37
- </tbody>
38
- </table>
39
- <% end %>
40
- <div class="form-actions">
14
+ <%= form_with model: @resource, url: spree.admin_translation_path(@resource, resource_type: @resource.class.to_s), method: :put, class: 'form-horizontal' do |f| %>
15
+ <div class="card mb-4">
16
+ <div class="card-body p-0">
17
+ <%= turbo_frame_tag :translations_table, refresh: "morph" do %>
18
+ <%= hidden_field_tag :translation_locale, @selected_translation_locale %>
19
+ <table class="table">
20
+ <thead>
21
+ <tr>
22
+ <th scope="col" class="w-10 text-center"><%= Spree.t(:field) %></th>
23
+ <th scope="col" class="w-40 text-center"><%= Spree.t('i18n.this_file_language', locale: @default_locale) %> (<%= Spree.t(:default) %>)</th>
24
+ <th scope="col" class="w-50 text-center"><%= Spree.t('i18n.this_file_language', locale: @selected_translation_locale) %></th>
25
+ </tr>
26
+ </thead>
27
+ <tbody>
28
+ <% options = { f: f, resource: @resource, locale: @selected_translation_locale } %>
29
+ <% case @resource.class.name %>
30
+ <% when 'Spree::OptionType' %>
31
+ <%= render 'spree/admin/translations/option_types/form', options %>
32
+ <% when 'Spree::Product' %>
33
+ <%= render 'spree/admin/translations/products/form', options %>
34
+ <% when 'Spree::Property' %>
35
+ <%= render 'spree/admin/translations/properties/form', options %>
36
+ <% when 'Spree::Store' %>
37
+ <%= render 'spree/admin/translations/stores/form', options %>
38
+ <% when 'Spree::Taxon' %>
39
+ <%= render 'spree/admin/translations/taxons/form', options %>
40
+ <% when 'Spree::Taxonomy' %>
41
+ <%= render 'spree/admin/translations/taxonomies/form', options %>
42
+ <% end %>
43
+ </tbody>
44
+ </table>
45
+ <% end %>
46
+ </div>
47
+ </div>
48
+ <div class="form-actions d-flex justify-content-between">
41
49
  <%= turbo_save_button_tag Spree.t('actions.update') %>
42
- <%= link_to Spree.t('actions.cancel'), @back_path, class: 'btn btn-light ml-auto' %>
50
+ <%= link_to Spree.t('actions.discard'), @back_path, class: 'btn btn-light', data: { turbo_frame: '_top' } %>
43
51
  </div>
44
52
  <% end %>
45
53
  <% else %>
@@ -0,0 +1,17 @@
1
+ <%# locals: (f:, resource:, locale:) %>
2
+
3
+ <% resource.class.translatable_fields.each do |field| %>
4
+ <%= render "spree/admin/translations/translation_rows/text_field_row", f: f, field: field, locale: locale %>
5
+ <% end %>
6
+
7
+ <% if resource.option_values.any? %>
8
+ <tr class="bg-light">
9
+ <th colspan="3"><%= Spree.t(:option_values) %></th>
10
+ </tr>
11
+
12
+ <%= f.fields_for :option_values do |ff| %>
13
+ <% ff.object.class.translatable_fields.each do |field| %>
14
+ <%= render "spree/admin/translations/translation_rows/text_field_row", f: ff, field: field, locale: locale %>
15
+ <% end %>
16
+ <% end %>
17
+ <% end %>
@@ -1,23 +1,14 @@
1
+ <%# locals: (f:, resource:, locale:) %>
2
+
1
3
  <% resource.class.translatable_fields.each do |field| %>
2
- <% if field == :meta_keywords %>
3
- <% next %>
4
+ <% next if field == :meta_keywords %>
5
+
6
+ <% case field%>
7
+ <% when :description %>
8
+ <%= render "spree/admin/translations/translation_rows/rich_textarea_row", f: f, field: field, locale: locale %>
9
+ <% when :meta_description %>
10
+ <%= render "spree/admin/translations/translation_rows/textarea_row", f: f, field: field, locale: locale %>
11
+ <% else %>
12
+ <%= render "spree/admin/translations/translation_rows/text_field_row", f: f, field: field, locale: locale %>
4
13
  <% end %>
5
- <tr>
6
- <td class="text-left">
7
- <%= Spree.t(field) %>
8
- </td>
9
- <% [@default_locale, selected_translation_locale].each do |translation_locale| %>
10
- <% readonly = translation_locale == @default_locale %>
11
- <td <% if readonly %>style="width: 40%;"<% else %>style="width: 60%;"<% end %>>
12
- <% case field%>
13
- <% when :description %>
14
- <div class="border rounded mb-0">
15
- <%= text_area_tag "translation[#{field}][#{translation_locale}]", resource.get_field_with_locale(translation_locale, field), { rows: 10, class: "form-control spree-rte", readonly: readonly, contenteditable: !readonly } %>
16
- </div>
17
- <% else %>
18
- <%= text_field_tag "translation[#{field}][#{translation_locale}]", resource.get_field_with_locale(translation_locale, field), class: 'form-control', readonly: readonly %>
19
- <% end %>
20
- </td>
21
- <% end %>
22
- </tr>
23
14
  <% end %>
@@ -0,0 +1,5 @@
1
+ <%# locals: (f:, resource:, locale:) %>
2
+
3
+ <% resource.class.translatable_fields.each do |field| %>
4
+ <%= render "spree/admin/translations/translation_rows/text_field_row", f: f, field: field, locale: locale %>
5
+ <% end %>
@@ -1,23 +1,14 @@
1
+ <%# locals: (f:, resource:, locale:) %>
2
+
1
3
  <% resource.class.translatable_fields.each do |field| %>
2
- <% if field == :meta_keywords %>
3
- <% next %>
4
+ <% next if field == :meta_keywords %>
5
+
6
+ <% case field %>
7
+ <% when :description %>
8
+ <%= render "spree/admin/translations/translation_rows/rich_textarea_row", f: f, field: field, locale: locale %>
9
+ <% when :address, :meta_description %>
10
+ <%= render "spree/admin/translations/translation_rows/textarea_row", f: f, field: field, locale: locale %>
11
+ <% else %>
12
+ <%= render "spree/admin/translations/translation_rows/text_field_row", f: f, field: field, locale: locale %>
4
13
  <% end %>
5
- <tr>
6
- <td class="text-left">
7
- <%= Spree.t(field) %>
8
- </td>
9
- <% [@default_locale, selected_translation_locale].each do |translation_locale| %>
10
- <% readonly = translation_locale == @default_locale %>
11
- <td <% if readonly %>style="width: 40%;"<% else %>style="width: 60%;"<% end %>>
12
- <% case field%>
13
- <% when :description %>
14
- <div class="trix-container mb-0">
15
- <%= rich_text_area_tag "translation[#{field}][#{translation_locale}]", resource.get_field_with_locale(translation_locale, field), { contenteditable: !readonly } %>
16
- </div>
17
- <% else %>
18
- <%= text_field_tag "translation[#{field}][#{translation_locale}]", resource.get_field_with_locale(translation_locale, field), class: 'form-control', readonly: readonly %>
19
- <% end %>
20
- </td>
21
- <% end %>
22
- </tr>
23
14
  <% end %>
@@ -1,20 +1,5 @@
1
+ <%# locals: (f:, resource:, locale:) %>
2
+
1
3
  <% resource.class.translatable_fields.each do |field| %>
2
- <tr>
3
- <td class="text-left">
4
- <%= Spree.t(field) %>
5
- </td>
6
- <% [@default_locale, selected_translation_locale].each do |translation_locale| %>
7
- <% readonly = translation_locale == @default_locale %>
8
- <td <% if readonly %>style="width: 40%;"<% else %>style="width: 60%;"<% end %>>
9
- <% case field%>
10
- <% when :description %>
11
- <div class="trix-container mb-0">
12
- <%= rich_text_area_tag "translation[#{field}][#{translation_locale}]", resource.get_field_with_locale(translation_locale, field), { contenteditable: !readonly } %>
13
- </div>
14
- <% else %>
15
- <%= text_field_tag "translation[#{field}][#{translation_locale}]", resource.get_field_with_locale(translation_locale, field), class: 'form-control', readonly: readonly %>
16
- <% end %>
17
- </td>
18
- <% end %>
19
- </tr>
4
+ <%= render "spree/admin/translations/translation_rows/text_field_row", f: f, field: field, locale: locale %>
20
5
  <% end %>
@@ -1,37 +1,14 @@
1
+ <%# locals: (f:, resource:, locale:) %>
2
+
1
3
  <% resource.class.translatable_fields.each do |field| %>
2
- <% if field == :pretty_name %>
3
- <% next %>
4
+ <% next if field == :pretty_name %>
5
+
6
+ <% case field %>
7
+ <% when :description %>
8
+ <%= render "spree/admin/translations/translation_rows/rich_textarea_row", f: f, field: field, locale: locale %>
9
+ <% when :permalink %>
10
+ <%= render "spree/admin/translations/translation_rows/permalink_field_row", f: f, field: field, locale: locale %>
11
+ <% else %>
12
+ <%= render "spree/admin/translations/translation_rows/text_field_row", f: f, field: field, locale: locale %>
4
13
  <% end %>
5
- <tr>
6
- <td class="text-left">
7
- <%= Spree.t(field) %>
8
- </td>
9
- <% [@default_locale, selected_translation_locale].each do |translation_locale| %>
10
- <% readonly = translation_locale == @default_locale %>
11
- <td <% if readonly %>style="width: 40%;"<% else %>style="width: 60%;"<% end %>>
12
- <% case field%>
13
- <% when :description %>
14
- <div class="trix-container mb-0">
15
- <%= rich_text_area_tag "translation[#{field}][#{translation_locale}]", resource.get_field_with_locale(translation_locale, field), { contenteditable: !readonly } %>
16
- </div>
17
- <% when :permalink %>
18
- <% parent_permalink = resource.parent.present? ? I18n.with_locale(translation_locale) { resource.parent.permalink } + "/" : "" %>
19
- <div class="form-group">
20
- <div class="input-group">
21
- <% if parent_permalink.present? %>
22
- <div class="input-group-prepend">
23
- <span class="input-group-text">
24
- <%= parent_permalink %>
25
- </span>
26
- </div>
27
- <% end %>
28
- <%= text_field_tag "translation[#{field}][#{translation_locale}]", resource.get_field_with_locale(translation_locale, field)&.delete_prefix(parent_permalink), class: 'form-control', readonly: readonly %>
29
- </div>
30
- </div>
31
- <% else %>
32
- <%= text_field_tag "translation[#{field}][#{translation_locale}]", resource.get_field_with_locale(translation_locale, field), class: 'form-control', readonly: readonly %>
33
- <% end %>
34
- </td>
35
- <% end %>
36
- </tr>
37
14
  <% end %>
@@ -0,0 +1,41 @@
1
+ <%# locals: (f:, field:, locale:) %>
2
+
3
+ <%
4
+ parent = f.object.parent
5
+
6
+ base_permalink = parent.present? ? parent.send(field).to_s + "/" : ""
7
+ value = f.object.send(field)&.delete_prefix(base_permalink)
8
+
9
+ base_permalink_translated = parent.present? ? I18n.with_locale(locale) { parent.send(field) } + "/" : ""
10
+ translated_value = f.object.send("#{field}_#{locale}")&.delete_prefix(base_permalink_translated)
11
+ %>
12
+
13
+ <tr>
14
+ <td class="text-center"><%= Spree.t(field) %></td>
15
+ <td>
16
+ <div class="form-group">
17
+ <div class="input-group">
18
+ <% if base_permalink.present? %>
19
+ <div class="input-group-prepend">
20
+ <span class="input-group-text"><%= base_permalink %></span>
21
+ </div>
22
+ <% end %>
23
+
24
+ <%= value %>
25
+ </div>
26
+ </div>
27
+ </td>
28
+ <td>
29
+ <div class="form-group">
30
+ <div class="input-group">
31
+ <% if base_permalink_translated.present? %>
32
+ <div class="input-group-prepend">
33
+ <span class="input-group-text"><%= base_permalink_translated %></span>
34
+ </div>
35
+ <% end %>
36
+
37
+ <%= f.text_field "#{field}_#{locale}", value: translated_value, class: 'form-control' %>
38
+ </div>
39
+ </div>
40
+ </td>
41
+ </tr>
@@ -0,0 +1,13 @@
1
+ <%# locals: (f:, field:, locale:) %>
2
+
3
+ <tr>
4
+ <td class="text-center"><%= Spree.t(field) %></td>
5
+ <td class="text-wrap">
6
+ <%= @resource.send(field)%>
7
+ </td>
8
+ <td>
9
+ <div class="trix-container mb-0">
10
+ <%= f.rich_textarea "#{field}_#{locale}" %>
11
+ </div>
12
+ </td>
13
+ </tr>
@@ -0,0 +1,7 @@
1
+ <%# locals: (f:, field:, locale:) %>
2
+
3
+ <tr>
4
+ <td class="text-center"><%= Spree.t(field) %></td>
5
+ <td><%= @resource.send(field) %></td>
6
+ <td><%= f.text_field "#{field}_#{locale}", class: 'form-control' %></td>
7
+ </tr>
@@ -0,0 +1,11 @@
1
+ <%# locals: (f:, field:, locale:) %>
2
+
3
+ <tr>
4
+ <td class="text-center"><%= Spree.t(field) %></td>
5
+ <td>
6
+ <%= @resource.send(field) %>
7
+ </td>
8
+ <td>
9
+ <%= f.textarea "#{field}_#{locale}", rows: 5, class: "form-control", data: { controller: 'textarea-autogrow'} %>
10
+ </td>
11
+ </tr>
@@ -12,6 +12,7 @@
12
12
  <%= Spree.t(:email) %>
13
13
  <span>
14
14
  <%= @user.email %>
15
+ <%= clipboard_component(@user.email) %>
15
16
  </span>
16
17
  </li>
17
18
  <li class="list-group-item d-flex justify-content-between align-items-center">
@@ -10,7 +10,7 @@
10
10
 
11
11
  <%= render 'extra_actions' %>
12
12
 
13
- <%= link_to_with_icon 'plus', Spree.t(:create_customer), spree.new_admin_user_path, class: "btn btn-primary" if can? :create, Spree::user_class %>
13
+ <%= link_to_with_icon 'plus', Spree.t(:new_customer), spree.new_admin_user_path, class: "btn btn-primary" if can? :create, Spree::user_class %>
14
14
  <% end %>
15
15
 
16
16
  <div class="card-lg">
@@ -4,11 +4,15 @@
4
4
  <% end %>
5
5
 
6
6
  <%= form_for [:admin, @user], url: spree.admin_users_path, method: :post do |f| %>
7
- <div class="card mb-4">
8
- <div class="card-body">
9
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @user } %>
10
- <%= render 'form', f: f %>
7
+ <div class="row">
8
+ <div class="col-lg-6 offset-lg-3">
9
+ <div class="card mb-4">
10
+ <div class="card-body">
11
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @user } %>
12
+ <%= render 'form', f: f %>
13
+ </div>
14
+ </div>
15
+ <%= render 'spree/admin/shared/new_resource_links' %>
11
16
  </div>
12
17
  </div>
13
- <%= render 'spree/admin/shared/new_resource_links' %>
14
18
  <% end %>
@@ -1,15 +1,15 @@
1
1
  <% content_for :page_title do %>
2
2
  <%= page_header_back_button spree.admin_users_path, @user %>
3
3
  <%= customer_full_name(@user) || @user.email %>
4
- <span class="font-size-base font-weight-normal ml-3">
4
+ <span class="font-size-base font-weight-normal">
5
5
  <%= customer_location_flag(@user) %>
6
6
  <%= customer_location(@user) %>
7
7
  </span>
8
8
  <% end %>
9
9
 
10
10
  <% content_for(:page_actions_dropdown) do %>
11
- <% if spree.respond_to?(:new_admin_user_gift_card_path) && can?(:create, Spree::GiftCard) %>
12
- <%= link_to_with_icon 'plus', Spree.t(:issue_gift_card), spree.new_admin_user_gift_card_path(@user), class: 'text-left dropdown-item' %>
11
+ <% if can?(:create, Spree::GiftCard) %>
12
+ <%= link_to_with_icon 'plus', Spree.t(:add_gift_card), spree.new_admin_user_gift_card_path(@user), class: 'text-left dropdown-item' %>
13
13
  <% end %>
14
14
 
15
15
  <% if can?(:create, Spree::StoreCredit) %>
@@ -38,7 +38,7 @@
38
38
  <% end %>
39
39
  </tbody>
40
40
  </table>
41
- <div class="card-footer border-toptext-center bg-gray-25 text-muted">
41
+ <div class="card-footer border-top text-center bg-gray-25 text-muted">
42
42
  <%= Spree.t('admin.variants_form.stock_locations_link', link: spree.admin_stock_locations_path).html_safe %>
43
43
  </div>
44
44
  </div>