spree_admin 5.2.0.rc2 → 5.2.0.rc3

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 (104) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/spree/admin/components/_alerts.scss +1 -1
  3. data/app/assets/stylesheets/spree/admin/components/_buttons.scss +5 -4
  4. data/app/assets/stylesheets/spree/admin/components/_dialogs.scss +0 -1
  5. data/app/assets/stylesheets/spree/admin/components/_dropdowns.scss +4 -0
  6. data/app/assets/stylesheets/spree/admin/components/_main.scss +7 -7
  7. data/app/assets/stylesheets/spree/admin/components/_tables.scss +2 -2
  8. data/app/assets/stylesheets/spree/admin/components/_variants_form.scss +1 -2
  9. data/app/assets/stylesheets/spree/admin/global/_variables.scss +14 -12
  10. data/app/assets/stylesheets/spree/admin/shared/_base.scss +2 -2
  11. data/app/assets/stylesheets/spree/admin/shared/_forms.scss +5 -6
  12. data/app/controllers/spree/admin/admin_users_controller.rb +0 -2
  13. data/app/controllers/spree/admin/checkouts_controller.rb +1 -4
  14. data/app/controllers/spree/admin/coupon_codes_controller.rb +0 -14
  15. data/app/controllers/spree/admin/customer_returns_controller.rb +0 -13
  16. data/app/controllers/spree/admin/digital_assets_controller.rb +2 -2
  17. data/app/controllers/spree/admin/exports_controller.rb +2 -9
  18. data/app/controllers/spree/admin/gift_cards_controller.rb +7 -14
  19. data/app/controllers/spree/admin/invitations_controller.rb +0 -2
  20. data/app/controllers/spree/admin/oauth_applications_controller.rb +0 -10
  21. data/app/controllers/spree/admin/option_types_controller.rb +0 -10
  22. data/app/controllers/spree/admin/orders_controller.rb +1 -1
  23. data/app/controllers/spree/admin/pages_controller.rb +1 -1
  24. data/app/controllers/spree/admin/payment_methods_controller.rb +0 -10
  25. data/app/controllers/spree/admin/policies_controller.rb +4 -0
  26. data/app/controllers/spree/admin/posts_controller.rb +2 -10
  27. data/app/controllers/spree/admin/properties_controller.rb +0 -12
  28. data/app/controllers/spree/admin/resource_controller.rb +27 -17
  29. data/app/controllers/spree/admin/return_authorizations_controller.rb +0 -10
  30. data/app/controllers/spree/admin/shipping_methods_controller.rb +4 -0
  31. data/app/controllers/spree/admin/stock_items_controller.rb +8 -11
  32. data/app/controllers/spree/admin/stock_locations_controller.rb +1 -1
  33. data/app/controllers/spree/admin/stock_transfers_controller.rb +0 -10
  34. data/app/controllers/spree/admin/store_credits_controller.rb +35 -35
  35. data/app/controllers/spree/admin/taxonomies_controller.rb +0 -10
  36. data/app/controllers/spree/admin/themes_controller.rb +6 -2
  37. data/app/controllers/spree/admin/users_controller.rb +7 -17
  38. data/app/controllers/spree/admin/webhooks_subscribers_controller.rb +0 -10
  39. data/app/controllers/spree/admin/zones_controller.rb +0 -7
  40. data/app/helpers/spree/admin/dropdown_helper.rb +18 -16
  41. data/app/helpers/spree/admin/navigation_helper.rb +1 -1
  42. data/app/helpers/spree/admin/orders_filters_helper.rb +2 -0
  43. data/app/models/spree/admin/form_builder.rb +13 -12
  44. data/app/views/spree/admin/custom_domains/_custom_domains.html.erb +1 -1
  45. data/app/views/spree/admin/digital_assets/_table.html.erb +1 -1
  46. data/app/views/spree/admin/gift_cards/_filters.html.erb +2 -1
  47. data/app/views/spree/admin/integrations/index.html.erb +20 -8
  48. data/app/views/spree/admin/invitations/new.html.erb +2 -1
  49. data/app/views/spree/admin/metafield_definitions/_filters.html.erb +1 -1
  50. data/app/views/spree/admin/newsletter_subscribers/_filters.html.erb +1 -1
  51. data/app/views/spree/admin/newsletter_subscribers/_table_header.html.erb +2 -2
  52. data/app/views/spree/admin/oauth_applications/_table_header.html.erb +1 -1
  53. data/app/views/spree/admin/orders/_customer.html.erb +1 -1
  54. data/app/views/spree/admin/orders/_filters.html.erb +4 -5
  55. data/app/views/spree/admin/orders/_header.html.erb +0 -5
  56. data/app/views/spree/admin/orders/_list.html.erb +3 -3
  57. data/app/views/spree/admin/page_blocks/edit.html.erb +3 -3
  58. data/app/views/spree/admin/page_builder/_add_block.html.erb +1 -1
  59. data/app/views/spree/admin/page_builder/_header.html.erb +1 -1
  60. data/app/views/spree/admin/page_builder/_pages_dropdown.html.erb +2 -2
  61. data/app/views/spree/admin/page_builder/_sidebar_block.html.erb +1 -1
  62. data/app/views/spree/admin/page_builder/_sidebar_colors.html.erb +2 -2
  63. data/app/views/spree/admin/page_builder/_sidebar_fonts.html.erb +3 -3
  64. data/app/views/spree/admin/page_builder/_sidebar_section.html.erb +1 -1
  65. data/app/views/spree/admin/page_links/_list.html.erb +1 -1
  66. data/app/views/spree/admin/page_links/edit.html.erb +1 -1
  67. data/app/views/spree/admin/page_sections/edit.html.erb +3 -3
  68. data/app/views/spree/admin/page_sections/new.html.erb +1 -1
  69. data/app/views/spree/admin/pages/_table_header.html.erb +3 -3
  70. data/app/views/spree/admin/payment_methods/index.html.erb +5 -1
  71. data/app/views/spree/admin/policies/_filters.html.erb +1 -1
  72. data/app/views/spree/admin/products/_bulk_operations.html.erb +2 -2
  73. data/app/views/spree/admin/products/edit.html.erb +0 -2
  74. data/app/views/spree/admin/products/form/_status.html.erb +0 -3
  75. data/app/views/spree/admin/products/form/_variants.html.erb +1 -1
  76. data/app/views/spree/admin/promotions/_table_header.html.erb +1 -1
  77. data/app/views/spree/admin/promotions/form/_kind.html.erb +4 -4
  78. data/app/views/spree/admin/refund_reasons/_table_header.html.erb +1 -1
  79. data/app/views/spree/admin/reimbursement_types/_table_header.html.erb +1 -1
  80. data/app/views/spree/admin/return_authorization_reasons/_table_header.html.erb +1 -1
  81. data/app/views/spree/admin/roles/index.html.erb +1 -1
  82. data/app/views/spree/admin/shared/_calendar_range_picker.html.erb +2 -2
  83. data/app/views/spree/admin/shared/_content_header.html.erb +4 -1
  84. data/app/views/spree/admin/shared/_index_table.html.erb +5 -4
  85. data/app/views/spree/admin/shared/_index_table_options.html.erb +1 -1
  86. data/app/views/spree/admin/shared/_new_item_dropdown.html.erb +1 -1
  87. data/app/views/spree/admin/shared/_user_dropdown.html.erb +4 -3
  88. data/app/views/spree/admin/shared/sidebar/_store_dropdown.html.erb +1 -1
  89. data/app/views/spree/admin/shipping_categories/_table_header.html.erb +1 -1
  90. data/app/views/spree/admin/shipping_methods/_table_header.html.erb +1 -1
  91. data/app/views/spree/admin/stock_locations/_table_header.html.erb +2 -2
  92. data/app/views/spree/admin/store_credit_categories/index.html.erb +1 -1
  93. data/app/views/spree/admin/store_credits/_list.html.erb +3 -3
  94. data/app/views/spree/admin/stores/form/_checkout.html.erb +2 -2
  95. data/app/views/spree/admin/stores/form/_checkout_links.html.erb +1 -1
  96. data/app/views/spree/admin/tax_categories/_table_header.html.erb +2 -2
  97. data/app/views/spree/admin/tax_rates/_table_header.html.erb +2 -2
  98. data/app/views/spree/admin/taxonomies/_table_header.html.erb +1 -1
  99. data/app/views/spree/admin/users/_filters.html.erb +4 -5
  100. data/app/views/spree/admin/users/index.html.erb +1 -1
  101. data/config/locales/en.yml +2 -0
  102. data/lib/generators/spree/admin/scaffold/templates/views/_filters.html.erb.tt +1 -1
  103. data/lib/generators/spree/admin/scaffold/templates/views/_table_header.html.erb.tt +2 -2
  104. metadata +8 -8
