spree_admin 5.0.0 → 5.0.1

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 (127) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/spree/admin/components/_bulk_panel.scss +11 -1
  3. data/app/assets/stylesheets/spree/admin/components/_cards.scss +3 -4
  4. data/app/assets/stylesheets/spree/admin/components/_dropdowns.scss +1 -1
  5. data/app/assets/stylesheets/spree/admin/components/_main.scss +8 -1
  6. data/app/assets/stylesheets/spree/admin/components/_modals.scss +1 -1
  7. data/app/assets/stylesheets/spree/admin/global/_variables.scss +8 -2
  8. data/app/controllers/spree/admin/products_controller.rb +1 -8
  9. data/app/controllers/spree/admin/storefront_controller.rb +1 -1
  10. data/app/controllers/spree/admin/translations_controller.rb +1 -1
  11. data/app/helpers/spree/admin/base_helper.rb +49 -57
  12. data/app/helpers/spree/admin/bulk_operations_helper.rb +86 -0
  13. data/app/helpers/spree/admin/modal_helper.rb +29 -0
  14. data/app/helpers/spree/admin/navigation_helper.rb +76 -1
  15. data/app/helpers/spree/admin/orders_helper.rb +0 -19
  16. data/app/helpers/spree/admin/stores_helper.rb +5 -34
  17. data/app/javascript/spree/admin/controllers/variants_form_controller.js +6 -0
  18. data/app/views/active_storage/_upload_form.html.erb +4 -8
  19. data/app/views/spree/admin/assets/edit.html.erb +3 -8
  20. data/app/views/spree/admin/coupon_codes/index.html.erb +4 -6
  21. data/app/views/spree/admin/custom_domains/_custom_domains.html.erb +1 -1
  22. data/app/views/spree/admin/custom_domains/index.html.erb +1 -1
  23. data/app/views/spree/admin/customer_returns/index.html.erb +4 -17
  24. data/app/views/spree/admin/dashboard/_setup_progress.html.erb +4 -2
  25. data/app/views/spree/admin/dashboard/show.html.erb +1 -1
  26. data/app/views/spree/admin/digital_assets/_table.html.erb +1 -1
  27. data/app/views/spree/admin/digital_assets/edit.html.erb +3 -11
  28. data/app/views/spree/admin/digital_assets/new.html.erb +3 -11
  29. data/app/views/spree/admin/exports/index.html.erb +22 -24
  30. data/app/views/spree/admin/exports/new.html.erb +3 -9
  31. data/app/views/spree/admin/line_items/new.html.erb +2 -5
  32. data/app/views/spree/admin/oauth_applications/index.html.erb +57 -58
  33. data/app/views/spree/admin/option_types/_filter.html.erb +1 -1
  34. data/app/views/spree/admin/option_types/index.html.erb +7 -11
  35. data/app/views/spree/admin/orders/_filters.html.erb +2 -7
  36. data/app/views/spree/admin/orders/_list.html.erb +2 -4
  37. data/app/views/spree/admin/orders/billing_address/create.turbo_stream.erb +3 -6
  38. data/app/views/spree/admin/orders/billing_address/edit.html.erb +3 -6
  39. data/app/views/spree/admin/orders/billing_address/new.html.erb +3 -6
  40. data/app/views/spree/admin/orders/billing_address/update.turbo_stream.erb +3 -6
  41. data/app/views/spree/admin/orders/contact_information/edit.html.erb +3 -6
  42. data/app/views/spree/admin/orders/customer_returns/edit.html.erb +1 -10
  43. data/app/views/spree/admin/orders/index.html.erb +1 -1
  44. data/app/views/spree/admin/orders/return_authorizations/_form.html.erb +1 -1
  45. data/app/views/spree/admin/orders/return_authorizations/show.html.erb +45 -43
  46. data/app/views/spree/admin/orders/shipping_address/create.turbo_stream.erb +3 -6
  47. data/app/views/spree/admin/orders/shipping_address/edit.html.erb +3 -6
  48. data/app/views/spree/admin/orders/shipping_address/new.html.erb +3 -6
  49. data/app/views/spree/admin/orders/shipping_address/update.turbo_stream.erb +3 -6
  50. data/app/views/spree/admin/pages/_filters.html.erb +1 -1
  51. data/app/views/spree/admin/pages/edit.html.erb +2 -5
  52. data/app/views/spree/admin/pages/index.html.erb +4 -4
  53. data/app/views/spree/admin/payment_methods/index.html.erb +10 -8
  54. data/app/views/spree/admin/post_categories/index.html.erb +4 -6
  55. data/app/views/spree/admin/posts/_filters.html.erb +2 -7
  56. data/app/views/spree/admin/posts/_post.html.erb +1 -11
  57. data/app/views/spree/admin/posts/index.html.erb +5 -9
  58. data/app/views/spree/admin/products/_bulk_operations.html.erb +59 -94
  59. data/app/views/spree/admin/products/_filters.html.erb +12 -7
  60. data/app/views/spree/admin/products/_list.html.erb +2 -10
  61. data/app/views/spree/admin/products/_product.html.erb +1 -4
  62. data/app/views/spree/admin/products/bulk_modal.html.erb +3 -8
  63. data/app/views/spree/admin/products/index.html.erb +5 -5
  64. data/app/views/spree/admin/promotion_actions/new.html.erb +7 -12
  65. data/app/views/spree/admin/promotion_rules/new.html.erb +7 -12
  66. data/app/views/spree/admin/promotions/_filters.html.erb +27 -0
  67. data/app/views/spree/admin/promotions/index.html.erb +7 -35
  68. data/app/views/spree/admin/properties/index.html.erb +10 -9
  69. data/app/views/spree/admin/refund_reasons/index.html.erb +37 -35
  70. data/app/views/spree/admin/refunds/edit.html.erb +3 -8
  71. data/app/views/spree/admin/reimbursement_types/index.html.erb +42 -40
  72. data/app/views/spree/admin/reports/_report.html.erb +1 -1
  73. data/app/views/spree/admin/return_authorization_reasons/index.html.erb +41 -41
  74. data/app/views/spree/admin/return_authorizations/_filters.html.erb +1 -1
  75. data/app/views/spree/admin/return_authorizations/_list.html.erb +1 -10
  76. data/app/views/spree/admin/return_authorizations/index.html.erb +1 -1
  77. data/app/views/spree/admin/roles/_form.html.erb +1 -1
  78. data/app/views/spree/admin/roles/index.html.erb +26 -24
  79. data/app/views/spree/admin/shared/_bulk_modal.html.erb +6 -7
  80. data/app/views/spree/admin/shared/_filter_submit.html.erb +6 -0
  81. data/app/views/spree/admin/shared/_modal.html.erb +2 -8
  82. data/app/views/spree/admin/shared/_multi_product_picker.html.erb +2 -4
  83. data/app/views/spree/admin/shared/_no_resource_found.html.erb +1 -1
  84. data/app/views/spree/admin/shared/_product_image.html.erb +1 -10
  85. data/app/views/spree/admin/shared/_refunds.html.erb +1 -1
  86. data/app/views/spree/admin/shared/sidebar/_orders_nav.html.erb +1 -1
  87. data/app/views/spree/admin/shared/sidebar/_store_dropdown.html.erb +36 -7
  88. data/app/views/spree/admin/shared/sidebar/_store_nav.html.erb +4 -0
  89. data/app/views/spree/admin/shared/sortable_tree/_taxonomy.html.erb +3 -23
  90. data/app/views/spree/admin/shipping_categories/index.html.erb +28 -26
  91. data/app/views/spree/admin/shipping_methods/_actions.html.erb +1 -1
  92. data/app/views/spree/admin/shipping_methods/index.html.erb +23 -21
  93. data/app/views/spree/admin/stock_items/_filters.html.erb +2 -7
  94. data/app/views/spree/admin/stock_items/index.html.erb +5 -8
  95. data/app/views/spree/admin/stock_locations/_stock_location.html.erb +16 -13
  96. data/app/views/spree/admin/stock_locations/index.html.erb +24 -21
  97. data/app/views/spree/admin/stock_transfers/_filters.html.erb +1 -1
  98. data/app/views/spree/admin/stock_transfers/_new_variant_modal.html.erb +3 -5
  99. data/app/views/spree/admin/stock_transfers/index.html.erb +6 -6
  100. data/app/views/spree/admin/store_credit_categories/_form.html.erb +1 -1
  101. data/app/views/spree/admin/store_credit_categories/edit.html.erb +6 -4
  102. data/app/views/spree/admin/store_credit_categories/index.html.erb +28 -24
  103. data/app/views/spree/admin/store_credits/index.html.erb +2 -2
  104. data/app/views/spree/admin/storefront/edit.html.erb +7 -9
  105. data/app/views/spree/admin/stores/form/_policies.html.erb +1 -1
  106. data/app/views/spree/admin/stores/new.html.erb +8 -6
  107. data/app/views/spree/admin/tax_categories/index.html.erb +24 -22
  108. data/app/views/spree/admin/tax_rates/index.html.erb +26 -24
  109. data/app/views/spree/admin/taxonomies/index.html.erb +4 -4
  110. data/app/views/spree/admin/taxonomies/show.html.erb +2 -2
  111. data/app/views/spree/admin/themes/_theme_preview_image.html.erb +1 -10
  112. data/app/views/spree/admin/themes/index.html.erb +2 -2
  113. data/app/views/spree/admin/translations/_translations_unavailable.html.erb +6 -8
  114. data/app/views/spree/admin/users/_filters.html.erb +2 -7
  115. data/app/views/spree/admin/users/_tabs.html.erb +4 -4
  116. data/app/views/spree/admin/users/_user.html.erb +1 -4
  117. data/app/views/spree/admin/users/bulk_modal.html.erb +3 -8
  118. data/app/views/spree/admin/users/index.html.erb +25 -58
  119. data/app/views/spree/admin/variants/form/_media_asset.html.erb +1 -7
  120. data/app/views/spree/admin/variants/form/_pricing.html.erb +1 -1
  121. data/app/views/spree/admin/webhooks_subscribers/_form.html.erb +1 -1
  122. data/app/views/spree/admin/webhooks_subscribers/index.html.erb +25 -22
  123. data/app/views/spree/admin/webhooks_subscribers/show.html.erb +3 -3
  124. data/app/views/spree/admin/zones/index.html.erb +34 -32
  125. data/config/locales/en.yml +1 -3
  126. metadata +12 -9
  127. data/app/views/spree/admin/products/_empty_list.html.erb +0 -1
