solidus_backend 2.1.1 → 2.2.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 (544) hide show
  1. checksums.yaml +4 -4
  2. data/.eslintrc +21 -0
  3. data/Gemfile +3 -0
  4. data/Rakefile +30 -1
  5. data/app/assets/config/solidus_backend_manifest.js +6 -0
  6. data/app/assets/javascripts/spree/backend.js +11 -7
  7. data/app/assets/javascripts/spree/backend/address_states.js +1 -1
  8. data/app/assets/javascripts/spree/backend/admin.js +11 -11
  9. data/app/assets/javascripts/spree/backend/calculator.js +24 -14
  10. data/app/assets/javascripts/spree/backend/checkouts/edit.js +9 -96
  11. data/app/assets/javascripts/spree/backend/collections/index.js +2 -0
  12. data/app/assets/javascripts/spree/backend/collections/line_items.js +9 -0
  13. data/app/assets/javascripts/spree/backend/collections/states.js +13 -0
  14. data/app/assets/javascripts/spree/backend/components/number_with_currency.js +12 -0
  15. data/app/assets/javascripts/spree/backend/components/tooltips.js +2 -1
  16. data/app/assets/javascripts/spree/backend/format_money.js +11 -0
  17. data/app/assets/javascripts/spree/backend/handlebars_extensions.js +18 -0
  18. data/app/assets/javascripts/spree/backend/images/upload.js +1 -1
  19. data/app/assets/javascripts/spree/backend/models/address.js +2 -0
  20. data/app/assets/javascripts/spree/backend/models/index.js +2 -0
  21. data/app/assets/javascripts/spree/backend/models/line_item.js +7 -0
  22. data/app/assets/javascripts/spree/backend/models/order.js +37 -0
  23. data/app/assets/javascripts/spree/backend/namespaces.js +9 -0
  24. data/app/assets/javascripts/spree/backend/orders/cart.js +55 -0
  25. data/app/assets/javascripts/spree/backend/orders/index.js +2 -0
  26. data/app/assets/javascripts/spree/backend/payments/edit.js.coffee +0 -1
  27. data/app/assets/javascripts/spree/backend/payments/new.js +0 -11
  28. data/app/assets/javascripts/spree/backend/promotions.js.coffee +48 -50
  29. data/app/assets/javascripts/spree/backend/promotions/activation.js +26 -0
  30. data/app/assets/javascripts/spree/backend/returns/return_item_selection.js +16 -16
  31. data/app/assets/javascripts/spree/backend/shipments.js +1 -1
  32. data/app/assets/javascripts/spree/backend/spree-select2.js +1 -6
  33. data/app/assets/javascripts/spree/backend/stock_transfers/variant_form.coffee +1 -1
  34. data/app/assets/javascripts/spree/backend/taxon_autocomplete.js +0 -5
  35. data/app/assets/javascripts/spree/backend/taxonomy.js.coffee +9 -9
  36. data/app/assets/javascripts/spree/backend/taxons.js.coffee +7 -7
  37. data/app/assets/javascripts/spree/backend/templates/_image.hbs +5 -0
  38. data/app/assets/javascripts/spree/backend/templates/index.js +3 -0
  39. data/app/assets/javascripts/spree/backend/templates/orders/details_adjustment_row.hbs +4 -0
  40. data/app/assets/javascripts/spree/backend/templates/orders/line_item.hbs +42 -0
  41. data/app/assets/javascripts/spree/backend/templates/promotions/calculators/fields/tiered_flat_rate.hbs +2 -2
  42. data/app/assets/javascripts/spree/backend/templates/promotions/calculators/fields/tiered_percent.hbs +2 -2
  43. data/app/assets/javascripts/spree/backend/templates/promotions/rules/option_values.hbs +2 -2
  44. data/app/assets/javascripts/spree/backend/templates/stock_transfers/{transfer_item.hbs.erb → transfer_item.hbs} +1 -5
  45. data/app/assets/javascripts/spree/backend/templates/variants/{autocomplete.hbs.erb → autocomplete.hbs} +1 -5
  46. data/app/assets/javascripts/spree/backend/templates/variants/line_items_autocomplete_stock.hbs +18 -59
  47. data/app/assets/javascripts/spree/backend/translation.js +29 -0
  48. data/app/assets/javascripts/spree/backend/variant_autocomplete.js.coffee +5 -4
  49. data/app/assets/javascripts/spree/backend/views/cart/add_line_item_button.js +19 -0
  50. data/app/assets/javascripts/spree/backend/views/cart/line_item_row.js +88 -0
  51. data/app/assets/javascripts/spree/backend/views/cart/line_item_table.js +11 -0
  52. data/app/assets/javascripts/spree/backend/views/index.js +12 -0
  53. data/app/assets/javascripts/spree/backend/views/number_with_currency.js +31 -0
  54. data/app/assets/javascripts/spree/backend/views/order/address.js +52 -0
  55. data/app/assets/javascripts/spree/backend/views/order/customer_details.js +68 -0
  56. data/app/assets/javascripts/spree/backend/views/order/customer_select.js +55 -0
  57. data/app/assets/javascripts/spree/backend/views/order/details_adjustments.js +39 -0
  58. data/app/assets/javascripts/spree/backend/views/order/details_total.js +12 -0
  59. data/app/assets/javascripts/spree/backend/views/order/summary.js +36 -0
  60. data/app/assets/javascripts/spree/backend/views/state_select.js +71 -0
  61. data/app/assets/javascripts/spree/backend/views/zones/form.js +16 -0
  62. data/app/assets/javascripts/spree/backend/zone.js +8 -0
  63. data/app/assets/stylesheets/spree/backend.css +1 -1
  64. data/app/assets/stylesheets/spree/backend/_bootstrap_custom.scss +542 -246
  65. data/app/assets/stylesheets/spree/backend/components/_date-picker.scss +5 -7
  66. data/app/assets/stylesheets/spree/backend/components/_image_placeholder.scss +24 -0
  67. data/app/assets/stylesheets/spree/backend/components/_messages.scss +8 -8
  68. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +6 -15
  69. data/app/assets/stylesheets/spree/backend/components/_number_with_currency.scss +39 -0
  70. data/app/assets/stylesheets/spree/backend/components/_progress.scss +5 -5
  71. data/app/assets/stylesheets/spree/backend/components/_states.scss +6 -6
  72. data/app/assets/stylesheets/spree/backend/components/_stock_table.scss +1 -2
  73. data/app/assets/stylesheets/spree/backend/components/_tabs.scss +9 -9
  74. data/app/assets/stylesheets/spree/backend/globals/_deprecation.scss +17 -0
  75. data/app/assets/stylesheets/spree/backend/globals/_variables.scss +25 -4
  76. data/app/assets/stylesheets/spree/backend/globals/mixins/_line_through.scss +1 -1
  77. data/app/assets/stylesheets/spree/backend/plugins/_bootstrap_tooltip.scss +4 -4
  78. data/app/assets/stylesheets/spree/backend/plugins/_select2.scss +64 -187
  79. data/app/assets/stylesheets/spree/backend/sections/_log_entries.scss +3 -3
  80. data/app/assets/stylesheets/spree/backend/sections/_orders.scss +16 -20
  81. data/app/assets/stylesheets/spree/backend/sections/_products.scss +2 -2
  82. data/app/assets/stylesheets/spree/backend/sections/_promotions.scss +7 -2
  83. data/app/assets/stylesheets/spree/backend/sections/_return_authorizations.scss +0 -14
  84. data/app/assets/stylesheets/spree/backend/sections/_stock_management.scss +2 -2
  85. data/app/assets/stylesheets/spree/backend/sections/_store_credits.scss +0 -6
  86. data/app/assets/stylesheets/spree/backend/sections/_style_guide.scss +6 -6
  87. data/app/assets/stylesheets/spree/backend/sections/_taxonomies.scss +1 -1
  88. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +31 -123
  89. data/app/assets/stylesheets/spree/backend/shared/_header.scss +5 -4
  90. data/app/assets/stylesheets/spree/backend/shared/_icons.scss +1 -1
  91. data/app/assets/stylesheets/spree/backend/shared/_images.scss +7 -0
  92. data/app/assets/stylesheets/spree/backend/shared/_layout.scss +4 -14
  93. data/app/assets/stylesheets/spree/backend/shared/_tables.scss +21 -32
  94. data/app/assets/stylesheets/spree/backend/shared/_typography.scss +14 -47
  95. data/app/assets/stylesheets/spree/backend/spree_admin.scss +4 -0
  96. data/app/controllers/spree/admin/adjustments_controller.rb +1 -1
  97. data/app/controllers/spree/admin/base_controller.rb +1 -1
  98. data/app/controllers/spree/admin/cancellations_controller.rb +1 -1
  99. data/app/controllers/spree/admin/customer_returns_controller.rb +2 -0
  100. data/app/controllers/spree/admin/general_settings_controller.rb +1 -27
  101. data/app/controllers/spree/admin/images_controller.rb +1 -1
  102. data/app/controllers/spree/admin/option_types_controller.rb +4 -4
  103. data/app/controllers/spree/admin/orders/customer_details_controller.rb +2 -2
  104. data/app/controllers/spree/admin/orders_controller.rb +2 -2
  105. data/app/controllers/spree/admin/payment_methods_controller.rb +1 -1
  106. data/app/controllers/spree/admin/payments_controller.rb +4 -4
  107. data/app/controllers/spree/admin/products_controller.rb +6 -6
  108. data/app/controllers/spree/admin/promotion_code_batches_controller.rb +28 -0
  109. data/app/controllers/spree/admin/promotion_codes_controller.rb +7 -3
  110. data/app/controllers/spree/admin/promotions_controller.rb +13 -23
  111. data/app/controllers/spree/admin/refunds_controller.rb +1 -1
  112. data/app/controllers/spree/admin/reimbursements_controller.rb +4 -2
  113. data/app/controllers/spree/admin/search_controller.rb +2 -2
  114. data/app/controllers/spree/admin/shipping_methods_controller.rb +2 -2
  115. data/app/controllers/spree/admin/states_controller.rb +1 -1
  116. data/app/controllers/spree/admin/stock_items_controller.rb +3 -3
  117. data/app/controllers/spree/admin/stock_transfers_controller.rb +2 -2
  118. data/app/controllers/spree/admin/store_credits_controller.rb +8 -2
  119. data/app/controllers/spree/admin/stores_controller.rb +23 -0
  120. data/app/controllers/spree/admin/tax_rates_controller.rb +3 -3
  121. data/app/controllers/spree/admin/taxons_controller.rb +5 -5
  122. data/app/controllers/spree/admin/users_controller.rb +1 -8
  123. data/app/controllers/spree/admin/variants_controller.rb +9 -2
  124. data/app/controllers/spree/admin/zones_controller.rb +3 -3
  125. data/app/helpers/spree/admin/base_helper.rb +2 -1
  126. data/app/helpers/spree/admin/navigation_helper.rb +2 -2
  127. data/app/models/spree/backend_configuration.rb +3 -3
  128. data/app/views/spree/admin/adjustment_reasons/edit.html.erb +3 -3
  129. data/app/views/spree/admin/adjustment_reasons/index.html.erb +1 -1
  130. data/app/views/spree/admin/adjustment_reasons/new.html.erb +3 -3
  131. data/app/views/spree/admin/adjustment_reasons/shared/_form.html.erb +3 -3
  132. data/app/views/spree/admin/adjustments/_adjustment.html.erb +2 -2
  133. data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +1 -1
  134. data/app/views/spree/admin/adjustments/_form.html.erb +3 -3
  135. data/app/views/spree/admin/adjustments/edit.html.erb +5 -5
  136. data/app/views/spree/admin/adjustments/index.html.erb +4 -4
  137. data/app/views/spree/admin/adjustments/new.html.erb +4 -4
  138. data/app/views/spree/admin/cancellations/index.html.erb +1 -1
  139. data/app/views/spree/admin/countries/_form.html.erb +5 -5
  140. data/app/views/spree/admin/countries/edit.html.erb +3 -3
  141. data/app/views/spree/admin/countries/index.html.erb +3 -3
  142. data/app/views/spree/admin/countries/new.html.erb +3 -3
  143. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +6 -6
  144. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +5 -5
  145. data/app/views/spree/admin/customer_returns/edit.html.erb +1 -1
  146. data/app/views/spree/admin/customer_returns/index.html.erb +2 -2
  147. data/app/views/spree/admin/customer_returns/new.html.erb +5 -5
  148. data/app/views/spree/admin/images/_form.html.erb +2 -2
  149. data/app/views/spree/admin/images/_image_row.html.erb +5 -3
  150. data/app/views/spree/admin/images/edit.html.erb +7 -7
  151. data/app/views/spree/admin/images/index.html.erb +3 -3
  152. data/app/views/spree/admin/images/new.html.erb +3 -3
  153. data/app/views/spree/admin/log_entries/index.html.erb +1 -1
  154. data/app/views/spree/admin/option_types/_form.html.erb +4 -4
  155. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +1 -1
  156. data/app/views/spree/admin/option_types/edit.html.erb +5 -5
  157. data/app/views/spree/admin/option_types/index.html.erb +4 -4
  158. data/app/views/spree/admin/option_types/new.html.erb +3 -3
  159. data/app/views/spree/admin/option_types/new.js.erb +1 -1
  160. data/app/views/spree/admin/orders/_add_line_item.html.erb +2 -2
  161. data/app/views/spree/admin/orders/_add_product.html.erb +3 -6
  162. data/app/views/spree/admin/orders/_adjustments.html.erb +18 -20
  163. data/app/views/spree/admin/orders/_carton_manifest.html.erb +1 -1
  164. data/app/views/spree/admin/orders/_form.html.erb +5 -29
  165. data/app/views/spree/admin/orders/_line_items.html.erb +22 -48
  166. data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +6 -31
  167. data/app/views/spree/admin/orders/_order_details.html.erb +32 -0
  168. data/app/views/spree/admin/orders/_shipment.html.erb +10 -13
  169. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +3 -3
  170. data/app/views/spree/admin/orders/cart.html.erb +4 -14
  171. data/app/views/spree/admin/orders/confirm.html.erb +3 -3
  172. data/app/views/spree/admin/orders/confirm/_customer_details.html.erb +2 -2
  173. data/app/views/spree/admin/orders/confirm/_payments.html.erb +1 -1
  174. data/app/views/spree/admin/orders/confirm/_shipment_manifest.html.erb +1 -1
  175. data/app/views/spree/admin/orders/customer_details/_form.html.erb +24 -20
  176. data/app/views/spree/admin/orders/customer_details/edit.html.erb +13 -11
  177. data/app/views/spree/admin/orders/customer_details/show.html.erb +2 -2
  178. data/app/views/spree/admin/orders/edit.html.erb +2 -1
  179. data/app/views/spree/admin/orders/index.html.erb +22 -20
  180. data/app/views/spree/admin/payment_methods/_form.html.erb +6 -6
  181. data/app/views/spree/admin/payment_methods/edit.html.erb +3 -3
  182. data/app/views/spree/admin/payment_methods/index.html.erb +4 -4
  183. data/app/views/spree/admin/payment_methods/new.html.erb +3 -3
  184. data/app/views/spree/admin/payments/_form.html.erb +10 -8
  185. data/app/views/spree/admin/payments/_list.html.erb +2 -2
  186. data/app/views/spree/admin/payments/credit.html.erb +1 -1
  187. data/app/views/spree/admin/payments/index.html.erb +3 -3
  188. data/app/views/spree/admin/payments/new.html.erb +4 -4
  189. data/app/views/spree/admin/payments/show.html.erb +3 -3
  190. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +6 -9
  191. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +1 -1
  192. data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +1 -1
  193. data/app/views/spree/admin/prices/_form.html.erb +4 -15
  194. data/app/views/spree/admin/prices/_master_variant_table.html.erb +3 -3
  195. data/app/views/spree/admin/prices/_table.html.erb +2 -2
  196. data/app/views/spree/admin/prices/edit.html.erb +1 -1
  197. data/app/views/spree/admin/prices/index.html.erb +6 -6
  198. data/app/views/spree/admin/prices/new.html.erb +2 -2
  199. data/app/views/spree/admin/prices/new.js.erb +1 -1
  200. data/app/views/spree/admin/product_properties/index.html.erb +5 -5
  201. data/app/views/spree/admin/products/_form.html.erb +21 -27
  202. data/app/views/spree/admin/products/edit.html.erb +6 -6
  203. data/app/views/spree/admin/products/index.html.erb +15 -15
  204. data/app/views/spree/admin/products/new.html.erb +14 -14
  205. data/app/views/spree/admin/products/new.js.erb +1 -1
  206. data/app/views/spree/admin/promotion_actions/create.js.erb +3 -2
  207. data/app/views/spree/admin/promotion_categories/_form.html.erb +4 -4
  208. data/app/views/spree/admin/promotion_categories/edit.html.erb +3 -3
  209. data/app/views/spree/admin/promotion_categories/index.html.erb +2 -2
  210. data/app/views/spree/admin/promotion_categories/new.html.erb +3 -3
  211. data/app/views/spree/admin/promotion_code_batches/download.csv.ruby +6 -0
  212. data/app/views/spree/admin/promotion_code_batches/index.html.erb +65 -0
  213. data/app/views/spree/admin/promotion_code_batches/new.html.erb +23 -0
  214. data/app/views/spree/admin/promotion_codes/index.csv.ruby +1 -1
  215. data/app/views/spree/admin/promotion_codes/index.html.erb +28 -0
  216. data/app/views/spree/admin/promotion_rules/create.js.erb +1 -1
  217. data/app/views/spree/admin/promotions/_actions.html.erb +4 -4
  218. data/app/views/spree/admin/promotions/_activations_edit.html.erb +22 -0
  219. data/app/views/spree/admin/promotions/_activations_new.html.erb +66 -0
  220. data/app/views/spree/admin/promotions/_form.html.erb +51 -64
  221. data/app/views/spree/admin/promotions/_promotion_action.html.erb +4 -4
  222. data/app/views/spree/admin/promotions/_promotion_rule.html.erb +4 -4
  223. data/app/views/spree/admin/promotions/_rules.html.erb +6 -8
  224. data/app/views/spree/admin/promotions/actions/_create_quantity_adjustments.html.erb +2 -2
  225. data/app/views/spree/admin/promotions/actions/_promotion_calculators_with_custom_fields.html.erb +21 -22
  226. data/app/views/spree/admin/promotions/calculators/flat_rate/_fields.html.erb +4 -0
  227. data/app/views/spree/admin/promotions/calculators/tiered_flat_rate/_fields.html.erb +8 -6
  228. data/app/views/spree/admin/promotions/calculators/tiered_percent/_fields.html.erb +8 -6
  229. data/app/views/spree/admin/promotions/edit.html.erb +15 -12
  230. data/app/views/spree/admin/promotions/index.html.erb +9 -9
  231. data/app/views/spree/admin/promotions/new.html.erb +5 -6
  232. data/app/views/spree/admin/promotions/rules/_first_repeat_purchase_since.html.erb +3 -3
  233. data/app/views/spree/admin/promotions/rules/_item_total.html.erb +7 -10
  234. data/app/views/spree/admin/promotions/rules/_landing_page.html.erb +2 -2
  235. data/app/views/spree/admin/promotions/rules/_nth_order.html.erb +4 -4
  236. data/app/views/spree/admin/promotions/rules/_option_value.html.erb +3 -3
  237. data/app/views/spree/admin/promotions/rules/_product.html.erb +4 -4
  238. data/app/views/spree/admin/promotions/rules/_taxon.html.erb +4 -4
  239. data/app/views/spree/admin/promotions/rules/_user.html.erb +1 -1
  240. data/app/views/spree/admin/properties/_form.html.erb +4 -4
  241. data/app/views/spree/admin/properties/edit.html.erb +3 -3
  242. data/app/views/spree/admin/properties/index.html.erb +7 -7
  243. data/app/views/spree/admin/properties/new.html.erb +3 -3
  244. data/app/views/spree/admin/properties/new.js.erb +1 -1
  245. data/app/views/spree/admin/refund_reasons/edit.html.erb +3 -3
  246. data/app/views/spree/admin/refund_reasons/index.html.erb +1 -1
  247. data/app/views/spree/admin/refund_reasons/new.html.erb +3 -3
  248. data/app/views/spree/admin/refund_reasons/shared/_form.html.erb +3 -3
  249. data/app/views/spree/admin/refunds/edit.html.erb +2 -2
  250. data/app/views/spree/admin/refunds/new.html.erb +4 -4
  251. data/app/views/spree/admin/reimbursements/edit.html.erb +6 -6
  252. data/app/views/spree/admin/reimbursements/index.html.erb +2 -2
  253. data/app/views/spree/admin/reimbursements/show.html.erb +6 -6
  254. data/app/views/spree/admin/reports/sales_total.html.erb +1 -1
  255. data/app/views/spree/admin/return_authorizations/_form.html.erb +3 -7
  256. data/app/views/spree/admin/return_authorizations/edit.html.erb +3 -3
  257. data/app/views/spree/admin/return_authorizations/index.html.erb +3 -3
  258. data/app/views/spree/admin/return_authorizations/new.html.erb +3 -3
  259. data/app/views/spree/admin/shared/_address_form.html.erb +12 -20
  260. data/app/views/spree/admin/shared/_calculator_fields.html.erb +10 -13
  261. data/app/views/spree/admin/shared/_configuration_menu.html.erb +2 -2
  262. data/app/views/spree/admin/shared/_head.html.erb +1 -1
  263. data/app/views/spree/admin/shared/_image.html.erb +7 -0
  264. data/app/views/spree/admin/shared/_js_locale_data.html.erb +47 -0
  265. data/app/views/spree/admin/shared/_new_resource_links.html.erb +1 -1
  266. data/app/views/spree/admin/shared/_number_with_currency.html.erb +16 -0
  267. data/app/views/spree/admin/shared/_order_submenu.html.erb +1 -1
  268. data/app/views/spree/admin/shared/_order_summary.html.erb +16 -17
  269. data/app/views/spree/admin/shared/_product_tabs.html.erb +6 -6
  270. data/app/views/spree/admin/shared/_report_criteria.html.erb +7 -7
  271. data/app/views/spree/admin/shared/_report_order_criteria.html.erb +9 -9
  272. data/app/views/spree/admin/shared/_settings_sub_menu.html.erb +2 -2
  273. data/app/views/spree/admin/shared/_sidebar.html.erb +1 -1
  274. data/app/views/spree/admin/shared/_variant_search.html.erb +4 -4
  275. data/app/views/spree/admin/shared/named_types/_edit.html.erb +3 -3
  276. data/app/views/spree/admin/shared/named_types/_form.html.erb +8 -10
  277. data/app/views/spree/admin/shared/named_types/_index.html.erb +1 -1
  278. data/app/views/spree/admin/shared/named_types/_new.html.erb +3 -3
  279. data/app/views/spree/admin/shipping_categories/edit.html.erb +3 -3
  280. data/app/views/spree/admin/shipping_categories/index.html.erb +3 -3
  281. data/app/views/spree/admin/shipping_categories/new.html.erb +3 -3
  282. data/app/views/spree/admin/shipping_methods/_form.html.erb +15 -15
  283. data/app/views/spree/admin/shipping_methods/edit.html.erb +3 -3
  284. data/app/views/spree/admin/shipping_methods/index.html.erb +4 -4
  285. data/app/views/spree/admin/shipping_methods/new.html.erb +3 -3
  286. data/app/views/spree/admin/states/_form.html.erb +4 -4
  287. data/app/views/spree/admin/states/_new.html.erb +2 -2
  288. data/app/views/spree/admin/states/_state_list.html.erb +2 -2
  289. data/app/views/spree/admin/states/edit.html.erb +3 -3
  290. data/app/views/spree/admin/states/index.html.erb +6 -6
  291. data/app/views/spree/admin/states/new.html.erb +3 -3
  292. data/app/views/spree/admin/stock_items/_stock_management.html.erb +3 -3
  293. data/app/views/spree/admin/stock_items/index.html.erb +4 -4
  294. data/app/views/spree/admin/stock_locations/_form.html.erb +10 -10
  295. data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +5 -5
  296. data/app/views/spree/admin/stock_locations/edit.html.erb +3 -3
  297. data/app/views/spree/admin/stock_locations/index.html.erb +4 -4
  298. data/app/views/spree/admin/stock_locations/new.html.erb +3 -3
  299. data/app/views/spree/admin/stock_movements/index.html.erb +2 -8
  300. data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +1 -1
  301. data/app/views/spree/admin/stock_transfers/_transfer_item_table.html.erb +1 -1
  302. data/app/views/spree/admin/stock_transfers/edit.html.erb +1 -1
  303. data/app/views/spree/admin/stock_transfers/index.html.erb +9 -9
  304. data/app/views/spree/admin/stock_transfers/receive.html.erb +1 -1
  305. data/app/views/spree/admin/stock_transfers/show.html.erb +5 -5
  306. data/app/views/spree/admin/store_credits/_form.html.erb +7 -6
  307. data/app/views/spree/admin/store_credits/_update_reason_field.html.erb +1 -1
  308. data/app/views/spree/admin/store_credits/edit_amount.html.erb +1 -1
  309. data/app/views/spree/admin/store_credits/index.html.erb +14 -11
  310. data/app/views/spree/admin/store_credits/new.html.erb +2 -2
  311. data/app/views/spree/admin/stores/_form.html.erb +51 -0
  312. data/app/views/spree/admin/stores/edit.html.erb +19 -0
  313. data/app/views/spree/admin/stores/index.html.erb +41 -0
  314. data/app/views/spree/admin/stores/new.html.erb +15 -0
  315. data/app/views/spree/admin/style_guide/topics/forms/_building_forms.html.erb +10 -8
  316. data/app/views/spree/admin/style_guide/topics/tables/_building_tables.html.erb +23 -4
  317. data/app/views/spree/admin/tax_categories/_form.html.erb +8 -8
  318. data/app/views/spree/admin/tax_categories/edit.html.erb +3 -3
  319. data/app/views/spree/admin/tax_categories/index.html.erb +4 -4
  320. data/app/views/spree/admin/tax_categories/new.html.erb +3 -3
  321. data/app/views/spree/admin/tax_rates/_form.html.erb +7 -7
  322. data/app/views/spree/admin/tax_rates/edit.html.erb +3 -3
  323. data/app/views/spree/admin/tax_rates/index.html.erb +3 -3
  324. data/app/views/spree/admin/tax_rates/new.html.erb +3 -3
  325. data/app/views/spree/admin/taxonomies/_form.html.erb +1 -1
  326. data/app/views/spree/admin/taxonomies/_list.html.erb +2 -2
  327. data/app/views/spree/admin/taxonomies/_taxon.html.erb +1 -1
  328. data/app/views/spree/admin/taxonomies/edit.erb +1 -1
  329. data/app/views/spree/admin/taxonomies/index.html.erb +2 -2
  330. data/app/views/spree/admin/taxonomies/new.html.erb +1 -1
  331. data/app/views/spree/admin/taxons/_form.html.erb +10 -10
  332. data/app/views/spree/admin/taxons/_taxon_table.html.erb +1 -1
  333. data/app/views/spree/admin/taxons/edit.html.erb +2 -2
  334. data/app/views/spree/admin/taxons/index.html.erb +2 -2
  335. data/app/views/spree/admin/users/_addresses_form.html.erb +4 -4
  336. data/app/views/spree/admin/users/_form.html.erb +8 -7
  337. data/app/views/spree/admin/users/addresses.html.erb +5 -5
  338. data/app/views/spree/admin/users/edit.html.erb +15 -15
  339. data/app/views/spree/admin/users/index.html.erb +5 -5
  340. data/app/views/spree/admin/users/items.html.erb +7 -7
  341. data/app/views/spree/admin/users/new.html.erb +3 -3
  342. data/app/views/spree/admin/users/orders.html.erb +7 -7
  343. data/app/views/spree/admin/variants/_form.html.erb +14 -14
  344. data/app/views/spree/admin/variants/_table.html.erb +2 -2
  345. data/app/views/spree/admin/variants/_table_filter.html.erb +3 -3
  346. data/app/views/spree/admin/variants/edit.html.erb +4 -4
  347. data/app/views/spree/admin/variants/index.html.erb +2 -2
  348. data/app/views/spree/admin/variants/new.html.erb +4 -4
  349. data/app/views/spree/admin/variants/new.js.erb +1 -1
  350. data/app/views/spree/admin/zones/_country_members.html.erb +1 -1
  351. data/app/views/spree/admin/zones/_form.html.erb +9 -9
  352. data/app/views/spree/admin/zones/_state_members.html.erb +1 -1
  353. data/app/views/spree/admin/zones/edit.html.erb +3 -3
  354. data/app/views/spree/admin/zones/index.html.erb +6 -6
  355. data/app/views/spree/admin/zones/new.html.erb +3 -3
  356. data/app/views/spree/layouts/admin.html.erb +3 -3
  357. data/app/views/spree/layouts/admin_style_guide.html.erb +1 -1
  358. data/config/initializers/assets.rb +1 -7
  359. data/config/routes.rb +6 -2
  360. data/lib/spree/backend.rb +0 -1
  361. data/lib/spree/backend/engine.rb +0 -5
  362. data/solidus_backend.gemspec +0 -1
  363. data/spec/controllers/spree/admin/payments_controller_spec.rb +21 -7
  364. data/spec/controllers/spree/admin/promotions_controller_spec.rb +30 -36
  365. data/spec/controllers/spree/admin/store_credits_controller_spec.rb +1 -0
  366. data/spec/controllers/spree/admin/users_controller_spec.rb +9 -1
  367. data/spec/features/admin/configuration/payment_methods_spec.rb +1 -1
  368. data/spec/features/admin/configuration/shipping_methods_spec.rb +21 -13
  369. data/spec/features/admin/configuration/stock_locations_spec.rb +3 -2
  370. data/spec/features/admin/configuration/{general_settings_spec.rb → store_spec.rb} +8 -9
  371. data/spec/features/admin/javascript_format_money_spec.rb +20 -0
  372. data/spec/features/admin/orders/customer_details_spec.rb +16 -12
  373. data/spec/features/admin/orders/line_items_spec.rb +2 -2
  374. data/spec/features/admin/orders/listing_spec.rb +25 -10
  375. data/spec/features/admin/orders/new_order_spec.rb +18 -31
  376. data/spec/features/admin/orders/order_details_spec.rb +22 -27
  377. data/spec/features/admin/orders/payments_spec.rb +5 -12
  378. data/spec/features/admin/orders/shipments_spec.rb +36 -2
  379. data/spec/features/admin/products/edit/images_spec.rb +1 -1
  380. data/spec/features/admin/products/edit/products_spec.rb +3 -3
  381. data/spec/features/admin/products/pricing_spec.rb +1 -1
  382. data/spec/features/admin/promotion_adjustments_spec.rb +42 -20
  383. data/spec/features/admin/stock_transfer_spec.rb +4 -4
  384. data/spec/features/admin/users_spec.rb +14 -0
  385. data/spec/javascripts/fixtures/_boot.html.erb +8 -0
  386. data/spec/javascripts/fixtures/number_with_currency/with_currency_select.html.erb +3 -0
  387. data/spec/javascripts/fixtures/number_with_currency/without_select.html.erb +3 -0
  388. data/spec/javascripts/format_money_spec.js +48 -0
  389. data/spec/javascripts/spec_helper.js +11 -0
  390. data/spec/javascripts/support/show_errors.js +8 -0
  391. data/spec/javascripts/support/with_translations.js +11 -0
  392. data/spec/javascripts/translation_spec.js +50 -0
  393. data/spec/javascripts/views/number_with_currency_spec.js +72 -0
  394. data/spec/spec_helper.rb +1 -0
  395. data/spec/support/feature/order_feature_helper.rb +8 -0
  396. data/spec/teaspoon_env.rb +17 -0
  397. data/vendor/assets/images/solidus_admin/select2-spinner.gif +0 -0
  398. data/vendor/assets/images/solidus_admin/select2.png +0 -0
  399. data/vendor/assets/images/solidus_admin/select2x2.png +0 -0
  400. data/vendor/assets/javascripts/solidus_admin/accounting.js +4 -0
  401. data/vendor/assets/javascripts/solidus_admin/backbone-nested-models.js +193 -0
  402. data/vendor/assets/javascripts/solidus_admin/bootstrap.js +1775 -1800
  403. data/vendor/assets/javascripts/solidus_admin/select2.js +3729 -0
  404. data/vendor/assets/javascripts/solidus_admin/select2_locales/index.js +1 -0
  405. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ar.js +19 -0
  406. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_az.js +20 -0
  407. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_bg.js +20 -0
  408. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ca.js +19 -0
  409. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_cs.js +51 -0
  410. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_da.js +19 -0
  411. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_de.js +18 -0
  412. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_el.js +19 -0
  413. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_es.js +19 -0
  414. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_et.js +19 -0
  415. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_eu.js +45 -0
  416. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_fa.js +21 -0
  417. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_fi.js +30 -0
  418. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_fr.js +18 -0
  419. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_gl.js +45 -0
  420. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_he.js +19 -0
  421. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_hr.js +24 -0
  422. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_hu.js +17 -0
  423. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_id.js +21 -0
  424. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_is.js +17 -0
  425. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_it.js +17 -0
  426. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ja.js +17 -0
  427. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ka.js +19 -0
  428. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ko.js +19 -0
  429. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_lt.js +26 -0
  430. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_lv.js +19 -0
  431. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_mk.js +19 -0
  432. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ms.js +21 -0
  433. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_nb.js +22 -0
  434. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_nl.js +17 -0
  435. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_pl.js +54 -0
  436. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_pt-BR.js +18 -0
  437. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_pt-PT.js +17 -0
  438. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ro.js +17 -0
  439. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_rs.js +19 -0
  440. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ru.js +23 -0
  441. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_sk.js +50 -0
  442. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_sv.js +19 -0
  443. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_th.js +19 -0
  444. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_tr.js +20 -0
  445. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_ug-CN.js +16 -0
  446. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_uk.js +25 -0
  447. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_vi.js +20 -0
  448. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_zh-CN.js +16 -0
  449. data/vendor/assets/javascripts/solidus_admin/select2_locales/select2_locale_zh-TW.js +16 -0
  450. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_alert.scss +5 -15
  451. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_badge.scss +77 -0
  452. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_breadcrumb.scss +25 -10
  453. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_button-group.scss +38 -60
  454. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_buttons.scss +27 -30
  455. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_card.scss +66 -82
  456. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_carousel.scss +99 -173
  457. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_close.scss +6 -3
  458. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_code.scss +13 -7
  459. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_custom-forms.scss +151 -114
  460. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_custom.scss +4 -0
  461. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_dropdown.scss +28 -60
  462. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_forms.scss +154 -218
  463. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_grid.scss +22 -46
  464. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_images.scss +7 -17
  465. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_input-group.scss +43 -54
  466. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_list-group.scss +80 -79
  467. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_media.scss +6 -84
  468. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_mixins.scss +9 -7
  469. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_modal.scss +38 -42
  470. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_nav.scss +41 -84
  471. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_navbar.scss +171 -133
  472. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_normalize.scss +230 -197
  473. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_pagination.scss +16 -22
  474. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_popover.scss +87 -56
  475. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_print.scss +96 -65
  476. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_progress.scss +17 -141
  477. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_reboot.scss +76 -34
  478. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_responsive-embed.scss +18 -5
  479. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_tables.scss +26 -66
  480. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_tooltip.scss +23 -18
  481. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_transitions.scss +34 -0
  482. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_type.scss +16 -30
  483. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_utilities.scss +13 -95
  484. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_variables.scss +542 -247
  485. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-grid.scss +20 -39
  486. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-reboot.scss +2 -2
  487. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap.scss +6 -8
  488. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_background-variant.scss +1 -2
  489. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/{_label.scss → _badge.scss} +2 -2
  490. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_breakpoints.scss +25 -16
  491. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_buttons.scss +39 -53
  492. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_cards.scss +11 -2
  493. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_clearfix.scss +1 -1
  494. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_float.scss +9 -0
  495. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_forms.scss +11 -21
  496. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_gradients.scss +5 -11
  497. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_grid-framework.scss +39 -18
  498. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_grid.scss +52 -27
  499. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_hover.scss +10 -9
  500. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_image.scss +6 -4
  501. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_list-group.scss +3 -5
  502. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_pagination.scss +2 -3
  503. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_reset-text.scss +3 -4
  504. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_screen-reader.scss +2 -2
  505. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_text-emphasis.scss +1 -1
  506. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_text-hide.scss +1 -1
  507. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_transforms.scss +14 -0
  508. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_visibility.scss +5 -0
  509. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_align.scss +6 -0
  510. data/vendor/assets/stylesheets/solidus_admin/bootstrap/{_utilities-background.scss → utilities/_background.scss} +3 -8
  511. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_borders.scss +37 -0
  512. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_clearfix.scss +3 -0
  513. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_display.scss +18 -0
  514. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_flex.scss +48 -0
  515. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_float.scss +9 -0
  516. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_position.scss +23 -0
  517. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_screenreaders.scss +11 -0
  518. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_sizing.scss +10 -0
  519. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_spacing.scss +43 -0
  520. data/vendor/assets/stylesheets/solidus_admin/bootstrap/utilities/_text.scss +61 -0
  521. data/vendor/assets/stylesheets/solidus_admin/bootstrap/{_utilities-responsive.scss → utilities/_visibility.scss} +7 -1
  522. data/vendor/assets/stylesheets/solidus_admin/select2.scss +692 -0
  523. metadata +149 -48
  524. data/app/assets/javascripts/spree/backend/handlebars_extensions.coffee +0 -19
  525. data/app/assets/javascripts/spree/backend/line_items.js.coffee +0 -55
  526. data/app/assets/javascripts/spree/backend/line_items_on_order_edit.js +0 -62
  527. data/app/assets/javascripts/spree/backend/returns/expedited_exchanges_warning.coffee +0 -4
  528. data/app/assets/javascripts/spree/backend/stock_movement.js.coffee +0 -21
  529. data/app/assets/javascripts/spree/backend/variant_management.js.coffee +0 -10
  530. data/app/assets/javascripts/spree/backend/zone.js.coffee +0 -43
  531. data/app/views/spree/admin/general_settings/edit.html.erb +0 -80
  532. data/app/views/spree/admin/shared/_translations.html.erb +0 -29
  533. data/app/views/spree/admin/stock_movements/_form.html.erb +0 -12
  534. data/app/views/spree/admin/stock_movements/new.html.erb +0 -15
  535. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_animation.scss +0 -27
  536. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_labels.scss +0 -77
  537. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_pager.scss +0 -57
  538. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_utilities-spacing.scss +0 -39
  539. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-flex.scss +0 -8
  540. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_center-block.scss +0 -7
  541. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_progress.scss +0 -18
  542. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_pulls.scss +0 -6
  543. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_reset-filter.scss +0 -8
  544. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_tab-focus.scss +0 -9
