spree_backend 4.2.7 → 4.3.0.rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (257) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +1 -1
  3. data/app/assets/config/spree_backend_manifest.js +129 -0
  4. data/app/assets/images/backend-arrows-fullscreen.svg +3 -0
  5. data/app/assets/images/backend-box.svg +3 -0
  6. data/app/assets/images/backend-circle-fill.svg +3 -0
  7. data/app/assets/images/backend-circle.svg +3 -0
  8. data/app/assets/images/backend-default-layout.svg +6 -0
  9. data/app/assets/images/backend-eye-slash-fill.svg +4 -0
  10. data/app/assets/images/backend-file-richtext.svg +4 -0
  11. data/app/assets/images/backend-fullscreen-exit.svg +3 -0
  12. data/app/assets/images/backend-fullscreen.svg +3 -0
  13. data/app/assets/images/backend-mobile.svg +5 -0
  14. data/app/assets/images/backend-pages.svg +10 -0
  15. data/app/assets/images/backend-phone.svg +4 -0
  16. data/app/assets/images/backend-reversed-layout.svg +6 -0
  17. data/app/assets/images/backend-spree-icon.svg +1 -0
  18. data/app/assets/images/backend-spree-logo.svg +6 -0
  19. data/app/assets/images/backend-store.svg +2 -13
  20. data/app/assets/images/backend-translate.svg +4 -0
  21. data/app/assets/images/backend-users.svg +2 -5
  22. data/app/assets/images/backend-window-sidebar.svg +4 -0
  23. data/app/assets/images/noimage/large.png +0 -0
  24. data/app/assets/images/noimage/mini.png +0 -0
  25. data/app/assets/images/noimage/product.png +0 -0
  26. data/app/assets/images/noimage/small.png +0 -0
  27. data/app/assets/javascripts/spree/backend/address_states.es6 +44 -0
  28. data/app/assets/javascripts/spree/backend/admin.js +45 -307
  29. data/app/assets/javascripts/spree/backend/checkouts/edit.js +22 -13
  30. data/app/assets/javascripts/spree/backend/cms/_index.es6 +4 -0
  31. data/app/assets/javascripts/spree/backend/cms/links.es6 +25 -0
  32. data/app/assets/javascripts/spree/backend/cms/live_preview.es6 +34 -0
  33. data/app/assets/javascripts/spree/backend/cms/page.es6 +133 -0
  34. data/app/assets/javascripts/spree/backend/cms/section.es6 +43 -0
  35. data/app/assets/javascripts/spree/backend/global/_index.js +11 -0
  36. data/app/assets/javascripts/spree/backend/global/alerts.es6 +66 -0
  37. data/app/assets/javascripts/spree/backend/global/api_functions.es6 +5 -0
  38. data/app/assets/javascripts/spree/backend/global/bootstrap.es6 +15 -0
  39. data/app/assets/javascripts/spree/backend/global/flatpickr.es6 +22 -0
  40. data/app/assets/javascripts/spree/backend/global/info_alert.es6 +38 -0
  41. data/app/assets/javascripts/spree/backend/global/radio_panel_toggle.es6 +18 -0
  42. data/app/assets/javascripts/spree/backend/global/ransack.es6 +108 -0
  43. data/app/assets/javascripts/spree/backend/global/responsive_menus.es6 +56 -0
  44. data/app/assets/javascripts/spree/backend/global/select2_autocomplete.es6 +143 -0
  45. data/app/assets/javascripts/spree/backend/global/select2_populate.es6 +61 -0
  46. data/app/assets/javascripts/spree/backend/global/side_scroll_indication.es6 +137 -0
  47. data/app/assets/javascripts/spree/backend/global/sortable.es6 +35 -0
  48. data/app/assets/javascripts/spree/backend/global/tinymce.es6 +11 -0
  49. data/app/assets/javascripts/spree/backend/menus/_index.es6 +2 -0
  50. data/app/assets/javascripts/spree/backend/menus/menu.es6 +58 -0
  51. data/app/assets/javascripts/spree/backend/menus/menu_item.es6 +26 -0
  52. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +7 -17
  53. data/app/assets/javascripts/spree/backend/option_value_picker.js +10 -22
  54. data/app/assets/javascripts/spree/backend/payments/edit.js +1 -1
  55. data/app/assets/javascripts/spree/backend/payments/new.js +18 -5
  56. data/app/assets/javascripts/spree/backend/spree-select2.js +19 -1
  57. data/app/assets/javascripts/spree/backend/stock_location.js +1 -2
  58. data/app/assets/javascripts/spree/backend/taxons.js +74 -73
  59. data/app/assets/javascripts/spree/backend/user_picker.js +7 -10
  60. data/app/assets/javascripts/spree/backend.js +28 -1
  61. data/app/assets/javascripts/spree.js +78 -0
  62. data/app/assets/stylesheets/spree/backend/components/_filters.scss +1 -3
  63. data/app/assets/stylesheets/spree/backend/components/_main.scss +0 -1
  64. data/app/assets/stylesheets/spree/backend/components/_navbar.scss +35 -0
  65. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +13 -0
  66. data/app/assets/stylesheets/spree/backend/components/_sidebar.scss +0 -1
  67. data/app/assets/stylesheets/spree/backend/components/_tables.scss +4 -5
  68. data/app/assets/stylesheets/spree/backend/global/_mixins.scss +59 -0
  69. data/app/assets/stylesheets/spree/backend/plugins/_nav_x.scss +95 -0
  70. data/app/assets/stylesheets/spree/backend/plugins/_sweetalert2_custom.scss +100 -0
  71. data/app/assets/stylesheets/spree/backend/plugins/_tinymce_custom.scss +4 -0
  72. data/app/assets/stylesheets/spree/backend/shared/_base.scss +28 -26
  73. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +8 -0
  74. data/app/assets/stylesheets/spree/backend/spree_admin.css.scss +5 -0
  75. data/app/assets/stylesheets/spree/backend/views/_cms_pages.scss +148 -0
  76. data/app/assets/stylesheets/spree/backend/views/_menus.scss +61 -0
  77. data/app/controllers/concerns/spree/admin/order_concern.rb +24 -0
  78. data/app/controllers/concerns/spree/admin/product_concern.rb +11 -0
  79. data/app/controllers/spree/admin/base_controller.rb +63 -3
  80. data/app/controllers/spree/admin/cms_pages_controller.rb +29 -0
  81. data/app/controllers/spree/admin/cms_sections_controller.rb +15 -0
  82. data/app/controllers/spree/admin/customer_returns_controller.rb +4 -5
  83. data/app/controllers/spree/admin/errors_controller.rb +11 -0
  84. data/app/controllers/spree/admin/general_settings_controller.rb +1 -1
  85. data/app/controllers/spree/admin/images_controller.rb +8 -22
  86. data/app/controllers/spree/admin/log_entries_controller.rb +4 -3
  87. data/app/controllers/spree/admin/menu_items_controller.rb +33 -0
  88. data/app/controllers/spree/admin/menus_controller.rb +32 -0
  89. data/app/controllers/spree/admin/option_types_controller.rb +1 -1
  90. data/app/controllers/spree/admin/orders/customer_details_controller.rb +6 -11
  91. data/app/controllers/spree/admin/orders_controller.rb +22 -30
  92. data/app/controllers/spree/admin/payment_methods_controller.rb +17 -4
  93. data/app/controllers/spree/admin/payments_controller.rb +5 -10
  94. data/app/controllers/spree/admin/prices_controller.rb +2 -2
  95. data/app/controllers/spree/admin/products_controller.rb +21 -10
  96. data/app/controllers/spree/admin/promotion_actions_controller.rb +1 -1
  97. data/app/controllers/spree/admin/promotion_rules_controller.rb +1 -1
  98. data/app/controllers/spree/admin/promotions_controller.rb +3 -3
  99. data/app/controllers/spree/admin/prototypes_controller.rb +1 -1
  100. data/app/controllers/spree/admin/reimbursements_controller.rb +1 -1
  101. data/app/controllers/spree/admin/reports_controller.rb +5 -1
  102. data/app/controllers/spree/admin/resource_controller.rb +35 -5
  103. data/app/controllers/spree/admin/return_index_controller.rb +1 -1
  104. data/app/controllers/spree/admin/state_changes_controller.rb +2 -7
  105. data/app/controllers/spree/admin/stock_items_controller.rb +2 -2
  106. data/app/controllers/spree/admin/stock_locations_controller.rb +2 -2
  107. data/app/controllers/spree/admin/stock_movements_controller.rb +1 -1
  108. data/app/controllers/spree/admin/stock_transfers_controller.rb +1 -1
  109. data/app/controllers/spree/admin/store_credits_controller.rb +13 -8
  110. data/app/controllers/spree/admin/stores_controller.rb +14 -17
  111. data/app/controllers/spree/admin/taxons_controller.rb +9 -5
  112. data/app/controllers/spree/admin/users_controller.rb +9 -7
  113. data/app/controllers/spree/admin/variants_controller.rb +16 -15
  114. data/app/helpers/spree/admin/base_helper.rb +52 -14
  115. data/app/helpers/spree/admin/cms_helper.rb +15 -0
  116. data/app/helpers/spree/admin/menu_helper.rb +30 -0
  117. data/app/helpers/spree/admin/stores_helper.rb +21 -0
  118. data/app/models/spree/backend_configuration.rb +2 -0
  119. data/app/views/spree/admin/adjustments/_adjustment.html.erb +7 -5
  120. data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +2 -2
  121. data/app/views/spree/admin/cms_pages/_form.html.erb +135 -0
  122. data/app/views/spree/admin/cms_pages/_live_preview_area.html.erb +61 -0
  123. data/app/views/spree/admin/cms_pages/_section_template.html.erb +16 -0
  124. data/app/views/spree/admin/cms_pages/edit.html.erb +21 -0
  125. data/app/views/spree/admin/cms_pages/index.html.erb +84 -0
  126. data/app/views/spree/admin/cms_pages/new.html.erb +8 -0
  127. data/app/views/spree/admin/cms_sections/_form.html.erb +69 -0
  128. data/app/views/spree/admin/cms_sections/edit.html.erb +19 -0
  129. data/app/views/spree/admin/cms_sections/new.html.erb +11 -0
  130. data/app/views/spree/admin/cms_sections/types/_featured_article.html.erb +50 -0
  131. data/app/views/spree/admin/cms_sections/types/_hero_image.html.erb +62 -0
  132. data/app/views/spree/admin/cms_sections/types/_image_gallery.html.erb +177 -0
  133. data/app/views/spree/admin/cms_sections/types/_product_carousel.html.erb +5 -0
  134. data/app/views/spree/admin/cms_sections/types/_rich_text_content.html.erb +4 -0
  135. data/app/views/spree/admin/cms_sections/types/_side_by_side_images.html.erb +121 -0
  136. data/app/views/spree/admin/countries/index.html.erb +5 -3
  137. data/app/views/spree/admin/customer_returns/_reimbursements_table.html.erb +6 -4
  138. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +9 -7
  139. data/app/views/spree/admin/customer_returns/index.html.erb +4 -2
  140. data/app/views/spree/admin/errors/forbidden.html.erb +0 -0
  141. data/app/views/spree/admin/images/index.html.erb +5 -3
  142. data/app/views/spree/admin/menu_items/_form.html.erb +115 -0
  143. data/app/views/spree/admin/menu_items/edit.html.erb +11 -0
  144. data/app/views/spree/admin/menu_items/new.html.erb +11 -0
  145. data/app/views/spree/admin/menus/_form.html.erb +19 -0
  146. data/app/views/spree/admin/menus/edit.html.erb +57 -0
  147. data/app/views/spree/admin/menus/index.html.erb +90 -0
  148. data/app/views/spree/admin/menus/nested_menu_items/_item_bar.html.erb +30 -0
  149. data/app/views/spree/admin/menus/new.html.erb +22 -0
  150. data/app/views/spree/admin/option_types/_form.html.erb +3 -0
  151. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +5 -1
  152. data/app/views/spree/admin/option_types/index.html.erb +5 -3
  153. data/app/views/spree/admin/orders/_channel_form.html.erb +2 -2
  154. data/app/views/spree/admin/orders/_line_items.html.erb +9 -7
  155. data/app/views/spree/admin/orders/_shipment.html.erb +26 -18
  156. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +10 -8
  157. data/app/views/spree/admin/orders/customer_details/_autocomplete.js.erb +2 -2
  158. data/app/views/spree/admin/orders/index.html.erb +100 -101
  159. data/app/views/spree/admin/payment_methods/_form.html.erb +6 -4
  160. data/app/views/spree/admin/payment_methods/edit.html.erb +1 -1
  161. data/app/views/spree/admin/payment_methods/index.html.erb +22 -3
  162. data/app/views/spree/admin/payment_methods/new.html.erb +1 -1
  163. data/app/views/spree/admin/payments/_list.html.erb +9 -7
  164. data/app/views/spree/admin/prices/_variant_prices.html.erb +7 -14
  165. data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +9 -7
  166. data/app/views/spree/admin/products/_autocomplete.js.erb +5 -5
  167. data/app/views/spree/admin/products/_form.html.erb +24 -5
  168. data/app/views/spree/admin/products/index.html.erb +14 -13
  169. data/app/views/spree/admin/products/new.html.erb +6 -1
  170. data/app/views/spree/admin/products/stock.html.erb +71 -68
  171. data/app/views/spree/admin/promotion_categories/index.html.erb +5 -3
  172. data/app/views/spree/admin/promotions/_form.html.erb +7 -0
  173. data/app/views/spree/admin/promotions/actions/_create_item_adjustments.html.erb +1 -0
  174. data/app/views/spree/admin/promotions/calculators/_default_fields.html.erb +2 -1
  175. data/app/views/spree/admin/promotions/index.html.erb +33 -34
  176. data/app/views/spree/admin/properties/_form.html.erb +6 -0
  177. data/app/views/spree/admin/properties/index.html.erb +9 -3
  178. data/app/views/spree/admin/prototypes/_form.html.erb +1 -1
  179. data/app/views/spree/admin/prototypes/_prototypes.html.erb +8 -6
  180. data/app/views/spree/admin/prototypes/index.html.erb +5 -3
  181. data/app/views/spree/admin/reimbursement_types/index.html.erb +5 -3
  182. data/app/views/spree/admin/reports/index.html.erb +1 -1
  183. data/app/views/spree/admin/reports/sales_total.html.erb +1 -1
  184. data/app/views/spree/admin/return_authorizations/_form.html.erb +2 -2
  185. data/app/views/spree/admin/return_authorizations/index.html.erb +7 -5
  186. data/app/views/spree/admin/return_index/customer_returns.html.erb +4 -2
  187. data/app/views/spree/admin/return_index/return_authorizations.html.erb +5 -3
  188. data/app/views/spree/admin/roles/index.html.erb +5 -3
  189. data/app/views/spree/admin/shared/_account_nav.html.erb +5 -5
  190. data/app/views/spree/admin/shared/_address_form.html.erb +5 -4
  191. data/app/views/spree/admin/shared/_content_header.html.erb +20 -6
  192. data/app/views/spree/admin/shared/_head.html.erb +2 -1
  193. data/app/views/spree/admin/shared/_header.html.erb +7 -10
  194. data/app/views/spree/admin/shared/_link_fields.html.erb +22 -0
  195. data/app/views/spree/admin/shared/_main_menu.html.erb +19 -4
  196. data/app/views/spree/admin/shared/_order_tabs.html.erb +1 -10
  197. data/app/views/spree/admin/shared/_paths.html.erb +8 -0
  198. data/app/views/spree/admin/shared/_refunds.html.erb +4 -2
  199. data/app/views/spree/admin/shared/_sidebar.html.erb +1 -1
  200. data/app/views/spree/admin/shared/_store_switcher.html.erb +23 -0
  201. data/app/views/spree/admin/shared/_table_filter.html.erb +6 -6
  202. data/app/views/spree/admin/shared/_translations.html.erb +2 -0
  203. data/app/views/spree/admin/shared/cms/_spree_product.html.erb +14 -0
  204. data/app/views/spree/admin/shared/cms/_spree_taxon.html.erb +14 -0
  205. data/app/views/spree/admin/shared/linkables/_home_page.html.erb +3 -0
  206. data/app/views/spree/admin/shared/linkables/_spree_cms_page.erb +28 -0
  207. data/app/views/spree/admin/shared/linkables/_spree_product.html.erb +20 -0
  208. data/app/views/spree/admin/shared/linkables/_spree_taxon.html.erb +22 -0
  209. data/app/views/spree/admin/shared/linkables/_url.html.erb +16 -0
  210. data/app/views/spree/admin/shared/named_types/_index.html.erb +7 -5
  211. data/app/views/spree/admin/shared/sub_menu/_configuration.html.erb +1 -3
  212. data/app/views/spree/admin/shared/sub_menu/_content.html.erb +4 -0
  213. data/app/views/spree/admin/shared/sub_menu/_stock.html.erb +4 -0
  214. data/app/views/spree/admin/shipping_categories/index.html.erb +5 -3
  215. data/app/views/spree/admin/shipping_methods/index.html.erb +5 -3
  216. data/app/views/spree/admin/states/_state_list.html.erb +5 -3
  217. data/app/views/spree/admin/stock_locations/index.html.erb +5 -3
  218. data/app/views/spree/admin/stock_transfers/index.html.erb +5 -4
  219. data/app/views/spree/admin/stock_transfers/new.html.erb +9 -7
  220. data/app/views/spree/admin/store_credit_categories/index.html.erb +5 -3
  221. data/app/views/spree/admin/store_credits/index.html.erb +7 -5
  222. data/app/views/spree/admin/stores/_form.html.erb +12 -2
  223. data/app/views/spree/admin/stores/index.html.erb +12 -10
  224. data/app/views/spree/admin/tax_categories/index.html.erb +5 -3
  225. data/app/views/spree/admin/tax_rates/index.html.erb +5 -3
  226. data/app/views/spree/admin/taxonomies/_list.html.erb +5 -3
  227. data/app/views/spree/admin/taxons/_form.html.erb +1 -1
  228. data/app/views/spree/admin/users/_addresses_form.html.erb +2 -4
  229. data/app/views/spree/admin/users/index.html.erb +5 -3
  230. data/app/views/spree/admin/variants/_autocomplete_line_items_stock.js.erb +18 -12
  231. data/app/views/spree/admin/variants/_autocomplete_stock.js.erb +12 -8
  232. data/app/views/spree/admin/variants/_split.js.erb +9 -7
  233. data/app/views/spree/admin/variants/index.html.erb +8 -5
  234. data/app/views/spree/admin/zones/index.html.erb +5 -3
  235. data/app/views/spree/layouts/admin.html.erb +16 -16
  236. data/config/initializers/assets.rb +5 -1
  237. data/config/routes.rb +16 -4
  238. data/lib/generators/spree/backend/install/install_generator.rb +22 -0
  239. data/lib/generators/spree/backend/install/templates/vendor/assets/javascripts/spree/backend/all.js +8 -0
  240. data/lib/generators/spree/backend/install/templates/vendor/assets/stylesheets/spree/backend/all.css +9 -0
  241. data/lib/spree/backend/engine.rb +4 -11
  242. data/lib/spree/backend.rb +7 -4
  243. data/lib/spree_backend.rb +0 -2
  244. data/spec/fixtures/files/favicon.ico +0 -0
  245. data/spec/fixtures/files/icon_512x512.png +0 -0
  246. data/spree_backend.gemspec +9 -4
  247. data/vendor/assets/javascripts/cleave.js +8 -0
  248. data/vendor/assets/javascripts/jsonapi-serializer.min.js +8 -0
  249. data/vendor/assets/javascripts/jsuri.js +458 -0
  250. data/vendor/assets/javascripts/sortable.js +2 -3709
  251. data/vendor/assets/javascripts/sweetalert2.js +2 -0
  252. metadata +193 -22
  253. data/app/assets/javascripts/spree/backend/address_states.js +0 -44
  254. data/app/assets/javascripts/spree/frontend/backend.js +0 -1
  255. data/app/assets/stylesheets/spree/frontend/backend.css +0 -1
  256. data/app/views/spree/admin/orders/_store_form.html.erb +0 -18
  257. /data/app/assets/stylesheets/spree/backend/plugins/{select2_bootstrap4.scss → _select2_bootstrap4.scss} +0 -0