@@ -1,4 +1,4 @@
1
- <% if @orders.any? %>
1
+ <% if @collection.any? %>
2
2
  <div class="table-responsive">
3
3
  <table class="table" id="listing_orders">
4
4
  <thead>
@@ -18,11 +18,11 @@
18
18
  </tr>
19
19
  </thead>
20
20
  <tbody>
21
- <%= render collection: @orders, partial: 'spree/admin/orders/order', cached: !(defined?(current_vendor) && current_vendor) ? spree_base_cache_scope : false %>
21
+ <%= render collection: @collection, partial: 'spree/admin/orders/order', cached: !(defined?(current_vendor) && current_vendor) ? spree_base_cache_scope : false %>
22
22
  </tbody>
23
23
  </table>
24
24
  </div>
25
25
  <% else %>
26
26
  <%= render 'spree/admin/shared/no_resource_found', new_object_url: nil, model_class: Spree::Order %>
27
27
  <% end %>
28
- <%= render 'spree/admin/shared/index_table_options', collection: @orders if @orders.any? %>
28
+ <%= render 'spree/admin/shared/index_table_options', collection: @collection %>
@@ -1,7 +1,7 @@
1
1
  <%= turbo_frame_tag :page_sidebar do %>
2
2
  <% tab_selected ||= :content %>
3
3
  <h6 class="sidebar-header">
