spree_admin 5.2.0.rc2 → 5.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/stylesheets/spree/admin/application.scss +1 -1
  3. data/app/assets/stylesheets/spree/admin/components/_alerts.scss +1 -1
  4. data/app/assets/stylesheets/spree/admin/components/_buttons.scss +5 -4
  5. data/app/assets/stylesheets/spree/admin/components/_dialogs.scss +0 -1
  6. data/app/assets/stylesheets/spree/admin/components/_dropdowns.scss +6 -0
  7. data/app/assets/stylesheets/spree/admin/components/_main.scss +2 -233
  8. data/app/assets/stylesheets/spree/admin/components/_sidebar.scss +693 -0
  9. data/app/assets/stylesheets/spree/admin/components/_tables.scss +2 -2
  10. data/app/assets/stylesheets/spree/admin/components/_variants_form.scss +1 -2
  11. data/app/assets/stylesheets/spree/admin/global/_variables.scss +15 -12
  12. data/app/assets/stylesheets/spree/admin/shared/_base.scss +9 -3
  13. data/app/assets/stylesheets/spree/admin/shared/_forms.scss +5 -6
  14. data/app/assets/stylesheets/spree/admin/views/_dashboard.scss +14 -0
  15. data/app/controllers/spree/admin/admin_users_controller.rb +0 -2
  16. data/app/controllers/spree/admin/checkouts_controller.rb +1 -4
  17. data/app/controllers/spree/admin/coupon_codes_controller.rb +0 -14
  18. data/app/controllers/spree/admin/customer_returns_controller.rb +0 -13
  19. data/app/controllers/spree/admin/digital_assets_controller.rb +2 -2
  20. data/app/controllers/spree/admin/exports_controller.rb +2 -9
  21. data/app/controllers/spree/admin/gift_cards_controller.rb +7 -14
  22. data/app/controllers/spree/admin/integrations_controller.rb +1 -1
  23. data/app/controllers/spree/admin/invitations_controller.rb +0 -2
  24. data/app/controllers/spree/admin/metafields_controller.rb +1 -1
  25. data/app/controllers/spree/admin/oauth_applications_controller.rb +0 -10
  26. data/app/controllers/spree/admin/option_types_controller.rb +0 -10
  27. data/app/controllers/spree/admin/orders_controller.rb +1 -1
  28. data/app/controllers/spree/admin/page_blocks_controller.rb +1 -1
  29. data/app/controllers/spree/admin/pages_controller.rb +1 -1
  30. data/app/controllers/spree/admin/payment_methods_controller.rb +1 -11
  31. data/app/controllers/spree/admin/policies_controller.rb +4 -0
  32. data/app/controllers/spree/admin/posts_controller.rb +2 -10
  33. data/app/controllers/spree/admin/promotion_actions_controller.rb +1 -1
  34. data/app/controllers/spree/admin/promotion_rules_controller.rb +1 -1
  35. data/app/controllers/spree/admin/promotions_controller.rb +1 -1
  36. data/app/controllers/spree/admin/properties_controller.rb +0 -12
  37. data/app/controllers/spree/admin/reports_controller.rb +1 -1
  38. data/app/controllers/spree/admin/resource_controller.rb +27 -17
  39. data/app/controllers/spree/admin/return_authorizations_controller.rb +0 -10
  40. data/app/controllers/spree/admin/shipping_methods_controller.rb +4 -0
  41. data/app/controllers/spree/admin/stock_items_controller.rb +8 -11
  42. data/app/controllers/spree/admin/stock_locations_controller.rb +1 -1
  43. data/app/controllers/spree/admin/stock_transfers_controller.rb +0 -10
  44. data/app/controllers/spree/admin/store_credits_controller.rb +35 -35
  45. data/app/controllers/spree/admin/taxonomies_controller.rb +0 -10
  46. data/app/controllers/spree/admin/taxons_controller.rb +1 -1
  47. data/app/controllers/spree/admin/themes_controller.rb +6 -2
  48. data/app/controllers/spree/admin/translations_controller.rb +1 -1
  49. data/app/controllers/spree/admin/users_controller.rb +7 -17
  50. data/app/controllers/spree/admin/webhooks_subscribers_controller.rb +0 -10
  51. data/app/controllers/spree/admin/zones_controller.rb +0 -7
  52. data/app/helpers/spree/admin/base_helper.rb +1 -1
  53. data/app/helpers/spree/admin/drawer_helper.rb +6 -6
  54. data/app/helpers/spree/admin/dropdown_helper.rb +26 -16
  55. data/app/helpers/spree/admin/modal_helper.rb +2 -0
  56. data/app/helpers/spree/admin/navigation_helper.rb +47 -4
  57. data/app/helpers/spree/admin/orders_filters_helper.rb +3 -0
  58. data/app/helpers/spree/admin/promotion_actions_helper.rb +1 -1
  59. data/app/helpers/spree/admin/promotion_rules_helper.rb +1 -1
  60. data/app/helpers/spree/admin/translations_helper.rb +1 -1
  61. data/app/javascript/spree/admin/application.js +2 -1
  62. data/app/javascript/spree/admin/controllers/dropdown_controller.js +85 -14
  63. data/app/javascript/spree/admin/controllers/sidebar_controller.js +231 -0
  64. data/app/javascript/spree/admin/controllers/tooltip_controller.js +84 -31
  65. data/app/models/spree/admin/form_builder.rb +76 -17
  66. data/app/models/spree/admin/navigation/builder.rb +82 -0
  67. data/app/models/spree/admin/navigation/item.rb +177 -0
  68. data/app/models/spree/admin/navigation.rb +193 -0
  69. data/app/views/layouts/spree/admin.html.erb +1 -1
  70. data/app/views/spree/admin/assets/edit.html.erb +1 -1
  71. data/app/views/spree/admin/custom_domains/_custom_domains.html.erb +1 -1
  72. data/app/views/spree/admin/custom_domains/_form.html.erb +2 -14
  73. data/app/views/spree/admin/digital_assets/_table.html.erb +1 -1
  74. data/app/views/spree/admin/gift_cards/_filters.html.erb +25 -16
  75. data/app/views/spree/admin/gift_cards/index.html.erb +1 -1
  76. data/app/views/spree/admin/integrations/index.html.erb +20 -8
  77. data/app/views/spree/admin/invitations/new.html.erb +2 -1
  78. data/app/views/spree/admin/metafield_definitions/_filters.html.erb +1 -1
  79. data/app/views/spree/admin/newsletter_subscribers/_filters.html.erb +1 -1
  80. data/app/views/spree/admin/newsletter_subscribers/_table_header.html.erb +2 -2
  81. data/app/views/spree/admin/oauth_applications/_table_header.html.erb +1 -1
  82. data/app/views/spree/admin/orders/_customer.html.erb +3 -3
  83. data/app/views/spree/admin/orders/_filters.html.erb +33 -25
  84. data/app/views/spree/admin/orders/_header.html.erb +0 -5
  85. data/app/views/spree/admin/orders/_list.html.erb +3 -3
  86. data/app/views/spree/admin/orders/_table_filter_dropdown.html.erb +1 -1
  87. data/app/views/spree/admin/page_blocks/edit.html.erb +3 -3
  88. data/app/views/spree/admin/page_blocks/forms/_image.html.erb +2 -5
  89. data/app/views/spree/admin/page_builder/_add_block.html.erb +1 -1
  90. data/app/views/spree/admin/page_builder/_header.html.erb +1 -1
  91. data/app/views/spree/admin/page_builder/_pages_dropdown.html.erb +2 -2
  92. data/app/views/spree/admin/page_builder/_sidebar_block.html.erb +1 -1
  93. data/app/views/spree/admin/page_builder/_sidebar_colors.html.erb +2 -2
  94. data/app/views/spree/admin/page_builder/_sidebar_fonts.html.erb +3 -3
  95. data/app/views/spree/admin/page_builder/_sidebar_section.html.erb +1 -1
  96. data/app/views/spree/admin/page_links/_form.html.erb +4 -13
  97. data/app/views/spree/admin/page_links/_list.html.erb +1 -1
  98. data/app/views/spree/admin/page_links/edit.html.erb +1 -1
  99. data/app/views/spree/admin/page_sections/edit.html.erb +3 -3
  100. data/app/views/spree/admin/page_sections/forms/_header.html.erb +0 -2
  101. data/app/views/spree/admin/page_sections/new.html.erb +1 -1
  102. data/app/views/spree/admin/pages/_table_header.html.erb +3 -3
  103. data/app/views/spree/admin/payment_methods/index.html.erb +5 -1
  104. data/app/views/spree/admin/payments/_payment.html.erb +7 -0
  105. data/app/views/spree/admin/policies/_filters.html.erb +1 -1
  106. data/app/views/spree/admin/posts/_form.html.erb +1 -4
  107. data/app/views/spree/admin/posts/filters.html.erb +18 -8
  108. data/app/views/spree/admin/products/_bulk_operations.html.erb +2 -2
  109. data/app/views/spree/admin/products/_filters.html.erb +17 -6
  110. data/app/views/spree/admin/products/_table_filter_dropdown.html.erb +1 -1
  111. data/app/views/spree/admin/products/edit.html.erb +0 -2
  112. data/app/views/spree/admin/products/form/_status.html.erb +0 -3
  113. data/app/views/spree/admin/products/form/_variants.html.erb +1 -1
  114. data/app/views/spree/admin/profile/edit.html.erb +9 -61
  115. data/app/views/spree/admin/promotions/_filters.html.erb +23 -13
  116. data/app/views/spree/admin/promotions/_table_filter_dropdown.html.erb +1 -1
  117. data/app/views/spree/admin/promotions/_table_header.html.erb +1 -1
  118. data/app/views/spree/admin/promotions/form/_kind.html.erb +4 -4
  119. data/app/views/spree/admin/promotions/form/_settings.html.erb +2 -13
  120. data/app/views/spree/admin/refund_reasons/_table_header.html.erb +1 -1
  121. data/app/views/spree/admin/refunds/_form.html.erb +1 -9
  122. data/app/views/spree/admin/reimbursement_types/_table_header.html.erb +1 -1
  123. data/app/views/spree/admin/return_authorization_reasons/_table_header.html.erb +1 -1
  124. data/app/views/spree/admin/return_authorizations/filters.html.erb +1 -1
  125. data/app/views/spree/admin/roles/index.html.erb +1 -1
  126. data/app/views/spree/admin/shared/_audit_nav.html.erb +2 -0
  127. data/app/views/spree/admin/shared/_calendar_range_picker.html.erb +2 -2
  128. data/app/views/spree/admin/shared/_content_header.html.erb +5 -2
  129. data/app/views/spree/admin/shared/_developers_nav.html.erb +2 -4
  130. data/app/views/spree/admin/shared/_header.html.erb +5 -7
  131. data/app/views/spree/admin/shared/_index_table.html.erb +5 -4
  132. data/app/views/spree/admin/shared/_index_table_options.html.erb +1 -1
  133. data/app/views/spree/admin/shared/_navigation.html.erb +5 -0
  134. data/app/views/spree/admin/shared/_navigation_item.html.erb +64 -0
  135. data/app/views/spree/admin/shared/_new_item_dropdown.html.erb +2 -2
  136. data/app/views/spree/admin/shared/_page_section_image.html.erb +2 -5
  137. data/app/views/spree/admin/shared/_page_section_logo.html.erb +1 -1
  138. data/app/views/spree/admin/shared/_returns_and_refunds_nav.html.erb +2 -3
  139. data/app/views/spree/admin/shared/_shipping_nav.html.erb +3 -2
  140. data/app/views/spree/admin/shared/_sidebar.html.erb +33 -7
  141. data/app/views/spree/admin/shared/_stock_nav.html.erb +6 -3
  142. data/app/views/spree/admin/shared/_tax_nav.html.erb +1 -2
  143. data/app/views/spree/admin/shared/_team_nav.html.erb +2 -3
  144. data/app/views/spree/admin/shared/_user_dropdown.html.erb +29 -19
  145. data/app/views/spree/admin/shared/sidebar/_customers_nav.html.erb +7 -0
  146. data/app/views/spree/admin/shared/sidebar/_orders_nav.html.erb +22 -2
  147. data/app/views/spree/admin/shared/sidebar/_products_nav.html.erb +21 -0
  148. data/app/views/spree/admin/shared/sidebar/_promotions_nav.html.erb +8 -0
  149. data/app/views/spree/admin/shared/sidebar/_returns_nav.html.erb +12 -0
  150. data/app/views/spree/admin/shared/sidebar/_store_dropdown.html.erb +4 -2
  151. data/app/views/spree/admin/shared/sidebar/_store_nav.html.erb +15 -1
  152. data/app/views/spree/admin/shared/sidebar/_storefront_nav.html.erb +25 -3
  153. data/app/views/spree/admin/shared/sortable_tree/_taxonomy.html.erb +1 -1
  154. data/app/views/spree/admin/shipping_categories/_table_header.html.erb +1 -1
  155. data/app/views/spree/admin/shipping_methods/_table_header.html.erb +1 -1
  156. data/app/views/spree/admin/stock_items/_filters.html.erb +18 -8
  157. data/app/views/spree/admin/stock_locations/_table_header.html.erb +2 -2
  158. data/app/views/spree/admin/stock_locations/_table_row.html.erb +1 -1
  159. data/app/views/spree/admin/stock_transfers/_filters.html.erb +19 -9
  160. data/app/views/spree/admin/store_credit_categories/index.html.erb +1 -1
  161. data/app/views/spree/admin/store_credits/_list.html.erb +3 -3
  162. data/app/views/spree/admin/storefront/edit.html.erb +2 -14
  163. data/app/views/spree/admin/stores/form/_basic.html.erb +2 -8
  164. data/app/views/spree/admin/stores/form/_checkout.html.erb +2 -2
  165. data/app/views/spree/admin/stores/form/_checkout_links.html.erb +1 -1
  166. data/app/views/spree/admin/stores/form/_emails.html.erb +1 -1
  167. data/app/views/spree/admin/tax_categories/_table_header.html.erb +2 -2
  168. data/app/views/spree/admin/tax_rates/_form.html.erb +1 -10
  169. data/app/views/spree/admin/tax_rates/_table_header.html.erb +2 -2
  170. data/app/views/spree/admin/taxonomies/_table_header.html.erb +1 -1
  171. data/app/views/spree/admin/taxons/_form.html.erb +2 -9
  172. data/app/views/spree/admin/themes/_theme.html.erb +1 -1
  173. data/app/views/spree/admin/translations/translation_rows/_permalink_field_row.html.erb +1 -12
  174. data/app/views/spree/admin/users/_filters.html.erb +26 -17
  175. data/app/views/spree/admin/users/index.html.erb +1 -1
  176. data/config/initializers/spree_admin_navigation.rb +510 -0
  177. data/config/locales/en.yml +6 -0
  178. data/lib/generators/spree/admin/scaffold/templates/controller.rb.tt +3 -1
  179. data/lib/generators/spree/admin/scaffold/templates/views/_filters.html.erb.tt +1 -1
  180. data/lib/generators/spree/admin/scaffold/templates/views/_table_header.html.erb.tt +2 -2
  181. data/lib/generators/spree/admin/scaffold/templates/views/_table_row.html.erb.tt +8 -6
  182. data/lib/spree/admin/engine.rb +64 -2
  183. data/lib/spree/admin/runtime_configuration.rb +1 -0
  184. data/lib/spree/admin.rb +20 -0
  185. metadata +17 -15
  186. data/app/assets/stylesheets/spree/admin/components/_offcanvas.scss +0 -26
  187. data/app/javascript/spree/admin/helpers/canvas.js +0 -29
  188. data/app/views/spree/admin/shared/_offcanvas_nav.html.erb +0 -12