@@ -1,6 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "New Order", type: :feature do
4
+ include OrderFeatureHelper
5
+
4
6
  let!(:product) { create(:product_in_stock) }
5
7
  let!(:state) { create(:state) }
6
8
  let!(:store) { create(:store) }
@@ -24,18 +26,15 @@ describe "New Order", type: :feature do
24
26
 
25
27
  it "completes new order succesfully without using the cart", js: true do
26
28
  click_on 'Cart'
27
- select2_search product.name, from: Spree.t(:name_or_sku)
28
-
29
- fill_in_quantity("table.stock-levels", "quantity_0", 2)
29
+ add_line_item product.name
30
30
 
31
- click_button 'Add'
32
31
  click_on "Customer"
33
32
 
34
33
  within "#select-customer" do
35
34
  targetted_select2_search user.email, from: "#s2id_customer_search"
36
35
  end
37
36
 
38
- check "order_use_billing"
37
+ expect(page).to have_checked_field('order_use_billing')
39
38
  fill_in_address
40
39
  click_on "Update"
41
40
 
@@ -45,7 +44,7 @@ describe "New Order", type: :feature do
45
44
  expect(current_path).to eql(spree.admin_order_payments_path(Spree::Order.last))
46
45
 
47
46
  click_on "Confirm"