4
- <%= link_to spree.edit_admin_theme_path(@theme, page_id: @page&.id), data: { action: 'click->page-builder#clearActiveOverlays' }, class: 'btn hover-gray px-2' do %>
4
+ <%= link_to spree.edit_admin_theme_path(@theme, page_id: @page&.id), data: { action: 'click->page-builder#clearActiveOverlays' }, class: 'btn hover-gray shadow-none px-2' do %>
5
5
  <%= icon 'chevron-left', class: 'mr-0' %>
6
6
  <% end %>
7
7
  <%= @page_block.display_name %>
@@ -11,10 +11,10 @@
11
11
  <div data-controller="tabs">
12
12
  <ul class="nav nav-pills nav-fill mb-3" id="pills-tab" role="tablist">
13
13
  <li class="nav-item" role="presentation">
14
- <button class="btn nav-link w-100 <%= tab_selected == :content ? 'active' : '' %>" id="pills-home-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-home" aria-selected="<%= tab_selected == :content %>">Content</button>
14
+ <button class="nav-link w-100 <%= tab_selected == :content ? 'active' : '' %>" id="pills-home-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-home" aria-selected="<%= tab_selected == :content %>">Content</button>
15
15
  </li>
16
16
  <li class="nav-item" role="presentation">
17
- <button class="btn nav-link w-100 <%= tab_selected == :design ? 'active' : '' %>" id="pills-profile-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-profile" aria-selected="<%= tab_selected == :design %>">Design</button>
17
+ <button class="nav-link w-100 <%= tab_selected == :design ? 'active' : '' %>" id="pills-profile-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-profile" aria-selected="<%= tab_selected == :design %>">Design</button>
18
18
  </li>
19
19
  </ul>
20
20
  <div data-tabs-target="panel" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab" class="animate__animated animate__fadeIn" <%= 'hidden' unless tab_selected == :content %>>
@@ -6,7 +6,7 @@
6
6
  <%= icon("circle-plus") %>
7
7
  Add block
8
8
  <% end %>
9
- <%= dropdown_menu direction: 'top-left' do %>
9
+ <%= dropdown_menu do %>
10
10
  <% section.available_blocks_to_add.each do |block_class| %>
11
11
  <a href="#" class="dropdown-item btn-sm"
12
12
  data-action="click->block-form#addBlock"
@@ -2,7 +2,7 @@
2
2
  <nav class="navbar navbar-expand-lg">
3
3
  <div data-controller="tooltip">
4
4
  <% back_url = @page.custom? ? spree.admin_pages_path : spree.admin_themes_path %>
5
- <%= link_to back_url, class: 'btn hover-gray px-2' do %>
5
+ <%= link_to back_url, class: 'btn hover-gray shadow-none px-2' do %>
6
6
  <%= icon('x', class: 'mr-0') %>
7
7
  <% end %>
8
8
  <%= tooltip(Spree.t('admin.back_to_dashboard')) %>
@@ -1,4 +1,4 @@
1
- <%= dropdown id: 'pages_dropdown' do %>
1
+ <%= dropdown id: 'pages_dropdown', direction: 'left' do %>
2
2
  <%= dropdown_toggle class: 'btn-light' do %>
3
3
  <span class="d-flex align-items-center pr-5">
4
4
  <%= icon @page.icon_name, class: 'mr-2' %>
@@ -6,7 +6,7 @@
6
6
  </span>
7
7
  <%= icon 'selector', class: 'mr-0 ml-2 mb-0 text-muted' %>
8
8
  <% end %>
9
- <%= dropdown_menu direction: 'left', style: 'min-width: 250px' do %>
9
+ <%= dropdown_menu style: 'min-width: 250px' do %>
10
10
  <% @theme.pages.standard.order(name: :asc).find_all(&:customizable?).each do |page| %>
11
11
  <%= active_link_to spree.edit_admin_theme_path(@theme, theme_preview_id: @theme_preview.id, page_id: page.id), class: 'dropdown-item', active: @page == page, data: { turbo_prefetch: false } do %>
12
12
  <%= icon page.icon_name, class: 'mr-2' %>
@@ -20,7 +20,7 @@
20
20
  </div>
21
21
  <div class="d-flex align-items-center d-none">
22
22
  <% if block.section.can_sort_blocks? %>
23
- <button class="btn btn-sm pr-0 handle hover-gray-200 h-100 px-1 handle-block">
23
+ <button class="btn btn-sm pr-0 handle hover-gray-200 h-100 px-1 handle-block shadow-none">
24
24
  <%= icon('grip-vertical', class: 'mr-0') %>
25
25
  </button>
26
26
  <% end %>
@@ -7,10 +7,10 @@
7
7
  <div data-controller="tabs">
8
8
  <ul class="nav nav-pills nav-fill m-3" id="pills-tab" role="tablist">
9
9
  <li class="nav-item" role="presentation">
10
- <button class="btn nav-link w-100 active" id="pills-home-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-home" aria-selected="true">Color scheme</button>
10
+ <button class="nav-link w-100 active" id="pills-home-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-home" aria-selected="true">Color scheme</button>
11
11
  </li>
12
12
  <li class="nav-item" role="presentation">
13
- <button class="btn nav-link w-100" id="pills-profile-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-profile" aria-selected="false">Elements</button>
13
+ <button class="nav-link w-100" id="pills-profile-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-profile" aria-selected="false">Elements</button>
14
14
  </li>