@@ -1,19 +1,7 @@
1
1
  <div class="card mb-3">
2
2
  <div class="card-body">
3
- <div class="form-group">
4
- <%= f.label :url, Spree.t(:domain) %>
5
- <div class="form-control d-flex align-items-center py-0 focus-shadow focus-border">
6
- <span class="text-muted">https://</span>
7
- <%= f.text_field :url, class: 'form-control-plaintext pr-0 pl-1', autofocus: f.object.new_record?, required: true %>
8
- </div>
9
- <%= f.error_message_on :url %>
10
- </div>
3
+ <%= f.spree_text_field :url, label: Spree.t(:domain), prepend: 'https://', autofocus: f.object.new_record?, required: true %>
11
4
 
12
- <div class="custom-control custom-checkbox">
13
- <%= f.check_box :default, class: 'custom-control-input' %>
14
- <%= f.label :default, class: 'custom-control-label font-weight-semibold' %>
15
- <p class="form-text mb-0">We will use this domain in emails to customers.</p>
16
- <%= f.error_message_on :default %>
17
- </div>
5
+ <%= f.spree_check_box :default, help: 'We will use this domain in emails to customers.' %>
18
6
  </div>
19
7
  </div>
@@ -4,7 +4,7 @@
4
4
  <% if @product.has_variants? %>
