solidus_backend 2.4.2 → 2.5.0.beta1

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 (505) hide show
  1. checksums.yaml +5 -5
  2. data/README.md +7 -7
  3. data/Rakefile +19 -13
  4. data/app/assets/javascripts/spree/backend.js +5 -17
  5. data/app/assets/javascripts/spree/backend/adjustments.js +26 -0
  6. data/app/assets/javascripts/spree/backend/admin.js +14 -78
  7. data/app/assets/javascripts/spree/backend/backbone-overrides.js +25 -0
  8. data/app/assets/javascripts/spree/backend/calculator.js +1 -1
  9. data/app/assets/javascripts/spree/backend/checkouts/edit.js +1 -1
  10. data/app/assets/javascripts/spree/backend/collections/index.js +1 -0
  11. data/app/assets/javascripts/spree/backend/collections/shipments.js +6 -0
  12. data/app/assets/javascripts/spree/backend/components/editable_table.js +5 -0
  13. data/app/assets/javascripts/spree/backend/components/number_with_currency.js +1 -1
  14. data/app/assets/javascripts/spree/backend/components/sortable_table.js +29 -0
  15. data/app/assets/javascripts/spree/backend/components/tabs.js +67 -0
  16. data/app/assets/javascripts/spree/backend/components/tooltips.js +19 -24
  17. data/app/assets/javascripts/spree/backend/datepicker.js +55 -0
  18. data/app/assets/javascripts/spree/backend/flash.js +20 -0
  19. data/app/assets/javascripts/spree/backend/gateway.js +22 -0
  20. data/app/assets/javascripts/spree/backend/handlebars_extensions.js +8 -0
  21. data/app/assets/javascripts/spree/backend/images/index.js +8 -0
  22. data/app/assets/javascripts/spree/backend/models/index.js +3 -0
  23. data/app/assets/javascripts/spree/backend/models/line_item.js +4 -0
  24. data/app/assets/javascripts/spree/backend/models/order.js +2 -1
  25. data/app/assets/javascripts/spree/backend/models/payment.js +5 -0
  26. data/app/assets/javascripts/spree/backend/models/shipment.js +27 -0
  27. data/app/assets/javascripts/spree/backend/models/stock_item.js +6 -0
  28. data/app/assets/javascripts/spree/backend/namespaces.js +5 -1
  29. data/app/assets/javascripts/spree/backend/navigation.js +14 -0
  30. data/app/assets/javascripts/spree/backend/option_type_autocomplete.js +1 -1
  31. data/app/assets/javascripts/spree/backend/option_value_picker.js +1 -0
  32. data/app/assets/javascripts/spree/backend/orders/cart.js +1 -1
  33. data/app/assets/javascripts/spree/backend/orders/edit.js +2 -2
  34. data/app/assets/javascripts/spree/backend/payments/edit.js +16 -0
  35. data/app/assets/javascripts/spree/backend/payments/new.js +1 -1
  36. data/app/assets/javascripts/spree/backend/product_picker.js +1 -1
  37. data/app/assets/javascripts/spree/backend/progress.js +9 -0
  38. data/app/assets/javascripts/spree/backend/promotions.js +35 -0
  39. data/app/assets/javascripts/spree/backend/promotions/activation.js +1 -1
  40. data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +1 -1
  41. data/app/assets/javascripts/spree/backend/routes.js +0 -12
  42. data/app/assets/javascripts/spree/backend/shipments.js +35 -68
  43. data/app/assets/javascripts/spree/backend/stock_location.js +23 -0
  44. data/app/assets/javascripts/spree/backend/stock_management.js +22 -0
  45. data/app/assets/javascripts/spree/backend/store_credits.js +25 -0
  46. data/app/assets/javascripts/spree/backend/style_guide.js +3 -0
  47. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +1 -1
  48. data/app/assets/javascripts/spree/backend/taxonomy.js +121 -0
  49. data/app/assets/javascripts/spree/backend/taxons.js +75 -0
  50. data/app/assets/javascripts/spree/backend/templates/index.js +2 -2
  51. data/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs +7 -5
  52. data/app/assets/javascripts/spree/backend/templates/orders/shipment_tracking.hbs +24 -0
  53. data/app/assets/javascripts/spree/backend/templates/orders/shipping_method.hbs +34 -0
  54. data/app/assets/javascripts/spree/backend/templates/promotions/calculators/fields/tiered_flat_rate.hbs +7 -3
  55. data/app/assets/javascripts/spree/backend/templates/promotions/calculators/fields/tiered_percent.hbs +6 -2
  56. data/app/assets/javascripts/spree/backend/templates/stock_items/stock_location_stock_item.hbs +3 -1
  57. data/app/assets/javascripts/spree/backend/templates/variants/autocomplete_stock.hbs +10 -5
  58. data/app/assets/javascripts/spree/backend/templates/variants/split.hbs +5 -3
  59. data/app/assets/javascripts/spree/backend/translation.js +11 -0
  60. data/app/assets/javascripts/spree/backend/turbolinks-integration.js +21 -0
  61. data/app/assets/javascripts/spree/backend/user_picker.js +1 -1
  62. data/app/assets/javascripts/spree/backend/variant_autocomplete.js +60 -0
  63. data/app/assets/javascripts/spree/backend/views/calculators/tiered.js +54 -0
  64. data/app/assets/javascripts/spree/backend/views/cart/line_item_row.js +2 -1
  65. data/app/assets/javascripts/spree/backend/views/index.js +7 -0
  66. data/app/assets/javascripts/spree/backend/views/order/shipment_tracking.js +46 -0
  67. data/app/assets/javascripts/spree/backend/views/order/shipping_method.js +57 -0
  68. data/app/assets/javascripts/spree/backend/views/payment/payment_row.js +36 -0
  69. data/app/assets/javascripts/spree/backend/views/promotions/option_values_rule.js +79 -0
  70. data/app/assets/javascripts/spree/backend/views/state_select.js +6 -6
  71. data/app/assets/javascripts/spree/backend/views/stock/add_stock_item.js +63 -0
  72. data/app/assets/javascripts/spree/backend/views/stock/edit_stock_item_row.js +68 -0
  73. data/app/assets/javascripts/spree/backend/views/tables/editable_table.js +15 -0
  74. data/app/assets/javascripts/spree/backend/views/tables/editable_table_row.js +61 -0
  75. data/app/assets/javascripts/spree/backend/zone.js +1 -1
  76. data/app/assets/stylesheets/spree/backend.css +1 -2
  77. data/app/assets/stylesheets/spree/backend/components/_messages.scss +4 -1
  78. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +4 -2
  79. data/app/assets/stylesheets/spree/backend/components/_number_with_currency.scss +8 -2
  80. data/app/assets/stylesheets/spree/backend/components/_progress.scss +4 -0
  81. data/app/assets/stylesheets/spree/backend/components/_tabs.scss +4 -2
  82. data/app/assets/stylesheets/spree/backend/globals/mixins/_line_through.scss +2 -1
  83. data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +32 -7
  84. data/app/assets/stylesheets/spree/backend/plugins/_sortable.scss +3 -0
  85. data/app/assets/stylesheets/spree/backend/sections/_orders.scss +4 -20
  86. data/app/assets/stylesheets/spree/backend/sections/_products.scss +0 -1
  87. data/app/assets/stylesheets/spree/backend/sections/_promotions.scss +15 -7
  88. data/app/assets/stylesheets/spree/backend/sections/_store_credits.scss +17 -6
  89. data/app/assets/stylesheets/spree/backend/sections/_style_guide.scss +8 -4
  90. data/app/assets/stylesheets/spree/backend/sections/_taxonomies.scss +5 -19
  91. data/app/assets/stylesheets/spree/backend/sections/_variants.scss +5 -0
  92. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +13 -17
  93. data/app/assets/stylesheets/spree/backend/shared/_layout.scss +9 -3
  94. data/app/assets/stylesheets/spree/backend/shared/_tables.scss +3 -27
  95. data/app/assets/stylesheets/spree/backend/spree_admin.scss +2 -6
  96. data/app/controllers/spree/admin/base_controller.rb +2 -3
  97. data/app/controllers/spree/admin/cancellations_controller.rb +3 -3
  98. data/app/controllers/spree/admin/images_controller.rb +1 -1
  99. data/app/controllers/spree/admin/option_types_controller.rb +1 -2
  100. data/app/controllers/spree/admin/orders/customer_details_controller.rb +2 -2
  101. data/app/controllers/spree/admin/orders_controller.rb +11 -11
  102. data/app/controllers/spree/admin/payment_methods_controller.rb +5 -6
  103. data/app/controllers/spree/admin/payments_controller.rb +5 -5
  104. data/app/controllers/spree/admin/products_controller.rb +4 -6
  105. data/app/controllers/spree/admin/promotion_actions_controller.rb +4 -4
  106. data/app/controllers/spree/admin/promotion_rules_controller.rb +3 -3
  107. data/app/controllers/spree/admin/promotions_controller.rb +5 -1
  108. data/app/controllers/spree/admin/reports_controller.rb +2 -2
  109. data/app/controllers/spree/admin/resource_controller.rb +17 -5
  110. data/app/controllers/spree/admin/return_authorizations_controller.rb +2 -2
  111. data/app/controllers/spree/admin/shipping_methods_controller.rb +1 -1
  112. data/app/controllers/spree/admin/stock_locations_controller.rb +1 -1
  113. data/app/controllers/spree/admin/store_credits_controller.rb +4 -4
  114. data/app/controllers/spree/admin/taxons_controller.rb +1 -1
  115. data/app/controllers/spree/admin/users_controller.rb +6 -6
  116. data/app/controllers/spree/admin/variants_controller.rb +0 -16
  117. data/app/helpers/spree/admin/adjustments_helper.rb +2 -2
  118. data/app/helpers/spree/admin/base_helper.rb +5 -11
  119. data/app/helpers/spree/admin/navigation_helper.rb +8 -8
  120. data/app/helpers/spree/admin/orders_helper.rb +2 -2
  121. data/app/helpers/spree/admin/products_helper.rb +0 -24
  122. data/app/helpers/spree/admin/store_credit_events_helper.rb +5 -5
  123. data/app/models/spree/backend_configuration.rb +1 -2
  124. data/app/views/spree/admin/adjustment_reasons/edit.html.erb +2 -2
  125. data/app/views/spree/admin/adjustment_reasons/index.html.erb +5 -5
  126. data/app/views/spree/admin/adjustment_reasons/new.html.erb +3 -3
  127. data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +2 -2
  128. data/app/views/spree/admin/adjustments/_form.html.erb +1 -1
  129. data/app/views/spree/admin/adjustments/edit.html.erb +3 -3
  130. data/app/views/spree/admin/adjustments/index.html.erb +3 -3
  131. data/app/views/spree/admin/adjustments/new.html.erb +3 -3
  132. data/app/views/spree/admin/cancellations/index.html.erb +3 -3
  133. data/app/views/spree/admin/customer_returns/_reimbursements_table.html.erb +2 -2
  134. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +7 -7
  135. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +2 -2
  136. data/app/views/spree/admin/customer_returns/edit.html.erb +7 -7
  137. data/app/views/spree/admin/customer_returns/index.html.erb +4 -4
  138. data/app/views/spree/admin/customer_returns/new.html.erb +11 -11
  139. data/app/views/spree/admin/images/_image_row.html.erb +3 -3
  140. data/app/views/spree/admin/images/_new.html.erb +12 -0
  141. data/app/views/spree/admin/images/edit.html.erb +4 -4
  142. data/app/views/spree/admin/images/index.html.erb +7 -5
  143. data/app/views/spree/admin/images/new.html.erb +1 -12
  144. data/app/views/spree/admin/log_entries/index.html.erb +2 -2
  145. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +1 -1
  146. data/app/views/spree/admin/option_types/edit.html.erb +1 -1
  147. data/app/views/spree/admin/option_types/index.html.erb +2 -2
  148. data/app/views/spree/admin/option_types/new.html.erb +1 -1
  149. data/app/views/spree/admin/orders/_add_product.html.erb +2 -2
  150. data/app/views/spree/admin/orders/_carton.html.erb +8 -8
  151. data/app/views/spree/admin/orders/_carton_manifest.html.erb +1 -1
  152. data/app/views/spree/admin/orders/_order_details.html.erb +4 -4
  153. data/app/views/spree/admin/orders/_risk_analysis.html.erb +10 -10
  154. data/app/views/spree/admin/orders/_shipment.html.erb +11 -69
  155. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +3 -3
  156. data/app/views/spree/admin/orders/cart.html.erb +2 -2
  157. data/app/views/spree/admin/orders/confirm.html.erb +6 -6
  158. data/app/views/spree/admin/orders/confirm/_customer_details.html.erb +3 -3
  159. data/app/views/spree/admin/orders/confirm/_payments.html.erb +1 -1
  160. data/app/views/spree/admin/orders/confirm/_shipment.html.erb +2 -2
  161. data/app/views/spree/admin/orders/confirm/_shipment_manifest.html.erb +1 -1
  162. data/app/views/spree/admin/orders/confirm_advance.html.erb +3 -3
  163. data/app/views/spree/admin/orders/customer_details/_form.html.erb +19 -13
  164. data/app/views/spree/admin/orders/customer_details/edit.html.erb +2 -2
  165. data/app/views/spree/admin/orders/customer_details/show.html.erb +7 -7
  166. data/app/views/spree/admin/orders/edit.html.erb +2 -2
  167. data/app/views/spree/admin/orders/index.html.erb +30 -28
  168. data/app/views/spree/admin/payment_methods/_form.html.erb +24 -13
  169. data/app/views/spree/admin/payment_methods/edit.html.erb +2 -2
  170. data/app/views/spree/admin/payment_methods/index.html.erb +6 -6
  171. data/app/views/spree/admin/payment_methods/new.html.erb +3 -3
  172. data/app/views/spree/admin/payments/_capture_events.html.erb +2 -2
  173. data/app/views/spree/admin/payments/_list.html.erb +33 -13
  174. data/app/views/spree/admin/payments/credit.html.erb +1 -1
  175. data/app/views/spree/admin/payments/index.html.erb +3 -3
  176. data/app/views/spree/admin/payments/new.html.erb +4 -4
  177. data/app/views/spree/admin/payments/show.html.erb +2 -2
  178. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +22 -23
  179. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +1 -1
  180. data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +1 -1
  181. data/app/views/spree/admin/prices/_form.html.erb +1 -2
  182. data/app/views/spree/admin/prices/edit.html.erb +1 -1
  183. data/app/views/spree/admin/prices/index.html.erb +2 -2
  184. data/app/views/spree/admin/prices/new.html.erb +1 -1
  185. data/app/views/spree/admin/product_properties/_product_property_fields.html.erb +1 -1
  186. data/app/views/spree/admin/product_properties/index.html.erb +7 -14
  187. data/app/views/spree/admin/products/_form.html.erb +17 -14
  188. data/app/views/spree/admin/products/edit.html.erb +2 -2
  189. data/app/views/spree/admin/products/index.html.erb +6 -6
  190. data/app/views/spree/admin/products/new.html.erb +5 -59
  191. data/app/views/spree/admin/promotion_categories/index.html.erb +1 -1
  192. data/app/views/spree/admin/promotion_categories/new.html.erb +1 -1
  193. data/app/views/spree/admin/promotion_code_batches/index.html.erb +8 -8
  194. data/app/views/spree/admin/promotion_code_batches/new.html.erb +1 -1
  195. data/app/views/spree/admin/promotion_codes/index.html.erb +1 -1
  196. data/app/views/spree/admin/promotions/_actions.html.erb +6 -6
  197. data/app/views/spree/admin/promotions/_form.html.erb +13 -4
  198. data/app/views/spree/admin/promotions/_promotion_rule.html.erb +1 -1
  199. data/app/views/spree/admin/promotions/_rules.html.erb +8 -8
  200. data/app/views/spree/admin/promotions/actions/_create_quantity_adjustments.html.erb +4 -10
  201. data/app/views/spree/admin/promotions/actions/_promotion_calculators_with_custom_fields.html.erb +25 -29
  202. data/app/views/spree/admin/promotions/calculators/_default_fields.html.erb +5 -4
  203. data/app/views/spree/admin/promotions/calculators/distributed_amount/_fields.html.erb +6 -4
  204. data/app/views/spree/admin/promotions/calculators/flat_rate/_fields.html.erb +6 -4
  205. data/app/views/spree/admin/promotions/calculators/tiered_flat_rate/_fields.html.erb +5 -5
  206. data/app/views/spree/admin/promotions/calculators/tiered_percent/_fields.html.erb +5 -5
  207. data/app/views/spree/admin/promotions/edit.html.erb +1 -1
  208. data/app/views/spree/admin/promotions/index.html.erb +7 -7
  209. data/app/views/spree/admin/promotions/new.html.erb +1 -1
  210. data/app/views/spree/admin/promotions/rules/_item_total.html.erb +10 -12
  211. data/app/views/spree/admin/promotions/rules/_nth_order.html.erb +8 -10
  212. data/app/views/spree/admin/promotions/rules/_option_value.html.erb +10 -14
  213. data/app/views/spree/admin/promotions/rules/_product.html.erb +12 -10
  214. data/app/views/spree/admin/promotions/rules/_taxon.html.erb +9 -15
  215. data/app/views/spree/admin/promotions/rules/_user.html.erb +3 -5
  216. data/app/views/spree/admin/promotions/rules/_user_role.html.erb +3 -3
  217. data/app/views/spree/admin/properties/index.html.erb +5 -5
  218. data/app/views/spree/admin/properties/new.html.erb +1 -1
  219. data/app/views/spree/admin/refund_reasons/edit.html.erb +2 -2
  220. data/app/views/spree/admin/refund_reasons/index.html.erb +5 -5
  221. data/app/views/spree/admin/refund_reasons/new.html.erb +3 -3
  222. data/app/views/spree/admin/refund_reasons/shared/_form.html.erb +1 -1
  223. data/app/views/spree/admin/refunds/edit.html.erb +3 -3
  224. data/app/views/spree/admin/refunds/new.html.erb +4 -4
  225. data/app/views/spree/admin/reimbursement_types/index.html.erb +2 -2
  226. data/app/views/spree/admin/reimbursements/edit.html.erb +9 -9
  227. data/app/views/spree/admin/reimbursements/index.html.erb +4 -4
  228. data/app/views/spree/admin/reimbursements/show.html.erb +4 -4
  229. data/app/views/spree/admin/reports/index.html.erb +3 -3
  230. data/app/views/spree/admin/reports/sales_total.html.erb +7 -7
  231. data/app/views/spree/admin/return_authorizations/_form.html.erb +3 -3
  232. data/app/views/spree/admin/return_authorizations/edit.html.erb +5 -5
  233. data/app/views/spree/admin/return_authorizations/index.html.erb +4 -4
  234. data/app/views/spree/admin/return_authorizations/new.html.erb +3 -3
  235. data/app/views/spree/admin/return_reasons/edit.html.erb +2 -2
  236. data/app/views/spree/admin/return_reasons/index.html.erb +3 -3
  237. data/app/views/spree/admin/return_reasons/new.html.erb +3 -3
  238. data/app/views/spree/admin/shared/_address_form.html.erb +2 -0
  239. data/app/views/spree/admin/shared/_calculator_fields.html.erb +4 -3
  240. data/app/views/spree/admin/shared/_edit_resource_links.html.erb +2 -2
  241. data/app/views/spree/admin/shared/_head.html.erb +13 -5
  242. data/app/views/spree/admin/shared/_js_locale_data.html.erb +24 -32
  243. data/app/views/spree/admin/shared/_navigation_footer.html.erb +32 -2
  244. data/app/views/spree/admin/shared/_new_resource_links.html.erb +2 -2
  245. data/app/views/spree/admin/shared/_no_objects_found.html.erb +2 -2
  246. data/app/views/spree/admin/shared/_number_with_currency.html.erb +9 -5
  247. data/app/views/spree/admin/shared/_order_submenu.html.erb +6 -6
  248. data/app/views/spree/admin/shared/_order_summary.html.erb +5 -5
  249. data/app/views/spree/admin/shared/_order_tabs.html.erb +1 -1
  250. data/app/views/spree/admin/shared/_product_tabs.html.erb +3 -3
  251. data/app/views/spree/admin/shared/_rebuild_vat_prices_checkbox.html.erb +2 -2
  252. data/app/views/spree/admin/shared/_refunds.html.erb +2 -2
  253. data/app/views/spree/admin/shared/_report_order_criteria.html.erb +8 -6
  254. data/app/views/spree/admin/shared/_spinner.html.erb +1 -1
  255. data/app/views/spree/admin/shared/_variant_search.html.erb +3 -3
  256. data/app/views/spree/admin/shared/named_types/_form.html.erb +4 -2
  257. data/app/views/spree/admin/shared/named_types/_index.html.erb +4 -4
  258. data/app/views/spree/admin/shared/preference_fields/_boolean.html.erb +9 -8
  259. data/app/views/spree/admin/shipping_categories/edit.html.erb +3 -3
  260. data/app/views/spree/admin/shipping_categories/index.html.erb +5 -5
  261. data/app/views/spree/admin/shipping_categories/new.html.erb +3 -3
  262. data/app/views/spree/admin/shipping_methods/_form.html.erb +10 -8
  263. data/app/views/spree/admin/shipping_methods/edit.html.erb +2 -2
  264. data/app/views/spree/admin/shipping_methods/index.html.erb +5 -5
  265. data/app/views/spree/admin/shipping_methods/new.html.erb +3 -3
  266. data/app/views/spree/admin/stock_items/_stock_management.html.erb +7 -7
  267. data/app/views/spree/admin/stock_items/index.html.erb +4 -4
  268. data/app/views/spree/admin/stock_locations/_form.html.erb +105 -103
  269. data/app/views/spree/admin/stock_locations/edit.html.erb +4 -6
  270. data/app/views/spree/admin/stock_locations/index.html.erb +5 -11
  271. data/app/views/spree/admin/stock_locations/new.html.erb +5 -7
  272. data/app/views/spree/admin/stock_movements/index.html.erb +3 -3
  273. data/app/views/spree/admin/store_credits/_form.html.erb +3 -3
  274. data/app/views/spree/admin/store_credits/_update_reason_field.html.erb +7 -8
  275. data/app/views/spree/admin/store_credits/edit_amount.html.erb +10 -6
  276. data/app/views/spree/admin/store_credits/edit_validity.html.erb +7 -5
  277. data/app/views/spree/admin/store_credits/index.html.erb +13 -13
  278. data/app/views/spree/admin/store_credits/new.html.erb +2 -2
  279. data/app/views/spree/admin/store_credits/show.html.erb +24 -32
  280. data/app/views/spree/admin/stores/_form.html.erb +1 -1
  281. data/app/views/spree/admin/stores/edit.html.erb +1 -1
  282. data/app/views/spree/admin/stores/index.html.erb +1 -1
  283. data/app/views/spree/admin/stores/new.html.erb +1 -1
  284. data/app/views/spree/admin/style_guide/topics/forms/_building_forms.html.erb +5 -3
  285. data/app/views/spree/admin/style_guide/topics/messaging/_loading.html.erb +1 -1
  286. data/app/views/spree/admin/tax_categories/_form.html.erb +4 -2
  287. data/app/views/spree/admin/tax_categories/edit.html.erb +2 -2
  288. data/app/views/spree/admin/tax_categories/index.html.erb +5 -5
  289. data/app/views/spree/admin/tax_categories/new.html.erb +3 -3
  290. data/app/views/spree/admin/tax_rates/_form.html.erb +17 -11
  291. data/app/views/spree/admin/tax_rates/edit.html.erb +2 -2
  292. data/app/views/spree/admin/tax_rates/index.html.erb +8 -8
  293. data/app/views/spree/admin/tax_rates/new.html.erb +3 -3
  294. data/app/views/spree/admin/taxonomies/edit.erb +3 -3
  295. data/app/views/spree/admin/taxonomies/index.html.erb +2 -2
  296. data/app/views/spree/admin/taxonomies/new.html.erb +2 -2
  297. data/app/views/spree/admin/taxons/_form.html.erb +5 -1
  298. data/app/views/spree/admin/taxons/edit.html.erb +4 -4
  299. data/app/views/spree/admin/taxons/index.html.erb +7 -7
  300. data/app/views/spree/admin/users/_addresses_form.html.erb +2 -2
  301. data/app/views/spree/admin/users/_form.html.erb +10 -5
  302. data/app/views/spree/admin/users/_sidebar.html.erb +6 -6
  303. data/app/views/spree/admin/users/_tabs.html.erb +5 -5
  304. data/app/views/spree/admin/users/edit.html.erb +14 -15
  305. data/app/views/spree/admin/users/index.html.erb +14 -12
  306. data/app/views/spree/admin/users/items.html.erb +7 -7
  307. data/app/views/spree/admin/users/new.html.erb +1 -1
  308. data/app/views/spree/admin/users/orders.html.erb +7 -7
  309. data/app/views/spree/admin/variants/_form.html.erb +2 -2
  310. data/app/views/spree/admin/variants/_table.html.erb +2 -2
  311. data/app/views/spree/admin/variants/_table_filter.html.erb +5 -5
  312. data/app/views/spree/admin/variants/index.html.erb +8 -8
  313. data/app/views/spree/admin/variants/new.html.erb +1 -1
  314. data/app/views/spree/admin/zones/_form.html.erb +10 -6
  315. data/app/views/spree/admin/zones/edit.html.erb +1 -1
  316. data/app/views/spree/admin/zones/index.html.erb +3 -3
  317. data/app/views/spree/admin/zones/new.html.erb +2 -2
  318. data/app/views/spree/layouts/admin.html.erb +1 -1
  319. data/app/views/spree/layouts/admin_style_guide.html.erb +2 -2
  320. data/config/routes.rb +1 -11
  321. data/lib/spree/backend.rb +1 -2
  322. data/solidus_backend.gemspec +1 -3
  323. data/spec/controllers/spree/admin/cancellations_controller_spec.rb +3 -3
  324. data/spec/controllers/spree/admin/orders_controller_spec.rb +9 -9
  325. data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +1 -1
  326. data/spec/controllers/spree/admin/prices_controller_spec.rb +2 -2
  327. data/spec/controllers/spree/admin/products_controller_spec.rb +2 -1
  328. data/spec/controllers/spree/admin/promotion_codes_controller_spec.rb +1 -1
  329. data/spec/controllers/spree/admin/promotions_controller_spec.rb +7 -0
  330. data/spec/controllers/spree/admin/reports_controller_spec.rb +1 -1
  331. data/spec/controllers/spree/admin/resource_controller_spec.rb +2 -2
  332. data/spec/controllers/spree/admin/search_controller_spec.rb +1 -1
  333. data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +4 -4
  334. data/spec/controllers/spree/admin/users_controller_spec.rb +1 -1
  335. data/spec/controllers/spree/admin/variants_controller_spec.rb +13 -3
  336. data/spec/features/admin/configuration/payment_methods_spec.rb +55 -16
  337. data/spec/features/admin/configuration/shipping_methods_spec.rb +40 -0
  338. data/spec/features/admin/homepage_spec.rb +25 -8
  339. data/spec/features/admin/orders/adjustments_spec.rb +2 -2
  340. data/spec/features/admin/orders/customer_details_spec.rb +24 -9
  341. data/spec/features/admin/orders/listing_spec.rb +6 -9
  342. data/spec/features/admin/orders/log_entries_spec.rb +0 -1
  343. data/spec/features/admin/orders/new_order_spec.rb +8 -2
  344. data/spec/features/admin/orders/order_details_spec.rb +116 -74
  345. data/spec/features/admin/orders/payments_spec.rb +7 -10
  346. data/spec/features/admin/orders/shipments_spec.rb +9 -5
  347. data/spec/features/admin/payments/store_credits_spec.rb +2 -2
  348. data/spec/features/admin/products/edit/images_spec.rb +0 -79
  349. data/spec/features/admin/products/products_spec.rb +3 -6
  350. data/spec/features/admin/products/variant_spec.rb +17 -0
  351. data/spec/features/admin/promotion_adjustments_spec.rb +105 -52
  352. data/spec/features/admin/promotions/option_value_rule_spec.rb +6 -3
  353. data/spec/features/admin/promotions/tiered_calculator_spec.rb +4 -2
  354. data/spec/features/admin/users_spec.rb +14 -11
  355. data/spec/javascripts/translation_spec.js +8 -0
  356. data/spec/javascripts/views/number_with_currency_spec.js +6 -6
  357. data/spec/spec_helper.rb +28 -37
  358. data/spec/teaspoon_env.rb +61 -14
  359. data/spec/views/spree/admin/shared/navigation_footer_spec.rb +41 -0
  360. data/vendor/assets/javascripts/solidus_admin/Sortable.js +1540 -0
  361. data/vendor/assets/javascripts/solidus_admin/bootstrap.js +1878 -1816
  362. data/vendor/assets/javascripts/solidus_admin/flatpickr/flatpickr.js +2218 -0
  363. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_es-MX.js +19 -0
  364. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_alert.scss +7 -4
  365. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_badge.scss +1 -2
  366. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_breadcrumb.scss +4 -4
  367. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_button-group.scss +32 -64
  368. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_buttons.scss +38 -36
  369. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_card.scss +78 -31
  370. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_carousel.scss +6 -0
  371. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_close.scss +8 -3
  372. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_code.scss +4 -12
  373. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_custom-forms.scss +132 -89
  374. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_dropdown.scss +46 -43
  375. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_forms.scss +47 -104
  376. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_functions.scss +8 -12
  377. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_grid.scss +0 -1
  378. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_images.scss +0 -1
  379. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_input-group.scss +103 -120
  380. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_list-group.scss +2 -1
  381. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_mixins.scss +1 -0
  382. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_modal.scss +36 -10
  383. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_nav.scss +7 -7
  384. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_navbar.scss +35 -8
  385. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_pagination.scss +33 -22
  386. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_popover.scss +106 -118
  387. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_print.scss +19 -6
  388. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_progress.scss +5 -4
  389. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_reboot.scss +39 -38
  390. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_root.scss +19 -0
  391. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_tables.scss +40 -28
  392. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_tooltip.scss +65 -57
  393. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_transitions.scss +2 -0
  394. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_type.scss +4 -2
  395. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_variables.scss +546 -489
  396. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-grid.scss +8 -13
  397. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-reboot.scss +7 -4
  398. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap.scss +5 -4
  399. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_alert.scss +1 -1
  400. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_background-variant.scss +10 -1
  401. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_badge.scss +2 -2
  402. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_breakpoints.scss +25 -7
  403. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_buttons.scss +50 -24
  404. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_caret.scss +65 -0
  405. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_float.scss +2 -0
  406. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_forms.scss +72 -16
  407. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_gradients.scss +8 -0
  408. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_grid-framework.scss +15 -4
  409. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_grid.scss +10 -5
  410. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_hover.scss +25 -46
  411. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_image.scss +3 -3
  412. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_list-group.scss +10 -15
  413. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_navbar-align.scss +2 -1
  414. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_reset-text.scss +1 -2
  415. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_screen-reader.scss +3 -3
  416. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_text-emphasis.scss +2 -0
  417. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_text-hide.scss +1 -0
  418. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_visibility.scss +2 -0
  419. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_align.scss +2 -0
  420. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_background.scss +16 -3
  421. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_borders.scss +10 -3
  422. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_display.scss +13 -28
  423. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_flex.scss +2 -0
  424. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_position.scss +12 -1
  425. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_sizing.scss +2 -0
  426. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_spacing.scss +24 -14
  427. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_text.scss +7 -4
  428. data/vendor/assets/stylesheets/solidus_admin/flatpickr/flatpickr.css +857 -0
  429. metadata +57 -127
  430. data/Gemfile +0 -9
  431. data/app/assets/javascripts/spree/backend/address_states.js +0 -35
  432. data/app/assets/javascripts/spree/backend/adjustments.js.coffee +0 -17
  433. data/app/assets/javascripts/spree/backend/backbone-overrides.js.coffee +0 -23
  434. data/app/assets/javascripts/spree/backend/components/editable_table.js.coffee +0 -3
  435. data/app/assets/javascripts/spree/backend/components/tabs.coffee +0 -79
  436. data/app/assets/javascripts/spree/backend/flash.coffee +0 -17
  437. data/app/assets/javascripts/spree/backend/gateway.js.coffee +0 -21
  438. data/app/assets/javascripts/spree/backend/images/index.js.coffee +0 -13
  439. data/app/assets/javascripts/spree/backend/navigation.coffee +0 -10
  440. data/app/assets/javascripts/spree/backend/number_field_updater.coffee +0 -41
  441. data/app/assets/javascripts/spree/backend/payments/edit.js.coffee +0 -33
  442. data/app/assets/javascripts/spree/backend/progress.coffee +0 -7
  443. data/app/assets/javascripts/spree/backend/promotions.js.coffee +0 -99
  444. data/app/assets/javascripts/spree/backend/select_payments.js.coffee +0 -0
  445. data/app/assets/javascripts/spree/backend/states.coffee +0 -22
  446. data/app/assets/javascripts/spree/backend/stock_management/index_add_forms.coffee +0 -61
  447. data/app/assets/javascripts/spree/backend/stock_management/index_update_forms.coffee +0 -66
  448. data/app/assets/javascripts/spree/backend/stock_management/stock_item.coffee +0 -4
  449. data/app/assets/javascripts/spree/backend/stock_transfers/count_update_forms.coffee +0 -44
  450. data/app/assets/javascripts/spree/backend/stock_transfers/edit.coffee +0 -6
  451. data/app/assets/javascripts/spree/backend/stock_transfers/receive.coffee +0 -5
  452. data/app/assets/javascripts/spree/backend/stock_transfers/received_counter.coffee +0 -9
  453. data/app/assets/javascripts/spree/backend/stock_transfers/stock_transfer.coffee +0 -17
  454. data/app/assets/javascripts/spree/backend/stock_transfers/transfer_item.coffee +0 -48
  455. data/app/assets/javascripts/spree/backend/stock_transfers/transfer_item_deleting.coffee +0 -22
  456. data/app/assets/javascripts/spree/backend/stock_transfers/variant_form.coffee +0 -128
  457. data/app/assets/javascripts/spree/backend/store_credits.js.coffee +0 -40
  458. data/app/assets/javascripts/spree/backend/style_guide.coffee +0 -2
  459. data/app/assets/javascripts/spree/backend/taxonomy.js.coffee +0 -108
  460. data/app/assets/javascripts/spree/backend/taxons.js.coffee +0 -73
  461. data/app/assets/javascripts/spree/backend/templates/promotions/rules/option_values_select.hbs +0 -1
  462. data/app/assets/javascripts/spree/backend/templates/stock_transfers/transfer_item.hbs +0 -48
  463. data/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee +0 -39
  464. data/app/assets/javascripts/spree/backend/views/tables/editable_table.js.coffee +0 -14
  465. data/app/assets/javascripts/spree/backend/views/tables/editable_table_row.js.coffee +0 -45
  466. data/app/assets/stylesheets/spree/backend/components/_date-picker.scss +0 -154
  467. data/app/assets/stylesheets/spree/backend/components/_number_field_update.scss +0 -13
  468. data/app/assets/stylesheets/spree/backend/sections/_stock_transfers.scss +0 -7
  469. data/app/assets/stylesheets/spree/backend/sections/_transfer_items.scss +0 -49
  470. data/app/controllers/spree/admin/stock_transfers_controller.rb +0 -151
  471. data/app/helpers/spree/admin/general_settings_helper.rb +0 -13
  472. data/app/helpers/spree/admin/inventory_settings_helper.rb +0 -9
  473. data/app/helpers/spree/admin/stock_transfers_helper.rb +0 -35
  474. data/app/helpers/spree/admin/tables_helper.rb +0 -13
  475. data/app/helpers/spree/admin/taxons_helper.rb +0 -9
  476. data/app/views/spree/admin/products/new.js.erb +0 -4
  477. data/app/views/spree/admin/promotions/rules/_landing_page.html.erb +0 -7
  478. data/app/views/spree/admin/shared/_number_field_update_actions.html.erb +0 -5
  479. data/app/views/spree/admin/shared/_number_field_update_cell.html.erb +0 -4
  480. data/app/views/spree/admin/shared/_stock_sub_menu.html.erb +0 -8
  481. data/app/views/spree/admin/stock_transfers/_location.html.erb +0 -7
  482. data/app/views/spree/admin/stock_transfers/_transfer_item_actions.html.erb +0 -9
  483. data/app/views/spree/admin/stock_transfers/_transfer_item_table.html.erb +0 -72
  484. data/app/views/spree/admin/stock_transfers/edit.html.erb +0 -52
  485. data/app/views/spree/admin/stock_transfers/index.html.erb +0 -123
  486. data/app/views/spree/admin/stock_transfers/new.html.erb +0 -26
  487. data/app/views/spree/admin/stock_transfers/receive.html.erb +0 -38
  488. data/app/views/spree/admin/stock_transfers/show.html.erb +0 -50
  489. data/app/views/spree/admin/stock_transfers/tracking_info.html.erb +0 -46
  490. data/spec/controllers/spree/admin/stock_transfers_controller_spec.rb +0 -365
  491. data/spec/features/admin/stock_transfer_spec.rb +0 -115
  492. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_aaaaaa_40x100.png +0 -0
  493. data/vendor/assets/images/jquery-ui/ui-bg_flat_0_eeeeee_40x100.png +0 -0
  494. data/vendor/assets/images/jquery-ui/ui-bg_flat_55_ffffff_40x100.png +0 -0
  495. data/vendor/assets/images/jquery-ui/ui-bg_flat_75_ffffff_40x100.png +0 -0
  496. data/vendor/assets/images/jquery-ui/ui-bg_glass_65_ffffff_1x400.png +0 -0
  497. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_100_f6f6f6_1x100.png +0 -0
  498. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_25_0073ea_1x100.png +0 -0
  499. data/vendor/assets/images/jquery-ui/ui-bg_highlight-soft_50_dddddd_1x100.png +0 -0
  500. data/vendor/assets/images/jquery-ui/ui-icons_0073ea_256x240.png +0 -0
  501. data/vendor/assets/images/jquery-ui/ui-icons_454545_256x240.png +0 -0
  502. data/vendor/assets/images/jquery-ui/ui-icons_666666_256x240.png +0 -0
  503. data/vendor/assets/images/jquery-ui/ui-icons_ff0084_256x240.png +0 -0
  504. data/vendor/assets/images/jquery-ui/ui-icons_ffffff_256x240.png +0 -0
  505. data/vendor/assets/stylesheets/jquery-ui.datepicker.css.erb +0 -357
