spree_admin 5.1.0.beta3 → 5.1.0.rc1

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 (133) 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 +14 -2
  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 +13 -8
  12. data/app/assets/stylesheets/spree/admin/shared/_base.scss +5 -0
  13. data/app/controllers/concerns/spree/admin/order_breadcrumb_concern.rb +12 -0
  14. data/app/controllers/spree/admin/gift_card_batches_controller.rb +23 -0
  15. data/app/controllers/spree/admin/gift_cards_controller.rb +94 -0
  16. data/app/controllers/spree/admin/orders_controller.rb +20 -5
  17. data/app/controllers/spree/admin/payments_controller.rb +3 -0
  18. data/app/controllers/spree/admin/products_controller.rb +3 -3
  19. data/app/controllers/spree/admin/refunds_controller.rb +4 -0
  20. data/app/controllers/spree/admin/reimbursements_controller.rb +5 -1
  21. data/app/controllers/spree/admin/resource_controller.rb +12 -1
  22. data/app/controllers/spree/admin/search_controller.rb +22 -0
  23. data/app/controllers/spree/admin/store_credits_controller.rb +8 -5
  24. data/app/helpers/spree/admin/base_helper.rb +55 -0
  25. data/app/helpers/spree/admin/navigation_helper.rb +2 -2
  26. data/app/helpers/spree/admin/payments_helper.rb +0 -5
  27. data/app/helpers/spree/admin/products_helper.rb +1 -1
  28. data/app/helpers/spree/admin/promotion_rules_helper.rb +13 -1
  29. data/app/helpers/spree/admin/shipment_helper.rb +2 -0
  30. data/app/javascript/spree/admin/application.js +2 -0
  31. data/app/javascript/spree/admin/controllers/active_storage_upload_controller.js +2 -11
  32. data/app/javascript/spree/admin/controllers/multi_tom_select_controller.js +3 -2
  33. data/app/javascript/spree/admin/controllers/return_items_controller.js +6 -1
  34. data/app/javascript/spree/admin/controllers/sticky_controller.js +24 -0
  35. data/app/javascript/spree/admin/controllers/variants_form_controller.js +23 -17
  36. data/app/javascript/spree/admin/helpers/uppy_active_storage.js +15 -3
  37. data/app/views/active_storage/_upload_form.html.erb +3 -3
  38. data/app/views/spree/admin/coupon_codes/_coupon_code.html.erb +2 -6
  39. data/app/views/spree/admin/coupon_codes/index.csv.erb +1 -1
  40. data/app/views/spree/admin/custom_domains/edit.html.erb +2 -3
  41. data/app/views/spree/admin/custom_domains/new.html.erb +2 -3
  42. data/app/views/spree/admin/dashboard/_setup_progress.html.erb +2 -3
  43. data/app/views/spree/admin/dashboard/_store_preview.html.erb +3 -9
  44. data/app/views/spree/admin/gift_card_batches/_form.html.erb +30 -0
  45. data/app/views/spree/admin/gift_card_batches/new.html.erb +15 -0
  46. data/app/views/spree/admin/gift_cards/_filters.html.erb +43 -0
  47. data/app/views/spree/admin/gift_cards/_form.html.erb +30 -0
  48. data/app/views/spree/admin/gift_cards/_gift_card.html.erb +28 -0
  49. data/app/views/spree/admin/gift_cards/_list.html.erb +24 -0
  50. data/app/views/spree/admin/gift_cards/_table_filter_dropdown.html.erb +25 -0
  51. data/app/views/spree/admin/gift_cards/edit.html.erb +20 -0
  52. data/app/views/spree/admin/gift_cards/index.csv.erb +22 -0
  53. data/app/views/spree/admin/gift_cards/index.html.erb +41 -0
  54. data/app/views/spree/admin/gift_cards/new.html.erb +30 -0
  55. data/app/views/spree/admin/gift_cards/show.html.erb +199 -0
  56. data/app/views/spree/admin/integrations/new.html.erb +7 -4
  57. data/app/views/spree/admin/oauth_applications/edit.html.erb +2 -3
  58. data/app/views/spree/admin/oauth_applications/new.html.erb +2 -3
  59. data/app/views/spree/admin/orders/_customer.html.erb +5 -2
  60. data/app/views/spree/admin/orders/_payments.html.erb +1 -1
  61. data/app/views/spree/admin/orders/_return_authorizations.html.erb +3 -1
  62. data/app/views/spree/admin/orders/_shipment.html.erb +1 -1
  63. data/app/views/spree/admin/orders/_shipments.html.erb +1 -1
  64. data/app/views/spree/admin/orders/return_authorizations/_form.html.erb +13 -11
  65. data/app/views/spree/admin/page_sections/forms/_featured_posts.html.erb +0 -5
  66. data/app/views/spree/admin/pages/_form.html.erb +20 -26
  67. data/app/views/spree/admin/pages/new.html.erb +10 -4
  68. data/app/views/spree/admin/payments/_payment.html.erb +14 -9
  69. data/app/views/spree/admin/payments/new.html.erb +1 -1
  70. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +1 -1
  71. data/app/views/spree/admin/post_categories/edit.html.erb +2 -3
  72. data/app/views/spree/admin/post_categories/new.html.erb +2 -3
  73. data/app/views/spree/admin/preferences/_password_field.html.erb +2 -2
  74. data/app/views/spree/admin/products/edit.html.erb +2 -2
  75. data/app/views/spree/admin/promotion_actions/_promotion_action.html.erb +1 -1
  76. data/app/views/spree/admin/promotion_actions/edit.html.erb +2 -2
  77. data/app/views/spree/admin/promotion_rules/_promotion_rule.html.erb +26 -9
  78. data/app/views/spree/admin/promotion_rules/edit.html.erb +2 -2
  79. data/app/views/spree/admin/promotion_rules/forms/_option_value.html.erb +1 -1
  80. data/app/views/spree/admin/promotions/_actions.html.erb +2 -2
  81. data/app/views/spree/admin/promotions/_rules.html.erb +2 -2
  82. data/app/views/spree/admin/promotions/_sidebar.html.erb +5 -13
  83. data/app/views/spree/admin/properties/edit.html.erb +9 -5
  84. data/app/views/spree/admin/properties/new.html.erb +9 -5
  85. data/app/views/spree/admin/refunds/new.html.erb +5 -2
  86. data/app/views/spree/admin/reimbursement_types/edit.html.erb +2 -3
  87. data/app/views/spree/admin/reimbursement_types/new.html.erb +2 -4
  88. data/app/views/spree/admin/shared/_content_header.html.erb +9 -4
  89. data/app/views/spree/admin/shared/_edit_resource_links.html.erb +3 -1
  90. data/app/views/spree/admin/shared/_header.html.erb +2 -2
  91. data/app/views/spree/admin/shared/_index_table_options.html.erb +1 -1
  92. data/app/views/spree/admin/shared/_preferences.html.erb +1 -0
  93. data/app/views/spree/admin/shared/_sidebar.html.erb +1 -1
  94. data/app/views/spree/admin/shared/_user.html.erb +2 -7
  95. data/app/views/spree/admin/shared/named_types/_edit.html.erb +2 -3
  96. data/app/views/spree/admin/shared/named_types/_new.html.erb +2 -3
  97. data/app/views/spree/admin/shared/sidebar/_orders_nav.html.erb +1 -1
  98. data/app/views/spree/admin/shared/sortable_tree/_taxonomy.html.erb +1 -1
  99. data/app/views/spree/admin/shipping_categories/edit.html.erb +7 -4
  100. data/app/views/spree/admin/shipping_categories/new.html.erb +7 -6
  101. data/app/views/spree/admin/shipping_methods/form/_display.html.erb +23 -1
  102. data/app/views/spree/admin/stock_locations/_form.html.erb +35 -51
  103. data/app/views/spree/admin/stock_locations/edit.html.erb +8 -3
  104. data/app/views/spree/admin/stock_locations/new.html.erb +8 -5
  105. data/app/views/spree/admin/store_credit_events/_store_credit_event.html.erb +29 -0
  106. data/app/views/spree/admin/store_credits/_form.html.erb +13 -21
  107. data/app/views/spree/admin/store_credits/_list.html.erb +4 -24
  108. data/app/views/spree/admin/store_credits/_store_credit.html.erb +11 -0
  109. data/app/views/spree/admin/store_credits/edit.html.erb +16 -31
  110. data/app/views/spree/admin/store_credits/new.html.erb +14 -12
  111. data/app/views/spree/admin/store_credits/show.html.erb +145 -0
  112. data/app/views/spree/admin/stores/form/_basic.html.erb +26 -10
  113. data/app/views/spree/admin/tax_categories/_form.html.erb +1 -1
  114. data/app/views/spree/admin/tax_categories/edit.html.erb +7 -4
  115. data/app/views/spree/admin/tax_categories/new.html.erb +7 -4
  116. data/app/views/spree/admin/tax_rates/_form.html.erb +34 -32
  117. data/app/views/spree/admin/tax_rates/edit.html.erb +7 -4
  118. data/app/views/spree/admin/tax_rates/new.html.erb +7 -7
  119. data/app/views/spree/admin/taxonomies/edit.html.erb +2 -4
  120. data/app/views/spree/admin/taxonomies/new.html.erb +2 -2
  121. data/app/views/spree/admin/translations/edit.html.erb +2 -2
  122. data/app/views/spree/admin/translations/stores/_form.html.erb +2 -0
  123. data/app/views/spree/admin/users/_details.html.erb +1 -0
  124. data/app/views/spree/admin/users/index.html.erb +1 -1
  125. data/app/views/spree/admin/users/new.html.erb +9 -5
  126. data/app/views/spree/admin/users/show.html.erb +3 -3
  127. data/app/views/spree/admin/variants/form/_inventory.html.erb +1 -1
  128. data/app/views/spree/admin/zones/_form.html.erb +36 -40
  129. data/app/views/spree/admin/zones/edit.html.erb +7 -5
  130. data/app/views/spree/admin/zones/new.html.erb +7 -4
  131. data/config/locales/en.yml +12 -1
  132. data/config/routes.rb +8 -2
  133. metadata +28 -8