5
5
  <th scope="col"><%= Spree.t(:variant) %></th>
6
6
  <% end %>
7
- <th scope="col"><%= sort_link search_collection, :name, Spree.t(:name) %></th>
7
+ <th scope="col"><%= sort_link @search, :name, Spree.t(:name) %></th>
8
8
  <th scope="col"><%= Spree.t(:size) %></th>
9
9
  <th scope="col"></th>
10
10
  </tr>
@@ -5,17 +5,23 @@
5
5
  url: filter_form_url,
6
6
  class: "filter-wrap",
7
7
  data: {
8
- controller: "filters dropdown",
8
+ controller: "filters dialog",
9
9
  filters_url_value: request.url
10
10
  } do |f| %>
11
- <%= hidden_field_tag :frame_name, frame_name if frame_name.present? %>
11
+ <%= hidden_field_tag :frame_name, frame_name if frame_name.present? %>
12
12
 
13
- <div class="d-flex flex-column flex-lg-row gap-2">
14
- <%= render 'spree/admin/shared/filters_search_bar', param: :code_i_cont, label: Spree.t(:code) %>
15
- <%= render "table_filter_dropdown" %>
16
- <%= render "spree/admin/shared/filters_button" %>
17
- </div>
18
- <div data-dropdown-target="menu" id="table-filter" class="hidden">
13
+ <div class="d-flex flex-column flex-lg-row gap-2">
14
+ <%= render 'spree/admin/shared/filters_search_bar', param: :code_i_cont, label: Spree.t(:code) %>
15
+ <%= render "table_filter_dropdown" %>
16
+ <%= button_tag type: 'button', class: 'btn btn-light d-flex align-items-center', data: { action: 'dialog#open' } do %>
17
+ <%= icon "adjustments", class: "mr-1" %>
18
+ <%= Spree.t("admin.filters") %>
19
+ <% end %>
20
+ </div>
21
+
22
+ <dialog class="drawer" data-dialog-target="dialog" id="gift-card-filters-drawer">
23
+ <%= drawer_header(Spree.t(:filter), 'dialog') %>
24
+ <div class="drawer-body">
19
25
  <% if params[:user_id].blank? %>