48
- click_on "Complete"
47
+ click_on "Complete Order"
49
48
 
50
49
  expect(current_path).to eql(spree.edit_admin_order_path(Spree::Order.last))
51
50
 
@@ -53,7 +52,7 @@ describe "New Order", type: :feature do
53
52
  click_icon "capture"
54
53
 
55
54
  click_on "Shipments"
56
- click_on "ship"
55
+ click_on "Ship"
57
56
 
58
57
  within '.carton-state' do
59
58
  expect(page).to have_content('shipped')
@@ -62,18 +61,15 @@ describe "New Order", type: :feature do
62
61
 
63
62
  it 'can create split payments', js: true do
64
63
  click_on 'Cart'
65
- select2_search product.name, from: Spree.t(:name_or_sku)
64
+ add_line_item product.name
66
65
 
67
- fill_in_quantity("table.stock-levels", "quantity_0", 2)
68
-
69
- click_button 'Add'
70
66
  click_on "Customer"
71
67
 
72
68
  within "#select-customer" do
73
69
  targetted_select2_search user.email, from: "#s2id_customer_search"
74
70
  end
75
71
 
76
- check "order_use_billing"
72
+ expect(page).to have_checked_field('order_use_billing')
77
73
  fill_in_address
78
74
  click_on "Update"