@@ -21,5 +21,27 @@
21
21
  </div>
22
22
  </div>
23
23
  </div>
24
+
25
+ <div class="row">
26
+ <div class="col-lg-6">
27
+ <div class="form-group">
28
+ <%= f.label :admin_name, Spree.t(:internal_name) %>
29
+ <%= f.text_field :admin_name, class: 'form-control' %>
30
+ <%= f.error_message_on :admin_name %>
31
+ </div>
32
+
33
+ <p class="form-text text-muted small mt-2">
34
+ This will be displayed to admins.
35
+ </p>
36
+ </div>
37
+
38
+ <div class="col-lg-6">
39
+ <div class="form-group">
40
+ <%= f.label :code, Spree.t(:code) %>
41
+ <%= f.text_field :code, class: 'form-control' %>
42
+ <%= f.error_message_on :code %>
43
+ </div>
44
+ </div>
45
+ </div>
24
46
  </div>
25
- </div>
47
+ </div>
@@ -1,56 +1,40 @@
1
- <div class="row">
2
- <div class="col-12">
3
- <div class="card mb-4">
4
- <div class="card-header">
5
- <h5 class="card-title">
6
- <%= Spree.t(:general_settings) %>
7
- </h5>
8
- </div>
9
- <div class="card-body" >
10
- <div class="row">
11
- <div class="col-12 col-lg-6">
12
- <div class="form-group">
13
- <%= f.label :name, raw(Spree.t(:name) + required_span_tag) %>
14
- <%= f.text_field :name, class: 'form-control', required: true, autofocus: f.object.new_record? %>
15
- <%= f.error_message_on :name %>
16
- </div>
17
- </div>
18
- <div class="col-12 col-lg-6">
19
- <div class="form-group">
20
- <%= f.label :admin_name, Spree.t(:internal_name) %>
21
- <%= f.text_field :admin_name, class: 'form-control', label: false %>
22
- </div>
23
- </div>
1
+ <div class="card mb-4">
2
+ <div class="card-header">
3
+ <h5 class="card-title">
4
+ <%= Spree.t(:general_settings) %>
5
+ </h5>
6
+ </div>
7
+ <div class="card-body" >
8
+ <div class="form-group">
9
+ <%= f.label :name, raw(Spree.t(:name) + required_span_tag) %>
10
+ <%= f.text_field :name, class: 'form-control', required: true, autofocus: f.object.new_record? %>
11
+ <%= f.error_message_on :name %>
12
+ </div>
13
+ <div class="form-group">
14
+ <%= f.label :admin_name, Spree.t(:internal_name) %>
15
+ <%= f.text_field :admin_name, class: 'form-control', label: false %>
16
+ </div>
17
+ <% unless f.object.default? %>
18
+ <div class="form-group">
19
+ <div class="custom-control custom-checkbox">
20
+ <%= f.check_box :active, class: 'custom-control-input' %>
21
+ <%= f.label :active, class: 'custom-control-label' %>
24
22
  </div>
