solidus_backend 2.10.3 → 2.11.4

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 (241) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/spree/backend.js +4 -1
  3. data/app/assets/javascripts/spree/backend/adjustments.js +1 -1
  4. data/app/assets/javascripts/spree/backend/admin.js +18 -29
  5. data/app/assets/javascripts/spree/backend/collections/states.js +1 -1
  6. data/app/assets/javascripts/spree/backend/components/selectable_table.js +5 -0
  7. data/app/assets/javascripts/spree/backend/components/selectable_table/return_items.js +5 -0
  8. data/app/assets/javascripts/spree/backend/components/selectable_table/summary.js +7 -0
  9. data/app/assets/javascripts/spree/backend/components/sortable_table.js +31 -25
  10. data/app/assets/javascripts/spree/backend/models/order.js +3 -3
  11. data/app/assets/javascripts/spree/backend/models/payment.js +1 -1
  12. data/app/assets/javascripts/spree/backend/models/shipment.js +1 -1
  13. data/app/assets/javascripts/spree/backend/models/stock_item.js +1 -1
  14. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +2 -2
  15. data/app/assets/javascripts/spree/backend/option_value_picker.js +2 -2
  16. data/app/assets/javascripts/spree/backend/product_picker.js +2 -2
  17. data/app/assets/javascripts/spree/backend/routes.js +40 -21
  18. data/app/assets/javascripts/spree/backend/shipments.js +5 -5
  19. data/app/assets/javascripts/spree/backend/shipping_methods/stock_locations_picker.js +18 -0
  20. data/app/assets/javascripts/spree/backend/stock_management.js +4 -2
  21. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +2 -2
  22. data/app/assets/javascripts/spree/backend/taxons.js +3 -3
  23. data/app/assets/javascripts/spree/backend/templates/index.js +2 -0
  24. data/app/assets/javascripts/spree/backend/templates/orders/customer_details/autocomplete.hbs +2 -2
  25. data/app/assets/javascripts/spree/backend/templates/stock_items/stock_location_stock_item.hbs +5 -1
  26. data/app/assets/javascripts/spree/backend/templates/tables/return_item_sum_amount.hbs +7 -0
  27. data/app/assets/javascripts/spree/backend/templates/tables/selectable_label.hbs +6 -0
  28. data/app/assets/javascripts/spree/backend/user_picker.js +3 -4
  29. data/app/assets/javascripts/spree/backend/variant_autocomplete.js +2 -2
  30. data/app/assets/javascripts/spree/backend/views/cart/empty_cart_button.js +2 -2
  31. data/app/assets/javascripts/spree/backend/views/index.js +4 -0
  32. data/app/assets/javascripts/spree/backend/views/order/address.js +1 -1
  33. data/app/assets/javascripts/spree/backend/views/order/customer_select.js +2 -3
  34. data/app/assets/javascripts/spree/backend/views/order/details_adjustments.js +4 -1
  35. data/app/assets/javascripts/spree/backend/views/stock/edit_stock_item_row.js +4 -0
  36. data/app/assets/javascripts/spree/backend/views/tables/return_items.js +9 -0
  37. data/app/assets/javascripts/spree/backend/views/tables/selectable_table.js +70 -0
  38. data/app/assets/javascripts/spree/backend/views/tables/selectable_table/sum_return_item_amount.js +32 -0
  39. data/app/assets/javascripts/spree/backend/views/tables/selectable_table/summary.js +45 -0
  40. data/app/assets/stylesheets/spree/backend/_bootstrap_custom.scss +1 -1
  41. data/app/assets/stylesheets/spree/backend/components/_actions.scss +62 -0
  42. data/app/assets/stylesheets/spree/backend/components/_messages.scss +6 -6
  43. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +4 -5
  44. data/app/assets/stylesheets/spree/backend/globals/_deprecation.scss +1 -1
  45. data/app/assets/stylesheets/spree/backend/globals/_variables.scss +3 -28
  46. data/app/assets/stylesheets/spree/backend/sections/_orders.scss +5 -1
  47. data/app/assets/stylesheets/spree/backend/sections/_style_guide.scss +4 -0
  48. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +1 -0
  49. data/app/controllers/spree/admin/base_controller.rb +6 -0
  50. data/app/controllers/spree/admin/cancellations_controller.rb +2 -0
  51. data/app/controllers/spree/admin/customer_returns_controller.rb +4 -4
  52. data/app/controllers/spree/admin/images_controller.rb +2 -1
  53. data/app/controllers/spree/admin/orders/customer_details_controller.rb +2 -0
  54. data/app/controllers/spree/admin/orders_controller.rb +7 -2
  55. data/app/controllers/spree/admin/payments_controller.rb +3 -1
  56. data/app/controllers/spree/admin/product_properties_controller.rb +1 -1
  57. data/app/controllers/spree/admin/products_controller.rb +18 -24
  58. data/app/controllers/spree/admin/promotion_codes_controller.rb +9 -4
  59. data/app/controllers/spree/admin/refunds_controller.rb +20 -0
  60. data/app/controllers/spree/admin/resource_controller.rb +27 -7
  61. data/app/controllers/spree/admin/return_authorizations_controller.rb +1 -1
  62. data/app/controllers/spree/admin/root_controller.rb +1 -1
  63. data/app/controllers/spree/admin/search_controller.rb +1 -2
  64. data/app/controllers/spree/admin/stock_items_controller.rb +6 -5
  65. data/app/controllers/spree/admin/stock_locations_controller.rb +4 -0
  66. data/app/controllers/spree/admin/stock_movements_controller.rb +7 -0
  67. data/app/controllers/spree/admin/taxons_controller.rb +12 -1
  68. data/app/controllers/spree/admin/users/api_key_controller.rb +29 -0
  69. data/app/controllers/spree/admin/users_controller.rb +37 -20
  70. data/app/controllers/spree/admin/variants_controller.rb +4 -2
  71. data/app/controllers/spree/admin/zones_controller.rb +1 -1
  72. data/app/helpers/spree/admin/base_helper.rb +4 -0
  73. data/app/helpers/spree/admin/customer_returns_helper.rb +1 -1
  74. data/app/helpers/spree/admin/navigation_helper.rb +1 -1
  75. data/app/helpers/spree/admin/orders_helper.rb +8 -4
  76. data/app/helpers/spree/admin/stock_movements_helper.rb +8 -4
  77. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +2 -3
  78. data/app/views/spree/admin/images/index.html.erb +25 -21
  79. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +8 -1
  80. data/app/views/spree/admin/option_types/edit.html.erb +3 -1
  81. data/app/views/spree/admin/orders/customer_details/_form.html.erb +13 -13
  82. data/app/views/spree/admin/orders/index.html.erb +23 -13
  83. data/app/views/spree/admin/payment_methods/_form.html.erb +7 -2
  84. data/app/views/spree/admin/payments/index.html.erb +3 -1
  85. data/app/views/spree/admin/prices/_master_variant_table.html.erb +3 -3
  86. data/app/views/spree/admin/prices/_table.html.erb +3 -3
  87. data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +7 -2
  88. data/app/views/spree/admin/product_properties/index.html.erb +14 -2
  89. data/app/views/spree/admin/products/_form.html.erb +13 -2
  90. data/app/views/spree/admin/products/index.html.erb +2 -2
  91. data/app/views/spree/admin/promotion_codes/index.html.erb +1 -1
  92. data/app/views/spree/admin/promotions/_actions.html.erb +1 -1
  93. data/app/views/spree/admin/promotions/_activations_new.html.erb +1 -1
  94. data/app/views/spree/admin/promotions/_rules.html.erb +1 -1
  95. data/app/views/spree/admin/promotions/edit.html.erb +2 -2
  96. data/app/views/spree/admin/promotions/index.html.erb +12 -5
  97. data/app/views/spree/admin/return_authorizations/_form.html.erb +3 -10
  98. data/app/views/spree/admin/return_authorizations/index.html.erb +1 -1
  99. data/app/views/spree/admin/search/users.json.jbuilder +15 -1
  100. data/app/views/spree/admin/shared/_address.html.erb +6 -6
  101. data/app/views/spree/admin/shared/_address_form.html.erb +15 -8
  102. data/app/views/spree/admin/shared/_order_submenu.html.erb +4 -4
  103. data/app/views/spree/admin/shared/_payments_tabs.html.erb +1 -1
  104. data/app/views/spree/admin/shared/_settings_checkout_tabs.html.erb +5 -5
  105. data/app/views/spree/admin/shared/_settings_sub_menu.html.erb +6 -6
  106. data/app/views/spree/admin/shared/_shipping_tabs.html.erb +3 -3
  107. data/app/views/spree/admin/shared/_taxes_tabs.html.erb +2 -2
  108. data/app/views/spree/admin/shared/preference_fields/_encrypted_string.html.erb +12 -0
  109. data/app/views/spree/admin/shipping_methods/_form.html.erb +18 -0
  110. data/app/views/spree/admin/stock_items/_stock_management.html.erb +1 -1
  111. data/app/views/spree/admin/stock_locations/edit.html.erb +1 -1
  112. data/app/views/spree/admin/stock_locations/index.html.erb +3 -1
  113. data/app/views/spree/admin/stock_movements/index.html.erb +30 -1
  114. data/app/views/spree/admin/store_credits/index.html.erb +1 -1
  115. data/app/views/spree/admin/stores/_form.html.erb +6 -0
  116. data/app/views/spree/admin/style_guide/topics/tables/_building_tables.html.erb +27 -3
  117. data/app/views/spree/admin/style_guide/topics/typography/_colors.html.erb +3 -3
  118. data/app/views/spree/admin/tax_categories/_form.html.erb +1 -0
  119. data/app/views/spree/admin/taxons/attachment_forms/_paperclip.html.erb +1 -1
  120. data/app/views/spree/admin/users/_form.html.erb +2 -2
  121. data/app/views/spree/admin/users/_tabs.html.erb +1 -1
  122. data/app/views/spree/admin/users/edit.html.erb +4 -4
  123. data/app/views/spree/admin/users/items.html.erb +5 -3
  124. data/app/views/spree/admin/users/orders.html.erb +5 -3
  125. data/app/views/spree/admin/variants/_table_filter.html.erb +1 -1
  126. data/app/views/spree/admin/variants/index.html.erb +2 -2
  127. data/config/initializers/form_builder.rb +2 -2
  128. data/lib/spree/backend/engine.rb +0 -2
  129. data/lib/spree/backend_configuration.rb +14 -1
  130. data/solidus_backend.gemspec +4 -4
  131. metadata +20 -119
  132. data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +0 -35
  133. data/script/rails +0 -10
  134. data/spec/controllers/spree/admin/base_controller_spec.rb +0 -26
  135. data/spec/controllers/spree/admin/cancellations_controller_spec.rb +0 -83
  136. data/spec/controllers/spree/admin/customer_returns_controller_spec.rb +0 -235
  137. data/spec/controllers/spree/admin/locale_controller_spec.rb +0 -45
  138. data/spec/controllers/spree/admin/missing_products_controller_spec.rb +0 -18
  139. data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +0 -128
  140. data/spec/controllers/spree/admin/orders_controller_spec.rb +0 -408
  141. data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +0 -95
  142. data/spec/controllers/spree/admin/payments_controller_spec.rb +0 -194
  143. data/spec/controllers/spree/admin/prices_controller_spec.rb +0 -45
  144. data/spec/controllers/spree/admin/product_properties_controller_spec.rb +0 -71
  145. data/spec/controllers/spree/admin/products_controller_spec.rb +0 -270
  146. data/spec/controllers/spree/admin/promotion_actions_controller_spec.rb +0 -23
  147. data/spec/controllers/spree/admin/promotion_codes_controller_spec.rb +0 -32
  148. data/spec/controllers/spree/admin/promotion_rules_controller_spec.rb +0 -36
  149. data/spec/controllers/spree/admin/promotions_controller_spec.rb +0 -122
  150. data/spec/controllers/spree/admin/refunds_controller_spec.rb +0 -35
  151. data/spec/controllers/spree/admin/reimbursements_controller_spec.rb +0 -137
  152. data/spec/controllers/spree/admin/resource_controller_spec.rb +0 -201
  153. data/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +0 -291
  154. data/spec/controllers/spree/admin/return_items_controller_spec.rb +0 -29
  155. data/spec/controllers/spree/admin/root_controller_spec.rb +0 -43
  156. data/spec/controllers/spree/admin/search_controller_spec.rb +0 -106
  157. data/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +0 -16
  158. data/spec/controllers/spree/admin/stock_items_controller_spec.rb +0 -52
  159. data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +0 -44
  160. data/spec/controllers/spree/admin/store_credits_controller_spec.rb +0 -311
  161. data/spec/controllers/spree/admin/users_controller_spec.rb +0 -287
  162. data/spec/controllers/spree/admin/variants_controller_spec.rb +0 -71
  163. data/spec/features/admin/configuration/payment_methods_spec.rb +0 -176
  164. data/spec/features/admin/configuration/shipping_methods_spec.rb +0 -126
  165. data/spec/features/admin/configuration/stock_locations_spec.rb +0 -54
  166. data/spec/features/admin/configuration/store_spec.rb +0 -62
  167. data/spec/features/admin/configuration/tax_categories_spec.rb +0 -58
  168. data/spec/features/admin/configuration/tax_rates_spec.rb +0 -31
  169. data/spec/features/admin/configuration/taxonomies_spec.rb +0 -61
  170. data/spec/features/admin/configuration/zones_spec.rb +0 -41
  171. data/spec/features/admin/homepage_spec.rb +0 -86
  172. data/spec/features/admin/javascript_format_money_spec.rb +0 -22
  173. data/spec/features/admin/locale_spec.rb +0 -34
  174. data/spec/features/admin/orders/adjustments_promotions_spec.rb +0 -55
  175. data/spec/features/admin/orders/adjustments_spec.rb +0 -130
  176. data/spec/features/admin/orders/cancelling_and_resuming_spec.rb +0 -45
  177. data/spec/features/admin/orders/cancelling_inventory_spec.rb +0 -50
  178. data/spec/features/admin/orders/customer_details_spec.rb +0 -203
  179. data/spec/features/admin/orders/customer_returns_spec.rb +0 -41
  180. data/spec/features/admin/orders/line_items_spec.rb +0 -52
  181. data/spec/features/admin/orders/listing_spec.rb +0 -186
  182. data/spec/features/admin/orders/log_entries_spec.rb +0 -56
  183. data/spec/features/admin/orders/new_order_spec.rb +0 -379
  184. data/spec/features/admin/orders/new_refund_spec.rb +0 -35
  185. data/spec/features/admin/orders/order_details_spec.rb +0 -591
  186. data/spec/features/admin/orders/payments_spec.rb +0 -330
  187. data/spec/features/admin/orders/return_authorizations_spec.rb +0 -56
  188. data/spec/features/admin/orders/return_payment_state_spec.rb +0 -65
  189. data/spec/features/admin/orders/risk_analysis_spec.rb +0 -49
  190. data/spec/features/admin/orders/shipments_spec.rb +0 -145
  191. data/spec/features/admin/payments/store_credits_spec.rb +0 -23
  192. data/spec/features/admin/products/edit/images_spec.rb +0 -76
  193. data/spec/features/admin/products/edit/products_spec.rb +0 -92
  194. data/spec/features/admin/products/edit/taxons_spec.rb +0 -57
  195. data/spec/features/admin/products/edit/variants_spec.rb +0 -63
  196. data/spec/features/admin/products/option_types_spec.rb +0 -116
  197. data/spec/features/admin/products/pricing_spec.rb +0 -127
  198. data/spec/features/admin/products/products_spec.rb +0 -348
  199. data/spec/features/admin/products/properties_spec.rb +0 -141
  200. data/spec/features/admin/products/stock_management_spec.rb +0 -101
  201. data/spec/features/admin/products/variant_spec.rb +0 -89
  202. data/spec/features/admin/promotion_adjustments_spec.rb +0 -286
  203. data/spec/features/admin/promotions/option_value_rule_spec.rb +0 -90
  204. data/spec/features/admin/promotions/product_rule_spec.rb +0 -35
  205. data/spec/features/admin/promotions/promotion_categories_spec.rb +0 -83
  206. data/spec/features/admin/promotions/promotion_code_batches_spec.rb +0 -37
  207. data/spec/features/admin/promotions/promotion_code_spec.rb +0 -31
  208. data/spec/features/admin/promotions/promotion_spec.rb +0 -52
  209. data/spec/features/admin/promotions/tiered_calculator_spec.rb +0 -76
  210. data/spec/features/admin/promotions/user_rule_spec.rb +0 -42
  211. data/spec/features/admin/reimbursements_spec.rb +0 -18
  212. data/spec/features/admin/store_credits_spec.rb +0 -132
  213. data/spec/features/admin/stores_spec.rb +0 -37
  214. data/spec/features/admin/style_guide_spec.rb +0 -14
  215. data/spec/features/admin/taxons_spec.rb +0 -90
  216. data/spec/features/admin/users_spec.rb +0 -412
  217. data/spec/fixtures/files/ror_ringer.jpeg +0 -0
  218. data/spec/helpers/admin/base_helper_spec.rb +0 -49
  219. data/spec/helpers/admin/navigation_helper_spec.rb +0 -139
  220. data/spec/helpers/admin/stock_movements_helper_spec.rb +0 -29
  221. data/spec/helpers/admin/store_credit_events_helper_spec.rb +0 -97
  222. data/spec/helpers/promotion_rules_helper_spec.rb +0 -14
  223. data/spec/javascripts/fixtures/_boot.html.erb +0 -8
  224. data/spec/javascripts/fixtures/number_with_currency/with_currency_select.html.erb +0 -3
  225. data/spec/javascripts/fixtures/number_with_currency/without_select.html.erb +0 -3
  226. data/spec/javascripts/format_money_spec.js +0 -48
  227. data/spec/javascripts/spec_helper.js +0 -13
  228. data/spec/javascripts/support/show_errors.js +0 -8
  229. data/spec/javascripts/support/with_translations.js +0 -11
  230. data/spec/javascripts/translation_spec.js +0 -58
  231. data/spec/javascripts/views/number_with_currency_spec.js +0 -72
  232. data/spec/lib/spree/backend_configuration/menu_item_spec.rb +0 -17
  233. data/spec/lib/spree/backend_configuration_spec.rb +0 -22
  234. data/spec/spec_helper.rb +0 -123
  235. data/spec/support/appear_before_matcher.rb +0 -10
  236. data/spec/support/feature/base_feature_helper.rb +0 -17
  237. data/spec/support/feature/order_feature_helper.rb +0 -27
  238. data/spec/teaspoon_env.rb +0 -51
  239. data/spec/test_views/spree/admin/widgets/edit.html.erb +0 -1
  240. data/spec/test_views/spree/admin/widgets/new.html.erb +0 -1
  241. data/spec/views/spree/admin/shared/navigation_footer_spec.rb +0 -67