@@ -0,0 +1,90 @@
1
+ <% content_for :page_title do %>
2
+ <%= Spree.t('admin.navigation.menus') %>
3
+ <% end %>
4
+
5
+ <% content_for :page_actions do %>
6
+ <%= button_link_to Spree.t('admin.navigation.add_new_menu'), new_object_url, { class: "btn-success", icon: 'add.svg', id: 'new_menu' } %>
7
+ <% end if can?(:create, Spree::Menu) %>
8
+
9
+ <% content_for :table_filter do %>
10
+ <div data-hook="admin_menus_sidebar">
11
+ <%= search_form_for [:admin, @search] do |f| %>
12
+ <%- locals = {f: f} %>
13
+ <div class="row">
14
+
15
+ <div class="col-12 col-lg-4">
16
+ <div class="form-group">
17
+ <%= f.label :name_cont, Spree.t('name') %>
18
+ <%= f.text_field :name_cont, size: 15, class: "form-control js-quick-search-target js-filterable" %>
19
+ </div>
20
+ </div>
21
+ <div class="col-12 col-lg-4">
22
+ <div class="form-group">
23
+ <%= label_tag :q_location_eq, Spree.t(:location) %><%= f.select :location_eq, spree_humanize_dropdown_values('Spree::Menu', { const: 'MENU_LOCATIONS', paramterize_values: true }), { include_blank: true }, class: 'select2-clear js-filterable' %>
24
+ </div>
25
+ </div>
26
+
27
+ <div class="col-12 col-lg-4">
28
+ <div class="form-group">
29
+ <%= label_tag :q_locale_eq, Spree.t(:language) %>
30
+ <%= f.select :locale_eq, all_locales_options, { include_blank: true }, class: 'select2-clear js-filterable' %>
31
+ </div>
32
+ </div>
33
+ </div>
34
+
35
+ <div data-hook="admin_menus_index_search_buttons" class="form-actions">
36
+ <%= button Spree.t(:search), 'search.svg' %>
37
+ </div>
38
+ <% end %>
39
+ </div>
40
+ <% end %>
41
+
42
+ <% if @menus.any? %>
43
+ <div class="table-responsive">
44
+ <table class="table" id="menusTable">
45
+ <thead>
46
+ <th scope="col"><%= Spree.t(:name) %></th>
47
+ <th scope="col"><%= Spree.t('location') %></th>
48
+ <th scope="col"><%= Spree.t('language') %></th>
49
+ <th class="text-center" scope="col"><%= Spree.t('default') %>
50
+ <span data-show-info
51
+ data-alert-kind="info"
52
+ data-alert-title="<%= Spree.t('admin.navigation.default_menus_info.title') %>"
53
+ data-alert-html="<%= Spree.t('admin.navigation.default_menus_info.body') %>">
54
+ <%= svg_icon name: "info.svg", width: '15', height: '15' %>
55
+ </span>
56
+ </th>
57
+ <th scope="col"></th>
58
+ </thead>
59
+ <tbody>
60
+ <% @menus.each do |menu| %>
61
+ <tr>
62
+ <td>
63
+ <%= menu.name %>
64
+ </td>
65
+ <td>
66
+ <%= menu.location.titleize %>
67
+ </td>
68
+ <td>
69
+ <%= locale_full_name(menu.locale) %>
70
+ </td>
71
+ <td class="text-center">
72
+ <%= active_badge(default_menu_for_store?(menu)) %>
73
+ </td>
74
+ <td class="actions" data-hook="admin_menus_index_row_actions">
75
+ <span class="d-flex justify-content-end">
76
+ <%= link_to_edit(menu, no_text: true) %>
77
+ <%= link_to_delete menu, no_text: true, url: spree.admin_menu_path(menu) if can?(:destroy, menu) %>
78
+ </span>
79
+ </td>
80
+ </tr>
81
+ <% end %>
82
+ </tbody>
83
+ </table>
84
+ </div>
85
+ <%= render 'spree/admin/shared/index_table_options', collection: @menus, simple: true %>
86
+ <% else %>
87
+ <div class="alert alert-info no-objects-found">
88
+ <%= Spree.t('admin.navigation.you_have_no_menus') %>
89
+ </div>
90
+ <% end %>
@@ -0,0 +1,30 @@
1
+ <div class="container-item-row d-flex flex-nowrap">
2
+ <div class="move-handle d-flex align-items-center p-3">
3
+ <%= svg_icon(name: 'sort.svg', width: '20', height: '20') %>
4
+ </div>
5
+
6
+ <div class="d-flex align-items-center overflow-hidden w-100">
7
+ <div class="overflow-hidden">
8
+ <%= item.name %>
9
+ <% if item.link.present? %>
10
+ <span class="badge badge-light badge-light-muted-text">-> <%= item.link %></span>
11
+ <% end %>
12
+ <small class="form-text text-muted mt-0">
13
+ <%= "#{Spree.t('admin.navigation.type')}: #{item.item_type}" %>
14
+ <%= "| #{Spree.t('admin.navigation.code')}: #{item.code}" if item.code.present? %>
15
+ </small>
16
+ </div>
17
+ <% if item.icon.present? %>
18
+ <div class="ml-2">
19
+ <div class="menu_items_image_holder">
20
+ <%= image_tag main_app.url_for(item.icon.attachment) %>
21
+ </div>
22
+ </div>
23
+ <% end %>
24
+ </div>
25
+
26
+ <div class="d-flex align-items-center space-buttons px-2">
27
+ <%= link_to_edit(item, no_text: true, url: spree.edit_admin_menu_menu_item_path(menu, item)) %>
28
+ <%= link_to_delete(item, no_text: true, url: spree.admin_menu_menu_item_path(menu, item)) if can?(:destroy, item) %>
29
+ </div>
30
+ </div>
@@ -0,0 +1,22 @@
1
+ <% content_for :page_title do %>
2
+ <%= link_to Spree.t('admin.navigation.all_menus'), spree.admin_menus_path %> / <%= Spree.t('admin.navigation.new_menu') %>
3
+ <% end %>
4
+
5
+ <div class="row">
6
+ <div class="col-12">
7
+ <div class="card mb-3">
8
+ <div class="card-header">
9
+ <h5 class="mb-0"><%= Spree.t('settings') %></h5>
10
+ </div>
11
+ <div class="card-body">
12
+ <%= render partial: 'spree/admin/shared/error_messages', locals: { target: @menu } %>
13
+ <%= form_for [:admin, @menu] do |f| %>
14
+ <%= render partial: 'form', locals: { f: f } %>
15
+ <div class="d-flex ">
16
+ <%= render partial: 'spree/admin/shared/new_resource_links' %>
17
+ </div>
18
+ <% end %>
19
+ </div>
20
+ </div>
21
+ </div>
22
+ </div>
@@ -21,6 +21,9 @@
21
21
  <%= f.check_box :filterable %>