25
- <% unless f.object.default? %>
26
- <div class="row mt-3">
27
- <div class="col-12">
28
- <div class="form-group">
29
- <div class="custom-control custom-checkbox">
30
- <%= f.check_box :active, class: 'custom-control-input' %>
31
- <%= f.label :active, class: 'custom-control-label' %>
32
- </div>
33
- </div>
34
- </div>
35
- </div>
36
- <% end %>
37
23
  </div>
38
- </div>
24
+ <% end %>
39
25
  </div>
40
- <div class="col-12">
41
- <div class="card mb-4">
42
- <div class="card-header">
43
- <h5 class="card-title">
44
- <%= Spree.t(:address) %>
45
- </h5>
46
- </div>
47
- <div class="card-body">
48
- <%= render 'spree/addresses/form',
49
- address_name: 'address',
50
- address_form: f,
51
- address_type: 'stock_location',
52
- address: f.object %>
53
- </div>
54
- </div>
26
+ </div>
27
+ <div class="card mb-4">
28
+ <div class="card-header">
29
+ <h5 class="card-title">
30
+ <%= Spree.t(:address) %>
31
+ </h5>
32
+ </div>
33
+ <div class="card-body pb-0">
34
+ <%= render 'spree/addresses/form',
35
+ address_name: 'address',
36
+ address_form: f,
37
+ address_type: 'stock_location',
38
+ address: f.object %>
55
39
  </div>