79
75
 
@@ -92,11 +88,7 @@ describe "New Order", type: :feature do
92
88
  context "adding new item to the order", js: true do
93
89
  it "inventory items show up just fine and are also registered as shipments" do
94
90
  click_on 'Cart'
95
- select2_search product.name, from: Spree.t(:name_or_sku)
96
-
97
- fill_in_quantity('table.stock-levels', 'quantity_0', 2)
98
-
99
- click_button 'Add'
91
+ add_line_item product.name
100
92
 
101
93
  within(".line-items") do
102
94
  expect(page).to have_content(product.name)
@@ -108,7 +100,7 @@ describe "New Order", type: :feature do
108
100
  targetted_select2_search user.email, from: "#s2id_customer_search"
109
101
  end
110
102
 
111
- check "order_use_billing"
103
+ expect(page).to have_checked_field('order_use_billing')
112
104
  fill_in_address
113
105
  click_on "Update"
114
106
 
@@ -128,11 +120,7 @@ describe "New Order", type: :feature do
128
120
 
129
121
  it "can still see line items" do
130
122
  click_on 'Cart'
131
- select2_search product.name, from: Spree.t(:name_or_sku)
132
-
133
- fill_in_quantity('table.stock-levels', 'quantity_0', 1)
134
-
135
- click_button 'Add'
123
+ add_line_item product.name
136
124
 