22
22
  <%= Spree.t(:filterable) %>
23
23
  <% end %>
24
+ <small class="form-text text-muted">
25
+ <%= raw Spree.t('option_type_filterable_info') %>
26
+ </small>
24
27
  <% end %>
25
28
  </div>
26
29
  </div>
@@ -5,5 +5,9 @@
5
5
  </td>
6
6
  <td class="name"><%= f.text_field :name, class: "form-control" %></td>
7
7
  <td class="presentation"><%= f.text_field :presentation, class: "form-control" %></td>
8
- <td class="actions actions-1 text-center"><%= link_to_icon_remove_fields f %></td>
8
+ <td class="actions">
9
+ <span class="d-flex justify-content-end">
10
+ <%= link_to_icon_remove_fields f %>
11
+ </span>
12
+ </td>
9
13
  </tr>
@@ -31,9 +31,11 @@
31
31
  <td><%= option_type.name %></td>
32
32
  <td class="presentation"><%= option_type.presentation %></td>
33
33
  <td><%= active_badge(option_type.filterable) %></td>
34
- <td class="actions actions-2 text-right">
35
- <%= link_to_edit(option_type, class: 'admin_edit_option_type', no_text: true) if can?(:edit, option_type) %>
36
- <%= link_to_delete(option_type, no_text: true) if can?(:delete, option_type) %>
34
+ <td class="actions">
35
+ <span class="d-flex justify-content-end">
36
+ <%= link_to_edit(option_type, class: 'admin_edit_option_type', no_text: true) if can?(:edit, option_type) %>
37
+ <%= link_to_delete(option_type, no_text: true) if can?(:delete, option_type) %>
38
+ </span>
37
39
  </td>