@@ -1,10 +1,8 @@
1
- <div class="container">
2
- <div class="card">
3
- <div class="card-body">
4
- <p>To use translations, configure more than one locale for the store.</p>
5
- <% if can?(:edit, current_store) %>
6
- <%= button_link_to('Configure store', spree.edit_admin_store_path(current_store)) %>
7
- <% end %>
8
- </div>
1
+ <div class="card">
2
+ <div class="card-body">
3
+ <p>To use translations, configure more than one locale for the store.</p>
4
+ <% if can?(:edit, current_store) %>
5
+ <%= link_to_with_icon 'settings', 'Configure store', spree.edit_admin_store_path(section: 'general-settings'), class: 'btn btn-light' %>
6
+ <% end %>
9
7
  </div>
10
8
  </div>
@@ -1,4 +1,4 @@
1
- <%= search_form_for [:admin, @search], url: spree.admin_users_url, class: "filter-wrap border-bottom", data: {controller: "filters reveal", reveal_hidden_class: "d-none"} do |f| %>
1
+ <%= search_form_for [:admin, @search], url: spree.admin_users_url, class: "filter-wrap", data: {controller: "filters reveal", reveal_hidden_class: "d-none"} do |f| %>
2
2
  <div class="d-flex flex-column flex-lg-row gap-2">