20
26
  <div class="form-group">
21
27
  <%= f.label :users_email_eq, Spree.t(:email) %>
@@ -29,16 +35,19 @@
29
35
  </div>
30
36
 
31
37
  <%= render_admin_partials(:gift_cards_filters_partials, f: f) %>
32
-
33
- <div class="form-actions">
34
- <%= turbo_save_button_tag Spree.t(:filter_results) do %>
35
- <%= icon("search") %>
36
- <%= Spree.t(:filter_results) %>
37
- <% end %>
38
38
  </div>
39
- </div>
39
+ <div class="drawer-footer">
40
+ <%= drawer_discard_button('dialog') %>
41
+ <div class="form-actions">
42
+ <%= turbo_save_button_tag Spree.t(:filter_results) do %>
43
+ <%= icon("search") %>
44
+ <%= Spree.t(:filter_results) %>
45
+ <% end %>
46
+ </div>
47
+ </div>
48
+ </dialog>
40
49
 
41
- <%= render "spree/admin/shared/filter_badge_template" %>
50
+ <%= render "spree/admin/shared/filter_badge_template" %>
42
51
 
43
52
  <div data-filters-target="badgesContainer" class="filter-badges-container"></div>
44
53
  <% end %>
@@ -12,7 +12,7 @@
12
12
  <%= icon 'plus' %>