38
40
  </tr>
39
41
  <% end %>
@@ -9,9 +9,9 @@
9
9
  <% end %>
10
10
  </div>
11
11
  <div class="form-actions" data-hook="buttons">
12
- <%= button Spree.t('actions.update'), 'refresh', 'submit', { class: 'btn-success', data: { disable_with: "#{ Spree.t(:saving) }..." }} %>
12
+ <%= button Spree.t('actions.update'), 'recycle.svg', 'submit', { class: 'btn-success', data: { disable_with: "#{ Spree.t(:saving) }..." }} %>
13
13
  <span class="or"><%= Spree.t(:or) %></span>
14
- <%= button_link_to Spree.t('actions.cancel'), edit_admin_order_url(order), icon: 'delete' %>
14
+ <%= button_link_to Spree.t('actions.cancel'), edit_admin_order_url(order), icon: 'cancel.svg' %>
15
15
  </div>
16
16
  <fieldset>
17
17
  <% end %>
@@ -35,13 +35,15 @@
35
35
  <%= number_field_tag :quantity, item.quantity, min: 0, class: "line_item_quantity form-control", size: 5 %>
36
36
  </td>
37
37
  <td class="line-item-total text-center"><%= line_item_shipment_price(item, item.quantity) %></td>
38
- <td class="cart-line-item-delete actions actions-4 text-center no-wrap" data-hook="cart_line_item_delete">
39
- <% if can? :update, item %>
40
- <%= link_to_with_icon 'cancel.svg', Spree.t('actions.cancel'), "#", class: 'cancel-line-item btn btn-outline-secondary btn-sm', data: {action: 'cancel'}, title: Spree.t('actions.cancel'), style: 'display: none', no_text: true %>
41
- <%= link_to_with_icon 'save.svg', Spree.t('actions.save'), "#", class: 'save-line-item btn btn-success btn-sm', no_text: true, data: { :'line-item-id' => item.id, action: 'save'}, title: Spree.t('actions.save'), style: 'display: none' %>
42
- <%= link_to_with_icon 'edit.svg', Spree.t('edit'), "#", class: 'edit-line-item btn btn-outline-secondary btn-sm', data: {action: 'edit'}, title: Spree.t('edit'), no_text: true %>
43
- <%= link_to_with_icon 'delete.svg', Spree.t('delete'), "#", class: 'delete-line-item btn btn-danger btn-sm', data: { 'line-item-id' => item.id, action: 'remove'}, title: Spree.t('delete'), no_text: true %>
44
- <% end %>
38
+ <td class="cart-line-item-delete actions" data-hook="cart_line_item_delete">
39
+ <span class="d-flex justify-content-center">
40
+ <% if can? :update, item %>
41
+ <%= link_to_with_icon 'cancel.svg', Spree.t('actions.cancel'), "#", class: 'cancel-line-item btn btn-outline-secondary btn-sm', data: {action: 'cancel'}, title: Spree.t('actions.cancel'), style: 'display: none', no_text: true %>
42
+ <%= link_to_with_icon 'save.svg', Spree.t('actions.save'), "#", class: 'save-line-item btn btn-success btn-sm', no_text: true, data: { :'line-item-id' => item.id, action: 'save'}, title: Spree.t('actions.save'), style: 'display: none' %>
43
+ <%= link_to_with_icon 'edit.svg', Spree.t('edit'), "#", class: 'edit-line-item btn btn-outline-secondary btn-sm', data: {action: 'edit'}, title: Spree.t('edit'), no_text: true %>
44
+ <%= link_to_with_icon 'delete.svg', Spree.t('delete'), "#", class: 'delete-line-item btn btn-danger btn-sm', data: { 'line-item-id' => item.id, action: 'remove'}, title: Spree.t('delete'), no_text: true %>
45
+ <% end %>
46
+ </span>
45
47
  </td>