3
3
  <%= render 'spree/admin/shared/filters_search_bar', param: :multi_search, placeholder: Spree.t('admin.users.filters.search_placeholder') %>
4
4
 
@@ -71,12 +71,7 @@
71
71
  </div>
72
72
  </div>
73
73
  </div>
74
- <div class="form-actions">
75
- <%= turbo_save_button_tag Spree.t(:filter_results) do %>
76
- <%= icon("search") %>
77
- <%= Spree.t(:filter_results) %>
78
- <% end %>
79
- </div>
74
+ <%= render 'spree/admin/shared/filter_submit' %>
80
75
  </div>
81
76
 
82
77
  <%= render "spree/admin/shared/filter_badge_template" %>
@@ -36,7 +36,7 @@
36
36
 
37
37
  <% if can?(:read, Spree::Order) %>
38
38
  <div class="tab-pane fade <%= 'show active' unless spree.respond_to?(:admin_user_visits_path) %>" id="pills-orders2" role="tabpanel" aria-labelledby="pills-orders2">
39
- <div class="card-lg p-0">
39
+ <div class="card-lg">
40
40
  <%= turbo_frame_tag :orders_list, src: spree.admin_user_orders_path(@user, frame_name: :orders_list), loading: :lazy, autoscroll: true, data: { autoscroll_block: :nearest, autoscroll_behavior: :smooth } do %>
41
41
  <%= render 'spree/admin/shared/spinner' %>
42
42
  <% end %>
@@ -44,7 +44,7 @@
44
44
  </div>
45
45
 
46
46
  <div class="tab-pane fade" id="pills-checkouts" role="tabpanel" aria-labelledby="pills-checkouts">
47
- <div class="card-lg p-0">
47
+ <div class="card-lg">
48
48
  <%= turbo_frame_tag :orders_list, src: spree.admin_user_checkouts_path(@user, frame_name: :orders_list), loading: :lazy, autoscroll: true, data: { autoscroll_block: :nearest, autoscroll_behavior: :smooth } do %>
49
49
  <%= render 'spree/admin/shared/spinner' %>
50
50
  <% end %>
@@ -54,7 +54,7 @@
54
54
 
55
55
  <% if spree.respond_to?(:admin_user_gift_cards_path) && can?(:read, Spree::GiftCard) %>
