spree_admin 5.0.2 → 5.1.0.beta

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 (273) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/login_sidebar_background.png +0 -0
  3. data/app/assets/stylesheets/spree/admin/components/_bulk_panel.scss +8 -1
  4. data/app/assets/stylesheets/spree/admin/components/_buttons.scss +12 -20
  5. data/app/assets/stylesheets/spree/admin/components/_cards.scss +9 -3
  6. data/app/assets/stylesheets/spree/admin/components/_dropdowns.scss +13 -40
  7. data/app/assets/stylesheets/spree/admin/components/_filters.scss +32 -3
  8. data/app/assets/stylesheets/spree/admin/components/_main.scss +107 -31
  9. data/app/assets/stylesheets/spree/admin/components/_media_form.scss +21 -9
  10. data/app/assets/stylesheets/spree/admin/components/_modals.scss +4 -3
  11. data/app/assets/stylesheets/spree/admin/components/_navbar.scss +5 -9
  12. data/app/assets/stylesheets/spree/admin/components/_navigation.scss +0 -1
  13. data/app/assets/stylesheets/spree/admin/components/_sortable_tree.scss +6 -2
  14. data/app/assets/stylesheets/spree/admin/components/_tables.scss +35 -5
  15. data/app/assets/stylesheets/spree/admin/global/_variables.scss +37 -17
  16. data/app/assets/stylesheets/spree/admin/plugins/tom-select.bootstrap4.scss +5 -4
  17. data/app/assets/stylesheets/spree/admin/shared/_base.scss +50 -17
  18. data/app/assets/stylesheets/spree/admin/shared/_forms.scss +6 -2
  19. data/app/assets/stylesheets/spree/admin/views/_page_builder.scss +30 -21
  20. data/app/controllers/concerns/spree/admin/breadcrumb_concern.rb +22 -0
  21. data/app/controllers/concerns/spree/admin/preferences_concern.rb +22 -0
  22. data/app/controllers/concerns/spree/admin/products_breadcrumb_concern.rb +22 -0
  23. data/app/controllers/concerns/spree/admin/promotions_breadcrumb_concern.rb +23 -0
  24. data/app/controllers/concerns/spree/admin/storefront_breadcrumb_concern.rb +12 -0
  25. data/app/controllers/spree/admin/addresses_controller.rb +4 -0
  26. data/app/controllers/spree/admin/admin_users_controller.rb +112 -0
  27. data/app/controllers/spree/admin/assets_controller.rb +7 -9
  28. data/app/controllers/spree/admin/base_controller.rb +21 -10
  29. data/app/controllers/spree/admin/checkouts_controller.rb +4 -0
  30. data/app/controllers/spree/admin/classifications_controller.rb +4 -0
  31. data/app/controllers/spree/admin/coupon_codes_controller.rb +2 -0
  32. data/app/controllers/spree/admin/custom_domains_controller.rb +6 -0
  33. data/app/controllers/spree/admin/customer_returns_controller.rb +4 -0
  34. data/app/controllers/spree/admin/dashboard_controller.rb +19 -14
  35. data/app/controllers/spree/admin/digital_assets_controller.rb +8 -0
  36. data/app/controllers/spree/admin/exports_controller.rb +6 -2
  37. data/app/controllers/spree/admin/integrations_controller.rb +61 -0
  38. data/app/controllers/spree/admin/invitations_controller.rb +128 -0
  39. data/app/controllers/spree/admin/line_items_controller.rb +4 -0
  40. data/app/controllers/spree/admin/oauth_applications_controller.rb +6 -0
  41. data/app/controllers/spree/admin/option_types_controller.rb +15 -0
  42. data/app/controllers/spree/admin/option_values_controller.rb +4 -0
  43. data/app/controllers/spree/admin/orders/return_authorizations_controller.rb +4 -0
  44. data/app/controllers/spree/admin/orders_controller.rb +11 -0
  45. data/app/controllers/spree/admin/page_blocks_controller.rb +12 -3
  46. data/app/controllers/spree/admin/page_links_controller.rb +9 -0
  47. data/app/controllers/spree/admin/page_sections_controller.rb +26 -5
  48. data/app/controllers/spree/admin/pages_controller.rb +7 -0
  49. data/app/controllers/spree/admin/payment_methods_controller.rb +23 -12
  50. data/app/controllers/spree/admin/post_categories_controller.rb +3 -0
  51. data/app/controllers/spree/admin/posts_controller.rb +11 -0
  52. data/app/controllers/spree/admin/products_controller.rb +11 -8
  53. data/app/controllers/spree/admin/promotion_actions_controller.rb +10 -2
  54. data/app/controllers/spree/admin/promotion_rules_controller.rb +10 -2
  55. data/app/controllers/spree/admin/promotions_controller.rb +6 -0
  56. data/app/controllers/spree/admin/properties_controller.rb +15 -0
  57. data/app/controllers/spree/admin/refund_reasons_controller.rb +7 -0
  58. data/app/controllers/spree/admin/refunds_controller.rb +4 -0
  59. data/app/controllers/spree/admin/reimbursement_types_controller.rb +7 -0
  60. data/app/controllers/spree/admin/reimbursements_controller.rb +4 -0
  61. data/app/controllers/spree/admin/reports_controller.rb +12 -2
  62. data/app/controllers/spree/admin/resource_controller.rb +1 -1
  63. data/app/controllers/spree/admin/return_authorization_reasons_controller.rb +7 -0
  64. data/app/controllers/spree/admin/return_authorizations_controller.rb +4 -0
  65. data/app/controllers/spree/admin/return_items_controller.rb +6 -0
  66. data/app/controllers/spree/admin/role_users_controller.rb +36 -0
  67. data/app/controllers/spree/admin/roles_controller.rb +8 -0
  68. data/app/controllers/spree/admin/shipments_controller.rb +2 -2
  69. data/app/controllers/spree/admin/shipping_categories_controller.rb +7 -0
  70. data/app/controllers/spree/admin/shipping_methods_controller.rb +6 -0
  71. data/app/controllers/spree/admin/stock_items_controller.rb +13 -0
  72. data/app/controllers/spree/admin/stock_locations_controller.rb +7 -0
  73. data/app/controllers/spree/admin/stock_transfers_controller.rb +14 -2
  74. data/app/controllers/spree/admin/store_credit_categories_controller.rb +5 -0
  75. data/app/controllers/spree/admin/store_credits_controller.rb +4 -0
  76. data/app/controllers/spree/admin/storefront_controller.rb +3 -0
  77. data/app/controllers/spree/admin/stores_controller.rb +17 -2
  78. data/app/controllers/spree/admin/tax_categories_controller.rb +7 -0
  79. data/app/controllers/spree/admin/tax_rates_controller.rb +6 -0
  80. data/app/controllers/spree/admin/taxonomies_controller.rb +15 -0
  81. data/app/controllers/spree/admin/taxons_controller.rb +24 -1
  82. data/app/controllers/spree/admin/themes_controller.rb +7 -0
  83. data/app/controllers/spree/admin/translations_controller.rb +9 -1
  84. data/app/controllers/spree/admin/user_passwords_controller.rb +22 -0
  85. data/app/controllers/spree/admin/user_sessions_controller.rb +23 -0
  86. data/app/controllers/spree/admin/users_controller.rb +11 -2
  87. data/app/controllers/spree/admin/variants_controller.rb +13 -0
  88. data/app/controllers/spree/admin/webhooks_subscribers_controller.rb +34 -12
  89. data/app/controllers/spree/admin/zones_controller.rb +5 -0
  90. data/app/helpers/spree/admin/base_helper.rb +33 -32
  91. data/app/helpers/spree/admin/bulk_operations_helper.rb +8 -2
  92. data/app/helpers/spree/admin/modal_helper.rb +1 -1
  93. data/app/helpers/spree/admin/navigation_helper.rb +12 -6
  94. data/app/helpers/spree/admin/posts_helper.rb +1 -1
  95. data/app/helpers/spree/admin/products_helper.rb +4 -0
  96. data/app/helpers/spree/admin/session_assets_helper.rb +1 -1
  97. data/app/helpers/spree/admin/stores_helper.rb +1 -18
  98. data/app/helpers/spree/admin/tags_helper.rb +3 -3
  99. data/app/javascript/spree/admin/application.js +2 -2
  100. data/app/javascript/spree/admin/controllers/asset_uploader_controller.js +3 -2
  101. data/app/javascript/spree/admin/controllers/variants_form_controller.js +22 -2
  102. data/app/javascript/spree/admin/helpers/bootstrap.js +3 -3
  103. data/app/javascript/spree/admin/helpers/trix/video_embed.js +2 -2
  104. data/app/views/active_storage/_upload_form.html.erb +1 -1
  105. data/app/views/layouts/spree/minimal.html.erb +22 -0
  106. data/app/views/spree/admin/admin_users/_admin_user.html.erb +19 -0
  107. data/app/views/spree/admin/admin_users/_audit_log.html.erb +5 -0
  108. data/app/views/spree/admin/admin_users/_form.html.erb +12 -0
  109. data/app/views/spree/admin/admin_users/edit.html.erb +35 -0
  110. data/app/views/spree/admin/admin_users/index.html.erb +18 -0
  111. data/app/views/spree/admin/admin_users/new.html.erb +21 -0
  112. data/app/views/spree/admin/admin_users/show.html.erb +113 -0
  113. data/app/views/spree/admin/coupon_codes/index.html.erb +6 -6
  114. data/app/views/spree/admin/custom_domains/_custom_domains.html.erb +1 -1
  115. data/app/views/spree/admin/customer_returns/index.html.erb +1 -1
  116. data/app/views/spree/admin/dashboard/_store_preview.html.erb +1 -1
  117. data/app/views/spree/admin/dashboard/_top_products.html.erb +5 -3
  118. data/app/views/spree/admin/digital_assets/_table.html.erb +1 -1
  119. data/app/views/spree/admin/digital_assets/index.html.erb +0 -1
  120. data/app/views/spree/admin/exports/index.html.erb +1 -1
  121. data/app/views/spree/admin/integrations/_integration.html.erb +36 -0
  122. data/app/views/spree/admin/integrations/edit.html.erb +11 -0
  123. data/app/views/spree/admin/integrations/index.html.erb +23 -0
  124. data/app/views/spree/admin/integrations/new.html.erb +14 -0
  125. data/app/views/spree/admin/invitations/_invitation.html.erb +52 -0
  126. data/app/views/spree/admin/invitations/create.turbo_stream.erb +4 -0
  127. data/app/views/spree/admin/invitations/index.html.erb +21 -0
  128. data/app/views/spree/admin/invitations/new.html.erb +32 -0
  129. data/app/views/spree/admin/invitations/show.html.erb +9 -0
  130. data/app/views/spree/admin/line_items/new.html.erb +2 -2
  131. data/app/views/spree/admin/oauth_applications/index.html.erb +1 -1
  132. data/app/views/spree/admin/option_types/edit.html.erb +1 -1
  133. data/app/views/spree/admin/option_types/index.html.erb +1 -1
  134. data/app/views/spree/admin/orders/_customer.html.erb +1 -2
  135. data/app/views/spree/admin/orders/_filters.html.erb +28 -22
  136. data/app/views/spree/admin/orders/_list.html.erb +1 -1
  137. data/app/views/spree/admin/orders/_refunds.html.erb +1 -1
  138. data/app/views/spree/admin/orders/_shipment.html.erb +1 -1
  139. data/app/views/spree/admin/orders/_summary.html.erb +1 -1
  140. data/app/views/spree/admin/orders/_table_filter_dropdown.html.erb +2 -2
  141. data/app/views/spree/admin/orders/customer_returns/_customer_return.html.erb +1 -1
  142. data/app/views/spree/admin/orders/customer_returns/_return_item_decision.html.erb +1 -1
  143. data/app/views/spree/admin/orders/return_authorizations/_form.html.erb +1 -1
  144. data/app/views/spree/admin/orders/return_authorizations/show.html.erb +2 -2
  145. data/app/views/spree/admin/page_blocks/_form_tab_buttons.html.erb +5 -7
  146. data/app/views/spree/admin/page_blocks/edit.html.erb +3 -5
  147. data/app/views/spree/admin/page_blocks/forms/_image.html.erb +9 -0
  148. data/app/views/spree/admin/page_builder/_add_block.html.erb +1 -1
  149. data/app/views/spree/admin/page_builder/_header.html.erb +35 -28
  150. data/app/views/spree/admin/page_builder/_pages_dropdown.html.erb +15 -21
  151. data/app/views/spree/admin/page_builder/_sidebar.html.erb +1 -1
  152. data/app/views/spree/admin/page_builder/_sidebar_block.html.erb +11 -10
  153. data/app/views/spree/admin/page_builder/_sidebar_sections_toolbar.html.erb +152 -39
  154. data/app/views/spree/admin/page_links/_list.html.erb +2 -2
  155. data/app/views/spree/admin/page_links/edit.html.erb +2 -4
  156. data/app/views/spree/admin/page_sections/_form_tab_buttons.html.erb +6 -10
  157. data/app/views/spree/admin/page_sections/new.html.erb +1 -1
  158. data/app/views/spree/admin/pages/edit.html.erb +2 -2
  159. data/app/views/spree/admin/payment_methods/_form.html.erb +1 -1
  160. data/app/views/spree/admin/payment_methods/index.html.erb +16 -15
  161. data/app/views/spree/admin/payments/_payment.html.erb +1 -1
  162. data/app/views/spree/admin/post_categories/index.html.erb +1 -1
  163. data/app/views/spree/admin/posts/index.html.erb +1 -1
  164. data/app/views/spree/admin/products/_bulk_operations.html.erb +1 -1
  165. data/app/views/spree/admin/products/_filters.html.erb +2 -5
  166. data/app/views/spree/admin/products/_list.html.erb +1 -1
  167. data/app/views/spree/admin/products/_table_filter_dropdown.html.erb +2 -2
  168. data/app/views/spree/admin/products/form/_categorization.html.erb +34 -30
  169. data/app/views/spree/admin/products/form/_inventory.html.erb +1 -1
  170. data/app/views/spree/admin/products/form/_properties.html.erb +1 -1
  171. data/app/views/spree/admin/products/form/_variants.html.erb +1 -0
  172. data/app/views/spree/admin/promotion_actions/_promotion_action.html.erb +1 -1
  173. data/app/views/spree/admin/promotion_rules/_promotion_rule.html.erb +1 -1
  174. data/app/views/spree/admin/promotions/_filters.html.erb +2 -6
  175. data/app/views/spree/admin/promotions/_header.html.erb +1 -3
  176. data/app/views/spree/admin/promotions/_sidebar.html.erb +18 -0
  177. data/app/views/spree/admin/promotions/_table_filter_dropdown.html.erb +2 -2
  178. data/app/views/spree/admin/promotions/index.html.erb +1 -1
  179. data/app/views/spree/admin/properties/edit.html.erb +1 -1
  180. data/app/views/spree/admin/properties/index.html.erb +1 -1
  181. data/app/views/spree/admin/refund_reasons/index.html.erb +1 -1
  182. data/app/views/spree/admin/reimbursement_types/index.html.erb +1 -1
  183. data/app/views/spree/admin/reimbursements/edit.html.erb +2 -2
  184. data/app/views/spree/admin/reimbursements/show.html.erb +1 -1
  185. data/app/views/spree/admin/reports/_report.html.erb +1 -1
  186. data/app/views/spree/admin/return_authorization_reasons/index.html.erb +1 -1
  187. data/app/views/spree/admin/return_authorizations/_filters.html.erb +2 -2
  188. data/app/views/spree/admin/return_authorizations/_list.html.erb +1 -1
  189. data/app/views/spree/admin/roles/edit.html.erb +6 -4
  190. data/app/views/spree/admin/roles/index.html.erb +11 -7
  191. data/app/views/spree/admin/shared/_alerts.html.erb +1 -1
  192. data/app/views/spree/admin/shared/_breadcrumbs.html.erb +13 -0
  193. data/app/views/spree/admin/shared/_calendar_range_picker.html.erb +1 -1
  194. data/app/views/spree/admin/shared/_content_header.html.erb +3 -3
  195. data/app/views/spree/admin/shared/_filters_button.html.erb +1 -1
  196. data/app/views/spree/admin/shared/_filters_search_bar.html.erb +1 -1
  197. data/app/views/spree/admin/shared/_head.html.erb +10 -1
  198. data/app/views/spree/admin/shared/_header.html.erb +26 -17
  199. data/app/views/spree/admin/shared/_index_table_options.html.erb +1 -1
  200. data/app/views/spree/admin/shared/_multi_product_picker.html.erb +1 -1
  201. data/app/views/spree/admin/shared/_new_item_dropdown.html.erb +32 -0
  202. data/app/views/spree/admin/shared/_no_resource_found.html.erb +6 -3
  203. data/app/views/spree/admin/shared/_offcanvas_nav.html.erb +1 -14
  204. data/app/views/spree/admin/shared/_refunds.html.erb +1 -1
  205. data/app/views/spree/admin/shared/_sidebar.html.erb +0 -8
  206. data/app/views/spree/admin/shared/_tax_nav.html.erb +1 -0
  207. data/app/views/spree/admin/shared/_team_nav.html.erb +13 -0
  208. data/app/views/spree/admin/shared/_user.html.erb +1 -1
  209. data/app/views/spree/admin/shared/_user_dropdown.html.erb +25 -20
  210. data/app/views/spree/admin/shared/devise/_links.html.erb +18 -0
  211. data/app/views/spree/admin/shared/sidebar/_enterprise_edition_notice.html.erb +7 -5
  212. data/app/views/spree/admin/shared/sidebar/_integrations_nav.html.erb +5 -7
  213. data/app/views/spree/admin/shared/sidebar/_orders_nav.html.erb +2 -2
  214. data/app/views/spree/admin/shared/sidebar/_products_nav.html.erb +2 -2
  215. data/app/views/spree/admin/shared/sidebar/_promotions_nav.html.erb +17 -0
  216. data/app/views/spree/admin/shared/sidebar/_returns_nav.html.erb +1 -1
  217. data/app/views/spree/admin/shared/sidebar/_store_dropdown.html.erb +33 -75
  218. data/app/views/spree/admin/shared/sidebar/_store_nav.html.erb +17 -36
  219. data/app/views/spree/admin/shared/sidebar/_storefront_nav.html.erb +6 -2
  220. data/app/views/spree/admin/shared/sidebar/_vendors_nav.html.erb +9 -7
  221. data/app/views/spree/admin/shared/sortable_tree/_taxonomy.html.erb +1 -1
  222. data/app/views/spree/admin/shipping_categories/index.html.erb +1 -1
  223. data/app/views/spree/admin/shipping_methods/_form.html.erb +7 -134
  224. data/app/views/spree/admin/shipping_methods/form/_display.html.erb +25 -0
  225. data/app/views/spree/admin/shipping_methods/form/_estimated_transit_business_days.html.erb +23 -0
  226. data/app/views/spree/admin/shipping_methods/form/_shipping_categories.html.erb +21 -0
  227. data/app/views/spree/admin/shipping_methods/form/_tax_category.html.erb +16 -0
  228. data/app/views/spree/admin/shipping_methods/form/_tracking_url.html.erb +18 -0
  229. data/app/views/spree/admin/shipping_methods/form/_zones.html.erb +26 -0
  230. data/app/views/spree/admin/shipping_methods/index.html.erb +1 -1
  231. data/app/views/spree/admin/stock_items/index.html.erb +1 -1
  232. data/app/views/spree/admin/stock_locations/_stock_location.html.erb +5 -3
  233. data/app/views/spree/admin/stock_locations/index.html.erb +4 -2
  234. data/app/views/spree/admin/stock_transfers/index.html.erb +1 -1
  235. data/app/views/spree/admin/store_credit_categories/index.html.erb +1 -1
  236. data/app/views/spree/admin/store_credits/_list.html.erb +1 -1
  237. data/app/views/spree/admin/stores/edit_emails.html.erb +1 -1
  238. data/app/views/spree/admin/stores/form/_basic.html.erb +1 -1
  239. data/app/views/spree/admin/stores/form/_emails.html.erb +1 -1
  240. data/app/views/spree/admin/tax_categories/index.html.erb +1 -1
  241. data/app/views/spree/admin/tax_rates/index.html.erb +1 -1
  242. data/app/views/spree/admin/taxonomies/index.html.erb +1 -1
  243. data/app/views/spree/admin/taxons/_form.html.erb +2 -2
  244. data/app/views/spree/admin/themes/_theme.html.erb +6 -4
  245. data/app/views/spree/admin/themes/_theme_preview_image.html.erb +6 -4
  246. data/app/views/spree/admin/themes/index.html.erb +1 -1
  247. data/app/views/spree/admin/translations/edit.html.erb +1 -1
  248. data/app/views/spree/admin/user_passwords/edit.html.erb +21 -0
  249. data/app/views/spree/admin/user_passwords/new.html.erb +12 -0
  250. data/app/views/spree/admin/user_sessions/new.html.erb +16 -0
  251. data/app/views/spree/admin/users/_form.html.erb +10 -8
  252. data/app/views/spree/admin/users/_user.html.erb +7 -6
  253. data/app/views/spree/admin/users/index.html.erb +7 -6
  254. data/app/views/spree/admin/users/new.html.erb +1 -1
  255. data/app/views/spree/admin/variants/_search_result.html.erb +1 -1
  256. data/app/views/spree/admin/variants/form/_media.html.erb +1 -0
  257. data/app/views/spree/admin/variants/form/_media_asset.html.erb +1 -1
  258. data/app/views/spree/admin/webhooks_subscribers/_form.html.erb +37 -19
  259. data/app/views/spree/admin/webhooks_subscribers/_webhooks_subscriber.html.erb +12 -6
  260. data/app/views/spree/admin/webhooks_subscribers/edit.html.erb +2 -2
  261. data/app/views/spree/admin/webhooks_subscribers/index.html.erb +1 -1
  262. data/app/views/spree/admin/webhooks_subscribers/show.html.erb +58 -47
  263. data/app/views/spree/admin/zones/_form.html.erb +11 -15
  264. data/app/views/spree/admin/zones/index.html.erb +1 -1
  265. data/config/importmap.rb +2 -2
  266. data/config/locales/en.yml +4 -1
  267. data/config/routes.rb +13 -1
  268. data/lib/spree/admin/engine.rb +11 -1
  269. data/lib/spree/admin.rb +1 -0
  270. data/vendor/javascript/bootstrap--dist--js--bootstrap.bundle.min.js.js +4 -4
  271. data/vendor/javascript/dompurify.js +24 -24
  272. metadata +65 -9
  273. data/app/javascript/spree/admin/controllers/webhook_subscriber_events_controller.js +0 -19