46
48
  </tr>
47
49
  <% end %>
@@ -43,11 +43,13 @@
43
43
  { class: 'select2', data: {'shipment-number' => shipment.number } } %>
44
44
  </div>
45
45
  </td>
46
- <td class="actions text-center">
47
- <% if can? :update, shipment %>
48
- <%= link_to_with_icon 'cancel.svg', Spree.t('actions.cancel'), "#", class: 'cancel-method btn btn-outline-secondary btn-sm', data: {action: 'cancel'}, title: Spree.t('actions.cancel'), no_text: true %>
49
- <%= link_to_with_icon 'save.svg', Spree.t('actions.save'), "#", class: 'save-method btn btn-success btn-sm', data: {'shipment-number' => shipment.number, action: 'save'}, title: Spree.t('actions.save'), no_text: true %>
50
- <% end %>
46
+ <td class="actions">
47
+ <span class="d-flex justify-content-center">
48
+ <% if can? :update, shipment %>
49
+ <%= link_to_with_icon 'cancel.svg', Spree.t('actions.cancel'), "#", class: 'cancel-method btn btn-outline-secondary btn-sm', data: {action: 'cancel'}, title: Spree.t('actions.cancel'), no_text: true %>
50
+ <%= link_to_with_icon 'save.svg', Spree.t('actions.save'), "#", class: 'save-method btn btn-success btn-sm', data: {'shipment-number' => shipment.number, action: 'save'}, title: Spree.t('actions.save'), no_text: true %>
51
+ <% end %>
52
+ </span>
51
53
  </td>
52
54
  </tr>
53
55
  <% end %>
@@ -64,10 +66,12 @@
64
66
  <td colspan='5'><%= Spree.t(:no_shipping_method_selected) %></td>
65
67
  <% end %>
66
68
 
67
- <td class="actions text-center">
68
- <% if( (can? :update, shipment) and !shipment.shipped?) %>
69
- <%= link_to_with_icon 'edit.svg', Spree.t('edit'), "javascript:;", class: 'edit-method with-tip btn btn-sm btn-outline-secondary', data: {action: 'edit'}, no_text: true %>
70
- <% end %>
69
+ <td class="actions">
70
+ <span class="d-flex justify-content-center">
71
+ <% if( (can? :update, shipment) and !shipment.shipped?) %>
72
+ <%= link_to_with_icon 'edit.svg', Spree.t('edit'), "javascript:;", class: 'edit-method with-tip btn btn-sm btn-outline-secondary', data: {action: 'edit'}, no_text: true %>
73
+ <% end %>
74
+ </span>
71
75
  </td>