56
56
  <div class="tab-pane fade" id="pills-gift-cards" role="tabpanel" aria-labelledby="pills-gift-cards">
57
- <div class="card-lg p-0">
57
+ <div class="card-lg">
58
58
  <%= turbo_frame_tag :gift_cards_list, src: spree.admin_user_gift_cards_path(@user, frame_name: :gift_cards_list), loading: :lazy, autoscroll: true, data: { autoscroll_block: :nearest, autoscroll_behavior: :smooth } do %>
59
59
  <%= render 'spree/admin/shared/spinner' %>
60
60
  <% end %>
@@ -64,7 +64,7 @@
64
64
 
65
65
  <% if can?(:read, Spree::StoreCredit) %>
66
66
  <div class="tab-pane fade" id="pills-store-credits" role="tabpanel" aria-labelledby="pills-store-credits">
67
- <div class="card-lg p-0">
67
+ <div class="card-lg">
68
68
  <%= turbo_frame_tag :store_credits_list, src: spree.admin_user_store_credits_path(@user, frame_name: :store_credits_list), loading: :lazy, autoscroll: true, data: { autoscroll_block: :nearest, autoscroll_behavior: :smooth } do %>
69
69
  <%= render 'spree/admin/shared/spinner' %>
70
70
  <% end %>
@@ -1,9 +1,6 @@
1
1
  <tr id="<%= spree_dom_id user %>">
2
2
  <td class="pr-0 w-5">
3
- <div class="custom-control custom-checkbox ml-1">
4
- <%= check_box_tag "ids[]", user.id, false, class: "custom-control-input", id: "ids_#{user.id}", data: { bulk_operation_target: "checkbox" } %>
5
- <label class="custom-control-label" for="ids_<%= user.id %>"><span></span></label>
6
- </div>
3
+ <%= bulk_operations_checkbox(user) %>
7
4
  </td>
8
5
  <td class='user_name w-50 no-wrap py-0 pl-1 pr-0'>
9
6
  <%= render 'spree/admin/shared/user', user: user %>
@@ -1,11 +1,6 @@
1
1
  <%= turbo_frame_tag :bulk_modal do %>
2
2
  <div class="modal-content">
3
- <div class="modal-header">
4
- <h5 class="modal-title" id="exampleModalLabel">
5
- <%= @title %>
6
- </h5>
7
- <button type="button" class="btn-close" data-dismiss="modal" aria-label="<%= Spree.t(:close) %>" />
8
- </div>
3
+ <%= modal_header(@title) %>
9
4
  <div class="modal-body">
10
5
  <p><%= @body %></p>
11
6
 
@@ -13,8 +8,8 @@
13
8
  <%= tom_select_tag 'tags', multiple: true, class: 'w-100', options: user_tags_json_array, required: true, value_field: :name, create: params[:kind] == 'add_tags' %>
14
9
  <% end %>
15
10
  </div>
16
- <div class="modal-footer d-flex justify-content-between">
17
- <button type="button" class="btn btn-light" data-dismiss="modal"><%= Spree.t('actions.discard') %></button>
11
+ <div class="modal-footer">
12
+ <%= modal_discard_button %>
18
13
  <%= turbo_save_button_tag %>
19
14
  </div>
20
15
  </div>
@@ -7,61 +7,37 @@
7
7
  <%= icon 'table-export', class: 'mr-2' %>
8
8
  <%= Spree.t(:export) %>
9
9
  <% end if can?(:export, Spree::Export) %>
10
+
10
11
  <%= render 'extra_actions' %>
11
- <%= button_link_to Spree.t(:create_customer), spree.new_admin_user_path, class: "btn-primary", icon: 'plus', id: 'admin_new_user_link' %>
12
- <% end if can? :create, Spree::user_class %>
13
12
 
14
- <% content_for :table_filter_title do %>
15
- <%= Spree.t(:search) %>
16
- <% end %>
13
+ <%= link_to_with_icon 'plus', Spree.t(:create_customer), spree.new_admin_user_path, class: "btn btn-primary" %>
14
+ <% end if can? :create, Spree::user_class %>
17
15
 
18
- <div class="card-lg p-0">
16
+ <div class="card-lg">
19
17
  <%= render "spree/admin/users/filters" %>
20
18
 
21
- <% if @users.any? %>
19
+ <% if @collection.any? %>
22
20
  <div data-controller="bulk-operation" data-action="keydown.esc->bulk-operation#cancel" tabindex="0">
23
21
  <%= form_tag spree.admin_users_path, data: { 'bulk-operation-target': 'form' } do %>
24
22
  <%= render 'spree/admin/shared/bulk_modal' %>
25
23
  <div id="bulk-panel" class="d-none" data-bulk-operation-target="panel">