@@ -62,11 +62,11 @@ describe 'Payments', type: :feature do
62
62
  expect(page).to have_content 'my cc address'
63
63
  end
64
64
 
65
- it 'lists and create payments for an order', js: true do
65
+ it 'lists, updates and creates payments for an order', js: true do
66
66
  within_row(1) do
67
- expect(column_text(3)).to eq('$150.00')
68
- expect(column_text(4)).to eq('Credit Card')
69
- expect(column_text(6)).to eq('Checkout')
67
+ expect(column_text(3)).to eq('Credit Card')
68
+ expect(column_text(5)).to eq('Checkout')
69
+ expect(column_text(6)).to have_content('$150.00')
70
70
  end
71
71
 
72
72
  click_icon :void
@@ -74,9 +74,7 @@ describe 'Payments', type: :feature do
74
74
  expect(page).to have_content('Payment Updated')
75
75
 
76
76
  within_row(1) do
77
- expect(column_text(3)).to eq('$150.00')
78
- expect(column_text(4)).to eq('Credit Card')
79
- expect(column_text(6)).to eq('Void')
77
+ expect(column_text(5)).to eq('Void')
80
78
  end
81
79
 
82
80
  click_on 'New Payment'
@@ -135,7 +133,6 @@ describe 'Payments', type: :feature do
135
133
  click_icon(:save)