72
76
  </tr>
73
77
 
@@ -76,11 +80,13 @@
76
80
  <label><%= Spree.t(:tracking_number) %>:</label>
77
81
  <%= text_field_tag :tracking, shipment.tracking, class: "form-control" %>
78
82
  </td>
79
- <td class="actions text-center">
80
- <% if can? :update, shipment %>
81
- <%= link_to_with_icon 'cancel.svg', Spree.t('actions.cancel'), "#", class: 'cancel-tracking btn btn-outline-secondary btn-sm', data: {action: 'cancel'}, title: Spree.t('actions.cancel'), no_text: true %>
82
- <%= link_to_with_icon 'save.svg', Spree.t('actions.save'), "#", class: 'save-tracking btn btn-success btn-sm', data: {'shipment-number' => shipment.number, action: 'save'}, title: Spree.t('actions.save'), no_text: true %>
83
- <% end %>
83
+ <td class="actions">
84
+ <span class="d-flex justify-content-center">
85
+ <% if can? :update, shipment %>
86
+ <%= link_to_with_icon 'cancel.svg', Spree.t('actions.cancel'), "#", class: 'cancel-tracking btn btn-outline-secondary btn-sm', data: {action: 'cancel'}, title: Spree.t('actions.cancel'), no_text: true %>
87
+ <%= link_to_with_icon 'save.svg', Spree.t('actions.save'), "#", class: 'save-tracking btn btn-success btn-sm', data: {'shipment-number' => shipment.number, action: 'save'}, title: Spree.t('actions.save'), no_text: true %>
88
+ <% end %>
89
+ </span>
84
90
  </td>
85
91
  </tr>
86
92
 
@@ -100,10 +106,12 @@
100
106
  <%= Spree.t(:no_tracking_present) %>
101
107
  <% end %>
102
108
  </td>
103
- <td class="actions text-center">
104
- <% if can? :update, shipment %>
105
- <%= link_to_with_icon 'edit.svg', Spree.t('edit'), "#", class: 'edit-tracking btn btn-outline-secondary btn-sm', data: {action: 'edit'}, title: Spree.t('edit'), no_text: true %>
106
- <% end %>
109
+ <td class="actions">
110
+ <span class="d-flex justify-content-center">
111
+ <% if can? :update, shipment %>
112
+ <%= link_to_with_icon 'edit.svg', Spree.t('edit'), "#", class: 'edit-tracking btn btn-outline-secondary btn-sm', data: {action: 'edit'}, title: Spree.t('edit'), no_text: true %>
113
+ <% end %>
114
+ </span>
107
115
  </td>
108
116
  </tr>
109
117
  </tbody>
@@ -31,14 +31,16 @@
31
31
  <%= line_item_shipment_price(item.line_item, item.quantity) %>
32
32
  </td>
33
33
 
34
- <td class="cart-item-delete actions actions-3 text-center" data-hook="cart_item_delete">
35
- <% if((!shipment.shipped?) && can?(:update, item.line_item)) %>
36
- <%= link_to_with_icon 'edit.svg', Spree.t('actions.edit'), "#", class: 'edit-item btn btn-outline-secondary btn-sm', title: Spree.t('actions.edit'), no_text: true %>
37
- <%= link_to_with_icon 'cancel.svg', Spree.t('actions.cancel'), "#", class: 'cancel-item btn btn-outline-secondary btn-sm', data: { action: 'cancel' }, title: Spree.t('actions.cancel'), style: 'display: none', no_text: true %>
38
- <%= link_to_with_icon 'save.svg', Spree.t('actions.save'), "#", class: 'save-item btn btn-success btn-sm', data: {'shipment-number' => shipment.number, 'variant-id' => item.variant.id, action: 'save'}, title: Spree.t('actions.save'), style: 'display: none', no_text: true %>
39
- <%= link_to_with_icon 'split.svg', Spree.t('split'), "#", class: 'split-item btn btn-outline-secondary btn-sm', data: {action: 'split', 'variant-id' => item.variant.id}, title: Spree.t('split'), no_text: true %>
40
- <%= link_to_with_icon 'delete.svg', Spree.t('delete'), "#", class: 'delete-item btn btn-danger btn-sm', data: { 'shipment-number' => shipment.number, 'variant-id' => item.variant.id, action: 'remove'}, title: Spree.t('delete'), no_text: true %>
41
- <% end %>
34
+ <td class="cart-item-delete actions" data-hook="cart_item_delete">
35
+ <span class="d-flex justify-content-center">
36
+ <% if((!shipment.shipped?) && can?(:update, item.line_item)) %>
37
+ <%= link_to_with_icon 'edit.svg', Spree.t('actions.edit'), "#", class: 'edit-item btn btn-outline-secondary btn-sm', title: Spree.t('actions.edit'), no_text: true %>
38
+ <%= link_to_with_icon 'cancel.svg', Spree.t('actions.cancel'), "#", class: 'cancel-item btn btn-outline-secondary btn-sm', data: { action: 'cancel' }, title: Spree.t('actions.cancel'), style: 'display: none', no_text: true %>
39
+ <%= link_to_with_icon 'save.svg', Spree.t('actions.save'), "#", class: 'save-item btn btn-success btn-sm', data: {'shipment-number' => shipment.number, 'variant-id' => item.variant.id, action: 'save'}, title: Spree.t('actions.save'), style: 'display: none', no_text: true %>
40
+ <%= link_to_with_icon 'split.svg', Spree.t('split'), "#", class: 'split-item btn btn-outline-secondary btn-sm', data: {action: 'split', 'variant-id' => item.variant.id}, title: Spree.t('split'), no_text: true %>
41
+ <%= link_to_with_icon 'delete.svg', Spree.t('delete'), "#", class: 'delete-item btn btn-danger btn-sm', data: { 'shipment-number' => shipment.number, 'variant-id' => item.variant.id, action: 'remove'}, title: Spree.t('delete'), no_text: true %>
42
+ <% end %>
43
+ </span>
42
44
  </td>
43
45
  </tr>
44
46
  <% end %>
@@ -13,7 +13,7 @@
13
13
  {{bill_address.firstname}} {{bill_address.lastname}}<br>
14
14
  {{bill_address.address1}}, {{bill_address.address2}}<br>
15
15
  {{bill_address.city}}<br>