26
- <div class="bulk-panel-container animate__animated animate__bounceInUp animate__faster">
27
- <div data-toggle="modal" data-target="#bulk-modal">
28
- <% if can?(:manage_tags, Spree.user_class) %>
29
- <a
30
- href="<%= spree.bulk_modal_admin_users_path(kind: :add_tags) %>"
31
- data-turbo-frame="bulk_modal"
32
- class="btn btn-light mr-2"
33
- data-action="click->bulk-operation#setBulkAction"
34
- data-url="<%= spree.bulk_add_tags_admin_users_path %>"
35
- >
36
- <%= icon("tag-plus") %>
37
- <%= Spree.t("admin.bulk_ops.users.title.add_tags") %>
38
- </a>
39
-
40
- <a
41
- href="<%= spree.bulk_modal_admin_users_path(kind: :remove_tags) %>"
42
- data-turbo-frame="bulk_modal"
43
- class="btn btn-light mr-3"
44
- data-action="click->bulk-operation#setBulkAction"
45
- data-url="<%= spree.bulk_remove_tags_admin_users_path %>"
46
- >
47
- <%= icon("tag-minus") %>
48
- <%= Spree.t("admin.bulk_ops.users.title.remove_tags") %>
49
- </a>
50
- <% end %>
51
- </div>
52
-
53
- <span>
54
- <strong data-bulk-operation-target="counter"></strong>
55
- customers selected
56
- </span>
57
-
58
- <button
59
- type="button"
60
- class="btn-close ml-2"
61
- data-dismiss="modal"
62
- aria-label="<%= Spree.t(:close) %>"
63
- data-action="bulk-operation#cancel"
64
- />
24
+ <div class="bulk-panel-container">
25
+ <% if can?(:manage_tags, Spree.user_class) %>
26
+ <%= bulk_action_link(
27
+ Spree.t("admin.bulk_ops.users.title.add_tags"),
28
+ spree.bulk_modal_admin_users_path(kind: :add_tags),
29
+ icon: "tag-plus",
30
+ url: spree.bulk_add_tags_admin_users_path
31
+ ) %>
32
+ <%= bulk_action_link(
33
+ Spree.t("admin.bulk_ops.users.title.remove_tags"),
34
+ spree.bulk_modal_admin_users_path(kind: :remove_tags),
35
+ icon: "tag-minus",
36
+ url: spree.bulk_remove_tags_admin_users_path
37
+ ) %>
38
+ <% end %>
39
+ <%= bulk_operations_counter %>
40
+ <%= bulk_operations_close_button %>
65
41
  </div>
66
42
  </div>
67
43
 
@@ -70,15 +46,7 @@
70
46
  <thead class="text-muted">
71
47
  <tr data-hook="admin_users_index_headers">
72
48
  <th scope="col" class="pr-0 w-5">
73
- <div class="custom-control custom-checkbox ml-1">
74
- <input
75
- type="checkbox"
76
- class="custom-control-input"
77
- id="checkAllMasterCheckbox"
78
- data-bulk-operation-target="checkboxAll"
79
- >
80
- <label class="custom-control-label" for="checkAllMasterCheckbox"><span></span></label>
81
- </div>
49
+ <%= bulk_operations_select_all_checkbox %>
82
50
  </th>
83
51
  <th><%= Spree.t(:name) %></th>
84
52
  <th><%= Spree.t(:email_marketing) %></th>
@@ -88,15 +56,14 @@
88
56
  </tr>
89
57
  </thead>
90
58
  <tbody>
91
- <%= render collection: @users, partial: "spree/admin/users/user", cached: spree_base_cache_scope %>
59
+ <%= render collection: @collection, partial: "spree/admin/users/user", cached: spree_base_cache_scope %>
92
60
  </tbody>
93
61
  </table>
94
62
  </div>
95
63
  <% end %>
96
64
  </div>
65
+ <%= render "spree/admin/shared/index_table_options", collection: @collection if @collection.any? %>
97
66
  <% else %>
98
67
  <%= render "spree/admin/shared/no_resource_found" %>
99
68
  <% end %>
100
-
101
- <%= render "spree/admin/shared/index_table_options", collection: @users, simple: true if @users.any? %>
102
69
  </div>
@@ -9,13 +9,7 @@
9
9
 
10
10
  <div data-toggle="modal" data-target="#modal-lg">
11
11
  <%= link_to spree.edit_admin_asset_path(asset), data: { turbo_frame: 'dialog_modal_lg' } do %>
12
- <%= image_tag(
13
- main_app.cdn_image_url(
14
- asset.attachment.variant(spree_image_variant_options(resize_to_fill: [400, 400]))
15
- ),
16
- alt: asset.alt,
17
- class: 'w-100 d-block h-100 position-absolute'
18
- ) %>
12
+ <%= spree_image_tag(asset.attachment, width: 200, height: 200, alt: asset.alt, class: 'w-100 d-block h-100 position-absolute') %>
19
13
  <% end %>