136
134
  end
137
135
  expect(page).to have_selector('.flash.error', text: 'Invalid resource. Please fix errors and try again.')
138
- expect(page).to have_field('amount', with: 'invalid')
139
136
  expect(payment.reload.amount).to eq(150.00)
140
137
  end
141
138
  end
@@ -228,7 +225,7 @@ describe 'Payments', type: :feature do
228
225
  end
229
226
 
230
227
  before do
231
- payment_method.destroy
228
+ payment_method.discard
232
229
  visit spree.admin_order_payments_path(order.reload)
233
230
  end
234
231
 
@@ -287,7 +284,7 @@ describe 'Payments', type: :feature do
287
284
  fill_in "Expiration", with: "09 / #{Time.current.year + 1}"
288
285
  fill_in "Card Code", with: "007"
289
286
  click_button "Continue"
290
- expect(page).to have_content Spree.t(:insufficient_stock_for_order)
287
+ expect(page).to have_content I18n.t('spree.insufficient_stock_for_order')
291
288
  end
292
289
  end
293
290
  end
@@ -39,7 +39,9 @@ describe "Shipments", type: :feature do
39
39
 
40
40
  it "can ship a completed order" do
41
41
  expect {
42
- ship_shipment
42
+ perform_enqueued_jobs {
43
+ ship_shipment
44
+ }
43
45
  }.to change{ ActionMailer::Base.deliveries.count }.by(1)