56
40
  </div>
@@ -2,8 +2,13 @@
2
2
  <%= page_header_back_button spree.admin_stock_locations_path %>
3
3
  <%= @stock_location.name %>
4
4
  <% end %>
5
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @stock_location } %>
5
+
6
6
  <%= form_for [:admin, @stock_location] do |f| %>
7
- <%= render 'form', f: f %>
8
- <%= 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: @stock_location } %>
10
+ <%= render 'form', f: f %>
11
+ <%= render 'spree/admin/shared/edit_resource_links', f: f %>
12
+ </div>
13
+ </div>
9
14
  <% end %>
@@ -2,10 +2,13 @@
2
2
  <%= page_header_back_button spree.admin_stock_locations_path %>
3
3
  <%= Spree.t(:new_stock_location) %>
4
4
  <% end %>
5
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @stock_location } %>
5
+
6
6
  <%= form_for [:admin, @stock_location] do |f| %>
7
- <fieldset>
8
- <%= render 'form', f: f %>
9
- <%= render 'spree/admin/shared/new_resource_links' %>
10
- </fieldset>
7
+ <div class="row">
8
+ <div class="col-lg-6 offset-lg-3">
9
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @stock_location } %>
10
+ <%= render 'form', f: f %>
11
+ <%= render 'spree/admin/shared/new_resource_links' %>
12
+ </div>
13
+ </div>
11
14
  <% end %>
@@ -0,0 +1,29 @@
1
+ <tr id="<%= spree_dom_id(store_credit_event) %>">
2
+ <td class="w-15">
3
+ <span class="badge badge-<%= store_credit_event.action %>">
4
+ <%= store_credit_event.display_action %>
5
+ </span>
6
+ </td>
7
+ <td class="w-15">
8
+ <%= store_credit_event.display_amount %>
9
+ </td>
10
+ <td class="w-30">
11
+ <% if defined?(Spree::GiftCard) && store_credit_event.originator.is_a?(Spree::GiftCard) %>
12
+ <%= link_to store_credit_event.originator.code.upcase, spree.admin_gift_card_path(store_credit_event.originator) %>
13
+ <% elsif store_credit_event.originator.is_a?(Spree.admin_user_class) %>
14
+ <%= link_to store_credit_event.originator.email, spree.admin_admin_user_path(store_credit_event.originator) %>
15
+ <% end %>
16
+ </td>
17
+ <td class="w-20">
18
+ <% if store_credit_event.order %>
19
+ <%= link_to store_credit_event.order.number, spree.edit_admin_order_path(store_credit_event.order) %>
20
+ <% else %>
21
+ <span class="text-muted">
22
+ <%= Spree.t(:not_available) %>
23
+ </span>
24
+ <% end %>
25
+ </td>
26
+ <td class="w-20">
27
+ <%= local_date(store_credit_event.created_at) %>
28
+ </td>
29
+ </tr>
@@ -1,24 +1,16 @@
1
- <div data-hook='admin_store_credit_form_fields'>
2
- <div class="row mb-3">
3
- <div class="col-6">
4
- <div class="form-group">
5
- <%= f.label :amount, raw(Spree.t(:amount) + required_span_tag) %>
6
- <%= f.number_field :amount, class: 'form-control', step: 0.01, required: true, disabled: !f.object.editable? %>
7
- <%= f.error_message_on :amount %>
8
- </div>
9
- </div>
1
+ <div class="form-group">
2
+ <%= f.label :amount, raw(Spree.t(:amount) + required_span_tag) %>
3
+ <%= f.number_field :amount, class: 'form-control', min: 0.01, step: 0.01, required: true, disabled: !f.object.editable? %>
4
+ <%= f.error_message_on :amount %>
5
+ </div>
10
6
 
11
- <div class="col-6">
12
- <div class="form-group">
13
- <%= f.label :currency, raw(Spree.t(:currency) + required_span_tag), class: 'form-label' %>
14
- <%= f.select :currency, preferred_currencies_select_options, {}, { data: { controller: 'autocomplete-select', enable_button_target: 'input', store_form_target: 'currency' } } %>
15
- </div>
16
- </div>
17
- </div>
7
+ <div class="form-group">
8
+ <%= f.label :currency, raw(Spree.t(:currency) + required_span_tag), class: 'form-label' %>
9
+ <%= f.select :currency, preferred_currencies_select_options, {}, { data: { controller: 'autocomplete-select', enable_button_target: 'input', store_form_target: 'currency' } } %>
10
+ </div>
18
11
 