@@ -1,6 +1,6 @@
1
1
  <% content_for :page_title do %>
2
2
  <%= page_header_back_button admin_properties_url %>
3
- <%= @property.name %>
3
+ <%= @property.presentation %>
4
4
  <% end %>
5
5
 
6
6
 
@@ -22,7 +22,7 @@
22
22
  <% if @properties.present? %>
23
23
  <div class="table-responsive">
24
24
  <table class="table">
25
- <thead class="text-muted">
25
+ <thead>
26
26
  <tr>
27
27
  <th class="no-border handel-head"></th>
28
28
  <th><%= Spree.t(:internal_name) %></th>
@@ -8,7 +8,7 @@
8
8
  <% if @collection.any? %>
9
9
  <div class="table-responsive">
10
10
  <table class="table">
11
- <thead class="text-muted">
11
+ <thead>
12
12
  <tr>
13
13
  <th><%= Spree.t(:name) %></th>
14
14
  <th><%= Spree.t(:status) %></th>
@@ -8,7 +8,7 @@
8
8
  <% if @collection.any? %>
9
9
  <div class="table-responsive">
10
10
  <table class="table">
11
- <thead class="text-muted">
11
+ <thead>
12
12
  <tr>
13
13
  <th><%= Spree.t(:name) %></th>