44
46
  end
45
47
 
@@ -47,7 +49,9 @@ describe "Shipments", type: :feature do
47
49
  uncheck 'Send Mailer'
48
50
 
49
51
  expect {
50
- ship_shipment
52
+ perform_enqueued_jobs {
53
+ ship_shipment
54
+ }
51
55
  }.not_to change{ ActionMailer::Base.deliveries.count }
52
56
  end
53
57
  end
@@ -67,7 +71,7 @@ describe "Shipments", type: :feature do
67
71
  expect(order.shipments.count).to eq(1)
68
72
  shipment1 = order.shipments[0]
69
73
 
70
- within_row(1) { click_icon 'arrows-h' }
74
+ within('tr', text: order.line_items[0].sku) { click_icon 'arrows-h' }
71
75
  complete_split_to('LA')
72
76
 
73
77
  expect(page).to have_css("#shipment_#{shipment1.id} tr.stock-item", count: 4)
@@ -77,7 +81,7 @@ describe "Shipments", type: :feature do
77
81
  expect(page).to have_content("UPS Ground")
78
82
  end
79
83
 
80
- within_row(2) { click_icon 'arrows-h' }
84
+ within('tr', text: order.line_items[1].sku) { click_icon 'arrows-h' }
81
85
  complete_split_to("LA(#{shipment2.number})")