15
15
  </ul>
16
16
  <div id="pills-tabContent">
@@ -6,12 +6,12 @@
6
6
  <div data-controller="tabs">
7
7
  <ul class="nav nav-pills nav-fill m-3" id="pills-tab" role="tablist">
8
8
  <li class="nav-item" role="presentation">
9
- <button class="btn nav-link w-100 active" id="pills-standard" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-standard" aria-selected="true">
9
+ <button class="nav-link w-100 active" id="pills-standard" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-standard" aria-selected="true">
10
10
  Standard
11
11
  </button>
12
12
  </li>
13
13
  <li class="nav-item" role="presentation">
14
- <button class="btn nav-link w-100" id="pills-custom" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-custom" aria-selected="false">
14
+ <button class="nav-link w-100" id="pills-custom" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-custom" aria-selected="false">
15
15
  Custom
16
16
  </button>
17
17
  </li>
@@ -60,7 +60,7 @@
60
60
  <div class="alert alert-warning">
61
61
  Using custom fonts can slow down your store.
62
62
  </div>
63
- <%= f.spree_text_area :preferred_custom_font_code, style: 'min-height: 6em' %>
63
+ <%= f.spree_text_area :preferred_custom_font_code, style: 'min-height: 6em', label: Spree.t(:custom_font_code) %>
64
64
  </div>
65
65
  <%= f.submit Spree.t('actions.update'), class: 'btn btn-primary' %>
66
66
 
@@ -16,7 +16,7 @@
16
16
  %>
17
17
  </div>
18
18
  <div class="d-flex align-items-center d-none">
19
- <button class="btn btn-sm pr-0 handle hover-gray-200 h-100 mr-1 px-1 handle-section">
19
+ <button class="btn btn-sm pr-0 handle hover-gray-200 h-100 mr-1 px-1 handle-section shadow-none">
20
20
  <%= icon('grip-vertical', class: 'mr-0') %>
21
21
  </button>
22
22
  </div>
@@ -12,7 +12,7 @@
12
12
  data-sortable-update-url="<%= spree.admin_page_link_path(link, sorting_only: true, format: :turbo_stream) %>"
13
13
  >
14
14
  <%= link_to link.label, spree.edit_admin_page_link_path(link), class: 'd-block py-2 px-3 text-dark flex-fill' %>
15
- <button class="btn btn-sm pr-0 handle hover-gray-200 h-100 mr-1 px-1">
15
+ <button class="btn btn-sm pr-0 handle hover-gray-200 h-100 mr-1 px-1 shadow-none">
16
16
  <%= icon 'grip-vertical', class: 'mr-0' %>
17
17
  </button>
18
18
  </li>
@@ -12,7 +12,7 @@
12
12
  <% else %>
13
13
  <%= turbo_frame_tag :page_sidebar do %>
14
14
  <h6 class="sidebar-header">
15
- <%= link_to collection_url, data: { action: 'click->page-builder#clearActiveOverlays' }, class: 'btn hover-gray px-2' do %>
15
+ <%= link_to collection_url, data: { action: 'click->page-builder#clearActiveOverlays' }, class: 'btn hover-gray shadow-none px-2' do %>
16
16
  <%= icon 'chevron-left', class: 'mr-0' %>
17
17
  <% end %>
18
18
  <%= @page_link.label %>
@@ -1,7 +1,7 @@
1
1
  <%= turbo_frame_tag :page_sidebar do %>
2
2
  <% tab_selected ||= :content %>
3
3
  <h6 class="sidebar-header">
4
- <%= link_to collection_url, data: { action: 'click->page-builder#clearActiveOverlays' }, class: 'btn hover-gray px-2' do %>
4
+ <%= link_to collection_url, data: { action: 'click->page-builder#clearActiveOverlays' }, class: 'btn hover-gray shadow-none px-2' do %>
5
5
  <%= icon 'chevron-left', class: 'mr-0 back' %>
6
6
  <% end %>
7
7
  <%= @page_section.display_name %>
@@ -11,10 +11,10 @@
11
11
  <div data-controller="tabs">
12
12
  <ul class="nav nav-pills nav-fill mb-3" id="pills-tab" role="tablist">
13
13
  <li class="nav-item" role="presentation">
14
- <button class="btn nav-link w-100 <%= tab_selected == :content ? 'active' : '' %>" id="pills-home-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-home" aria-selected="<%= tab_selected == :content %>">Content</button>
14
+ <button class="nav-link w-100 <%= tab_selected == :content ? 'active' : '' %>" id="pills-home-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-home" aria-selected="<%= tab_selected == :content %>">Content</button>
15
15
  </li>
16
16
  <li class="nav-item" role="presentation">
17
- <button class="btn nav-link w-100 <%= tab_selected == :design ? 'active' : '' %>" id="pills-profile-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-profile" aria-selected="<%= tab_selected == :design %>">Design</button>
17
+ <button class="nav-link w-100 <%= tab_selected == :design ? 'active' : '' %>" id="pills-profile-tab" data-tabs-target="tab" data-action="click->tabs#select" type="button" role="tab" aria-controls="pills-profile" aria-selected="<%= tab_selected == :design %>">Design</button>
18
18
  </li>