13
13
  <%= Spree.t(:new_gift_card) %>
14
14
  <% end %>
15
- <%= dropdown_menu class: 'dropdown-menu-right' do %>
15
+ <%= dropdown_menu do %>
16
16
  <%= link_to spree.new_admin_gift_card_path,
17
17
  class: 'text-left dropdown-item' do %>
18
18
  <%= icon 'add' %>
@@ -14,16 +14,28 @@
14
14
  <%= Spree.t('admin.integrations.page_subtitle') %>
15
15
  </div>
16
16
 
17
- <% grouped_available_store_integrations.each do |group, integrations| %>
18
- <% if group.present? %>
19
- <div class="my-2 text-muted font-weight-light text-uppercase"><%= Spree.t(group) %></div>
17
+ <% if grouped_available_store_integrations.any? %>
18
+ <% grouped_available_store_integrations.each do |group, integrations| %>
19
+ <% if group.present? %>
20
+ <div class="my-2 text-muted font-weight-light text-uppercase"><%= Spree.t(group) %></div>
21
+ <% end %>
22
+
23
+ <div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 mb-4">
24
+ <% integrations.each do |integration| %>
25
+ <%= render 'spree/admin/integrations/integration', integration_class: integration %>
26
+ <% end %>
27
+ </div>
20
28
  <% end %>
21
29
 
22
- <div class="row row-cols-1 row-cols-md-2 row-cols-lg-3 mb-4">
23
- <% integrations.each do |integration| %>
24
- <%= render 'spree/admin/integrations/integration', integration_class: integration %>
25
- <% end %>
26
- </div>
30
+ <p class="text-muted text-center my-5">
31
+ Find more integrations in <%= external_link_to 'Integrations Directory', 'https://spreecommerce.org/docs/integrations/integrations', class: 'text-decoration-none font-weight-bold', target: '_blank' %>
32
+ </p>
33
+ <% else %>
34
+ <p class="text-muted text-center my-5">
35
+ No integrations installed yet. Find integrations in
36
+
37
+ <%= external_link_to 'Integrations Directory', 'https://spreecommerce.org/docs/integrations/integrations', class: 'text-decoration-none font-weight-bold', target: '_blank' %>
38
+ </p>
27
39
  <% end %>