@@ -44,16 +44,16 @@
44
44
  color: $body-color;
45
45
 
46
46
  &.notice {
47
- background-color: rgba(lighten($color-notice, 15), .95);
48
- border-top-color: $color-notice;
47
+ background-color: rgba(theme-color-level(warning, -8), .95);
48
+ border-top-color: theme-color(warning);
49
49
  }
50
50
  &.success {
51
- background-color: rgba(lighten($color-success, 30), .95);
52
- border-top-color: $color-success;
51
+ background-color: rgba(theme-color-level(success, -10), .95);
52
+ border-top-color: theme-color(success);
53
53
  }
54
54
  &.error {
55
- background-color: rgba(lighten($color-error, 30), .95);
56
- border-top-color: $color-error;
55
+ background-color: rgba(theme-color-level(danger, -8), .95);
56
+ border-top-color: theme-color(danger);
57
57
  }
58
58
  }
59
59
 
@@ -64,10 +64,6 @@ $padding-y-navbar-submenu: 9px;
64
64
 
65
65
  .brand-link {
66
66
  overflow: hidden;
67
-
68
- img {
69
- max-width: 125px;
70
- }
71
67
  }
72
68
 
73
69
  .admin-nav-menu {
@@ -355,8 +351,11 @@ nav.menu {
355
351
 
356
352
  .brand-link {
357
353
  display: block;
354
+ height: $main-header-height - 1px;
355
+ overflow: hidden;
358
356
 
359
357
  img {
360
- max-width: 125px;
358
+ max-height: 100%;
359
+ max-width: 100%;
361
360
  }
362
361
  }
@@ -11,7 +11,7 @@ $output-solidus-deprecation-warnings: true !default;
11
11
  @if $output-solidus-deprecation-warnings == true {
12
12
  @if global-variable-exists($variable) {
13
13
  @warn "[Solidus] [Deprecation] `$#{$variable}` is deprecated and will be " +
14
- "removed in 3.0.0. Please use Bootstraps $#{$replacement} instead";
14
+ "removed in 3.0.0. Please use Bootstraps #{$replacement} instead";
15
15
  }
16
16
  }
17
17
  }
@@ -62,11 +62,11 @@ $color-tab-active-bg: $color-white !default;
62
62
  $color-tab-active-border: $color-white !default;
63
63
 
64
64
  // Basic flash colors
65
- @include bs-deprecated-variable("color-success", "brand-success");
65
+ @include bs-deprecated-variable("color-success", "theme-color(success)");
66
66
  $color-success: $color-green !default;
67
- @include bs-deprecated-variable("color-notice", "brand-warning");
67
+ @include bs-deprecated-variable("color-notice", "theme-color(warning)");
68
68
  $color-notice: $color-yellow !default;
69
- @include bs-deprecated-variable("color-error", "brand-danger");
69
+ @include bs-deprecated-variable("color-error", "theme-color(danger)");
70
70
  $color-error: $color-red !default;
71
71
 
72
72
  // Breadcrumb custom variable
@@ -113,26 +113,6 @@ $color-pill-warning-text: $color-pill-text;
113
113
  $color-pill-error: #ff967b;
114
114
  $color-pill-error-text: $color-pill-text;
115
115
 
116
- // Actions colors
117
- $color-action-edit-bg: lighten($color-success, (5 * 5) ) !default;
118
- $color-action-edit-brd: lighten($color-success, (20 * 5) ) !default;
119
- $color-action-clone-bg: lighten($color-notice, (5 * 5) ) !default;
120
- $color-action-clone-brd: lighten($color-notice, (15 * 5) ) !default;
121
- $color-action-remove-bg: lighten($color-error, (5 * 5) ) !default;
122
- $color-action-remove-brd: lighten($color-error, (10 * 5) ) !default;
123
- $color-action-void-bg: lighten($color-error, (10 * 5) ) !default;
124
- $color-action-void-brd: lighten($color-error, (20 * 5) ) !default;
125
- $color-action-cancel-bg: lighten($color-notice, (10 * 5) ) !default;
126
- $color-action-cancel-brd: lighten($color-notice, (20 * 5) ) !default;
127
- $color-action-capture-bg: lighten($color-success, (5 * 5) ) !default;
128
- $color-action-capture-brd: lighten($color-success, (20 * 5) ) !default;
129
- $color-action-save-bg: lighten($color-success, (5 * 5) ) !default;
130
- $color-action-save-brd: lighten($color-success, (20 * 5) ) !default;
131
- $color-action-mail-bg: lighten($color-success, (5 * 5) ) !default;
132
- $color-action-mail-brd: lighten($color-success, (20 * 5) ) !default;
133
- $color-action-failure-bg: lighten($color-error, (10 * 5) ) !default;
134
- $color-action-failure-brd: lighten($color-error, (20 * 5) ) !default;
135
-
136
116
  // Available states
137
117
  $states: (
138
118
  active,
@@ -160,11 +140,6 @@ $states: (
160
140
  void
161
141
  ) !default;
162
142
 
163
- // Available actions
164
- $actions: edit, clone, remove, void, capture, save, cancel, mail, failure !default;
165
- $actions-bg-colors: $color-action-edit-bg, $color-action-clone-bg, $color-action-remove-bg, $color-action-void-bg, $color-action-capture-bg, $color-action-save-bg, $color-action-cancel-bg, $color-action-mail-bg, $color-action-failure-bg !default;
166
- $actions-brd-colors: $color-action-edit-brd, $color-action-clone-brd, $color-action-remove-brd, $color-action-void-brd, $color-action-capture-brd, $color-action-save-brd, $color-action-cancel-brd, $color-action-mail-brd, $color-action-failure-brd !default;
167
-
168
143
  // Sidebar
169
144
  //--------------------------------------------------------------
170
145
  $width-sidebar: 200px !default;
@@ -65,7 +65,11 @@
65
65
  }
66
66
 
67
67
  label[for="order_bill_address_attributes_firstname"] {
68
- margin-top: 45px;
68
+ margin-top: 53.5px;
69
+ }
70
+
71
+ label[for="order_bill_address_attributes_name"] {
72
+ margin-top: 53.5px;
69
73
  }
70
74
 
71
75
  #risk_analysis legend {
@@ -122,6 +122,10 @@
122
122
  .style-guide-code,
123
123
  .style-guide-result {
124
124
  margin: 1rem 0;
125
+
126
+ img {
127
+ max-width: none;
128
+ }
125
129
  }
126
130
 
127
131
  .color-variables {
@@ -3,6 +3,7 @@ input[type="password"],
3
3
  input[type="email"],
4
4
  input[type="date"],
5
5
  input[type="datetime"],
6
+ input[type="datetime-local"],
6
7
  input[type="time"],
7
8
  input[type="url"],
8
9
  input[type="number"],
@@ -62,6 +62,12 @@ module Spree
62
62
  def order_mutex_redirect_path
63
63
  edit_admin_order_path(@order)
64
64
  end
65
+
66
+ def resource_not_found(flash_class:, redirect_url:)
67
+ flash[:error] = flash_message_for(flash_class.new, :not_found)
68
+ redirect_to redirect_url
69
+ nil
70
+ end
65
71
  end
66
72
  end
67
73
  end
@@ -36,6 +36,8 @@ module Spree
36
36
  def load_order
37
37
  @order = Spree::Order.find_by!(number: params[:order_id])
38
38
  authorize! action, @order
39
+ rescue ActiveRecord::RecordNotFound
40
+ resource_not_found(flash_class: Spree::Order, redirect_url: admin_orders_path)
39
41
  end
40
42
 
41
43
  def model_class
@@ -37,13 +37,15 @@ module Spree
37
37
  end
38
38
 
39
39
  def find_resource
40
- Spree::CustomerReturn.accessible_by(current_ability, :read).find(params[:id])
40
+ Spree::CustomerReturn.accessible_by(current_ability, :show).find(params[:id])
41
41
  end
42
42
 
43
43
  def collection
44
44
  parent # trigger loading the order
45
+ return unless @order
46
+
45
47
  @collection ||= Spree::ReturnItem
46
- .accessible_by(current_ability, :read)
48
+ .accessible_by(current_ability)
47
49
  .where(inventory_unit_id: @order.inventory_units.pluck(:id))
48
50
  .map(&:customer_return).uniq.compact
49
51
  @customer_returns = @collection
@@ -70,8 +72,6 @@ module Spree
70
72
  return_item = item_params[:id] ? Spree::ReturnItem.find(item_params[:id]) : Spree::ReturnItem.new
71
73
  return_item.assign_attributes(item_params)
72
74
 
73
- return_item.skip_customer_return_processing = true
74
-
75
75
  if item_params[:reception_status_event].blank?
76
76
  return redirect_to(new_object_url, flash: { error: 'Reception status choice required' })
77
77
  end
@@ -4,7 +4,6 @@ module Spree
4
4
  module Admin
5
5
  class ImagesController < ResourceController
6
6
  before_action :load_data
7
-
8
7
  create.before :set_viewable
9
8
  update.before :set_viewable
10
9
 
@@ -24,6 +23,8 @@ module Spree
24
23
  [variant.sku_and_options_text, variant.id]
25
24
  end
26
25
  @variants.insert(0, [t('spree.all'), @product.master.id])
26
+ rescue ActiveRecord::RecordNotFound
27
+ resource_not_found(flash_class: Spree::Product, redirect_url: admin_products_path)
27
28
  end
28
29
 
29
30
  def set_viewable
@@ -61,6 +61,8 @@ module Spree
61
61
 
62
62
  def load_order
63
63
  @order = Spree::Order.includes(:adjustments).find_by!(number: params[:order_id])
64
+ rescue ActiveRecord::RecordNotFound
65
+ resource_not_found(flash_class: Spree::Order, redirect_url: admin_orders_path)
64
66
  end
65
67
 
66
68
  def model_class
@@ -10,7 +10,6 @@ module Spree
10
10
  around_action :lock_order, only: [:update, :advance, :complete, :confirm, :cancel, :resume, :approve, :resend]
11
11
 
12
12
  rescue_from Spree::Order::InsufficientStock, with: :insufficient_stock_error
13
-
14
13
  respond_to :html
15
14
 
16
15
  def index
@@ -61,7 +60,11 @@ module Spree
61
60
 
62
61
  def new
63
62
  user = Spree.user_class.find_by(id: params[:user_id]) if params[:user_id]
64
- @order = Spree::Core::Importer::Order.import(user, order_params)
63
+ order_importer_params = order_params
64
+ order_importer_params[:bill_address] = user&.bill_address
65
+ order_importer_params[:ship_address] = user&.ship_address
66
+
67
+ @order = Spree::Core::Importer::Order.import(user, order_importer_params)
65
68
  redirect_to cart_admin_order_url(@order)
66
69
  end
67
70
 
@@ -164,6 +167,8 @@ module Spree
164
167
  def load_order
165
168
  @order = Spree::Order.includes(:adjustments).find_by!(number: params[:id])
166
169
  authorize! action, @order
170
+ rescue ActiveRecord::RecordNotFound
171
+ resource_not_found(flash_class: Spree::Order, redirect_url: admin_orders_path)
167
172
  end
168
173
 
169
174
  # Used for extensions which need to provide their own custom event links on the order details view.
@@ -80,7 +80,7 @@ module Spree
80
80
 
81
81
  def load_data
82
82
  @amount = params[:amount] || load_order.total
83
- @payment_methods = Spree::PaymentMethod.active.available_to_admin
83
+ @payment_methods = Spree::PaymentMethod.active.available_to_admin.ordered_by_position
84
84
  if @payment && @payment.payment_method
85
85
  @payment_method = @payment.payment_method
86
86
  else
@@ -92,6 +92,8 @@ module Spree
92
92
  @order = Spree::Order.find_by!(number: params[:order_id])
93
93
  authorize! action, @order
94
94
  @order
95
+ rescue ActiveRecord::RecordNotFound
96
+ resource_not_found(flash_class: Spree::Order, redirect_url: admin_orders_path)
95
97
  end
96
98
 
97
99
  def load_payment
@@ -15,7 +15,7 @@ module Spree
15
15
  end
16
16
 
17
17
  def setup_property
18
- @product.product_properties.build
18
+ @product.product_properties.build if @product.product_properties.empty?
19
19
  end
20
20
 
21
21
  def setup_variant_property_rules
@@ -9,6 +9,7 @@ module Spree
9
9
  update.before :update_before
10
10
  helper_method :clone_object_url
11
11
  before_action :split_params, only: [:create, :update]
12
+ before_action :normalize_variant_property_rules, only: [:update]
12
13
 
13
14
  def show
14
15
  redirect_to action: :edit
@@ -19,29 +20,6 @@ module Spree
19
20
  respond_with(@collection)
20
21
  end
21
22
 
22
- def update
23
- if updating_variant_property_rules?
24
- params[:product][:variant_property_rules_attributes].each do |_index, param_attrs|
25
- param_attrs[:option_value_ids] = param_attrs[:option_value_ids].split(',')
26
- end
27
- end
28
- invoke_callbacks(:update, :before)
29
- if @object.update(permitted_resource_params)
30
- invoke_callbacks(:update, :after)
31
- flash[:success] = flash_message_for(@object, :successfully_updated)
32
- respond_with(@object) do |format|
33
- format.html { redirect_to location_after_save }
34
- format.js { render layout: false }
35
- end
36
- else
37
- # Stops people submitting blank slugs, causing errors when they try to
38
- # update the product again
39
- @product.slug = @product.slug_was if @product.slug.blank?
40
- invoke_callbacks(:update, :fails)
41
- respond_with(@object)
42
- end
43
- end
44
-
45
23
  def destroy
46
24
  @product = Spree::Product.friendly.find(params[:id])
47
25
  @product.discard
@@ -78,7 +56,7 @@ module Spree
78
56
  end
79
57
 
80
58
  def find_resource
81
- Spree::Product.with_deleted.friendly.find(params[:id])
59
+ Spree::Product.with_discarded.friendly.find(params[:id])
82
60
  end
83
61
 
84
62
  def location_after_save
@@ -96,6 +74,7 @@ module Spree
96
74
 
97
75
  def load_data
98
76
  @tax_categories = Spree::TaxCategory.order(:name)
77
+ @default_tax_category = @tax_categories.detect(&:is_default)
99
78
  @shipping_categories = Spree::ShippingCategory.order(:name)
100
79
  end
101
80
 
@@ -138,6 +117,21 @@ module Spree
138
117
  def updating_variant_property_rules?
139
118
  params[:product][:variant_property_rules_attributes].present?
140
119
  end
120
+
121
+ def render_after_update_error
122
+ # Stops people submitting blank slugs, causing errors when they try to
123
+ # update the product again
124
+ @product.slug = @product.slug_was if @product.slug.blank?
125
+ render action: 'edit'
126
+ end
127
+
128
+ def normalize_variant_property_rules
129
+ return unless updating_variant_property_rules?
130
+
131
+ params[:product][:variant_property_rules_attributes].each do |_index, param_attrs|
132
+ param_attrs[:option_value_ids] = param_attrs[:option_value_ids].split(',')
133
+ end
134
+ end
141
135
  end
142
136
  end
143
137
  end
@@ -6,7 +6,7 @@ module Spree
6
6
  module Admin
7
7
  class PromotionCodesController < Spree::Admin::ResourceController
8
8
  def index
9
- @promotion = Spree::Promotion.accessible_by(current_ability, :read).find(params[:promotion_id])
9
+ @promotion = Spree::Promotion.accessible_by(current_ability, :show).find(params[:promotion_id])
10
10
  @promotion_codes = @promotion.promotion_codes.order(:value)
11
11
 
12
12
  respond_to do |format|
@@ -22,12 +22,17 @@ module Spree
22
22
  end
23
23
 
24
24
  def new
25
- @promotion = Spree::Promotion.accessible_by(current_ability, :read).find(params[:promotion_id])
26
- @promotion_code = @promotion.promotion_codes.build
25
+ @promotion = Spree::Promotion.accessible_by(current_ability, :show).find(params[:promotion_id])
26
+ if @promotion.apply_automatically
27
+ flash[:error] = t('activerecord.errors.models.spree/promotion_code.attributes.base.disallowed_with_apply_automatically')
28
+ redirect_to admin_promotion_promotion_codes_url(@promotion)
29
+ else
30
+ @promotion_code = @promotion.promotion_codes.build
31
+ end
27
32
  end
28
33
 
29
34
  def create
30
- @promotion = Spree::Promotion.accessible_by(current_ability, :read).find(params[:promotion_id])
35
+ @promotion = Spree::Promotion.accessible_by(current_ability, :show).find(params[:promotion_id])
31
36
  @promotion_code = @promotion.promotion_codes.build(value: params[:promotion_code][:value])
32
37
 
33
38
  if @promotion_code.save
@@ -10,6 +10,22 @@ module Spree
10
10
 
11
11
  rescue_from Spree::Core::GatewayError, with: :spree_core_gateway_error
12
12
 
13
+ def create
14
+ @refund.attributes = refund_params
15
+
16
+ if @refund.valid? && @refund.perform!
17
+ flash[:success] = flash_message_for(@refund, :successfully_created)
18
+ respond_with(@refund) do |format|
19
+ format.html { redirect_to location_after_save }
20
+ end
21
+ else
22
+ flash.now[:error] = @refund.errors.full_messages.join(", ")
23
+ respond_with(@refund) do |format|
24
+ format.html { render action: 'new' }
25
+ end
26
+ end
27
+ end
28
+
13
29
  private
14
30
 
15
31
  def location_after_save
@@ -25,6 +41,10 @@ module Spree
25
41
  @refund_reasons ||= Spree::RefundReason.active.all
26
42
  end
27
43
 
44
+ def refund_params
45
+ params.require(:refund).permit!
46
+ end
47
+
28
48
  def build_resource
29
49
  super.tap do |refund|
30
50
  refund.amount = refund.payment.credit_allowed
@@ -5,7 +5,10 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
5
5
 
6
6
  helper_method :new_object_url, :edit_object_url, :object_url, :collection_url
7
7
  before_action :load_resource, except: :update_positions
8
- rescue_from ActiveRecord::RecordNotFound, with: :resource_not_found
8
+ rescue_from ActiveRecord::RecordNotFound do |exception|
9
+ resource_not_found(flash_class: exception.model.constantize)
10
+ end
11
+ rescue_from ActiveRecord::RecordInvalid, with: :resource_invalid
9
12
 
10
13
  respond_to :html
11
14
 
@@ -76,7 +79,7 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
76
79
  def update_positions
77
80
  ActiveRecord::Base.transaction do
78
81
  params[:positions].each do |id, index|
79
- model_class.find(id).set_list_position(index)
82
+ model_class.find_by(id: id)&.set_list_position(index)
80
83
  end
81
84
  end
82
85
 
@@ -133,9 +136,8 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
133
136
  end
134
137
  end
135
138
 
136
- def resource_not_found
137
- flash[:error] = flash_message_for(model_class.new, :not_found)
138
- redirect_to collection_url
139
+ def resource_not_found(flash_class: model_class, redirect_url: collection_url)
140
+ super
139
141
  end
140
142
 
141
143
  def model_class
@@ -192,12 +194,14 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
192
194
  if parent?
193
195
  @parent ||= self.class.parent_data[:model_class]
194
196
  .includes(self.class.parent_data[:includes])
195
- .find_by(self.class.parent_data[:find_by] => params["#{parent_model_name}_id"])
197
+ .find_by!(self.class.parent_data[:find_by] => params["#{parent_model_name}_id"])
196
198
  instance_variable_set("@#{parent_model_name}", @parent)
197
199
  else
198
200
  Spree::Deprecation.warn "Calling #parent is deprecated on a ResourceController which has not defined a belongs_to"
199
201
  nil
200
202
  end
203
+ rescue ActiveRecord::RecordNotFound => e
204
+ resource_not_found(flash_class: e.model.constantize, redirect_url: spree.polymorphic_url([:admin, parent_model_name.pluralize]))
201
205
  end
202
206
 
203
207
  def parent?
@@ -221,7 +225,8 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
221
225
  end
222
226
 
223
227
  def collection
224
- return parent.send(controller_name) if parent?
228
+ return parent.send(controller_name) if parent? && parent
229
+
225
230
  if model_class.respond_to?(:accessible_by) && !current_ability.has_block?(params[:action], model_class)
226
231
  model_class.accessible_by(current_ability, action)
227
232
  else
@@ -299,4 +304,19 @@ class Spree::Admin::ResourceController < Spree::Admin::BaseController
299
304
  def render_after_update_error
300
305
  render action: 'edit'
301
306
  end
307
+
308
+ def resource_invalid(exception)
309
+ invoke_callbacks(action, :fails)
310
+ respond_with(@object) do |format|
311
+ format.html do
312
+ flash.now[:error] = exception.message
313
+ if @object.new_record?
314
+ render_after_create_error
315
+ else
316
+ render_after_update_error
317
+ end
318
+ end
319
+ format.js { render layout: false }
320
+ end
321
+ end
302
322
  end