19
- <div class="form-group">
20
- <%= f.label :memo, Spree.t(:memo) %>
21
- <%= f.text_area :memo, class: 'form-control' %>
22
- <%= f.error_message_on :memo %>
23
- </div>
12
+ <div class="form-group">
13
+ <%= f.label :memo, Spree.t(:memo) %>
14
+ <%= f.text_area :memo, class: 'form-control' %>
15
+ <%= f.error_message_on :memo %>
24
16
  </div>
@@ -9,33 +9,13 @@
9
9
  <th><%= Spree.t('store_credit.remaining') %></th>
10
10
  <th><%= Spree.t(:created_by) %></th>
11
11
  <th><%= Spree.t(:issued_on) %></th>
12
- <th></th>
13
12
  </thead>
14
13
  <tbody>
15
- <% @store_credits.each do |store_credit| %>
16
- <tr>
17
- <td><%= store_credit.currency %></td>
18
- <td><%= store_credit.display_amount.to_html %></td>
19
- <td><%= store_credit.display_amount_authorized.to_html %></td>
20
- <td><%= store_credit.display_amount_used.to_html %></td>
21
- <td><%= store_credit.display_amount_remaining.to_html %></td>
22
- <td><%= store_credit.created_by_email %></td>
23
- <td><%= local_date(store_credit.created_at) %></td>
24
- <td class="actions">
25
- <% if store_credit.editable? && can?(:edit, store_credit) %>
26
- <%= link_to_edit store_credit, url: spree.edit_admin_user_store_credit_path(@user, store_credit), no_text: true, data: { 'turbo-frame': '_top' } %>
27
- <% end %>
28
- </td>
29
- </tr>
30
- <% end %>
14
+ <%= render partial: 'spree/admin/store_credits/store_credit', collection: @store_credits, as: :store_credit, cached: spree_base_cache_scope %>
31
15
  </tbody>
32
16
  </table>
33
17
  </div>
18
+ <%= render partial: 'spree/admin/shared/index_table_options', locals: { collection: @store_credits } %>
34
19
  <% else %>
35
- <div class="text-muted p-5 d-flex align-items-center w-100 justify-content-center">
36
- <%= Spree.t(:no_resource_found, resource: plural_resource_name(Spree::StoreCredit)) %>
37
- <%= link_to_with_icon 'plus', Spree.t(:add_one), spree.new_admin_user_store_credit_path(@user), class: 'btn btn-link ml-3', data: { 'turbo-frame': '_top' } if can?(:create, Spree::StoreCredit) %>
38
- </div>
39
- <% end %>
40
-
41
- <%= render partial: 'spree/admin/shared/index_table_options', locals: { collection: @collection } %>
20
+ <%= render 'spree/admin/shared/no_resource_found', model_class: Spree::StoreCredit, new_object_url: spree.new_admin_user_store_credit_path(@user) %>
21
+ <% end %>
@@ -0,0 +1,11 @@
1
+ <tr data-controller="row-link" id="<%= spree_dom_id(store_credit) %>">
2
+ <td>
3
+ <%= link_to store_credit.display_amount.to_html, spree.admin_user_store_credit_path(@user, store_credit), data: { row_link_target: :link } %>
4
+ </td>
5
+ <td class="cursor-pointer" data-action="click->row-link#openLink"><%= store_credit.display_amount_authorized.to_html %></td>
6
+ <td class="cursor-pointer" data-action="click->row-link#openLink"><%= store_credit.display_amount_used.to_html %></td>
7
+ <td class="cursor-pointer" data-action="click->row-link#openLink"><%= store_credit.display_amount_remaining.to_html %></td>
8
+ <td class="cursor-pointer" data-action="click->row-link#openLink"><%= store_credit.currency %></td>
9
+ <td class="cursor-pointer" data-action="click->row-link#openLink"><%= store_credit.created_by_email %></td>
10
+ <td class="cursor-pointer" data-action="click->row-link#openLink"><%= local_date(store_credit.created_at) %></td>
11
+ </tr>
@@ -1,36 +1,21 @@
1
- <% content_for :title do %>
2
- <%= Spree.t(:store_credits) %>
3
- <% end %>
1
+ <%= turbo_frame_tag :store_credit_details do %>
2
+ <%= form_for @store_credit, url: spree.admin_user_store_credit_path(@user, @store_credit), method: :put do |f| %>
3
+ <div class="card">
4
+ <div class="card-header d-flex justify-content-between align-items-center">
5
+ <h5 class="card-title">
6
+ <%= Spree.t(:details) %>
7
+ </h5>
4
8
 