28
40
  </div>
29
41
  </div>
@@ -12,7 +12,8 @@
12
12
  <%= f.spree_date_field :expires_at, required: true, data: { 'enable-button-target': 'input' } %>
13
13
  </div>
14
14
  <div class="dialog-footer">
15
- <%= turbo_save_button_tag nil, class: 'btn btn-primary', data: { 'enable-button-target': 'button' } do %>
15
+ <%= dialog_discard_button %>
16
+ <%= turbo_save_button_tag do %>
16
17
  <%= icon 'send' %>
17
18
  <%= Spree.t('actions.send_invitation') %>
18
19
  <% end %>
@@ -1,4 +1,4 @@
1
- <%= search_form_for [:admin, search_collection], class: "filter-wrap", data: {controller: "filters auto-submit"} do |f| %>
1
+ <%= search_form_for [:admin, @search], class: "filter-wrap", data: {controller: "filters auto-submit"} do |f| %>
2
2
  <div class="d-flex">
3
3
  <%= render 'spree/admin/shared/filters_search_bar', param: :multi_search, label: Spree.t(:title) %>
4
4
 
@@ -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: :email_cont, label: Spree.t(:email) %>
4
4
 
@@ -1,8 +1,8 @@
1
1
  <tr>
2
- <th scope="col"><%= sort_link search_collection, :email, Spree.t(:email) %></th>
2
+ <th scope="col"><%= sort_link @search, :email, Spree.t(:email) %></th>
3
3
  <th scope="col"><%= Spree.t(:customer) %></th>
4
4
  <th scope="col"><%= Spree.t(:verified) %>?</th>
5
5
  <th scope="col"><%= Spree.t(:verified_at) %></th>
6
- <th scope="col"><%= sort_link search_collection, :created_at, Spree.t(:created_at) %></th>
6
+ <th scope="col"><%= sort_link @search, :created_at, Spree.t(:created_at) %></th>
7
7
  <th scope="col"></th>
8
8
  </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('admin.oauth_applications.client_id') %></th>
4
4
  <th scope="col"><%= Spree.t('admin.oauth_applications.scopes') %></th>
5
5
  <th scope="col"><%= Spree.t('admin.oauth_applications.last_used') %></th>
@@ -4,11 +4,11 @@
4
4
  <%= Spree.t(:customer) %>
5
5
  </h5>
6
6
  <% if can?(:update_customer, @order) || can?(:update_addresses, @order) %>
7
- <%= dropdown id: 'customer-edit-dropdown', class: 'ml-auto' do %>
7
+ <%= dropdown id: 'customer-edit-dropdown', class: 'ml-auto', portal: false do %>
8
8
  <%= dropdown_toggle class: 'btn-light btn-sm px-1', data: { test_id: 'dropdown-toggle' } do %>
9
- <%= icon 'dots-vertical' %>
9
+ <%= icon 'dots-vertical', class: 'mr-0' %>
10
10
  <% end %>
11
- <%= dropdown_menu class: 'dropdown-menu-right' do %>
11
+ <%= dropdown_menu do %>
12
12
  <% if can?(:update_customer, @order) && !@order.user.present? %>
13
13
  <%= link_to Spree.t('admin.edit_contact_information'), spree.edit_admin_order_contact_information_path(@order), class: 'dropdown-item', data: { turbo_frame: 'dialog', action: 'dialog#open' } %>
14
14
  <% end %>
@@ -14,34 +14,38 @@
14
14
  url: search_form_path,
15
15
  class: "filter-wrap",
16
16
  data: {
17
- controller: "filters dropdown",
17
+ controller: "filters dialog",
18
18
  filters_url_value: request.url
19
19
  } do |f| %>
20
- <%= hidden_field_tag :frame_name, frame_name if frame_name.present? %>
20
+ <%= hidden_field_tag :frame_name, frame_name if frame_name.present? %>
21
21
 
22
- <div class="d-flex flex-column flex-lg-row gap-2">
23
- <%= render 'spree/admin/shared/filters_search_bar', param: :multi_search %>
22
+ <div class="d-flex flex-column flex-lg-row gap-2">
23
+ <%= render 'spree/admin/shared/filters_search_bar', param: :multi_search %>
24
24
 