137
125
  within(".line-items") do
138
126
  within(".line-item-name") do
@@ -157,7 +145,7 @@ describe "New Order", type: :feature do
157
145
  targetted_select2_search user.email, from: "#s2id_customer_search"
158
146
  end
159
147
 
160
- check "order_use_billing"
148
+ expect(page).to have_checked_field('order_use_billing')
161
149
  fill_in_address
162
150
  click_on "Update"
163
151
 
@@ -180,17 +168,16 @@ describe "New Order", type: :feature do
180
168
 
181
169
  # Regression test for https://github.com/spree/spree/issues/5327
182
170
  context "customer with default credit card", js: true do
171
+ let!(:credit_card) { create(:credit_card, user: user) }
172
+
183
173
  before do
184
- create(:credit_card, default: true, user: user)
174
+ user.wallet.add(credit_card)
185
175
  end
176
+
186
177
  it "transitions to delivery not to complete" do
187
178
  click_on 'Cart'
188
- select2_search product.name, from: Spree.t(:name_or_sku)
189
- within("table.stock-levels") do
190
- find('.variant_quantity').set(1)
191
- end
192
179
 
193
- click_button 'Add'
180
+ add_line_item product.name
194
181
 
195
182
  expect(page).to have_css('.line-item')
196
183
 