19
19
  </ul>
20
20
  <div data-tabs-target="panel" id="pills-home" role="tabpanel" aria-labelledby="pills-home-tab" class="animate__animated animate__fadeIn" <%= 'hidden' unless tab_selected == :content %>>
@@ -1,6 +1,6 @@
1
1
  <%= turbo_frame_tag :page_sidebar do %>
2
2
  <h6 class="sidebar-header">
3
- <%= link_to collection_url, data: { action: 'click->page-builder#clearActiveOverlays' }, class: 'btn hover-gray px-2' do %>
3
+ <%= link_to collection_url, data: { action: 'click->page-builder#clearActiveOverlays' }, class: 'btn hover-gray shadow-none px-2' do %>
4
4
  <%= icon 'chevron-left', class: 'mr-0 back' %>
5
5
  <% end %>
6
6
  <%= Spree.t(:add_section) %>
@@ -1,6 +1,6 @@
1
1
  <tr>
2
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
3
- <th scope="col"><%= sort_link search_collection, :created_at, Spree.t(:created_at) %></th>
4
- <th scope="col"><%= sort_link search_collection, :updated_at, Spree.t(:updated_at) %></th>
2
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
3
+ <th scope="col"><%= sort_link @search, :created_at, Spree.t(:created_at) %></th>
4
+ <th scope="col"><%= sort_link @search, :updated_at, Spree.t(:updated_at) %></th>
5
5
  <th scope="col"></th>
6
6
  </tr>
@@ -42,4 +42,8 @@
42
42
  </tbody>
43
43
  </table>
44
44
  </div>
45
- <% end %>
45
+ <% end %>
46
+
47
+ <p class="text-muted text-center my-5">
48
+ Find more payment methods in <%= external_link_to 'Integrations Directory', 'https://spreecommerce.org/docs/integrations/integrations', class: 'text-decoration-none font-weight-bold', target: '_blank' %>
49
+ </p>
@@ -1,4 +1,4 @@
1
- <%= search_form_for [:admin, search_collection], class: "filter-wrap", data: { controller: "filters" } do |f| %>
1
+ <%= search_form_for [:admin, @search], class: "filter-wrap", data: { controller: "filters" } 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: :name_i_cont, label: Spree.t(:name) %>
4
4
  </div>
@@ -18,11 +18,11 @@
18
18
  url: spree.bulk_status_update_admin_products_path(status: :draft)
19
19
  ) %>
20
20
 
21
- <%= dropdown do %>
21
+ <%= dropdown direction: 'top' do %>
22
22
  <%= dropdown_toggle do %>
23
23
  <%= icon('dots-vertical', class: "mr-0") %>
24
24
  <% end %>