25
- <% if controller_name == 'checkouts' %>
26
- <%= render "spree/admin/shared/calendar_range_picker",
27
- date_from_input_name: "q[created_at_gt]",
28
- date_to_input_name: "q[created_at_lt]",
29
- date_from_value: params.dig(:q, :created_at_gt),
30
- date_to_value: params.dig(:q, :created_at_lt),
31
- dropdown_direction: "right" %>
32
- <% else %>
33
- <%= render "spree/admin/shared/calendar_range_picker",
34
- date_from_input_name: "q[completed_at_gt]",
35
- date_to_input_name: "q[completed_at_lt]",
36
- date_from_value: params.dig(:q, :completed_at_gt),
37
- date_to_value: params.dig(:q, :completed_at_lt),
38
- dropdown_direction: "right" %>
39
- <% end %>
25
+ <% if controller_name == 'checkouts' %>
26
+ <%= render "spree/admin/shared/calendar_range_picker",
27
+ date_from_input_name: "q[created_at_gt]",
28
+ date_to_input_name: "q[created_at_lt]",
29
+ date_from_value: params.dig(:q, :created_at_gt),
30
+ date_to_value: params.dig(:q, :created_at_lt) %>
31
+ <% else %>
32
+ <%= render "spree/admin/shared/calendar_range_picker",
33
+ date_from_input_name: "q[completed_at_gt]",
34
+ date_to_input_name: "q[completed_at_lt]",
35
+ date_from_value: params.dig(:q, :completed_at_gt),
36
+ date_to_value: params.dig(:q, :completed_at_lt) %>
37
+ <% end %>
38
+
39
+ <%= render "spree/admin/orders/table_filter_dropdown" %>
40
+ <%= button_tag type: 'button', class: 'btn btn-light d-flex align-items-center', data: { action: 'dialog#open' } do %>
41
+ <%= icon "adjustments", class: "mr-1" %>
42
+ <%= Spree.t("admin.filters") %>
43
+ <% end %>
44
+ </div>
40
45
 
41
- <%= render "spree/admin/orders/table_filter_dropdown" %>
42
- <%= render 'spree/admin/shared/filters_button' %>
43
- </div>
44
- <div data-dropdown-target="menu" id="table-filter" class="hidden">
46
+ <dialog class="drawer" data-dialog-target="dialog" id="order-filters-drawer">
47
+ <%= drawer_header(Spree.t(:filter), 'dialog') %>
48
+ <div class="drawer-body">
45
49
  <%= f.hidden_field :payment_state_not_eq, value: params.dig(:q, :payment_state_not_eq) %>
46
50
  <%= f.hidden_field :state_not_eq, value: params.dig(:q, :state_not_eq) %>
47
51
  <%= f.hidden_field :user_id_eq, value: @user.try(:id) %>
@@ -100,8 +104,12 @@
100
104
  </div>
101
105
 
102
106
  <%= render_admin_partials(:orders_filters_partials, f: f) %>
103
- <%= render 'spree/admin/shared/filter_submit' %>
104
- </div>
107
+ </div>
108
+ <div class="drawer-footer">
109
+ <%= drawer_discard_button('dialog') %>
110
+ <%= render 'spree/admin/shared/filter_submit' %>
111
+ </div>
112
+ </dialog>
105
113
 
106
114
  <%= render "spree/admin/shared/filter_badge_template" %>
107
115
  <div data-filters-target="badgesContainer" class="filter-badges-container"></div>
@@ -41,8 +41,6 @@
41
41
  can?(:create, Spree::CustomerReturn) && @order.return_authorizations.exists? %>
42
42
 
43
43
  <% if can_create_ra || can_create_cr %>
44
- <div class="dropdown-divider"></div>
45
-
46
44
  <% if can_create_ra %>
47
45
  <%= link_to_with_icon "plus", Spree.t(:new_return_authorization),
48
46
  spree.new_admin_order_return_authorization_path(@order),
@@ -54,8 +52,6 @@
54
52
  spree.new_admin_order_customer_return_path(@order),
55
53
  class: "btn dropdown-item" %>
56
54
  <% end %>
57
-
58
- <div class="dropdown-divider"></div>
59
55
  <% end %>
60
56
  <% end %>
61
57
 
@@ -69,6 +65,5 @@
69
65
  <%= icon "cancel" %>
70
66
  <%= Spree.t(:cancel_order) %>
71
67
  <% end %>
72
- <div class="dropdown-divider"></div>
73
68
  <% end %>
74
69
  <% end %>
@@ -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 %>
@@ -6,7 +6,7 @@
6
6
  </span>
7
7
  <%= order_filter_dropdown_value %>
8
8
  <% end %>