20
14
  </div>
21
15
  </div>
@@ -5,7 +5,7 @@
5
5
  </h5>
6
6
 
7
7
  <% if can?(:manage, Spree::Store) %>
8
- <%= link_to_with_icon 'adjustments', Spree.t('admin.manage_currencies'), spree.edit_admin_store_path, class: 'btn btn-sm btn-light' %>
8
+ <%= link_to_with_icon 'adjustments', Spree.t('admin.manage_currencies'), spree.edit_admin_store_path(section: 'general-settings'), class: 'btn btn-sm btn-light' %>
9
9
  <% end %>
10
10
  </div>
11
11
  <div class="card-body p-0">
@@ -9,7 +9,7 @@
9
9
  <div class="card-body">
10
10
  <div class="row">
11
11
  <div class="form-group col-12">
12
- <%= f.label :url, raw(Spree.t('admin.url') + required_span_tag) %>
12
+ <%= f.label :url, raw(Spree.t(:url) + required_span_tag) %>
13
13
  <%= f.text_field :url, class: 'form-control', placeholder: 'https://example.com/endpoint' %>
14
14
  <%= f.error_message_on :url %>
15
15
  </div>
@@ -1,26 +1,29 @@
1
1
  <%= render 'spree/admin/shared/developers_nav' %>
2
2
 
3
3
  <% content_for :page_actions do %>
4
- <%= button_link_to Spree.t('admin.webhooks_subscribers.new_webhooks_subscriber'), new_object_url, class: "btn-primary", icon: 'add.svg', id: 'admin_new_webhooks_subscriber_link' %>
4
+ <%= link_to_with_icon 'plus', Spree.t('admin.webhooks_subscribers.new_webhooks_subscriber'), new_object_url, class: "btn btn-primary" %>
5
5
  <% end if can?(:create, Spree::Webhooks::Subscriber) %>
6
- <% if @webhooks_subscribers.any? %>
7
- <div class="border rounded bg-white">
8
- <table class="table">
9
- <thead class="text-muted">
10
- <tr>
11
- <th><%= Spree.t('admin.url') %></th>
12
- <th><%= Spree.t('admin.active') %></th>
13
- <th><%= Spree.t('admin.webhooks_subscribers.subscriptions') %></th>
14
- <th><%= Spree.t('admin.webhooks_subscribers.time_of_last_event') %></th>
15
- <th></th>
16
- </tr>
17
- </thead>
18
- <tbody>
19
- <%= render partial: 'spree/admin/webhooks_subscribers/webhooks_subscriber', collection: @webhooks_subscribers, cached: spree_base_cache_scope %>
20
- </tbody>
21
- </table>
22
- </div>
23
- <%= render 'spree/admin/shared/index_table_options', collection: @webhooks_subscribers, simple: true %>
24
- <% else %>
25
- <%= render 'spree/admin/shared/no_resource_found' %>
26
- <% end %>
6
+
7
+ <div class="card-lg">
8
+ <% if @collection.any? %>
9
+ <div class="table-responsive">
10
+ <table class="table">
11
+ <thead class="text-muted">
12
+ <tr>
13
+ <th><%= Spree.t(:url) %></th>
14
+ <th><%= Spree.t(:active) %></th>
15
+ <th><%= Spree.t('admin.webhooks_subscribers.subscriptions') %></th>
16
+ <th><%= Spree.t('admin.webhooks_subscribers.time_of_last_event') %></th>
17
+ <th></th>
18
+ </tr>
19
+ </thead>
20
+ <tbody>
21
+ <%= render partial: 'spree/admin/webhooks_subscribers/webhooks_subscriber', collection: @collection, cached: spree_base_cache_scope %>
22
+ </tbody>
23
+ </table>
24
+ </div>
25
+ <%= render 'spree/admin/shared/index_table_options', collection: @collection %>
26
+ <% else %>
27
+ <%= render 'spree/admin/shared/no_resource_found' %>
28
+ <% end %>
29
+ </div>
@@ -5,11 +5,11 @@
5
5
  <fieldset class="card mb-4">
6
6
  <table class="table card-body pb-0">
7
7
  <tr>
8
- <td><strong class="text-uppercase"><%= Spree.t('admin.url') %></strong></td>
8
+ <td><strong class="text-uppercase"><%= Spree.t(:url) %></strong></td>
9
9
  <td><%= external_link_to @webhooks_subscriber.url, @webhooks_subscriber.url %></td>
10
10
  </tr>
11
11
  <tr>
12
- <td><strong><%= Spree.t('admin.active') %></strong></td>
12
+ <td><strong><%= Spree.t(:active) %></strong></td>
13
13
  <td><%= active_badge(@webhooks_subscriber.active) %></td>