@@ -219,7 +206,7 @@ describe "New Order", type: :feature do
219
206
  fill_in "Street Address", with: "100 first lane"
220
207
  fill_in "Street Address (cont'd)", with: "#101"
221
208
  fill_in "City", with: "Bethesda"
222
- fill_in "Zip", with: "20170"
209
+ fill_in "Zip Code", with: "20170"
223
210
  targetted_select2_search state.name, from: "#s2id_order_#{kind}_address_attributes_state_id"
224
211
  fill_in "Phone", with: "123-456-7890"
225
212
  end
@@ -9,7 +9,7 @@ describe "Order Details", type: :feature, js: true do
9
9
  let!(:tote) { create(:product, name: "Tote", price: 15.00) }
10
10
  let(:order) { create(:order, state: 'complete', completed_at: "2011-02-01 12:36:15", number: "R100") }
11
11
  let(:state) { create(:state) }
12
- # let(:shipment) { create(:shipment, :order => order, :stock_location => stock_location) }
12
+ # let(:shipment) { create(:shipment, order: order, stock_location: stock_location) }
13
13
  let!(:shipping_method) { create(:shipping_method, name: "Default") }
14
14
 
15
15
  before do
@@ -45,13 +45,8 @@ describe "Order Details", type: :feature, js: true do
45
45
  end
46
46
  end
47
47
 
48
- it "can add an item to a shipment" do
49
- select2_search "spree t-shirt", from: Spree.t(:name_or_sku)
50
- within("table.stock-levels") do
51
- fill_in "quantity_0", with: 2
52
- end
53
-
54
- click_button "Add"
48
+ it "can add an item" do
49
+ add_line_item "spree t-shirt", quantity: 2
55
50
 
56
51
  within("#order_total") do
57
52
  expect(page).to have_content("$80.00")
@@ -67,8 +62,10 @@ describe "Order Details", type: :feature, js: true do
67
62
  end
68
63
  end
69
64
 
70
- expect(page).to have_content("Your order is empty") # wait for page refresh
71
65
  expect(page).not_to have_content("spree t-shirt")