9
- <%= dropdown_menu class: 'dropdown-menu-right w-100', style: 'min-width: 200px' do %>
9
+ <%= dropdown_menu do %>
10
10
  <%= active_link_to Spree.t('admin.orders.all_orders'), params.to_unsafe_h.deep_merge({q: {shipment_state_eq: '', shipment_state_not_in: '', state_eq: '', state_in: '', refunded: '', partially_refunded: '' }}), class: 'dropdown-item', active: (params[:q] || {}).values_at(*%w[payment_state_not_eq shipment_state_not_in shipment_state_eq state_eq state_in refunded partially_refunded] ).all?(&:blank?) %>
11
11
  <%= link_to params.to_unsafe_h.deep_merge({q: {shipment_state_not_in: [:shipped, :canceled], shipment_state_eq: '', state_eq: '', state_in: '', refunded: '', partially_refunded: ''}}),
12
12
  class: "dropdown-item d-flex align-items-center justify-content-between #{'active' if params[:q][:shipment_state_not_in] == ['shipped', 'canceled']}" do %>
@@ -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 %>>
@@ -1,8 +1,5 @@
1
- <%= render 'active_storage/upload_form', form: f, field_name: :asset, width: 512, height: 512, auto_submit: true %>
2
- <div class="mt-2 form-group">
3
- <%= f.label :preferred_image_alt, Spree.t(:alt_text) %>
4
- <%= f.text_field :preferred_image_alt, data: { action: 'auto-submit#submit' }, class: 'form-control' %>
5
- </div>
1
+ <%= f.spree_file_field :asset, width: 512, height: 512, auto_submit: true %>
2
+ <%= f.spree_text_field :preferred_image_alt, label: Spree.t(:alt_text), data: { action: 'auto-submit#submit' } %>
6
3
  <% content_for(:design_tab) do %>
7
4
  <%= render 'spree/admin/page_builder/labeled_range_input',
8
5
  f: f, field: :preferred_height, min: 1, max: 1024, unit: 'px', _label: 'Max image height on desktop'
@@ -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>
@@ -1,19 +1,10 @@
1
1
  <% data_action = (@page_link.persisted? && !@page_link.parent.is_a?(Spree::Store) ? { action: 'blur->auto-submit#submit' } : {}) %>
2
2
 
3
- <div class="form-group">
4
- <%= f.label :linkable_type, 'Link' %>
5
- <%= f.select :linkable_type, @page_link.parent.allowed_linkable_types, { include_blank: false }, { class: 'custom-select mb-3', data: { action: 'auto-submit#submit' } } %>
6
- <%= render 'spree/admin/page_links/linkable_type_dropdown', page_link: @page_link, form_name: 'page_link' %>
7
- </div>
3
+ <%= f.spree_select :linkable_type, @page_link.parent.allowed_linkable_types, { label: 'Link', include_blank: false }, { class: 'custom-select mb-3', data: { action: 'auto-submit#submit' } } %>
4
+ <%= render 'spree/admin/page_links/linkable_type_dropdown', page_link: @page_link, form_name: 'page_link' %>
8
5
 
9
6
  <hr class="my-4" />
10
7
 
11
- <div class="form-group">
12
- <%= f.label :label, Spree.t(:name) %>
13
- <%= f.text_field :label, class: 'form-control', data: data_action, required: true %>
14
- </div>
8
+ <%= f.spree_text_field :label, label: Spree.t(:name), data: data_action, required: true %>
15
9
 
16
- <div class="custom-control custom-checkbox">
17
- <%= f.check_box :open_in_new_tab, class: 'custom-control-input', data: data_action %>
18
- <%= f.label :open_in_new_tab, class: 'custom-control-label' %>
19
- </div>
10
+ <%= f.spree_check_box :open_in_new_tab, data: data_action %>
@@ -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,5 +1,3 @@
1
- <label>Logo image</label>
2
-
3
1
  <%= render 'spree/admin/shared/page_section_logo', f: f %>
4
2
 
5
3
  <p class="text-muted small mt-2">
@@ -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>
@@ -46,6 +46,13 @@
46
46
  <% end %>
47
47
  </div>
48
48
  <div class="card-body">
49
+ <% if payment.gateway_processing_error_messages.any? %>
50
+ <div class="alert alert-danger inline-block">
51
+ <strong><%= Spree.t(:payments_gateway_processing_errors, payment_method_name: payment.payment_method&.name) %>:</strong>
52
+ <%= payment.gateway_processing_error_messages.join(', ') %>
53
+ </div>
54
+ <% end %>
55
+
49
56
  <div class="d-flex">
50
57
  <div class="w-50">
51
58
  <p class="mb-1"><%= Spree.t(:amount) %>:</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>