14
14
  </tr>
15
15
  <tr>
@@ -45,7 +45,7 @@
45
45
  <%= render partial: 'spree/admin/webhook_events/webhook_event', collection: @events, cached: spree_base_cache_scope %>
46
46
  </tbody>
47
47
  </table>
48
- <%= render 'spree/admin/shared/index_table_options', collection: @events, simple: true %>
48
+ <%= render 'spree/admin/shared/index_table_options', collection: @events %>
49
49
  </div>
50
50
  <% else %>
51
51
  <div class="text-center no-objects-found m-5">
@@ -3,7 +3,7 @@
3
3
  <% end %>
4
4
 
5
5
  <% content_for :page_actions do %>
6
- <%= button_link_to Spree.t(:new_zone), new_object_url, class: "btn-primary", icon: 'plus' %>
6
+ <%= link_to_with_icon 'plus', Spree.t(:new_zone), new_object_url, class: "btn btn-primary" %>
7
7
  <% end if can? :create, Spree::Zone %>
8
8
 
9
9
  <% content_for :page_alerts do %>
@@ -12,34 +12,36 @@
12
12
  </div>
13
13
  <% end %>
14
14
 
15
- <% if @zones.any? %>
16
- <div class="table-responsive card-lg p-0">
17
- <table class="table" id='listing_zones'>
18
- <thead class="text-muted">
19
- <tr>
20
- <th><%= sort_link @search,:name, Spree.t(:name), title: 'zones_order_by_name_title' %></th>
21
- <th>
22
- <%= sort_link @search,:description, Spree.t(:description), {}, {title: 'zones_order_by_description_title'} %>
23
- </th>
24
- <th><%= Spree.t(:default_tax_zone) %></th>
25
- <th class="actions"></th>
26
- </tr>
27
- </thead>
28
- <tbody>
29
- <% @zones.each do |zone| %>
30
- <tr id="<%= spree_dom_id zone %>" class="cursor-pointer" data-controller="row-link">
31
- <td class="w-25" data-action="click->row-link#openLink"><%= zone.name %></td>
32
- <td class="w-40 text-muted text-wrap" data-action="click->row-link#openLink"><%= zone.description %></td>
33
- <td class="w-10" data-action="click->row-link#openLink"><%= active_badge(zone.default_tax?) %></td>
34
- <td class="w-10 actions">
35
- <%= link_to_edit(zone, data: { row_link_target: :link }) if can? :edit, zone %>
36
- </td>
37
- </tr>
38
- <% end %>
39
- </tbody>
40
- </table>
41
- <%= render 'spree/admin/shared/index_table_options', collection: @zones, simple: true %>
42
- </div>
43
- <% else %>
44
- <%= render 'spree/admin/shared/no_resource_found' %>
45
- <% end %>
15
+ <div class="card-lg">
16
+ <% if @collection.any? %>
17
+ <div class="table-responsive">
18
+ <table class="table">
19
+ <thead class="text-muted">
20
+ <tr>
21
+ <th><%= sort_link @search,:name, Spree.t(:name) %></th>
22
+ <th>
23
+ <%= sort_link @search,:description, Spree.t(:description) %>
24
+ </th>
25
+ <th><%= Spree.t(:default_tax_zone) %></th>
26
+ <th></th>
27
+ </tr>
28
+ </thead>
29
+ <tbody>
30
+ <% @collection.each do |zone| %>
31
+ <tr id="<%= spree_dom_id zone %>" class="cursor-pointer" data-controller="row-link">
32
+ <td class="w-25" data-action="click->row-link#openLink"><%= zone.name %></td>
33
+ <td class="w-40 text-muted text-wrap" data-action="click->row-link#openLink"><%= zone.description %></td>
34
+ <td class="w-10" data-action="click->row-link#openLink"><%= active_badge(zone.default_tax?) %></td>
35
+ <td class="w-10 actions">
36
+ <%= link_to_edit(zone, data: { row_link_target: :link }) if can? :edit, zone %>
37
+ </td>
38
+ </tr>
39
+ <% end %>
40
+ </tbody>
41
+ </table>
42
+ <%= render 'spree/admin/shared/index_table_options', collection: @collection %>
43
+ </div>
44
+ <% else %>
45
+ <%= render 'spree/admin/shared/no_resource_found' %>
46
+ <% end %>
47
+ </div>
@@ -2,7 +2,6 @@
2
2
  en:
3
3
  spree:
4
4
  admin:
5
- active: Active
6
5
  amount_spent: Amount spent
7
6
  audit_log: Audit Log
8
7
  avg_order_value: Avg. Order Value
@@ -170,7 +169,6 @@ en:
170
169
  paused: Paused
171
170
  search_results:
172
171
  no_products: We couldn't find any products matching your search :(