14
14
  <th><%= Spree.t(:type) %></th>
@@ -22,7 +22,7 @@ locals: {
22
22
  </div>
23
23
  <div class="card-body p-0">
24
24
  <table class="table table-condensed reimbursement-return-items-table">
25
- <thead class="text-muted">
25
+ <thead>
26
26
  <tr>
27
27
  <th><%= Spree.t(:product) %></th>
28
28
  <th><%= Spree.t(:preferred_reimbursement_type) %></th>
@@ -117,7 +117,7 @@ locals: {
117
117
  </div>
118
118
  <% end %>
119
119
 
120
- <div class="form-actions fixed-form-actions">
120
+ <div class="form-actions">
121
121
  <% if !@reimbursement.reimbursed? %>
122
122
  <%= button_to [:perform, :admin, @order, @reimbursement], { class: 'btn btn-primary', method: 'post' } do %>
123
123
  <%= icon "money" %>
@@ -21,7 +21,7 @@ locals: {
21
21
  </div>
22
22
  <div class="card-body p-0">
23
23
  <table class="table reimbursement-reimbursement-items-table">
24
- <thead class="text-muted">
24
+ <thead>
25
25
  <tr>
26
26
  <th><%= Spree.t(:product) %></th>
27
27
  <th><%= Spree.t(:preferred_reimbursement_type) %></th>
@@ -1,7 +1,7 @@
1
1
  <div class="card-lg">
2
2
  <div class="table-responsive">
3
3
  <table class="table">
4
- <thead class="text-muted">
4
+ <thead>
5
5
  <tr>
6
6
  <% @report.line_item_class.headers.each do |header| %>
7
7
  <th><%= header[:label] %></th>
@@ -8,7 +8,7 @@
8
8
  <% if @collection.any? %>
9
9
  <div class="table-responsive">
10
10
  <table class="table">
11
- <thead class="text-muted">
11
+ <thead>
12
12
  <tr>
13
13
  <th><%= Spree.t(:name) %></th>
14
14
  <th><%= Spree.t(:status) %></th>
@@ -2,9 +2,9 @@
2
2
  <div class="d-flex flex-column flex-lg-row gap-2">
3
3
  <%= render "spree/admin/shared/filters_search_bar", param: :number_cont %>
4
4
 
5
- <div class="dropdown h-100 mr-2">
5
+ <div class="dropdown">
6
6
  <button
7
- class="btn btn-light h-100 dropdown-toggle"
7
+ class="btn btn-light dropdown-toggle"
8
8
  type="button"
9
9
  data-toggle="dropdown"
10
10
  aria-expanded="false"
@@ -1,7 +1,7 @@
1
1
  <% if @collection.any? %>
2
2
  <div class="table-responsive">
3
3
  <table class="table">
4
- <thead class="text-muted">
4
+ <thead>
5
5
  <tr>
6
6
  <th><%= Spree.t(:number) %></th>
7
7
  <th><%= Spree.t(:created_at) %></th>
@@ -6,8 +6,10 @@
6
6
  <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @role } %>
7
7
 
8
8
  <%= form_for [:admin, @role] do |f| %>
9
- <fieldset>
10
- <%= render 'form', f: f %>
11
- <%= render 'spree/admin/shared/edit_resource_links', f: f %>
12
- </fieldset>
9
+ <div class="card mb-4">
10
+ <div class="card-body">
11
+ <%= render 'form', f: f %>
12
+ </div>
13
+ </div>
14
+ <%= render 'spree/admin/shared/edit_resource_links', f: f %>
13
15
  <% end %>
@@ -1,6 +1,4 @@
1
- <% content_for :page_title do %>
2
- <%= Spree.t(:roles) %>
3
- <% end %>
1
+ <%= render 'spree/admin/shared/team_nav' %>
4
2
 
5
3
  <% content_for :page_actions do %>
6
4
  <%= link_to_with_icon 'plus', Spree.t(:new_role), new_object_url, class: "btn btn-primary" %>
@@ -10,18 +8,24 @@
10
8
  <% if @collection.any? %>
11
9
  <div class="table-responsive">
12
10
  <table class="table">
13
- <thead class="text-muted">
11
+ <thead>
14
12
  <tr>
15
- <th><%= Spree.t(:role_id) %></th>
13
+ <th><%= Spree.t(:name) %></th>
14
+ <th><%= Spree.t(:permissions) %></th>
16
15
  <th></th>
17
16
  </tr>
18
17
  </thead>
19
18
  <tbody>
20
19
  <% @collection.each do |role| %>
21
20
  <tr id="<%= spree_dom_id role %>">
22
- <td><%= role.name %></td>
21
+ <td class="w-20">
22
+ <code><%= role.name %></code>
23
+ </td>
24
+ <td class="w-80">
25
+ <%= Spree.t(:all) %>
26
+ </td>
23
27
  <td class="actions">
24
- <%= link_to_edit(role, no_text: true) if can? :edit, role %>
28
+ <%= link_to_edit(role) %>
25
29
  </td>
26
30
  </tr>
27
31
  <% end %>
@@ -5,7 +5,7 @@
5
5
  <div
6
6
  data-controller="notification"
7
7
  data-notification-delay-value="5000"
8
- class="animate__animated animate__fadeInDown animate__faster hidden alert d-flex align-items-center <%= admin_flash_class_for(msg_type) %> align-items-center" style="min-width: 300px; pointer-events: all;">
8
+ class="animate__animated animate__fadeInDown animate__faster hidden alert pr-2 d-flex align-items-center <%= admin_flash_class_for(msg_type) %> align-items-center" style="min-width: 300px; pointer-events: all;">
9
9
  <div class="d-flex align-items-center justify-content-between w-100">
10
10
  <div class="d-flex align-items-center justify-content-between">
11
11
  <span><%= text %></span>
@@ -0,0 +1,13 @@
1
+ <nav aria-label="breadcrumb">
2
+ <ol class="breadcrumb">
3
+ <%= render_breadcrumb_icon %>
4
+ <% if settings_active? %>
5
+ <li>
6
+ <%= active_link_to Spree.t(:settings), spree.edit_admin_store_path %>
7
+ </li>
8
+ <%= icon('slash', class: 'text-muted font-size-sm') %>
9
+ <% end %>
10
+
11
+ <%= render_breadcrumbs tag: :li, separator: icon('slash', class: 'text-muted font-size-sm') %>
12
+ </ol>
13
+ </nav>
@@ -1,6 +1,6 @@
1
1
  <% date_from_input_name ||= :date_from %>
2
2
  <% date_to_input_name ||= :date_to %>
3
- <% css_classes ||= "btn btn-light d-inline-flex align-items-center h-100 dropdown-toggle" %>
3
+ <% css_classes ||= "btn btn-light d-inline-flex align-items-center dropdown-toggle" %>
4
4
 
5
5
  <% date_from_value ||= params[date_from_input_name] %>
6
6
  <% date_to_value ||= params[date_to_input_name] %>
@@ -11,7 +11,7 @@
11
11
  <h3 class="page-header-title mb-0 d-flex align-items-center gap-3">
12
12
  <%= yield :page_title %>
13
13
  </h3>
14
- <div id="page_actions" class="ml-auto page-actions d-flex align-items-center gap-2">
14
+ <div id="page_actions" class="ml-auto page-actions d-flex align-items-center gap-3">
15
15
  <% if action_name == 'index' && defined?(model_class) && model_class && Spree::Export.available_models.include?(model_class) && can?(:create, Spree::Export) %>
16
16
  <span data-toggle="modal" data-target="#modal">
17
17
  <%= link_to spree.new_admin_export_path(export: { search_params: params[:q]&.to_json, type: Spree::Export.type_for_model(model_class) }), class: 'btn btn-light bg-transparent with-tip', title: 'Download records as CSV file', data: { turbo_frame: :dialog_modal } do %>
@@ -30,7 +30,7 @@
30
30
  <% if show_record_subtitle || content_for(:page_actions_dropdown) %>
31
31
  <div class="dropdown h-100" id="page_actions_dropdown">
32
32
  <%= link_to '#', class: 'btn btn-light bg-transparent h-100 p-2', data: { toggle: 'dropdown' }, id: 'more-actions-link' do %>
33
- <%= icon 'dots', class: 'mr-0' %>
33
+ <%= icon 'dots-vertical', class: 'mr-0' %>
34
34
  <% end %>
35
35
  <div class="dropdown-menu dropdown-menu-right">
36
36
  <%= yield :page_actions_dropdown if content_for(:page_actions_dropdown) %>
@@ -67,7 +67,7 @@
67
67
 
68
68
  <% if content_for?(:page_tabs) %>
69
69
  <div class="container">
70
- <ul class="nav nav-pills flex-nowrap overflow-auto w-100 mb-3">
70
+ <ul class="nav nav-pills flex-nowrap w-100 mb-3">
71
71
  <%= yield :page_tabs %>
72
72
  </ul>
73
73
  </div>
@@ -1,5 +1,5 @@
1
1
  <button
2
- class="btn btn-light h-100 py-2"
2
+ class="btn btn-light"
3
3
  type="button"
4
4
  data-action="reveal#toggle"
5
5
  >
@@ -2,7 +2,7 @@
2
2
  <% badge_name ||= label %>
3
3
  <% placeholder ||= [Spree.t(:search), controller_name.humanize.downcase].join(' ') %>
4
4
 
5
- <div class="form-control d-flex align-items-center py-0 focus-shadow focus-border flex-grow-1 mb-3 mb-lg-0 w-auto">
5
+ <div class="form-control d-flex align-items-center py-0 focus-shadow focus-border flex-grow-1 mb-3 mb-lg-0" id="filters-search-bar">
6
6
  <%= icon "search", class: "mr-3 text-muted" %>
7
7
  <%= search_field_tag "q[#{param}]",
8
8
  params.dig(:q, param),
@@ -39,6 +39,10 @@
39
39
 
40
40
  <%= javascript_importmap_tags 'application-spree-admin', importmap: Rails.application.config.spree_admin.importmap %>
41
41
 
42
+ <% if Rails.application.importmap.packages["application"].present? %>
43
+ <%= javascript_import_module_tag "application" %>
44
+ <% end %>
45
+
42
46
  <%= yield :head %>
43
47
 
44
48
  <% if Rails.env.test? %>
@@ -51,4 +55,9 @@
51
55
 
52
56
  <%= render 'spree/shared/google_places_api_loader' %>
53
57
 
54
- <%= render_admin_partials(:head_partials) %>
58
+ <%= render_admin_partials(:head_partials) %>
59
+
60
+ <script>
61
+ window.Spree = window.Spree || {}
62
+ Spree.adminPath = '<%= spree.admin_path %>'
63
+ </script>
@@ -2,27 +2,36 @@
2
2
 
3
3
  <%= render 'spree/admin/shared/offcanvas_nav' %>
4
4
 
5
- <header id="header" data-turbo-permanent>
6
- <nav class="navbar navbar-expand-lg py-2 px-lg-5 d-lg-none">
7
- <button type="button" class="btn d-flex align-items-center p-0 h-100 pull-bs-canvas-left d-lg-none text-white text-decoration-none">
8
- <%= icon('menu-2', height: 32, class: 'm-0 h-100') %>
9
- </button>
10
-
11
- <div class="navbar-collapse d-none d-lg-flex">
12
- <%= form_with url: spree.admin_search_admin_path, method: :post, class: 'd-none' do |form| %>
13
- <div class="w-50 d-lg-flex align-items-center pr-2">
14
- <%= icon('search', class: 'text-muted') %>
15
- <%= text_field_tag :search, params[:search], class: 'px-3 py-2 bg-transparent w-100 outline-none border-0', placeholder: 'Search...', oninput: "this.form.requestSubmit()" %>
16
- </div>
17
- <% end if spree.respond_to?(:admin_search_admin_path) && defined?(current_store) && current_store %>
5
+ <header id="header" class="sticky-top py-0">
6
+ <nav class="navbar navbar-expand-lg p-0 d-flex align-items-center pr-3">
7
+ <div class="d-lg-none pr-3 border-right">
8
+ <button type="button" class="btn btn-light pull-bs-canvas-left px-2 ml-3 text-decoration-none">
9
+ <%= icon('menu-2', class: 'mr-0') %>
10
+ </button>
18
11
  </div>
19
12
 
20
- <%= link_to spree.admin_dashboard_path, class: 'navbar-brand d-flex d-lg-none h-100 align-items-center mx-0 text-white' do %>
21
- <%= current_store.name %>
13
+ <% if settings_active? %>
14
+ <div class="store-dropdown pr-2">
15
+ <%= active_link_to_with_icon('arrow-back-up', Spree.t('admin.back_to_dashboard'), spree.admin_dashboard_path, class: 'btn store-dropdown-button w-100 justify-content-start mr-1') %>
16
+ </div>
17
+ <% else %>
18
+ <% if defined?(current_vendor) && current_vendor.present? %>
19
+ <%= render 'spree/admin/shared/sidebar/vendor_dropdown' %>
20
+ <% else %>
21
+ <%= render 'spree/admin/shared/sidebar/store_dropdown' %>
22
+ <% end %>
22
23
  <% end %>
23
24
 
24
- <div class="text-right d-flex justify-content-end p-0" id="header-user-account" data-turbo-permanent>
25
+ <div class="d-none d-lg-block">
26
+ <%= render 'spree/admin/shared/breadcrumbs' %>
27
+ </div>
28
+
29
+ <div class="ml-auto d-flex align-items-center">
25
30
  <%= render 'spree/admin/shared/user_dropdown' %>
26
31
  </div>
27
32
  </nav>
28
- </header>
33
+ </header>
34
+
35
+ <div class="d-lg-none py-3 border-bottom">
36
+ <%= render 'spree/admin/shared/breadcrumbs' %>
37
+ </div>
@@ -5,7 +5,7 @@
5
5
  <% args[:action] = per_page_action %>
6
6
  <% end %>
7
7
 
8
- <% if collection.any? && collection.total_pages > 1 %>
8
+ <% if collection.any? %>
9
9
  <div class="py-2 border-top">
10
10
  <div class="index-pagination-row d-flex align-items-center">
11
11
  <div class="col-6 col-lg-3">
@@ -15,7 +15,7 @@
15
15
  </p>
16
16
  </div>
17
17
  </div>
18
- <div class="modal-footer border-top">
18
+ <div class="modal-footer">
19
19
  <%= modal_discard_button %>
20
20
  <%= turbo_save_button_tag Spree.t(:add_selected_products), class: 'btn btn-primary', disabled: true, data: { search_picker_target: :submit } %>
21
21
  </div>
@@ -0,0 +1,32 @@
1
+ <div class="dropdown">
2
+ <button type="button" class="btn btn-sm btn-light shadow-xs px-1" data-toggle="dropdown" aria-expanded="false">
3
+ <%= icon 'plus', class: 'mr-0' %>
4
+ </button>
5
+ <div class="dropdown-menu">
6
+ <%= link_to_with_icon 'shopping-bag-plus', Spree.t(:new_order), spree.admin_orders_path, class: "dropdown-item", data: { turbo_method: :post } if can?(:manage, Spree::Order) %>
7
+
8
+ <%= link_to spree.new_admin_product_path, class: 'dropdown-item' do %>
9
+ <%= icon 'cube-plus' %>
10
+ <%= Spree.t(:new_product) %>
11
+ <% end if can?(:create, Spree::Product) %>
12
+ <%= link_to spree.new_admin_user_path, class: 'dropdown-item' do %>
13
+ <%= icon 'user-plus' %>
14
+ <%= Spree.t(:new_customer) %>
15
+ <% end if can?(:manage, Spree.user_class) %>
16
+
17
+ <%= link_to spree.new_admin_promotion_path, class: 'dropdown-item' do %>
18
+ <%= icon 'discount' %>
19
+ <%= Spree.t(:new_promotion) %>
20
+ <% end if can?(:create, Spree::Promotion) %>
21
+
22
+ <%= invite_vendor_button(class: 'dropdown-item') if defined?(invite_vendor_button) %>
23
+
24
+ <% if can?(:create, Spree::Store) %>
25
+ <div class="dropdown-divider"></div>
26
+
27
+ <span data-toggle="modal" data-target="#modal-lg">
28
+ <%= link_to_with_icon 'building-store', Spree.t(:new_store), spree.new_admin_store_path, class: 'dropdown-item', data: { turbo_frame: 'dialog_modal_lg' } %>
29
+ </span>
30
+ <% end %>
31
+ </div>
32
+ </div>
@@ -1,6 +1,9 @@
1
1
  <% resource_name ||= model_class.name.demodulize.underscore.humanize %>
2
2
 
3
- <div class="text-muted p-5 d-flex align-items-center w-100 justify-content-center">
4
- <%= Spree.t(:no_resource_found, resource: resource_name) %>
5
- <%= link_to_with_icon 'plus', Spree.t(:add_one), new_object_url, class: 'btn btn-light ml-3', data: { 'turbo-frame': '_top' } if can?(:create, model_class) && defined?(new_object_url) && new_object_url.present? %>
3
+ <div class="text-muted p-5 d-flex align-items-center w-100 justify-content-center flex-column">
4
+ <%= icon 'map-search', class: 'mb-3 opacity-50', style: 'font-size: 2rem;' %>
5
+ <p>
6
+ <%= Spree.t(:no_resource_found, resource: resource_name) %>
7
+ </p>
8
+ <%= link_to_with_icon 'plus', Spree.t(:add_one), new_object_url, class: 'btn btn-link btn-sm ml-3', data: { 'turbo-frame': '_top' } if can?(:create, model_class) && defined?(new_object_url) && new_object_url.present? %>
6
9
  </div>
@@ -1,19 +1,6 @@
1
1
  <!-- Left off-canvas sidebar -->
2
- <div class="bs-canvas bs-canvas-left position-fixed bg-black h-100">
2
+ <div class="bs-canvas bs-canvas-left position-fixed h-100 bg-light border-right">
3
3
  <div class="bs-canvas-content px-2">
4
- <div class="d-flex align-items-center font-weight-bold py-3 bg-black text-white border-bottom border-black sticky-top justify-content-between">
5
- <div class="d-flex align-items-center">
6
- <% if defined?(current_store) && current_store&.present? %>
7
- <%= store_admin_icon(current_store, width: 36, height: 36) %>
8
- <span class="ml-3 font-size-lg">
9
- <%= truncate(current_store.name, length: 15) %>
10
- </span>
11
- <% end %>
12
- </div>
13
- <button class="btn py-0 bs-canvas-close text-white">
14
- <%= icon('x', height: 18, class: 'mr-0') %>
15
- </button>
16
- </div>
17
4
  <% if try_spree_current_user.present? %>
18
5
  <% if defined?(current_vendor) && current_vendor.present? %>
19
6
  <%= render 'spree/admin/shared/sidebar/vendor_nav' %>
@@ -1,6 +1,6 @@
1
1
  <div class="table-responsive card-lg">
2
2
  <table class="table table-condensed" id='refunds' data-order-id='<%= @order.number %>'>
3
- <thead class="text-muted">
3
+ <thead>
4
4
  <tr data-hook="refunds_header" class="border-bottom">
5
5
  <th><%= "#{Spree.t('date')}/#{Spree.t('time')}" %></th>
6
6
  <th><%= Spree.t(:amount) %></th>
@@ -1,15 +1,7 @@
1
1
  <aside id="main-sidebar">
2
2
  <% if defined?(current_vendor) && current_vendor.present? %>
3
- <%= render 'spree/admin/shared/sidebar/vendor_dropdown' %>
4
3
  <%= render 'spree/admin/shared/sidebar/vendor_nav' %>
5
4
  <% else %>
6
5
  <%= render 'spree/admin/shared/sidebar/store_nav' %>
7
6
  <% end %>
8
-
9
- <% unless settings_active? %>
10
- <section class="position-sticky d-none d-lg-block w-100 z-index-1000 mt-auto bottom-0">
11
- <%= render 'spree/admin/shared/sidebar/enterprise_edition_notice' %>
12
- <%= render 'spree/admin/shared/user_dropdown' %>
13
- </section>
14
- <% end %>
15
7
  </aside>
@@ -1,4 +1,5 @@
1
1
  <%= content_for(:page_tabs) do %>
2
2
  <%= nav_item(Spree.t(:tax_rates), spree.admin_tax_rates_path) if can?(:manage, Spree::TaxRate) %>
3
3
  <%= nav_item(Spree.t(:tax_categories), spree.admin_tax_categories_path) if can?(:manage, Spree::TaxCategory) %>
4
+ <%= render_admin_partials(:tax_nav_partials) %>
4
5
  <% end %>
@@ -0,0 +1,13 @@
1
+ <% content_for :page_title, Spree.t(:users) %>
2
+
3
+ <%= content_for(:page_tabs) do %>
4
+ <%= nav_item(Spree.t(:users), spree.admin_admin_users_path) if can?(:manage, Spree.admin_user_class) %>
5
+ <%= nav_item(Spree.t(:invitations), spree.admin_invitations_path) if can?(:manage, Spree::Invitation) %>
6
+ <%= nav_item(Spree.t(:roles), spree.admin_roles_path) if can?(:manage, Spree::Role) %>
7
+ <% end %>
8
+
9
+ <% content_for :page_actions do %>
10
+ <span data-toggle="modal" data-target="#modal">
11
+ <%= link_to_with_icon 'send', Spree.t('actions.send_invitation'), spree.new_admin_invitation_path, class: "btn btn-primary", data: { turbo_frame: 'dialog_modal' } %>
12
+ </span>
13
+ <% end if can? :create, Spree::Invitation %>
@@ -1,4 +1,4 @@
1
- <%= link_to spree.admin_user_path(user), class: 'rounded hover-light p-2 d-flex justify-content-start align-items-center', data: {turbo_frame: :_top} do %>
1
+ <%= link_to spree.admin_user_path(user), class: 'rounded hover-light p-2 d-flex justify-content-start align-items-center', data: {turbo_frame: :_top, row_link_target: :link} do %>
2
2
  <% if user.name.present? %>
3
3
  <%= render_avatar(user, width: 48, height: 48, class: 'mr-3 avatar') %>
4
4
  <% else %>
@@ -1,38 +1,43 @@
1
1
  <% if try_spree_current_user.present? %>
2
- <div class="dropdown py-2 bg-gray-25 border-top" id="<%= dom_id(try_spree_current_user, 'account-dropdown') %>" data-turbo-permanent>
2
+ <div class="dropdown" id="<%= dom_id(try_spree_current_user, 'account-dropdown') %>" data-turbo-permanent>
3
3
  <button type="button"
4
- class="btn d-flex align-items-center justify-content-between text-left w-100"
4
+ class="btn d-flex align-items-center justify-content-between text-left w-100 pr-0"
5
5
  data-toggle="dropdown" aria-expanded="false" id="accountNav">
6
- <div class="d-flex align-items-center">
6
+ <%= render_avatar(try_spree_current_user, width: 32, height: 32) %>
7
+ </button>
8
+ <div class="dropdown-menu dropdown-menu-right" style="min-width: 250px;">
9
+ <div class="d-flex align-items-center p-2 bg-gray-25 rounded-lg">
7
10
  <%= render_avatar(try_spree_current_user, width: 34, height: 34) %>
8
11
  <span class="d-none d-lg-inline ml-lg-2">
9
- <%= try_spree_current_user.name&.full&.truncate(15)&.presence || try_spree_current_user.email.truncate(15) %><br />
10
- <span class="text-muted small"><%= try_spree_current_user.email.truncate(22) %></span>
12
+ <% if try_spree_current_user.name.present? %>
13
+ <%= try_spree_current_user.name&.full %><br />
14
+ <span class="small text-muted"><%= try_spree_current_user.email %></span>
15
+ <% else %>
16
+ <%= try_spree_current_user.email %><br />
17
+ <% end %>
11
18
  </span>
12
19
  </div>
13
- </button>
14
- <div class="dropdown-menu dropdown-menu-right w-100 mb-1 mt-1 mt-lg-0">
20
+
21
+ <%= render_admin_partials(:user_dropdown_partials) %>
22
+
15
23
  <% if can?(:update, try_spree_current_user) %>
24
+ <h6 class="dropdown-header mt-2">
25
+ <%= Spree.t(:account) %>
26
+ </h6>
16
27
  <%= link_to_with_icon 'user-scan', Spree.t('admin.edit_profile'), spree.edit_admin_profile_path, class: 'dropdown-item' %>
17
28
  <% end %>
18
29
 
19
- <% if enterprise_edition? && try_spree_current_user.respond_to?(:accounts) && try_spree_current_user.accounts.count > 1 %>
20
- <div data-toggle="modal" data-target="#modal">
21
- <%= link_to_with_icon 'switch-3', Spree.t(:switch_team), main_app.accounts_path, class: 'dropdown-item', data: { turbo_frame: 'dialog_modal' } %>
22
- </div>
30
+ <% if can?(:manage, current_store) %>
31
+ <h6 class="dropdown-header mt-2">
32
+ <%= Spree.t(:support) %>
33
+ </h6>
34
+ <%= external_link_to Spree.t(:help_center), 'https://spreecommerce.org/docs/user', class: 'dropdown-item justify-content-between', target: '_blank' %>
35
+ <%= external_link_to Spree.t(:contact_us), 'https://spreecommerce.org/contact/', class: 'dropdown-item justify-content-between', target: '_blank' %>
23
36
  <% end %>
24
37
 
25
- <% if enterprise_edition? && defined?(app_domain) && defined?(Vendo::Account) && can?(:create, Vendo::Account) %>
26
- <%= link_to_with_icon 'plus', Spree.t(:create_new_team), main_app.new_account_url(host: app_domain), class: 'dropdown-item', data: { turbo: false } %>
27
- <% end %>
28
-
29
- <div class="dropdown-divider"></div>
30
-
31
- <%= link_to_with_icon 'book', 'Help center', 'https://spreecommerce.org/docs/user', class: 'dropdown-item', target: '_blank' %>
32
- <%= link_to_with_icon 'message-circle', 'Contact us', 'https://spreecommerce.org/contact/', class: 'dropdown-item', target: '_blank' %>
33
38
  <div class="dropdown-divider"></div>
34
39
 
35
- <%= button_to spree_admin_logout_path, class: 'dropdown-item mb-0', method: :delete do %>
40
+ <%= button_to spree_admin_logout_path, class: 'dropdown-item mb-0 btn-danger', method: :delete do %>
36
41
  <%= icon('logout', class: "icon icon-logout") %>
37
42
  <%= Spree.t(:logout) %>
38
43
  <% end if defined?(spree_admin_logout_path) %>
@@ -0,0 +1,18 @@
1
+ <div class="mb-2 d-flex justify-content-between">
2
+ <div>
3
+ <% if defined?(devise_mapping) && devise_mapping.rememberable? && controller_name == 'user_sessions' %>
4
+ <div class="custom-control custom-checkbox">
5
+ <%= f.check_box :remember_me, class: "custom-control-input" %>
6
+ <%= f.label :remember_me, Spree.t(:remember_me), class: "custom-control-label" %>
7
+ </div>
8
+ <% end %>
9
+ </div>
10
+ <div class="d-flex align-items-center gap-2">
11
+ <% if controller_name != 'user_sessions' %>
12
+ <p><%= link_to Spree.t(:log_in), new_session_path(resource_name) %></p>
13
+ <% end %>
14
+ <% if defined?(devise_mapping) && devise_mapping.recoverable? && controller_name != 'user_passwords' && controller_name != 'user_registrations' %>
15
+ <p><%= link_to Spree.t(:forgot_password), new_password_path(resource_name) %></p>
16
+ <% end %>
17
+ </div>
18
+ </div>
@@ -1,10 +1,12 @@
1
1
  <% if can?(:manage, current_store) && !enterprise_edition? %>
2
2
  <% unless session[:spree_enterprise_edition_notice_dismissed] %>
3
- <div id="enterprise-edition-notice">
4
- <%= link_to '', spree.admin_dismiss_enterprise_edition_notice_path, method: :patch, class: 'btn-close' %>
5
- <p class="mb-1">You're using Spree Community Edition. To get access to all features, please upgrade to Enterprise Edition.</p>
3
+ <section class="d-none d-lg-block">
4
+ <div id="enterprise-edition-notice">
5
+ <%= link_to '', spree.admin_dismiss_enterprise_edition_notice_path, method: :patch, class: 'btn-close' %>
6
+ <p>You're using Spree Community Edition. To get access to all features, please upgrade to Enterprise Edition.</p>
6
7
 
7
- <%= external_link_to 'Upgrade', 'https://spreecommerce.org/pricing', target: '_blank', class: 'btn btn-link btn-sm shadow-xs' %>
8
- </div>
8
+ <%= external_link_to 'Upgrade', 'https://spreecommerce.org/pricing', target: '_blank', class: 'btn btn-link btn-sm shadow-xs' %>
9
+ </div>
10
+ </section>
9
11
  <% end %>
10
12
  <% end %>
@@ -1,7 +1,5 @@
1
- <li class="nav-item">
2
- <span class="nav-link d-flex align-items-center pr-1 cursor-default with-tip" title="Connect your store to third-party services to automate your business processes.">
3
- <%= icon 'plug' %>
4
- <span><%= Spree.t(:integrations) %></span>
5
- <span class="badge ml-auto rounded-pill">Coming soon!</span>
6
- </span>
7
- </li>
1
+ <% if can?(:manage, Spree::Integration) %>
2
+ <li class="nav-item">
3
+ <%= nav_item(Spree.t(:integrations), spree.admin_integrations_path, icon: 'plug-connected') %>
4
+ </li>
5
+ <% end %>
@@ -8,7 +8,7 @@
8
8
  <%= nav_item(orders_label.html_safe, spree.admin_orders_path, icon: 'inbox', active: orders_active) %>
9
9
 
10
10
  <% if orders_active && (ready_to_ship_orders_count&.positive? || can?(:manage, :checkouts)) %>
11
- <ul class="ml-4 pl-1 mb-2 nav-submenu mt-1">
11
+ <ul class="nav-submenu">
12
12
  <% if ready_to_ship_orders_count&.positive? %>
13
13
  <% fulfill_label = Spree.t('admin.orders.orders_to_fulfill') %>
14
14
  <% fulfill_label += content_tag(:span, ready_to_ship_orders_count, class: 'badge ml-auto') %>
@@ -16,7 +16,7 @@
16
16
  <% end %>
17
17
 
18
18
  <% if can?(:manage, :checkouts) %>
19
- <%= nav_item(Spree.t(:draft_orders), spree.admin_checkouts_path) %>
19
+ <%= nav_item(Spree.t(:draft_orders), spree.admin_checkouts_path, active: controller_name == 'checkouts' || (@order.present? && !@order.completed?)) %>
20
20
  <% end %>
21
21
 
22
22
  <%= render_admin_partials(:store_orders_nav_partials) %>
@@ -1,8 +1,8 @@
1
1
  <% products_active = %w[products external_categories taxons taxonomies option_types option_values properties stock_items stock_transfers].include?(controller_name) || request.path.include?('products') %>
2
2
  <% if can?(:manage, Spree::Product) %>
3
- <%= nav_item(Spree.t(:products), spree.admin_products_path, icon: 'box-seam', active: products_active) %>
3
+ <%= nav_item(Spree.t(:products), spree.admin_products_path, icon: 'package', active: products_active) %>
4
4
  <% if products_active %>
5
- <ul class="ml-4 pl-1 mb-2 nav-submenu mt-1">
5
+ <ul class="nav-submenu">
6
6
  <% if can?(:manage, Spree::StockItem) || can?(:manage, Spree::StockTransfer) %>
7
7
  <%= nav_item(Spree.t(:stock), spree.admin_stock_items_path, active: %w[stock_items stock_transfers].include?(controller_name)) %>
8
8
  <% end %>