66
+
67
+ # Should have a new item row
68
+ expect(page).to have_field('quantity')
72
69
  end
73
70
 
74
71
  # Regression test for https://github.com/spree/spree/issues/3862
@@ -111,11 +108,14 @@ describe "Order Details", type: :feature, js: true do
111
108
  expect(page).to have_content("Default")
112
109
  end
113
110
 
114
- it "will show the variant sku" do
115
- order = create(:completed_order_with_totals)
116
- visit spree.edit_admin_order_path(order)
117
- sku = order.line_items.first.variant.sku
118
- expect(page).to have_content("SKU: #{sku}")
111
+ context "with a completed order" do
112
+ let!(:order) { create(:completed_order_with_totals) }
113
+
114
+ it "will show the variant sku" do
115
+ visit spree.edit_admin_order_path(order)
116
+ sku = order.line_items.first.variant.sku
117
+ expect(page).to have_content("SKU: #{sku}")
118
+ end
119
119
  end
120
120
 
121
121
  context "with special_instructions present" do
@@ -134,12 +134,7 @@ describe "Order Details", type: :feature, js: true do
134
134
  end
135
135
 
136
136
  it "adds variant to order just fine" do
137
- select2_search tote.name, from: Spree.t(:name_or_sku)
138
- within("table.stock-levels") do
139
- fill_in "variant_quantity", with: 1
140
- end
141
-
142
- click_button 'Add'
137
+ add_line_item tote.name
143
138
 
144
139
  within(".line-items") do
145
140
  expect(page).to have_content(tote.name)
@@ -154,7 +149,8 @@ describe "Order Details", type: :feature, js: true do
154
149
  end
155
150
 
156
151
  it "doesn't display the out of stock variant in the search results" do
157
- select2_search_without_selection product.name, from: ".variant_autocomplete"
152
+ click_on 'Add Item'
153
+ select2_search_without_selection product.name, from: ".select-variant"
158
154
 
159
155
  expect(page).to have_selector('.select2-no-results')
160
156
  within(".select2-no-results") do
@@ -229,7 +225,7 @@ describe "Order Details", type: :feature, js: true do
229
225
  within_row(1) { click_icon 'arrows-h' }
230
226
  complete_split_to(stock_location2, quantity: 'ff')
231
227
 
232
- wait_for_ajax
228
+ accept_alert "undefined"
233
229
 
234
230
  expect(order.shipments.count).to eq(1)
235
231
  expect(order.shipments.first.inventory_units_for(product.master).count).to eq(2)
@@ -242,7 +238,7 @@ describe "Order Details", type: :feature, js: true do
242
238
  within_row(1) { click_icon 'arrows-h' }
243
239
  complete_split_to(stock_location2, quantity: 0)
244
240
 
245
- wait_for_ajax
241
+ accept_alert "undefined"
246
242
 
247
243
  expect(order.shipments.count).to eq(1)
248
244
  expect(order.shipments.first.inventory_units_for(product.master).count).to eq(2)
@@ -251,7 +247,7 @@ describe "Order Details", type: :feature, js: true do
251
247
  fill_in 'item_quantity', with: -1
252
248
  click_icon :ok
253
249
 
254
- wait_for_ajax
250
+ accept_alert "undefined"
255
251
 
256
252
  expect(order.shipments.count).to eq(1)
257
253
  expect(order.shipments.first.inventory_units_for(product.master).count).to eq(2)
@@ -282,7 +278,7 @@ describe "Order Details", type: :feature, js: true do
282
278
  within_row(1) { click_icon 'arrows-h' }
283
279
  complete_split_to(stock_location2, quantity: 2)
284
280
 
285
- wait_for_ajax
281
+ accept_alert "undefined"
286
282
 
287
283
  expect(order.shipments.count).to eq(1)
288
284
  expect(order.shipments.first.inventory_units_for(product.master).count).to eq(2)
@@ -381,7 +377,7 @@ describe "Order Details", type: :feature, js: true do
381
377
  complete_split_to(@shipment2, quantity: 200)
382
378
  end
383
379
 
384
- wait_for_ajax
380
+ accept_alert "undefined"
385
381
 
386
382
  expect(order.shipments.count).to eq(2)
387
383
  expect(order.shipments.first.inventory_units_for(product.master).count).to eq(1)
@@ -537,7 +533,6 @@ describe "Order Details", type: :feature, js: true do
537
533
  visit spree.edit_admin_order_path(order)
538
534
 
539
535
  find(".ship-shipment-button").click
540
- wait_for_ajax
541
536
 
542
537
  within '.carton-state' do
543
538
  expect(page).to have_content('shipped')
@@ -113,16 +113,6 @@ describe 'Payments', type: :feature do
113
113
  end
114
114
  end
115
115
 
116
- it 'allows the amount to be edited by clicking on the amount then saving' do
117
- within_row(1) do
118
- find('td.amount span').click
119
- fill_in('amount', with: '$1.01')
120
- click_icon(:save)
121
- expect(page).to have_selector('td.amount span', text: '$1.01')
122
- expect(payment.reload.amount).to eq(1.01)
123
- end
124
- end
125
-
126
116
  it 'allows the amount change to be cancelled by clicking on the cancel button' do
127
117
  within_row(1) do
128
118
  click_icon(:edit)
@@ -195,10 +185,13 @@ describe 'Payments', type: :feature do
195
185
 
196
186
  context "user existing card" do
197
187
  let!(:cc) do
198
- create(:credit_card, user_id: order.user_id, payment_method: payment_method, gateway_customer_profile_id: "BGS-RFRE")
188
+ create(:credit_card, payment_method: payment_method, gateway_customer_profile_id: "BGS-RFRE")
199
189
  end
200
190
 
201
- before { visit spree.admin_order_payments_path(order) }
191
+ before do
192
+ order.user.wallet.add(cc)
193
+ visit spree.admin_order_payments_path(order)
194
+ end
202
195
 
203
196
  it "is able to reuse customer payment source" do
204
197
  expect(find("#card_#{cc.id}")).to be_checked
@@ -30,13 +30,26 @@ describe "Shipments", type: :feature do
30
30
  end
31
31
  end
32
32
 
33
- it "can ship a completed order" do
33
+ def ship_shipment
34
34
  find(".ship-shipment-button").click
35
- wait_for_ajax
36
35
 
37
36
  expect(page).to have_content("shipped package")
38
37
  expect(order.reload.shipment_state).to eq("shipped")
39
38
  end
39
+
40
+ it "can ship a completed order" do
41
+ expect {
42
+ ship_shipment
43
+ }.to change{ ActionMailer::Base.deliveries.count }.by(1)
44
+ end
45
+
46
+ it "doesn't send a shipping confirmation email when ask to suppress the mailer" do
47
+ uncheck 'Send Mailer'
48
+
49
+ expect {
50
+ ship_shipment
51
+ }.not_to change{ ActionMailer::Base.deliveries.count }
52
+ end
40
53
  end
41
54
 
42
55
  context "moving variants between shipments", js: true do
@@ -66,5 +79,26 @@ describe "Shipments", type: :feature do
66
79
  expect(page).to have_css("#shipment_#{shipment2.id} tr.stock-item", count: 2)
67
80
  expect(page).to have_css("#shipment_#{shipment1.id} tr.stock-item", count: 3)
68
81
  end
82
+
83
+ context "with a ready-to-ship order" do
84
+ let(:variant) { create(:variant) }
85
+ let!(:order) do
86
+ create(
87
+ :order_ready_to_ship,
88
+ number: "R100",
89
+ line_items_attributes: [{ variant: variant, quantity: 5 }]
90
+ )
91
+ end
92
+
93
+ it "can transfer all items to a new location" do
94
+ expect(order.shipments.count).to eq(1)
95
+
96
+ within_row(1) { click_icon 'arrows-h' }
97
+ complete_split_to('LA', quantity: 5)
98
+
99
+ expect(page).to_not have_content("package from 'NY Warehouse'")
100
+ expect(page).to have_content("package from 'LA'")
101
+ end
102
+ end
69
103
  end