5
- <% content_for :page_title do %>
6
- <%= page_header_back_button spree.admin_user_path(@user) %>
7
- <%= @user.email %>
8
- <% end %>
9
+ <%= link_to Spree.t('actions.discard'), spree.admin_user_store_credit_path(@user, @store_credit), class: 'btn btn-sm btn-light' %>
10
+ </div>
9
11
 
10
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @store_credit } %>
11
-
12
- <%= form_for @store_credit, url: spree.admin_user_store_credit_path(@user, @store_credit) do |f| %>
13
- <div class="card mb-4">
14
- <div class="card-header">
15
- <h5 class="card-title">
16
- <%= Spree.t(:store_credits) %>
17
- </h5>
18
- </div>
19
-
20
- <div class="card-body">
21
- <%= render 'form', f: f %>
22
- </div>
23
- </div>
24
-
25
- <% if can? :update, @store_credit %>
26
- <div class="form-actions">
27
- <%= turbo_save_button_tag Spree.t('actions.update') %>
28
-
29
- <% if @store_credit.can_be_deleted? && can?(:delete, @store_credit) %>
30
- <%= link_to Spree.t('actions.destroy'), spree.admin_user_store_credit_path(@user),
31
- data: { turbo_method: :delete, turbo_confirm: Spree.t(:are_you_sure) },
32
- class: 'btn btn-danger ml-auto' %>
33
- <% end %>
12
+ <div class="card-body">
13
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @store_credit } %>
14
+ <%= render 'form', f: f %>
15
+ </div>
16
+ <div class="card-footer">
17
+ <%= render 'spree/admin/shared/edit_resource_links', f: f, destroy_url: spree.admin_user_store_credit_path(@user, @store_credit) %>
18
+ </div>
34
19
  </div>
35
20
  <% end %>
36
21
  <% end %>
@@ -7,20 +7,22 @@
7
7
  <%= Spree.t(:new_store_credit) %>
8
8
  <% end %>
9
9
 
10
- <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @store_credit } %>
11
-
12
10
  <%= form_for @store_credit, url: spree.admin_user_store_credits_path(@user, @store_credit) do |f| %>
13
- <div class="card mb-4">
14
- <div class="card-header">
15
- <h5 class="card-title">
16
- <%= Spree.t(:store_credits) %>
17
- </h5>
18
- </div>
11
+ <div class="row">
12
+ <div class="col-lg-6 offset-lg-3">
13
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @store_credit } %>
14
+ <div class="card mb-4">
15
+ <div class="card-header">
16
+ <h5 class="card-title">
17
+ <%= Spree.t(:store_credits) %>
18
+ </h5>
19
+ </div>
19
20
 
20
- <div class="card-body">
21
- <%= render 'form', f: f %>
21
+ <div class="card-body">
22
+ <%= render 'form', f: f %>
23
+ </div>
24
+ </div>
25
+ <%= render partial: 'spree/admin/shared/new_resource_links', locals: { collection_url: spree.admin_user_store_credits_path(@user) } %>
22
26
  </div>
23
27
  </div>
24
-
25
- <%= render partial: 'spree/admin/shared/new_resource_links', locals: { collection_url: spree.admin_user_store_credits_path(@user) } %>
26
28
  <% end %>