173
- selected: products selected
174
172
  seo:
175
173
  placeholder: Add a title and description to see how this product might appear in a search engine listing
176
174
  status_form:
@@ -185,6 +183,7 @@ en:
185
183
  report_created: Your report is being generated. You will receive an email with a download link when it is ready!
186
184
  reset_digital_link_download_limits: Reset download limits
187
185
  response_code: Response Code
186
+ selected: selected
188
187
  send_payment_link: Send Payment Link
189
188
  shipment_transfer:
190
189
  wrong_destination: Wrong destination
@@ -231,7 +230,6 @@ en:
231
230
  manual: Manual
232
231
  manual_info: Curate products manually. You can add or remove them in bulk.
233
232
  upload_new_asset: Upload new asset
234
- url: URL
235
233
  user:
236
234
  last_order_placed: Last order placed
237
235
  no_store_credit: Customer has no Store Credit available
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: spree_admin
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.0
4
+ version: 5.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Vendo Connect Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-04-03 00:00:00.000000000 Z
11
+ date: 2025-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: spree_core
@@ -16,28 +16,28 @@ dependencies:
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 5.0.0
19
+ version: 5.0.1
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 5.0.0
26
+ version: 5.0.1
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: spree_api
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: 5.0.0
33
+ version: 5.0.1
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: 5.0.0
40
+ version: 5.0.1
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: active_link_to
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -384,9 +384,11 @@ files:
384
384
  - app/controllers/spree/admin/webhooks_subscribers_controller.rb
385
385
  - app/controllers/spree/admin/zones_controller.rb
386
386
  - app/helpers/spree/admin/base_helper.rb
387
+ - app/helpers/spree/admin/bulk_operations_helper.rb
387
388
  - app/helpers/spree/admin/custom_domains_helper.rb
388
389
  - app/helpers/spree/admin/customer_returns_helper.rb
389
390
  - app/helpers/spree/admin/flash_helper.rb
391
+ - app/helpers/spree/admin/modal_helper.rb
390
392
  - app/helpers/spree/admin/navigation_helper.rb
391
393
  - app/helpers/spree/admin/onboarding_helper.rb
392
394
  - app/helpers/spree/admin/orders_filters_helper.rb
@@ -724,7 +726,6 @@ files:
724
726
  - app/views/spree/admin/preferences/_password_field.html.erb
725
727
  - app/views/spree/admin/products/_bulk_operations.html.erb
726
728
  - app/views/spree/admin/products/_edit_page_title.html.erb
727
- - app/views/spree/admin/products/_empty_list.html.erb
728
729
  - app/views/spree/admin/products/_filters.html.erb
729
730
  - app/views/spree/admin/products/_form.html.erb
730
731
  - app/views/spree/admin/products/_import_button.html.erb
@@ -773,6 +774,7 @@ files:
773
774
  - app/views/spree/admin/promotion_rules/forms/_user_logged_in.html.erb
774
775
  - app/views/spree/admin/promotion_rules/new.html.erb
775
776
  - app/views/spree/admin/promotions/_actions.html.erb
777
+ - app/views/spree/admin/promotions/_filters.html.erb
776
778
  - app/views/spree/admin/promotions/_form.html.erb
777
779
  - app/views/spree/admin/promotions/_header.html.erb
778
780
  - app/views/spree/admin/promotions/_promotion.html.erb
@@ -834,6 +836,7 @@ files:
834
836
  - app/views/spree/admin/shared/_edit_resource_links.html.erb
835
837
  - app/views/spree/admin/shared/_error_messages.html.erb
836
838
  - app/views/spree/admin/shared/_filter_badge_template.erb
839
+ - app/views/spree/admin/shared/_filter_submit.html.erb
837
840
  - app/views/spree/admin/shared/_filters_button.html.erb
838
841
  - app/views/spree/admin/shared/_filters_search_bar.html.erb
839
842
  - app/views/spree/admin/shared/_footer.html.erb
@@ -1055,9 +1058,9 @@ licenses:
1055
1058
  - AGPL-3.0-or-later
1056
1059
  metadata:
1057
1060
  bug_tracker_uri: https://github.com/spree/spree/issues
1058
- changelog_uri: https://github.com/spree/spree/releases/tag/v5.0.0
1061
+ changelog_uri: https://github.com/spree/spree/releases/tag/v5.0.1
1059
1062
  documentation_uri: https://docs.spreecommerce.org/
1060
- source_code_uri: https://github.com/spree/spree/tree/v5.0.0
1063
+ source_code_uri: https://github.com/spree/spree/tree/v5.0.1
1061
1064
  post_install_message:
1062
1065
  rdoc_options: []
1063
1066
  require_paths:
@@ -1 +0,0 @@
1
- <%= render 'spree/admin/shared/no_resource_found' %>