16
- {{#if bill_address.state_id }}
16
+ {{#if bill_address.state }}
17
17
  {{bill_address.state.name}}
18
18
  {{else}}
19
19
  {{bill_address.state_name}}
@@ -28,7 +28,7 @@
28
28
  {{ship_address.firstname}} {{ship_address.lastname}}<br>
29
29
  {{ship_address.address1}}, {{ship_address.address2}}<br>
30
30
  {{ship_address.city}}<br>
31
- {{#if ship_address.state_id }}
31
+ {{#if ship_address.state }}
32
32
  {{ship_address.state.name}}
33
33
  {{else}}
34
34
  {{ship_address.state_name}}
@@ -30,7 +30,6 @@
30
30
  value: params[:q][:created_at_gt],
31
31
  placeholder: Spree.t(:starting_from),
32
32
  'data-input':'' %>
33
-
34
33
  <%= render partial: 'spree/admin/shared/cal_close' %>
35
34
  </div>
36
35
  </div>
@@ -45,7 +44,6 @@
45
44
  value: params[:q][:created_at_lt],
46
45
  placeholder: Spree.t(:ending_at),
47
46
  'data-input':'' %>
48
-
49
47
  <%= render partial: 'spree/admin/shared/cal_close' %>
50
48
  </div>
51
49
  </div>
@@ -54,7 +52,7 @@
54
52
  </div>
55
53
  <div class="col-12 col-lg-4">
56
54
  <div class="form-group">
57
- <%= label_tag :q_number_cont, Spree.t(:order_number, number: '') %>
55
+ <%= label_tag :q_number_cont, Spree.t(:search_order_number) %>
58
56
  <%= f.text_field :number_cont, class: 'form-control js-quick-search-target js-filterable' %>
59
57
  </div>
60
58
  </div>
@@ -130,13 +128,6 @@
130
128
  </div>
131
129
  </div>
132
130
 
133
- <div class="col-12 col-lg-4">
134
- <div class="form-group">
135
- <%= label_tag :q_store_id_in, Spree.t(:store) %>
136
- <%= f.select :store_id_in, Spree::Store.order(:name).pluck(:name, :id), { include_blank: true }, class: 'select2-clear js-filterable' %>
137
- </div>
138
- </div>
139
-
140
131
  <div class="col-12 col-lg-4">
141
132
  <div class="form-group">
142
133
  <%= label_tag :q_channel_eq, Spree.t(:channel) %>
@@ -144,28 +135,21 @@
144
135
  </div>
145
136
  </div>
146
137
 
147
- <div class="col-12 col-lg-4">
148
-
149
- <div class="form-group">
150
-
151
- <div class="checkbox mt-2">
152
- <%= label_tag 'q_completed_at_not_null' do %>
153
- <%= f.check_box :completed_at_not_null, {checked: @show_only_completed}, '1', '0' %>
154
- <%= Spree.t(:show_only_complete_orders) %>
155
- <% end %>
138
+ <div class="col-12">
139
+ <%= f.field_container :completed_at_not_null do %>
140
+ <div class="custom-control custom-checkbox">
141
+ <%= f.check_box :completed_at_not_null, {checked: @show_only_completed, class: 'custom-control-input'}, '1', '0' %>
142
+ <%= f.label :completed_at_not_null, Spree.t(:show_only_complete_orders), class: 'custom-control-label' %>
156
143
  </div>
144
+ <% end %>
157
145
 
158
- <div class="checkbox mt-2">
159
- <%= label_tag 'q_considered_risky_eq' do %>
160
- <%= f.check_box :considered_risky_eq, {checked: (params[:q][:considered_risky_eq] == '1')}, '1', '' %>
161
- <%= Spree.t(:show_only_considered_risky) %>
162
- <% end %>
146
+ <%= f.field_container :considered_risky_eq do %>
147
+ <div class="custom-control custom-checkbox">
148
+ <%= f.check_box :considered_risky_eq, {checked: params[:q][:considered_risky_eq] == '1', class: 'custom-control-input'}, '1', '' %>
149
+ <%= f.label :considered_risky_eq, Spree.t(:show_only_considered_risky), class: 'custom-control-label' %>
163
150
  </div>
164
-
165
- </div>
166
-
151
+ <% end %>
167
152
  </div>
168
-
169
153
  </div>
170
154
 
171
155
  <div data-hook="admin_orders_index_search_buttons" class="form-actions">
@@ -179,88 +163,103 @@
179
163
  <% end %>
180
164
 
181
165
  <% if @orders.any? %>
182
- <div class="table-responsive">
183
- <table class="table" id="listing_orders" data-hook>
184
- <thead>
185
- <tr data-hook="admin_orders_index_headers">
186
- <th><%= sort_link @search, :number, I18n.t(:number, scope: 'activerecord.attributes.spree/order') %></th>
187
- <% if @show_only_completed %>
188
- <th><%= sort_link @search, :completed_at, I18n.t(:completed_at, scope: 'activerecord.attributes.spree/order') %></th>
189
- <% else %>
190
- <th><%= sort_link @search, :created_at, I18n.t(:created_at, scope: 'activerecord.attributes.spree/order') %></th>
191
- <% end %>
192
- <th><%= sort_link @search, :considered_risky, I18n.t(:considered_risky, scope: 'activerecord.attributes.spree/order') %></th>
193
- <th><%= sort_link @search, :state, I18n.t(:state, scope: 'activerecord.attributes.spree/order') %></th>
194
- <th><%= sort_link @search, :payment_state, I18n.t(:payment_state, scope: 'activerecord.attributes.spree/order') %></th>
195
- <% if Spree::Order.checkout_step_names.include?(:delivery) %>
196
- <th><%= sort_link @search, :shipment_state, I18n.t(:shipment_state, scope: 'activerecord.attributes.spree/order') %></th>
197
- <% end %>
198
- <th><%= sort_link @search, :email, I18n.t(:email, scope: 'activerecord.attributes.spree/order') %></th>
199
- <th><%= sort_link @search, :total, I18n.t(:total, scope: 'activerecord.attributes.spree/order') %></th>
200
- <th data-hook="admin_orders_index_header_actions" class="actions"></th>
201
- </tr>
202
- </thead>
203
- <tbody>
204
- <% @orders.each do |order| %>
205
- <tr data-hook="admin_orders_index_rows" class="state-<%= order.state.downcase %> <%= cycle('odd', 'even') %>">
206
- <td><%= link_to order.number, edit_admin_order_path(order) %></td>
207
- <td>
208
- <%= order_time(@show_only_completed ? order.completed_at : order.created_at) %>
209
- </td>
210
- <td>
211
- <span class="badge badge-<%= order.considered_risky ? 'considered_risky' : 'considered_safe' %> text-uppercase">
212
- <%= order.considered_risky ? Spree.t("risky") : Spree.t("safe") %>
213
- </span>
214
- </td>
215
- <td class="no-wrap">
216
- <span class="badge badge-<%= order.state.downcase %> text-uppercase"><%= Spree.t("order_state.#{order.state}") %></span>
217
- <span class="filterable js-add-filter" data-ransack-field="q_state_eq" data-ransack-value="<%= order.state %>">
218
- <%= svg_icon name: "filter.svg", width: '14', height: '14' %>
219
- </span>
220
- </td>
221
- <td class="no-wrap">
222
- <% if order.payment_state %>
223
- <%= link_to Spree.t("payment_states.#{order.payment_state}"),
224
- admin_order_payments_path(order),
225
- class: "badge badge-#{order.payment_state} text-uppercase" %>
226
-
227
- <span class="filterable js-add-filter"
228
- data-ransack-field="q_payment_state_eq"
229
- data-ransack-value="<%= order.payment_state %>">
166
+ <div data-nav-x-wrapper>
167
+ <div data-nav-x-container>
168
+ <table class="table" id="listing_orders" data-hook data-nav-x-content>
169
+ <thead>
170
+ <tr data-hook="admin_orders_index_headers">
171
+ <th><%= sort_link @search, :number, I18n.t(:number, scope: 'activerecord.attributes.spree/order') %></th>
172
+ <% if @show_only_completed %>
173
+ <th><%= sort_link @search, :completed_at, I18n.t(:completed_at, scope: 'activerecord.attributes.spree/order') %></th>
174
+ <% else %>
175
+ <th><%= sort_link @search, :created_at, I18n.t(:created_at, scope: 'activerecord.attributes.spree/order') %></th>
176
+ <% end %>
177
+ <th><%= sort_link @search, :considered_risky, I18n.t(:considered_risky, scope: 'activerecord.attributes.spree/order') %></th>
178
+ <th><%= sort_link @search, :state, I18n.t(:state, scope: 'activerecord.attributes.spree/order') %></th>
179
+ <th><%= sort_link @search, :payment_state, I18n.t(:payment_state, scope: 'activerecord.attributes.spree/order') %></th>
180
+ <% if Spree::Order.checkout_step_names.include?(:delivery) %>
181
+ <th><%= sort_link @search, :shipment_state, I18n.t(:shipment_state, scope: 'activerecord.attributes.spree/order') %></th>
182
+ <% end %>
183
+ <th><%= sort_link @search, :email, I18n.t(:email, scope: 'activerecord.attributes.spree/order') %></th>
184
+ <th><%= sort_link @search, :total, I18n.t(:total, scope: 'activerecord.attributes.spree/order') %></th>
185
+ <th data-hook="admin_orders_index_header_actions" class="actions"></th>
186
+ </tr>
187
+ </thead>
188
+ <tbody>
189
+ <% @orders.each do |order| %>
190
+ <tr data-hook="admin_orders_index_rows" class="state-<%= order.state.downcase %> <%= cycle('odd', 'even') %>">
191
+ <td><%= link_to order.number, edit_admin_order_path(order) %></td>
192
+ <td>
193
+ <%= order_time(@show_only_completed ? order.completed_at : order.created_at) %>
194
+ </td>
195
+ <td>
196
+ <span class="badge badge-<%= order.considered_risky ? 'considered_risky' : 'considered_safe' %> text-uppercase">
197
+ <%= order.considered_risky ? Spree.t("risky") : Spree.t("safe") %>
198
+ </span>
199
+ </td>
200
+ <td class="no-wrap">
201
+ <span class="badge badge-<%= order.state.downcase %> text-uppercase"><%= Spree.t("order_state.#{order.state}") %></span>
202
+ <span class="filterable js-add-filter" data-ransack-field="q_state_eq" data-ransack-value="<%= order.state %>">
230
203
  <%= svg_icon name: "filter.svg", width: '14', height: '14' %>
231
204
  </span>
232
- <% end %>
233
- </td>
234
- <% if Spree::Order.checkout_step_names.include?(:delivery) %>
205
+ </td>
235
206
  <td class="no-wrap">
236
- <% if order.shipment_state %>
237
- <span class="badge badge-<%= order.shipment_state %> text-uppercase"><%= Spree.t("shipment_states.#{order.shipment_state}") %></span>
238
- <span class="filterable js-add-filter" data-ransack-field="q_shipment_state_eq" data-ransack-value="<%= order.shipment_state %>">
207
+ <% if order.payment_state %>
208
+ <%= link_to Spree.t("payment_states.#{order.payment_state}"),
209
+ admin_order_payments_path(order),
210
+ class: "badge badge-#{order.payment_state} text-uppercase" %>
211
+
212
+ <span class="filterable js-add-filter"
213
+ data-ransack-field="q_payment_state_eq"
214
+ data-ransack-value="<%= order.payment_state %>">
239
215
  <%= svg_icon name: "filter.svg", width: '14', height: '14' %>
240
216
  </span>
241
217
  <% end %>
242
218
  </td>
243
- <% end %>
244
- <td class="no-wrap">
245
- <% if order.user %>
246
- <%= link_to order.email, edit_admin_user_path(order.user) %>
247
- <% else %>
248
- <%= mail_to order.email %>
219
+ <% if Spree::Order.checkout_step_names.include?(:delivery) %>
220
+ <td class="no-wrap">
221
+ <% if order.shipment_state %>
222
+ <span class="badge badge-<%= order.shipment_state %> text-uppercase"><%= Spree.t("shipment_states.#{order.shipment_state}") %></span>
223
+ <span class="filterable js-add-filter" data-ransack-field="q_shipment_state_eq" data-ransack-value="<%= order.shipment_state %>">
224
+ <%= svg_icon name: "filter.svg", width: '14', height: '14' %>
225
+ </span>
226
+ <% end %>
227
+ </td>
249
228
  <% end %>
250
- <% if order.user || order.email %>
251
- <span class="filterable js-add-filter" data-ransack-field="q_email_cont" data-ransack-value="<%= order.email %>">
252
- <%= svg_icon name: "filter.svg", width: '14', height: '14' %>
229
+ <td class="no-wrap">
230
+ <% if order.user %>
231
+ <%= link_to order.email, edit_admin_user_path(order.user) %>
232
+ <% else %>
233
+ <%= mail_to order.email %>
234
+ <% end %>
235
+ <% if order.user || order.email %>
236
+ <span class="filterable js-add-filter" data-ransack-field="q_email_cont" data-ransack-value="<%= order.email %>">
237
+ <%= svg_icon name: "filter.svg", width: '14', height: '14' %>
238
+ </span>
239
+ <% end %>
240
+ </td>
241
+ <td><%= order.display_total.to_html %></td>
242
+ <td class='actions' data-hook="admin_orders_index_row_actions">
243
+ <span class="d-flex justify-content-end">
244
+ <%= link_to_edit_url edit_admin_order_path(order), title: "admin_edit_#{dom_id(order)}", no_text: true if can?(:edit, order) %>
253
245
  </span>
254
- <% end %>
255
- </td>
256
- <td><%= order.display_total.to_html %></td>
257
- <td class='actions actions-1' data-hook="admin_orders_index_row_actions">
258
- <%= link_to_edit_url edit_admin_order_path(order), title: "admin_edit_#{dom_id(order)}", no_text: true if can?(:edit, order) %>
259
- </td>
260
- </tr>
261
- <% end %>
262
- </tbody>
263
- </table>
246
+ </td>
247
+ </tr>
248
+ <% end %>
249
+ </tbody>
250
+ </table>
251
+ </div>
252
+ <button class="nav-x_Advancer nav-x_Advancer_Left" type="button">
253
+ <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="bi bi-chevron-left" viewBox="0 0 16 16">
254
+ <path fill-rule="evenodd" d="M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z" />
255
+ </svg>
256
+ </button>
257
+
258
+ <button class="nav-x_Advancer nav-x_Advancer_Right" type="button">
259
+ <svg xmlns="http://www.w3.org/2000/svg" fill="currentColor" class="bi bi-chevron-right" viewBox="0 0 16 16">
260
+ <path fill-rule="evenodd" d="M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z" />
261
+ </svg>
262
+ </button>
264
263
  </div>
265
264
  <% else %>
266
265
  <div class="alert alert-info no-objects-found">