@@ -0,0 +1,145 @@
1
+ <%= content_for :page_title do %>
2
+ <%= page_header_back_button(spree.admin_user_path(@user)) %>
3
+ <%= Spree.t(:store_credit_name) %>
4
+ <%= @store_credit.display_amount %>
5
+ <% end %>
6
+
7
+ <div class="row">
8
+ <div class="col-lg-8">
9
+ <div class="card">
10
+ <div class="card-header">
11
+ <h5 class="card-title">
12
+ <%= Spree.t(:store_credit_events) %>
13
+ </h5>
14
+ </div>
15
+ <div class="card-body p-0">
16
+ <table class="table">
17
+ <thead>
18
+ <tr>
19
+ <th><%= Spree.t(:action) %></th>
20
+ <th><%= Spree.t(:amount) %></th>
21
+ <th><%= Spree.t(:source) %></th>
22
+ <th><%= Spree.t(:order) %></th>
23
+ <th><%= Spree.t(:created_at) %></th>
24
+ </tr>
25
+ </thead>
26
+ <tbody>
27
+ <%= render partial: 'spree/admin/store_credit_events/store_credit_event', collection: @store_credit_events, as: :store_credit_event, cached: spree_base_cache_scope %>
28
+ </tbody>
29
+ </table>
30
+ </div>
31
+ </div>
32
+ </div>
33
+
34
+ <div class="col-lg-4">
35
+ <%= turbo_frame_tag :store_credit_details do %>
36
+ <div class="card">
37
+ <div class="card-header d-flex justify-content-between align-items-center">
38
+ <h5 class="card-title">
39
+ <%= Spree.t(:details) %>
40
+ </h5>
41
+
42
+ <% if @store_credit.editable? %>
43
+ <%= link_to_with_icon 'edit', Spree.t(:edit), spree.edit_admin_user_store_credit_path(@user, @store_credit), class: 'btn btn-sm btn-light' %>
44
+ <% end %>
45
+ </div>
46
+ <div class="card-body p-0">
47
+ <ul class="list-group list-group-flush">
48
+ <li class="list-group-item d-flex justify-content-between align-items-center">
49
+ <span class="text-muted">
50
+ <%= Spree.t(:customer) %>
51
+ </span>
52
+ <span>
53
+ <%= link_to @store_credit.user.email, spree.admin_user_path(@store_credit.user) %>
54
+ </span>
55
+ </li>
56
+
57
+ <li class="list-group-item d-flex justify-content-between align-items-center">
58
+ <span class="text-muted">
59
+ <%= Spree.t(:created_by) %>
60
+ </span>
61
+ <% if @store_credit.created_by %>
62
+ <span>
63
+ <%= link_to @store_credit.created_by.email, spree.admin_admin_user_path(@store_credit.created_by) %>
64
+ </span>
65
+ <% else %>
66
+ <span class="text-muted">
67
+ <%= Spree.t(:not_available) %>
68
+ </span>
69
+ <% end %>
70
+ </li>
71
+
72
+ <li class="list-group-item d-flex justify-content-between align-items-center">
73
+ <span class="text-muted">
74
+ <%= Spree.t(:created_at) %>
75
+ </span>
76
+
77
+ <span>
78
+ <%= local_time(@store_credit.created_at) %>
79
+ </span>
80
+ </li>
81
+
82
+ <li class="list-group-item d-flex justify-content-between align-items-center">
83
+ <span class="text-muted">
84
+ <%= Spree.t(:amount) %>
85
+ </span>
86
+
87
+ <span>
88
+ <%= @store_credit.display_amount %>
89
+ </span>
90
+ </li>
91
+
92
+ <li class="list-group-item d-flex justify-content-between align-items-center">
93
+ <span class="text-muted">
94
+ <%= Spree.t(:authorized) %>
95
+ </span>
96
+
97
+ <span>
98
+ <%= @store_credit.display_amount_authorized %>
99
+ </span>
100
+ </li>
101
+
102
+ <li class="list-group-item d-flex justify-content-between align-items-center">
103
+ <span class="text-muted">
104
+ <%= Spree.t(:used) %>
105
+ </span>
106
+
107
+ <span>
108
+ <%= @store_credit.display_amount_used %>
109
+ </span>
110
+ </li>
111
+
112
+ <li class="list-group-item d-flex justify-content-between align-items-center">
113
+ <span class="text-muted">
114
+ <%= Spree.t('store_credit.remaining') %>
115
+ </span>
116
+
117
+ <span>
118
+ <%= @store_credit.display_amount_remaining %>
119
+ </span>
120
+ </li>
121
+
122
+ <li class="list-group-item d-flex justify-content-between align-items-center">
123
+ <span class="text-muted">
124
+ <%= Spree.t(:currency) %>
125
+ </span>
126
+
127
+ <span>
128
+ <%= @store_credit.currency %>
129
+ </span>
130
+ </li>
131
+
132
+ <li class="list-group-item d-flex flex-column justify-content-between align-items-start">
133
+ <span class="text-muted mb-2">
134
+ <%= Spree.t(:memo) %>
135
+ </span>
136
+
137
+ <span>
138
+ <%= @store_credit.memo %>
139
+ </span>
140
+ </ul>
141
+ </div>
142
+ </div>
143
+ </div>
144
+ <% end %>
145
+ </div>
@@ -14,7 +14,7 @@
14
14
  </div>
15
15
  <div class="card-body">
16
16
  <p class="text-muted">
17
- This is the name of your store. It will be displayed in the header and in the footer.
17
+ <%= Spree.t(:store_name_help) %>
18
18
  </p>
19
19
  <div class="form-group">
20
20
  <%= f.label :name, Spree.t(:name) %>
@@ -31,13 +31,30 @@
31
31
  </div>
32
32
  </div>
33
33
 
34
+ <div class="card mb-4">
35
+ <div class="card-header">
36
+ <h5 class="card-title"><%= Spree.t(:phone) %> & <%= Spree.t(:address) %></h5>
37
+ </div>
38
+ <div class="card-body">
39
+ <div class="form-group">
40
+ <%= f.label :contact_phone, Spree.t(:contact_phone) %>
41
+ <%= f.text_field :contact_phone, class: 'form-control' %>
42
+ </div>
43
+
44
+ <div class="form-group">
45
+ <%= f.label :address, Spree.t(:address) %>
46
+ <%= f.text_area :address, class: 'form-control', data: { controller: 'textarea-autogrow' } %>
47
+ </div>
48
+ </div>
49
+ </div>
50
+
34
51
  <div class="card mb-4">