25
- <%= dropdown_menu direction: 'top', class: 'mb-2' do %>
25
+ <%= dropdown_menu class: 'mb-2' do %>
26
26
  <%= bulk_action_link(
27
27
  Spree.t("admin.bulk_ops.products.title.set_status", status: :archived),
28
28
  spree.bulk_modal_admin_products_path(kind: :set_status, status: :archived),
@@ -8,8 +8,6 @@
8
8
 
9
9
  <%= render_admin_partials(:product_dropdown_partials, product: @product) %>
10
10
 
11
- <div class="dropdown-divider"></div>
12
-
13
11
  <%= external_page_preview_link(@product) %>
14
12
 
15
13
  <% if can?(:clone, @product) %>
@@ -1,7 +1,4 @@
1
1
  <div class="card mb-4">
2
- <div class="card-header">
3
- <h5 class="card-title"><%= Spree.t(:status) %></h5>
4
- </div>
5
2
  <div class="card-body">
6
3
  <div class="row mb-3">
7
4
  <div class="col-6">
@@ -162,7 +162,7 @@
162
162
  <%= render 'spree/admin/products/form/variants/variant_template', default_stock_location: default_stock_location_for_product(@product) %>
163
163
  <div class="variants-table__body" data-variants-form-target="variantsContainer" data-test-id="product-variants-table">
164
164
  </div>
165
- <div class="variants-table__footer">
165
+ <div class="variants-table__footer font-size-sm">
166
166
  <%= Spree.t('admin.variants_form.total_inventory_html', stock_location: current_store.default_stock_location.name, count: raw("<span data-variants-form-target='stockItemsCount'>#{@product.total_on_hand}</span>") )%>
167
167
  </div>
168
168
  </div>
@@ -1,5 +1,5 @@
1
1
  <tr>
2
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
2
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
3
3
  <th scope="col"><%= Spree.t(:code) %></th>
4
4
  <th scope="col"><%= Spree.t(:kind) %></th>
5
5
  <th scope="col"><%= Spree.t(:usage_limit) %></th>
@@ -9,7 +9,7 @@
9
9
  <%= f.radio_button :multi_codes, false, data: { action: 'change->reveal#toggle' }, class: 'custom-control-input' %>
10
10
  <%= f.label :multi_codes_false, class: 'custom-control-label' do %>
11
11
  One code for all customers
12
- <span class="form-text font-weight-normal mr-1">
12
+ <span class="form-text font-weight-normal mr-1 mt-2">
13
13
  You can limit the number of times this code can be used.
14
14
  </span>
15
15
  <% end %>
@@ -22,7 +22,7 @@
22
22
  <%= f.radio_button :multi_codes, true, data: { action: 'change->reveal#toggle' }, class: 'custom-control-input' %>
23
23
  <%= f.label :multi_codes_true, class: 'custom-control-label' do %>
24
24
  Generate unique codes
25
- <span class="form-text font-weight-normal mr-1">
25
+ <span class="form-text font-weight-normal mr-1 mt-2">
26
26
  These codes are generated automatically and can be downloaded as a CSV file. Codes are unique and can only be used once.
27
27
  </span>
28
28
  <% end %>
@@ -30,7 +30,7 @@
30
30
  <div data-reveal-target="item" class="ml-3 mt-2 row <% unless @promotion.multi_codes? %>hidden<% end %>">
31
31
  <div class="col-6">
32
32
  <%= f.text_field :code_prefix, class: 'form-control text-uppercase', placeholder: 'Coupon Prefix (optional)' %>
33
- <span class="form-text">
33
+ <span class="form-text mt-2">
34
34
  eg. <strong>ABC</strong>
35
35
  </span>
36
36
  </div>
@@ -38,7 +38,7 @@
38
38
  <% minimum_number_of_codes = @promotion.persisted? && @promotion.coupon_codes.count.positive? ? @promotion.coupon_codes.count : 1 %>
39
39
  <% maximum_number_of_codes = ENV.fetch('PROMOTION_MAX_NUMBER_OF_CODES', 5000) %>
40
40
  <%= f.number_field :number_of_codes, class: 'form-control', placeholder: 'Number of codes', min: minimum_number_of_codes, max: maximum_number_of_codes, step: 1 %>
41
- <span class="form-text">
41
+ <span class="form-text mt-2">
42
42
  How many codes you want to generate.
43
43
  <% if @promotion.persisted? %>
44
44
  To add more codes just increase this number
@@ -1,5 +1,5 @@
1
1
  <tr>
2
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
2
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
3
3
  <th scope="col"><%= Spree.t(:status) %></th>
4
4
  <th scope="col"><%= Spree.t(:mutable) %></th>
5
5
  <th scope="col"></th>
@@ -1,5 +1,5 @@
1
1
  <tr>
2
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
2
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
3
3
  <th scope="col"><%= Spree.t(:type) %></th>
4
4
  <th scope="col"><%= Spree.t(:status) %></th>
5
5
  <th scope="col"><%= Spree.t(:mutable) %></th>
@@ -1,5 +1,5 @@
1
1
  <tr>
2
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
2
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
3
3
  <th scope="col"><%= Spree.t(:status) %></th>
4
4
  <th scope="col"></th>
5
5
  </tr>
@@ -13,7 +13,7 @@
13
13
  <table class="table">
14
14
  <thead>
15
15
  <tr>
16
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
16
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
17
17
  <th scope="col"><%= Spree.t(:permissions) %></th>
18
18
  <th scope="col"></th>
19
19
  </tr>
@@ -7,7 +7,7 @@
7
7
 
8
8
  <% dropdown_direction ||= 'left' %>
9
9
 
10
- <%= dropdown data: { controller: 'dropdown calendar-range', action: 'click->calendar-range#open' }, class: 'h-100' do %>
10
+ <%= dropdown direction: dropdown_direction, data: { controller: 'dropdown calendar-range', action: 'click->calendar-range#open' }, class: 'h-100' do %>
11
11
  <%= dropdown_toggle class: css_classes do %>
12
12
  <%= icon('calendar', class: 'mr-2') %>
13
13
  <div data-calendar-range-target="label">
@@ -18,7 +18,7 @@
18
18
  <% end %>
19
19
  </div>
20
20
  <% end %>
21
- <%= dropdown_menu direction: dropdown_direction, class: "pt-2 px-2 pb-1" do %>
21
+ <%= dropdown_menu class: "pt-2 px-2 pb-1" do %>
22
22
  <div data-calendar-range-target="picker" class="d-none"></div>
23
23
  <% end %>
24
24
 
@@ -27,7 +27,10 @@
27
27
  <%= icon 'dots-vertical', class: 'mr-0' %>
28
28
  <% end %>
29
29
  <%= dropdown_menu id: 'page_actions_dropdown_menu' do %>
30
- <%= yield :page_actions_dropdown if content_for(:page_actions_dropdown) %>
30
+ <% if content_for?(:page_actions_dropdown) %>
31
+ <%= yield :page_actions_dropdown %>
32
+ <div class="dropdown-divider"></div>
33
+ <% end %>
31
34
  <% if record && record.persisted? %>
32
35
  <%= link_to_edit_metafields(record) %>
33
36
  <%= link_to_edit_translations(record) %>
@@ -1,13 +1,14 @@
1
1
  <% sortable = local_assigns[:sortable] %>
2
+ <% frame_name = local_assigns[:frame_name] || controller_name %>
2
3
 
3
- <%= turbo_frame_tag controller_name, autoscroll: true, data: { autoscroll_block: :start, autoscroll_behavior: :smooth, turbo_action: 'advance' } do %>
4
+ <%= turbo_frame_tag frame_name, autoscroll: true, data: { autoscroll_block: :start, autoscroll_behavior: :smooth, turbo_action: 'advance' } do %>
4
5
  <%= render 'spree/admin/shared/export_modal', export_type: export_type if local_assigns[:export_type] %>
5
6
  <div class="card-lg">
6
7
  <% if lookup_context.template_exists?('filters', lookup_context.prefixes, true) %>
7
8
  <%= render 'filters' %>
8
9
  <% end %>
9
10
 
10
- <% if paginated_collection.any? %>
11
+ <% if @collection.any? %>
11
12
  <div class="<% if lookup_context.template_exists?('filters', lookup_context.prefixes, true) %>with-filters<% end %>" id="listing_<%= controller_name %>">
12
13
  <table class="table">
13
14
  <thead>
@@ -21,12 +22,12 @@
21
22
  data-sortable-response-kind-value="turbo-stream"
22
23
  <% end %>
23
24
  >
24
- <%= render partial: 'table_row', collection: paginated_collection, as: controller_name.singularize %>
25
+ <%= render partial: 'table_row', collection: @collection, as: controller_name.singularize %>
25
26
  </tbody>
26
27
  </table>
27
28
  </div>
28
29
 
29
- <%= render 'spree/admin/shared/index_table_options', collection: paginated_collection %>
30
+ <%= render 'spree/admin/shared/index_table_options', collection: @collection %>
30
31
  <% else %>
31
32
  <%= render 'spree/admin/shared/no_resource_found', new_object_url: (new_object_url if can?(:create, model_class)) %>
32
33
  <% end %>
@@ -12,7 +12,7 @@
12
12
  <div class="d-none d-lg-block text-center text-muted">
13
13
  <%= page_entries_info(collection, entry_name: entry_name) %>
14
14
  </div>
15
- <div class="text-right pr-lg-2">
15
+ <div class="text-right">
16
16
  <%= paginate collection, theme: 'admin-twitter-bootstrap-4' %>
17
17
  </div>
18
18
  </div>
@@ -2,7 +2,7 @@
2
2
  <%= dropdown_toggle class: 'btn-light btn-sm px-1' do %>
3
3
  <%= icon 'plus', class: 'mr-0' %>
4
4
  <% end %>
5
- <%= dropdown_menu direction: 'left' do %>
5
+ <%= dropdown_menu do %>
6
6
  <%= link_to_with_icon 'shopping-bag-plus', Spree.t(:new_order), spree.new_admin_order_path, class: "dropdown-item" if can?(:manage, Spree::Order) %>
7
7
 
8
8
  <%= link_to spree.new_admin_product_path, class: 'dropdown-item' do %>
@@ -1,6 +1,6 @@
1
1
  <% if try_spree_current_user.present? %>
2
2
  <%= dropdown id: dom_id(try_spree_current_user, 'account-dropdown') do %>
3
- <%= dropdown_toggle class: 'd-flex align-items-center justify-content-between text-left w-100 pr-0' do %>
3
+ <%= dropdown_toggle class: 'd-flex align-items-center justify-content-between text-left w-100 pr-0 shadow-none' do %>
4
4
  <%= render_avatar(try_spree_current_user, width: 32, height: 32) %>
5
5
  <% end %>
6
6
  <%= dropdown_menu class: 'dropdown-menu-right', style: 'min-width: 250px;' do %>
@@ -29,8 +29,9 @@
29
29
  <h6 class="dropdown-header mt-2">
30
30
  <%= Spree.t(:support) %>
31
31
  </h6>
32
- <%= external_link_to Spree.t(:help_center), 'https://spreecommerce.org/docs/user', class: 'dropdown-item justify-content-between', target: '_blank' %>
33
- <%= external_link_to Spree.t(:contact_us), 'https://spreecommerce.org/contact/', class: 'dropdown-item justify-content-between', target: '_blank' %>
32
+ <%= link_to_with_icon 'book', Spree.t('admin.documentation'), 'https://spreecommerce.org/docs', class: 'dropdown-item', target: '_blank' %>
33
+ <%= link_to_with_icon 'brand-slack', Spree.t('admin.slack'), 'https://slack.spreecommerce.org/', class: 'dropdown-item', target: '_blank' %>
34
+ <%= link_to_with_icon 'message', Spree.t(:contact_us), 'https://spreecommerce.org/contact/', class: 'dropdown-item', target: '_blank' %>
34
35
  <% end %>
35
36
 
36
37
  <div class="dropdown-divider"></div>
@@ -4,7 +4,7 @@
4
4
  <%= store_admin_icon(current_store, height: 32, width: 32) %>
5
5
  <%= truncate(current_store.name, length: 10) %>
6
6
  <% end %>
7
- <%= dropdown_menu class: 'ml-2', direction: 'left' do %>
7
+ <%= dropdown_menu class: 'ml-2' do %>
8
8
  <%= link_to current_store.formatted_url_or_custom_domain, class: 'dropdown-item', target: '_blank' do %>
9
9
  <%= icon 'eye' %>
10
10
  <%= Spree.t(:view_store) %>
@@ -1,4 +1,4 @@
1
1
  <tr>
2
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
2
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
3
3
  <th scope="col"></th>
4
4
  </tr>
@@ -1,5 +1,5 @@
1
1
  <tr>
2
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
2
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
3
3
  <th scope="col"><%= Spree.t(:zone) %></th>
4
4
  <th scope="col"><%= Spree.t(:estimated_delivery_time) %></th>
5
5
  <th scope="col"><%= Spree.t(:amount) %></th>
@@ -1,6 +1,6 @@
1
1
  <tr>
2
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
3
- <th scope="col"><%= sort_link search_collection, :country, Spree.t(:country) %></th>
2
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
3
+ <th scope="col"><%= sort_link @search, :country, Spree.t(:country) %></th>
4
4
  <th scope="col"><%= Spree.t(:active) %>?</th>
5
5
  <% if can?(:mark_as_default, Spree::StockLocation) %>
6
6
  <th scope="col"><%= Spree.t(:default) %>?</th>
@@ -15,7 +15,7 @@
15
15
  <table class="table">
16
16
  <thead>
17
17
  <tr>
18
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
18
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
19
19
  <th scope="col"></th>
20
20
  </tr>
21
21
  </thead>
@@ -1,4 +1,4 @@
1
- <% if @store_credits.any? %>
1
+ <% if @collection.any? %>
2
2
  <div class="table-responsive">
3
3
  <table class="table">
4
4
  <thead>
@@ -11,11 +11,11 @@
11
11
  <th scope="col"><%= Spree.t(:issued_on) %></th>
12
12
  </thead>
13
13
  <tbody>
14
- <%= render partial: 'spree/admin/store_credits/store_credit', collection: @store_credits, as: :store_credit, cached: spree_base_cache_scope %>
14
+ <%= render partial: 'spree/admin/store_credits/store_credit', collection: @collection, as: :store_credit, cached: spree_base_cache_scope %>
15
15
  </tbody>
16
16
  </table>
17
17
  </div>
18
- <%= render partial: 'spree/admin/shared/index_table_options', locals: { collection: @store_credits } %>
18
+ <%= render partial: 'spree/admin/shared/index_table_options', locals: { collection: @collection } %>
19
19
  <% else %>
20
20
  <%= render 'spree/admin/shared/no_resource_found', model_class: Spree::StoreCredit, new_object_url: spree.new_admin_user_store_credit_path(@user) %>
21
21
  <% end %>
@@ -9,10 +9,10 @@
9
9
 
10
10
  <div class="card-body">
11
11
  <%= f.spree_select :checkout_zone_id, options_for_select(@zones, @store.checkout_zone_id), { label: Spree.t(:shipping_zone), autocomplete: true } %>
12
- <small class="form-text mb-3">
12
+ <span class="form-text mb-3">
13
13
  <%= Spree.t(:shipping_zone_help) %>
14
14
  <%= link_to Spree.t('admin.manage_zones'), spree.admin_zones_path, class: 'text-blue' %>
15
- </small>
15
+ </span>
16
16
 
17
17
  <%= f.spree_select :default_country_iso, Spree::Country.pluck(:name, :iso), { include_blank: false, label: Spree.t(:default_country), autocomplete: true, help: Spree.t(:default_country_help) } %>
18
18
 
@@ -11,7 +11,7 @@
11
11
  >
12
12
  <%= turbo_frame_tag spree_dom_id(link), class: 'd-flex align-items-center w-100 py-2 pl-3 pr-2' do %>
13
13
  <%= link_to link.label, spree.edit_admin_page_link_path(link), class: 'd-block text-dark flex-fill' %>
14
- <button class="btn btn-sm pr-0 handle hover-gray h-100 px-1">
14
+ <button class="btn btn-sm pr-0 handle shadow-none hover-gray-200 px-1">
15
15
  <%= icon 'grip-vertical', class: 'mr-0' %>
16
16
  </button>
17
17
  <% end %>
@@ -1,6 +1,6 @@
1
1
  <tr>
2
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
3
- <th scope="col"><%= sort_link search_collection, :tax_code, Spree.t(:tax_code) %></th>
2
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
3
+ <th scope="col"><%= sort_link @search, :tax_code, Spree.t(:tax_code) %></th>
4
4
  <th scope="col"><%= Spree.t(:description) %></th>
5
5
  <th scope="col"><%= Spree.t(:default) %></th>
6
6
  <th scope="col"></th>
@@ -1,8 +1,8 @@
1
1
  <tr>
2
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
2
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
3
3
  <th scope="col"><%= Spree.t(:tax_category) %></th>
4
4
  <th scope="col"><%= Spree.t(:zone) %></th>
5
- <th scope="col"><%= sort_link search_collection, :amount, Spree.t(:amount) %></th>
5
+ <th scope="col"><%= sort_link @search, :amount, Spree.t(:amount) %></th>
6
6
  <th scope="col"><%= Spree.t(:included_in_price) %></th>
7
7
  <th scope="col"><%= Spree.t(:show_rate_in_label) %></th>
8
8
  <th scope="col"></th>
@@ -1,6 +1,6 @@
1
1
  <tr data-hook="listing_taxonomies_header">
2
2
  <th class="no-border handel-head"></th>
3
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
3
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
4
4
  <th scope="col"><%= Spree.t(:taxons) %></th>
5
5
  <th scope="col"></th>
6
6
  </tr>