82
86
  expect(page).to have_css("#shipment_#{shipment2.id} tr.stock-item", count: 2)
83
87
  expect(page).to have_css("#shipment_#{shipment1.id} tr.stock-item", count: 3)
@@ -100,7 +104,7 @@ describe "Shipments", type: :feature do
100
104
  it "can transfer all items to a new location" do
101
105
  expect(order.shipments.count).to eq(1)
102
106
 
103
- within_row(1) { click_icon 'arrows-h' }
107
+ within('tr', text: order.line_items[0].sku) { click_icon 'arrows-h' }
104
108
  complete_split_to('LA', quantity: 5)
105
109
 
106
110
  expect(page).to_not have_content("package from 'NY Warehouse'")
@@ -3,9 +3,9 @@ require 'spec_helper'
3
3
  RSpec.describe 'Store credits', type: :feature do
4
4
  stub_authorization!
5
5
 
6
- let(:order) { FactoryGirl.create(:completed_order_with_totals) }
6
+ let(:order) { FactoryBot.create(:completed_order_with_totals) }
7
7
  let(:payment) do
8
- FactoryGirl.create(
8
+ FactoryBot.create(
9
9
  :store_credit_payment,
10
10
  order: order,
11
11
  amount: 20
@@ -52,85 +52,6 @@ describe "Product Images", type: :feature do
52
52
  end
53
53
  end
54
54
 
55
- context 'Via the upload zone', js: true do
56
- before do
57
- create(:variant, product: product)
58
- end
59
-
60
- it "uploads an image with ajax and appends it to the images table" do
61
- visit spree.admin_product_images_path(product)
62
- expect(page).to have_content("No images found")
63
-
64
- within_fieldset 'Upload Images' do
65
- # Can also pass multiple files in the array, but SQLite gives a deadlock on insert
66
- attach_file('image_attachment', [file_path], visible: false)
67
- end
68
-
69
- expect(page).not_to have_content("No images found")
70
-
71
- within("table.index") do
72
- expect(page).to have_css "tbody tr", count: 1
73
-
74
- within("tbody") do
75
- expect(page).to have_xpath "//img[contains(@src,'ror_ringer')]"
76
- expect(page).to have_content "All"
77
- end
78
-
79
- # Change the image to the other variant
80
- targetted_select2 "Size: S", from: "#s2id_image_viewable_id"
81
- click_icon :check
82
- expect(page).to have_content "Size: S"
83
- end
84
-
85
- expect(Spree::Image.last.viewable).to eq(product.master)
86
- end
87
- end
88
-
89
- it "should see variant images and allow for inline changing the image's variant", js: true do
90
- variant = create(:variant)
91
- variant.images.create!(attachment: File.open(file_path))
92
- visit spree.admin_product_images_path(variant.product)
93
-
94
- expect(page).not_to have_content("No Images Found.")
95
-
96
- within("table.index") do
97
- expect(page).to have_content(variant.options_text)
98
-
99
- # ensure no duplicate images are displayed
100
- expect(page).to have_css("tbody tr", count: 1)
101
-
102
- # ensure variant header is displayed
103
- within("thead") do
104
- expect(page).to have_content("Variant")
105
- end
106
-
107
- within("tbody") do
108
- expect(page).to have_content("Size: S")
109
- end
110
-
111
- # Do an inline change of variant and alt
112
- targetted_select2 "All", from: "#s2id_image_viewable_id"
113
- fill_in 'image[alt]', with: 'ruby on rails t-shirt'
114
- click_icon :check
115
-
116
- expect(page).to have_content "All"
117
- expect(page).to have_field "image[alt]", with: "ruby on rails t-shirt"
118
-
119
- # test escape
120
- find("#image_alt").click # to focus
121
- fill_in 'image[alt]', with: 'red shirt'
122
- find("#image_alt").send_keys(:escape)
123
- expect(page).to have_field "image[alt]", with: "ruby on rails t-shirt"
124
-
125
- # And then go back to Size S variant, but using Enter key
126
- targetted_select2 "Size: S", from: "#s2id_image_viewable_id"
127
- find("#s2id_image_viewable_id").send_keys(:return)
128
-
129
- expect(page).to have_content "Size: S"
130
- expect(page).to have_field "image[alt]", with: "ruby on rails t-shirt"
131
- end
132
- end
133
-
134
55
  it "should not see variant column when product has no variants" do
135
56
  product = create(:product)
136
57
  product.images.create!(attachment: File.open(file_path))
@@ -10,7 +10,7 @@ describe "Products", type: :feature do
10
10
  end
11
11
 
12
12
  def build_option_type_with_values(name, values)
13
- ot = FactoryGirl.create(:option_type, name: name)
13
+ ot = FactoryBot.create(:option_type, name: name)
14
14
  values.each do |val|
15
15
  ot.option_values.create(name: val.downcase, presentation: val)
16
16
  end
@@ -156,10 +156,7 @@ describe "Products", type: :feature do
156
156
  before(:each) do
157
157
  @shipping_category = create(:shipping_category)
158
158
  click_nav "Products"
159
- click_link "admin_new_product"
160
- within('#new_product') do
161
- expect(page).to have_content("SKU")
162
- end
159
+ click_on "New Product"
163
160
  end
164
161
 
165
162
  it "should allow an admin to create a new product", js: true do
@@ -174,7 +171,7 @@ describe "Products", type: :feature do
174
171
  expect(page).to have_content("successfully updated!")
175
172
  end
176
173
 
177
- it "should show validation errors", js: true do
174
+ it "should show validation errors", js: false do
178
175
  fill_in "product_name", with: "Baseball Cap"
179
176
  fill_in "product_sku", with: "B100"
180
177
  fill_in "product_price", with: "100"
@@ -68,4 +68,21 @@ describe "Variants", type: :feature do
68
68
  end
69
69
  end
70
70
  end
71
+
72
+ context "deleting a variant", js: true do
73
+ let!(:variant) { create(:variant, product: product) }
74
+ let!(:option_type) { create(:option_type) }
75
+ let!(:option_value) { create(:option_value, option_type: option_type) }
76
+
77
+ it "can delete a variant" do
78
+ visit spree.admin_product_variants_path(product)
79
+ within 'tr', text: 'Size: S' do
80
+ accept_alert do
81
+ click_icon :trash
82
+ end
83
+ end
84
+
85
+ expect(page).to have_no_text('Size: S')
86
+ end
87
+ end
71
88
  end
@@ -5,18 +5,16 @@ describe "Promotion Adjustments", type: :feature, js: true do
5
5
 
6
6
  context "creating a new promotion", js: true do
7
7
  before(:each) do
8
- visit spree.admin_path
9
- click_link "Promotions"
10
- click_link "New Promotion"
8
+ visit spree.new_admin_promotion_path
11
9
  expect(page).to have_title("New Promotion - Promotions")
12
10
  end
13
11
 
14
12
  it "should allow an admin to create a flat rate discount coupon promo" do
15
- fill_in "Name", with: "Promotion"
13
+ fill_in "Name", with: "SAVE SAVE SAVE"
16
14
  fill_in "Promotion Code", with: "order"
17
15
 
18
16
  click_button "Create"
19
- expect(page).to have_title("Promotion - Promotions")
17
+ expect(page).to have_title("SAVE SAVE SAVE - Promotions")
20
18
 
21
19
  select "Item total", from: "Add rule of type"
22
20
  within('#rule_fields') { click_button "Add" }
@@ -25,14 +23,15 @@ describe "Promotion Adjustments", type: :feature, js: true do
25
23
  within('#rule_fields') { click_button "Update" }
26
24
 
27
25
  select "Create whole-order adjustment", from: "Add action of type"
28
- within('#action_fields') { click_button "Add" }
29
- select "Flat Rate", from: "Base Calculator"
30
- within('#actions_container') { click_button "Update" }
31
-
32
- within('.calculator-fields') { fill_in "Amount", with: 5 }
26
+ within('#action_fields') do
27
+ click_button "Add"
28
+ select "Flat Rate", from: I18n.t('spree.admin.promotions.actions.calculator_label')
29
+ fill_in "Amount", with: 5
30
+ end
33
31
  within('#actions_container') { click_button "Update" }
32
+ expect(page).to have_text 'successfully updated'
34
33
 
35
- promotion = Spree::Promotion.find_by(name: "Promotion")
34
+ promotion = Spree::Promotion.find_by(name: "SAVE SAVE SAVE")
36
35
  expect(promotion.codes.first.value).to eq("order")
37
36
 
38
37
  first_rule = promotion.rules.first
@@ -47,21 +46,23 @@ describe "Promotion Adjustments", type: :feature, js: true do
47
46
  end
48
47
 
49
48
  it "should allow an admin to create a single user coupon promo with flat rate discount" do
50
- fill_in "Name", with: "Promotion"
49
+ fill_in "Name", with: "SAVE SAVE SAVE"
51
50
  fill_in "promotion[usage_limit]", with: "1"
52
51
  fill_in "Promotion Code", with: "single_use"
53
52
 
54
53
  click_button "Create"
55
- expect(page).to have_title("Promotion - Promotions")
54
+ expect(page).to have_title("SAVE SAVE SAVE - Promotions")
56
55
 
57
56
  select "Create whole-order adjustment", from: "Add action of type"
58
- within('#action_fields') { click_button "Add" }
59
- select "Flat Rate", from: "Base Calculator"
60
- within('#actions_container') { click_button "Update" }
61
- within('#action_fields') { fill_in "Amount", with: "5" }
57
+ within('#action_fields') do
58
+ click_button "Add"
59
+ select "Flat Rate", from: I18n.t('spree.admin.promotions.actions.calculator_label')
60
+ fill_in "Amount", with: "5"
61
+ end
62
62
  within('#actions_container') { click_button "Update" }
63
+ expect(page).to have_text 'successfully updated'
63
64
 
64
- promotion = Spree::Promotion.find_by(name: "Promotion")
65
+ promotion = Spree::Promotion.find_by(name: "SAVE SAVE SAVE")
65
66
  expect(promotion.usage_limit).to eq(1)
66
67
  expect(promotion.codes.first.value).to eq("single_use")
67
68
 
@@ -73,10 +74,10 @@ describe "Promotion Adjustments", type: :feature, js: true do
73
74
  end
74
75
 
75
76
  it "should allow an admin to create an automatic promo with flat percent discount" do
76
- fill_in "Name", with: "Promotion"
77
+ fill_in "Name", with: "SAVE SAVE SAVE"
77
78
  choose "Apply to all orders"
78
79
  click_button "Create"
79
- expect(page).to have_title("Promotion - Promotions")
80
+ expect(page).to have_title("SAVE SAVE SAVE - Promotions")
80
81
 
81
82
  select "Item total", from: "Add rule of type"
82
83
  within('#rule_fields') { click_button "Add" }
@@ -85,13 +86,15 @@ describe "Promotion Adjustments", type: :feature, js: true do
85
86
  within('#rule_fields') { click_button "Update" }
86
87
 
87
88
  select "Create whole-order adjustment", from: "Add action of type"
88
- within('#action_fields') { click_button "Add" }
89
- select "Flat Percent", from: "Base Calculator"
90
- within('#actions_container') { click_button "Update" }
91
- within('.calculator-fields') { fill_in "Flat Percent", with: "10" }
89
+ within('#action_fields') do
90
+ click_button "Add"
91
+ select "Flat Percent", from: I18n.t('spree.admin.promotions.actions.calculator_label')
92
+ fill_in "Flat Percent", with: "10"
93
+ end
92
94
  within('#actions_container') { click_button "Update" }
95
+ expect(page).to have_text 'successfully updated'
93
96
 
94
- promotion = Spree::Promotion.find_by(name: "Promotion")
97
+ promotion = Spree::Promotion.find_by(name: "SAVE SAVE SAVE")
95
98
  expect(promotion.codes.first).to be_nil
96
99
 
97
100
  first_rule = promotion.rules.first
@@ -108,10 +111,10 @@ describe "Promotion Adjustments", type: :feature, js: true do
108
111
  it "should allow an admin to create an product promo with percent per item discount" do
109
112
  create(:product, name: "RoR Mug")
110
113
 
111
- fill_in "Name", with: "Promotion"
114
+ fill_in "Name", with: "SAVE SAVE SAVE"
112
115
  choose "Apply to all orders"
113
116
  click_button "Create"
114
- expect(page).to have_title("Promotion - Promotions")
117
+ expect(page).to have_title("SAVE SAVE SAVE - Promotions")
115
118
 
116
119
  select "Product(s)", from: "Add rule of type"
117
120
  within("#rule_fields") { click_button "Add" }
@@ -119,13 +122,15 @@ describe "Promotion Adjustments", type: :feature, js: true do
119
122
  within('#rule_fields') { click_button "Update" }
120
123
 
121
124
  select "Create per-line-item adjustment", from: "Add action of type"
122
- within('#action_fields') { click_button "Add" }
123
- select "Percent Per Item", from: "Base Calculator"
124
- within('#actions_container') { click_button "Update" }
125
- within('.calculator-fields') { fill_in "Percent", with: "10" }
125
+ within('#action_fields') do
126
+ click_button "Add"
127
+ select "Percent Per Item", from: I18n.t('spree.admin.promotions.actions.calculator_label')
128
+ fill_in "Percent", with: "10"
129
+ end
126
130
  within('#actions_container') { click_button "Update" }
131
+ expect(page).to have_text 'successfully updated'
127
132
 
128
- promotion = Spree::Promotion.find_by(name: "Promotion")
133
+ promotion = Spree::Promotion.find_by(name: "SAVE SAVE SAVE")
129
134
  expect(promotion.codes.first).to be_nil
130
135
 
131
136
  first_rule = promotion.rules.first
@@ -140,10 +145,10 @@ describe "Promotion Adjustments", type: :feature, js: true do
140
145
  end
141
146
 
142
147
  it "should allow an admin to create an automatic promotion with free shipping (no code)" do
143
- fill_in "Name", with: "Promotion"
148
+ fill_in "Name", with: "SAVE SAVE SAVE"
144
149
  choose "Apply to all orders"
145
150
  click_button "Create"
146
- expect(page).to have_title("Promotion - Promotions")
151
+ expect(page).to have_title("SAVE SAVE SAVE - Promotions")
147
152
 
148
153
  select "Item total", from: "Add rule of type"
149
154
  within('#rule_fields') { click_button "Add" }
@@ -154,19 +159,19 @@ describe "Promotion Adjustments", type: :feature, js: true do
154
159
  within('#action_fields') { click_button "Add" }
155
160
  expect(page).to have_content('Makes all shipments for the order free')
156
161
 
157
- promotion = Spree::Promotion.find_by(name: "Promotion")
162
+ promotion = Spree::Promotion.find_by(name: "SAVE SAVE SAVE")
158
163
  expect(promotion.codes).to be_empty
159
164
  expect(promotion.rules.first).to be_a(Spree::Promotion::Rules::ItemTotal)
160
165
  expect(promotion.actions.first).to be_a(Spree::Promotion::Actions::FreeShipping)
161
166
  end
162
167
 
163
168
  it "should allow an admin to create an automatic promotion" do
164
- fill_in "Name", with: "Promotion"
169
+ fill_in "Name", with: "SAVE SAVE SAVE"
165
170
  choose "Apply to all orders"
166
171
  click_button "Create"
167
- expect(page).to have_title("Promotion - Promotions")
172
+ expect(page).to have_title("SAVE SAVE SAVE - Promotions")
168
173
 
169
- promotion = Spree::Promotion.find_by(name: "Promotion")
174
+ promotion = Spree::Promotion.find_by(name: "SAVE SAVE SAVE")
170
175
  expect(promotion).to be_apply_automatically
171
176
  expect(promotion.path).to be_nil
172
177
  expect(promotion.codes).to be_empty
@@ -174,13 +179,13 @@ describe "Promotion Adjustments", type: :feature, js: true do
174
179
  end
175
180
 
176
181
  it "should allow an admin to create a promo requiring a landing page to be visited" do
177
- fill_in "Name", with: "Promotion"
182
+ fill_in "Name", with: "SAVE SAVE SAVE"
178
183
  choose "URL Path"
179
184
  fill_in "Path", with: "content/cvv"
180
185
  click_button "Create"
181
- expect(page).to have_title("Promotion - Promotions")
186
+ expect(page).to have_title("SAVE SAVE SAVE - Promotions")
182
187
 
183
- promotion = Spree::Promotion.find_by(name: "Promotion")
188
+ promotion = Spree::Promotion.find_by(name: "SAVE SAVE SAVE")
184
189
  expect(promotion.path).to eq("content/cvv")
185
190
  expect(promotion).not_to be_apply_automatically
186
191
  expect(promotion.codes).to be_empty
@@ -188,14 +193,17 @@ describe "Promotion Adjustments", type: :feature, js: true do
188
193
  end
189
194
 
190
195
  it "should allow an admin to create a promo with generated codes" do
191
- fill_in "Name", with: "Promotion"
196
+ fill_in "Name", with: "SAVE SAVE SAVE"
192
197
  choose "Multiple promotion codes"
193
198
  fill_in "Base code", with: "testing"
194
199
  fill_in "Number of codes", with: "10"
195
- click_button "Create"
196
- expect(page).to have_title("Promotion - Promotions")
197
200
 
198
- promotion = Spree::Promotion.find_by(name: "Promotion")
201
+ perform_enqueued_jobs {
202
+ click_button "Create"
203
+ expect(page).to have_title("SAVE SAVE SAVE - Promotions")
204
+ }
205
+
206
+ promotion = Spree::Promotion.find_by(name: "SAVE SAVE SAVE")
199
207
  expect(promotion.path).to be_nil
200
208
  expect(promotion).not_to be_apply_automatically
201
209
  expect(promotion.rules).to be_blank
@@ -204,10 +212,10 @@ describe "Promotion Adjustments", type: :feature, js: true do
204
212
  end
205
213
 
206
214
  it "ceasing to be eligible for a promotion with item total rule then becoming eligible again" do
207
- fill_in "Name", with: "Promotion"
215
+ fill_in "Name", with: "SAVE SAVE SAVE"
208
216
  choose "Apply to all orders"
209
217
  click_button "Create"
210
- expect(page).to have_title("Promotion - Promotions")
218
+ expect(page).to have_title("SAVE SAVE SAVE - Promotions")
211
219
 
212
220
  select "Item total", from: "Add rule of type"
213
221
  within('#rule_fields') { click_button "Add" }
@@ -215,13 +223,15 @@ describe "Promotion Adjustments", type: :feature, js: true do
215
223
  within('#rule_fields') { click_button "Update" }
216
224
 
217
225
  select "Create whole-order adjustment", from: "Add action of type"
218
- within('#action_fields') { click_button "Add" }
219
- select "Flat Rate", from: "Base Calculator"
220
- within('#actions_container') { click_button "Update" }
221
- within('.calculator-fields') { fill_in "Amount", with: "5" }
226
+ within('#action_fields') do
227
+ click_button "Add"
228
+ select "Flat Rate", from: I18n.t('spree.admin.promotions.actions.calculator_label')
229
+ fill_in "Amount", with: "5"
230
+ end
222
231
  within('#actions_container') { click_button "Update" }
232
+ expect(page).to have_text 'successfully updated'
223
233
 
224
- promotion = Spree::Promotion.find_by(name: "Promotion")
234
+ promotion = Spree::Promotion.find_by(name: "SAVE SAVE SAVE")
225
235
 
226
236
  first_rule = promotion.rules.first
227
237
  expect(first_rule.class).to eq(Spree::Promotion::Rules::ItemTotal)
@@ -232,5 +242,48 @@ describe "Promotion Adjustments", type: :feature, js: true do
232
242
  expect(first_action.calculator.class).to eq(Spree::Calculator::FlatRate)
233
243
  expect(first_action.calculator.preferred_amount).to eq(5)
234
244
  end
245
+
246
+ context 'creating a promotion with promotion action that has a calculator with complex preferences' do
247
+ before do
248
+ class ComplexCalculator < Spree::Calculator
249
+ preference :amount, :decimal
250
+ preference :currency, :string
251
+ preference :mapping, :hash
252
+ preference :list, :array
253
+
254
+ def self.description
255
+ "Complex Calculator"
256
+ end
257
+ end
258
+ @calculators = Rails.application.config.spree.calculators.promotion_actions_create_item_adjustments
259
+ Rails.application.config.spree.calculators.promotion_actions_create_item_adjustments = [ComplexCalculator]
260
+ end
261
+
262
+ after do
263
+ Rails.application.config.spree.calculators.promotion_actions_create_item_adjustments = @calculators
264
+ end
265
+
266
+ it "does not show array and hash form fields" do
267
+ fill_in "Name", with: "SAVE SAVE SAVE"
268
+ choose "Apply to all orders"
269
+ click_button "Create"
270
+ expect(page).to have_title("SAVE SAVE SAVE - Promotions")
271
+
272
+ select "Create per-line-item adjustment", from: "Add action of type"
273
+ within('#action_fields') do
274
+ click_button "Add"
275
+ select "Complex Calculator", from: I18n.t('spree.admin.promotions.actions.calculator_label')
276
+ end
277
+ within('#actions_container') { click_button "Update" }
278
+ expect(page).to have_text 'successfully updated'
279
+
280
+ within('#action_fields') do
281
+ expect(page).to have_field('Amount')
282
+ expect(page).to have_field('Currency')
283
+ expect(page).to_not have_field('Mapping')
284
+ expect(page).to_not have_field('List')
285
+ end
286
+ end
287
+ end
235
288
  end
236
289
  end