35
52
  <div class="card-header">
36
53
  <h5 class="card-title"><%= Spree.t(:standards_and_formats) %></h5>
37
54
  </div>
38
55
  <div class="card-body">
39
56
  <p class="text-muted">
40
- Set the timezone, default unit system and weight unit for your store.
57
+ <%= Spree.t(:standards_and_formats_help) %>
41
58
  </p>
42
59
  <div class="form-group mb-3">
43
60
  <%= label_tag :preferred_timezone, raw(Spree.t(:timezone) + required_span_tag) %>
@@ -48,14 +65,14 @@
48
65
  <%= label_tag :preferred_unit_system, raw(Spree.t(:unit_system) + required_span_tag) %>
49
66
  <%= select_tag 'store[preferred_unit_system]', options_for_select(unit_systems, @store.preferred_unit_system), {class: 'custom-select', data: {unit_system_target: "body", action: "change->unit-system#unitSystemHandler"}} %>
50
67
  <p class="text-muted form-text mt-2 mb-0">
51
- This will be used as the default unit system for your store. You can override this on a per-product basis.
68
+ <%= Spree.t(:unit_system_help) %>
52
69
  </p>
53
70
  </div>
54
71
  <div class="form-group">
55
72
  <%= label_tag :preferred_weight_unit, raw(Spree.t(:weight_unit) + required_span_tag) %>
56
73
  <%= select_tag 'store[preferred_weight_unit]', options_for_select(weight_units(@store), @store.preferred_weight_unit), {class: 'custom-select', data: {unit_system_target: "weightUnit"}} %>
57
74
  <p class="text-muted form-text mt-2 mb-0">
58
- This will be used as the default weight unit for your store. You can override this on a per-product basis.
75
+ <%= Spree.t(:weight_unit_help) %>
59
76
  </p>
60
77
  </div>
61
78
  </div>
@@ -70,10 +87,10 @@
70
87
  </div>
71
88
  <div class="card-body">
72
89
  <p class="text-muted">
73
- This determines which vendors you can connect with and what customers see on your store.
90
+ <%= Spree.t(:currency_and_country_help) %>
74
91
  </p>
75
92
  <div class="form-group">
76
- <%= f.label :default_currency %>
93
+ <%= f.label :default_currency, Spree.t(:default_currency) %>
77
94
  <%= f.currency_select :default_currency, preferred_currencies, {}, data: { controller: 'autocomplete-select' } %>
78
95
  <%= f.error_message_on :default_currency %>
79
96
  </div>
@@ -95,14 +112,14 @@
95
112
  <%= f.label :checkout_zone_id, Spree.t(:shipping_zone) %>
96
113
  <%= f.select :checkout_zone_id, options_for_select(@zones, @store.checkout_zone_id), { }, { data: { controller: 'autocomplete-select' } } %>
97
114
  <small class="form-text text-muted mt-2">
98
- Zone will limit to which Countries or States products are shipped.
115
+ <%= Spree.t(:shipping_zone_help) %>
99
116
  <%= link_to Spree.t('admin.manage_zones'), spree.admin_zones_path %>
100
117
  </small>
101
118
  <%= f.error_message_on :checkout_zone_id %>
102
119
  </div>
103
120
 
104
121
  <div class="form-group">
105
- <%= f.label :default_locale %>
122
+ <%= f.label :default_locale, Spree.t(:default_locale) %>
106
123
  <%= f.select :default_locale, options_from_collection_for_select(all_locales_options, :last, :first, @store.default_locale || I18n.locale), {}, { data: { controller: 'autocomplete-select' } } %>
107
124
  <%= f.error_message_on :default_locale %>
108
125
  </div>
@@ -122,8 +139,7 @@
122
139
  </div>
123
140
  <div class="card-body">
124
141
  <p class="text-muted">
125
- Digital assets are files that can be downloaded by customers after
126
- purchase.
142
+ <%= Spree.t(:digital_assets_help) %>
127
143
  </p>
128
144
  <div class="custom-control custom-checkbox mb-3">
129
145
  <%= f.check_box :preferred_limit_digital_download_days,
@@ -14,7 +14,7 @@
14
14
 
15
15
  <div class="form-group">
16
16
  <%= f.label :description, Spree.t(:description) %><br>
17
- <%= f.text_field :description, class: 'form-control' %>
17
+ <%= f.text_area :description, class: 'form-control' %>
18
18
  </div>
19
19
 
20
20
  <div class="custom-control custom-checkbox">
@@ -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 %>