70
104
  end
@@ -50,7 +50,7 @@ describe "Product Images", type: :feature do
50
50
  visit spree.admin_product_images_path(product)
51
51
  expect(page).to have_content("No images found")
52
52
 
53
- within_fieldset 'Upload Image' do
53
+ within_fieldset 'Upload Images' do
54
54
  # Can also pass multiple files in the array, but SQLite gives a deadlock on insert
55
55
  attach_file('image_attachment', [file_path], visible: false)
56
56
  end
@@ -41,9 +41,9 @@ describe 'Product Details', type: :feature do
41
41
 
42
42
  fill_in "product_slug", with: ''
43
43
  click_button "Update"
44
- within('#product_slug_field') { expect(page).to have_content("is too short") }
44
+ within('#product_slug_field') { expect(page).to have_content("can't be blank") }
45
45
 
46
- fill_in "product_slug", with: 'another-random-slug-value'
46
+ fill_in "product_slug", with: 'x'
47
47
  click_button "Update"
48
48
  expect(page).to have_content("successfully updated!")
49
49
  end
@@ -60,7 +60,7 @@ describe 'Product Details', type: :feature do
60
60
  click_icon :trash
61
61
  end
62
62
  end
63
- wait_for_ajax
63
+ expect(page).to have_content('Product has been deleted')
64
64
  end
65
65
  end
66
66
  end
@@ -55,7 +55,7 @@ describe 'Pricing' do
55
55
  expect(page).to have_content("Search")
56
56
  end
57
57
  end
58
- select variant.options_text, from: "q_variant_id_eq"
58
+ select variant.options_text, from: "q_variant_id_eq", exact: false
59
59
  click_button "Filter Results"
60
60
  expect(page).to have_content("20")
61
61
  expect(page).to_not have_content("49.99")
@@ -1,9 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
- describe "Promotion Adjustments", type: :feature do
3
+ describe "Promotion Adjustments", type: :feature, js: true do
4
4
  stub_authorization!
5
5
 
6
- context "coupon promotions", js: true do
6
+ context "creating a new promotion", js: true do
7
7
  before(:each) do
8
8
  visit spree.admin_path
9
9
  click_link "Promotions"
@@ -12,8 +12,8 @@ describe "Promotion Adjustments", type: :feature do
12
12
 
13
13
  it "should allow an admin to create a flat rate discount coupon promo" do
14
14
  fill_in "Name", with: "Promotion"
15
- fill_in "Base code", with: "order"
16
- fill_in "Number of codes", with: "1"
15
+ fill_in "Promotion Code", with: "order"
16
+
17
17
  click_button "Create"
18
18
  expect(page).to have_content("PromotionsPromotion")
19
19
 
@@ -48,8 +48,8 @@ describe "Promotion Adjustments", type: :feature do
48
48
  it "should allow an admin to create a single user coupon promo with flat rate discount" do
49
49
  fill_in "Name", with: "Promotion"
50
50
  fill_in "promotion[usage_limit]", with: "1"
51
- fill_in "Base code", with: "single_use"
52
- fill_in "Number of codes", with: "1"
51
+ fill_in "Promotion Code", with: "single_use"
52
+
53
53
  click_button "Create"
54
54
  expect(page).to have_content("PromotionsPromotion")
55
55
 
@@ -73,6 +73,7 @@ describe "Promotion Adjustments", type: :feature do
73
73
 
74
74
  it "should allow an admin to create an automatic promo with flat percent discount" do
75
75
  fill_in "Name", with: "Promotion"
76
+ choose "Apply to all orders"
76
77
  click_button "Create"
77
78
  expect(page).to have_content("PromotionsPromotion")
78
79
 
@@ -107,6 +108,7 @@ describe "Promotion Adjustments", type: :feature do
107
108
  create(:product, name: "RoR Mug")
108
109
 
109
110
  fill_in "Name", with: "Promotion"
111
+ choose "Apply to all orders"
110
112
  click_button "Create"
111
113
  expect(page).to have_content("PromotionsPromotion")
112
114
 
@@ -138,6 +140,7 @@ describe "Promotion Adjustments", type: :feature do
138
140
 
139
141
  it "should allow an admin to create an automatic promotion with free shipping (no code)" do
140
142
  fill_in "Name", with: "Promotion"
143
+ choose "Apply to all orders"
141
144
  click_button "Create"
142
145
  expect(page).to have_content("PromotionsPromotion")
143
146
 
@@ -156,33 +159,52 @@ describe "Promotion Adjustments", type: :feature do
156
159
  expect(promotion.actions.first).to be_a(Spree::Promotion::Actions::FreeShipping)
157
160
  end
158
161
 
159
- it "should allow an admin to create an automatic promo requiring a landing page to be visited" do
162
+ it "should allow an admin to create an automatic promotion" do
160
163
  fill_in "Name", with: "Promotion"
161
- fill_in "Path", with: "content/cvv"
164
+ choose "Apply to all orders"
162
165
  click_button "Create"
163
166
  expect(page).to have_content("PromotionsPromotion")
164
167
 
165
- select2 "Create whole-order adjustment", from: "Add action of type"
166
- within('#action_fields') { click_button "Add" }
167
- select2 "Flat Rate", from: "Calculator"
168
- within('#actions_container') { click_button "Update" }
169
- within('.calculator-fields') { fill_in "Amount", with: "4" }
170
- within('#actions_container') { click_button "Update" }
168
+ promotion = Spree::Promotion.find_by_name("Promotion")
169
+ expect(promotion).to be_apply_automatically
170
+ expect(promotion.path).to be_nil
171
+ expect(promotion.codes).to be_empty
172
+ expect(promotion.rules).to be_blank
173
+ end
174
+
175
+ it "should allow an admin to create a promo requiring a landing page to be visited" do
176
+ fill_in "Name", with: "Promotion"
177
+ choose "URL Path"
178
+ fill_in "Path", with: "content/cvv"
179
+ click_button "Create"
180
+ expect(page).to have_content("PromotionsPromotion")
171
181
 
172
182
  promotion = Spree::Promotion.find_by_name("Promotion")
173
183
  expect(promotion.path).to eq("content/cvv")
174
- expect(promotion.codes.first).to be_nil
184
+ expect(promotion).not_to be_apply_automatically
185
+ expect(promotion.codes).to be_empty
175
186
  expect(promotion.rules).to be_blank
187
+ end
176
188
 
177
- first_action = promotion.actions.first
178
- expect(first_action.class).to eq(Spree::Promotion::Actions::CreateAdjustment)
179
- first_action_calculator = first_action.calculator
180
- expect(first_action_calculator.class).to eq(Spree::Calculator::FlatRate)
181
- expect(first_action_calculator.preferred_amount).to eq(4)
189
+ it "should allow an admin to create a promo with generated codes" do
190
+ fill_in "Name", with: "Promotion"
191
+ choose "Multiple promotion codes"
192
+ fill_in "Base code", with: "testing"
193
+ fill_in "Number of codes", with: "10"
194
+ click_button "Create"
195
+ expect(page).to have_content("PromotionsPromotion")
196
+
197
+ promotion = Spree::Promotion.find_by_name("Promotion")
198
+ expect(promotion.path).to be_nil
199
+ expect(promotion).not_to be_apply_automatically
200
+ expect(promotion.rules).to be_blank
201
+
202
+ expect(promotion.codes.count).to eq(10)
182
203
  end
183
204
 
184
205
  it "ceasing to be eligible for a promotion with item total rule then becoming eligible again" do
185
206
  fill_in "Name", with: "Promotion"
207
+ choose "Apply to all orders"
186
208
  click_button "Create"
187
209
  expect(page).to have_content("PromotionsPromotion")
188
210