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
data/lib/spree/backend.rb CHANGED
@@ -4,7 +4,6 @@ require 'jquery-ui-rails'
4
4
  require 'coffee-rails'
5
5
  require 'sass-rails'
6
6
  require 'bourbon'
7
- require 'select2-rails'
8
7
  require 'handlebars_assets'
9
8
  require 'font-awesome-rails'
10
9
 
@@ -6,11 +6,6 @@ module Spree
6
6
  initializer "spree.backend.environment", before: :load_config_initializers do |_app|
7
7
  Spree::Backend::Config = Spree::BackendConfiguration.new
8
8
  end
9
-
10
- # filter sensitive information during logging
11
- initializer "spree.params.filter" do |app|
12
- app.config.filter_parameters += [:password, :password_confirmation, :number]
13
- end
14
9
  end
15
10
  end
16
11
  end
@@ -29,7 +29,6 @@ Gem::Specification.new do |s|
29
29
  s.add_dependency 'bourbon', '>= 4', '< 6'
30
30
  s.add_dependency 'jquery-rails'
31
31
  s.add_dependency 'jquery-ui-rails', '~> 5.0.0'
32
- s.add_dependency 'select2-rails', '3.5.9.1' # 3.5.9.2 breaks forms
33
32
  s.add_dependency 'font-awesome-rails', '~> 4.0'
34
33
 
35
34
  s.add_dependency 'handlebars_assets', '~> 0.23'
@@ -13,7 +13,7 @@ module Spree
13
13
  describe '#create' do
14
14
  context "with a valid credit card" do
15
15
  let(:order) { create(:order_with_line_items, state: "payment") }
16
- let(:payment_method) { create(:credit_card_payment_method, available_to_admin: true, available_to_users: false) }
16
+ let(:payment_method) { create(:credit_card_payment_method, available_to_admin: true) }
17
17
  let(:attributes) do
18
18
  {
19
19
  order_id: order.number,
@@ -75,14 +75,28 @@ module Spree
75
75
  describe '#new' do
76
76
  # Regression test for https://github.com/spree/spree/issues/3233
77
77
  context "with a backend payment method" do
78
- before do
79
- @payment_method = create(:check_payment_method, available_to_admin: true)
78
+ context "and the payment method is active" do
79
+ before do
80
+ @payment_method = create(:check_payment_method, available_to_admin: true)
81
+ end
82
+
83
+ it "loads the payment method" do
84
+ get :new, params: { order_id: order.number }
85
+ expect(response.status).to eq(200)
86
+ expect(assigns[:payment_methods]).to include(@payment_method)
87
+ end
80
88
  end
81
89
 
82
- it "loads backend payment methods" do
83
- get :new, params: { order_id: order.number }
84
- expect(response.status).to eq(200)
85
- expect(assigns[:payment_methods]).to include(@payment_method)
90
+ context "and the payment method is inactive" do
91
+ before do
92
+ @payment_method = create(:check_payment_method, available_to_admin: true, active: false)
93
+ end
94
+
95
+ it "does not load the payment method" do
96
+ get :new, params: { order_id: order.number }
97
+ expect(response.status).to eq(200)
98
+ expect(assigns[:payment_methods]).to be_empty
99
+ end
86
100
  end
87
101
  end
88
102
  end
@@ -46,52 +46,46 @@ describe Spree::Admin::PromotionsController, type: :controller do
46
46
  let(:params) { { promotion: { name: 'some promo' } } }
47
47
 
48
48
  context "it succeeds" do
49
- it "creates a promotion" do
50
- expect { subject }.to change { Spree::Promotion.count }.by(1)
51
- end
49
+ context "with no single code param" do
50
+ it "creates a promotion" do
51
+ expect { subject }.to change { Spree::Promotion.count }.by(1)
52
+ end
52
53
 
53
- it "sets the flash message" do
54
- subject
55
- expect(flash[:success]).to eq "Promotion has been successfully created!"
56
- end
54
+ it "sets the flash message" do
55
+ subject
56
+ expect(flash[:success]).to eq "Promotion has been successfully created!"
57
+ end
57
58
 
58
- it "redirects to promotion edit" do
59
- subject
60
- expect(response).to redirect_to "http://test.host/admin/promotions/#{assigns(:promotion).id}/edit"
61
- end
59
+ it "redirects to promotion edit" do
60
+ subject
61
+ expect(response).to redirect_to "http://test.host/admin/promotions/#{assigns(:promotion).id}/edit"
62
+ end
62
63
 
63
- context "with one promo codes" do
64
- let(:params) do
65
- super().merge(promotion_builder: { base_code: 'abc', number_of_codes: 1 })
64
+ it "doesn't create any promotion codes" do
65
+ expect { subject }.to_not change { Spree::PromotionCode.count }
66
66
  end
67
+ end
67
68
 
68
- it "succeeds and creates one code" do
69
- expect {
70
- expect {
71
- subject
72
- }.to change { Spree::Promotion.count }.by(1)
73
- }.to change { Spree::PromotionCode.count }.by(1)
69
+ context "with a single code" do
70
+ let(:params) { { promotion: { name: 'some promo' }, single_code: "promo" } }
74
71
 
75
- expect(assigns(:promotion).codes.first.value).to eq 'abc'
72
+ it "creates a promotion" do
73
+ expect { subject }.to change { Spree::Promotion.count }.by(1)
76
74
  end
77
- end
78
75
 
79
- context "with multiple promo codes" do
80
- let(:params) do
81
- super().merge(promotion_builder: { base_code: 'abc', number_of_codes: 2 })
76
+ it "sets the flash message" do
77
+ subject
78
+ expect(flash[:success]).to eq "Promotion has been successfully created!"
79
+ end
80
+
81
+ it "redirects to promotion edit" do
82
+ subject
83
+ expect(response).to redirect_to "http://test.host/admin/promotions/#{assigns(:promotion).id}/edit"
82
84
  end
83
85
 
84
- it "succeeds and creates multiple codes" do
85
- expect {
86
- expect {
87
- subject
88
- }.to change { Spree::Promotion.count }.by(1)
89
- }.to change { Spree::PromotionCode.count }.by(2)
90
-
91
- codes = assigns(:promotion).codes.map(&:value).sort
92
- expect(codes.length).to be 2
93
- expect(codes[0]).to match(/abc_[a-z]{6}/)
94
- expect(codes[1]).to match(/abc_[a-z]{6}/)
86
+ it "creates a promotion code" do
87
+ expect { subject }.to change { Spree::PromotionCode.count }.by(1)
88
+ expect(Spree::PromotionCode.last.value).to eq("promo")
95
89
  end
96
90
  end
97
91
  end
@@ -51,6 +51,7 @@ describe Spree::Admin::StoreCreditsController do
51
51
  user_id: user.id,
52
52
  store_credit: {
53
53
  amount: 1.00,
54
+ currency: "USD",
54
55
  category_id: a_credit_category.id
55
56
  }
56
57
  }
@@ -149,9 +149,17 @@ describe Spree::Admin::UsersController, type: :controller do
149
149
  it "can clear roles" do
150
150
  user.spree_roles << dummy_role
151
151
  expect {
152
- put :update, params: { id: user.id, user: { first_name: "Bob", spree_role_ids: [] } }
152
+ put :update, params: { id: user.id, user: { first_name: "Bob", spree_role_ids: [""] } }
153
153
  }.to change { user.reload.spree_roles.to_a }.to([])
154
154
  end
155
+
156
+ context 'when no role params are present' do
157
+ it 'does not clear all present user roles' do
158
+ user.spree_roles << dummy_role
159
+ put :update, params: { id: user.id, user: { first_name: "Bob" } }
160
+ expect(user.reload.spree_roles).to_not be_empty
161
+ end
162
+ end
155
163
  end
156
164
 
157
165
  context "when the user cannot manage roles" do
@@ -35,7 +35,7 @@ describe "Payment Methods", type: :feature do
35
35
  expect(page).to have_content("New Payment Method")
36
36
  fill_in "payment_method_name", with: "check90"
37
37
  fill_in "payment_method_description", with: "check90 desc"
38
- select "PaymentMethod::Check", from: "gtwy-type"
38
+ select "Spree::PaymentMethod::Check", from: "gtwy-type"
39
39
  click_button "Create"
40
40
  expect(page).to have_content("successfully created!")
41
41
  end
@@ -5,16 +5,7 @@ describe "Shipping Methods", type: :feature do
5
5
  let!(:zone) { create(:global_zone) }
6
6
  let!(:shipping_method) { create(:shipping_method, zones: [zone]) }
7
7
 
8
- after do
9
- Capybara.ignore_hidden_elements = true
10
- end
11
-
12
8
  before do
13
- Capybara.ignore_hidden_elements = false
14
- # HACK: To work around no email prompting on check out
15
- allow_any_instance_of(Spree::Order).to receive_messages(require_email: false)
16
- create(:check_payment_method)
17
-
18
9
  visit spree.admin_path
19
10
  click_link "Settings"
20
11
  click_link "Shipping"
@@ -31,7 +22,7 @@ describe "Shipping Methods", type: :feature do
31
22
  end
32
23
  end
33
24
 
34
- context "create" do
25
+ context "create", js: true do
35
26
  it "should be able to create a new shipping method" do
36
27
  click_link "New Shipping Method"
37
28
 
@@ -48,17 +39,34 @@ describe "Shipping Methods", type: :feature do
48
39
 
49
40
  # Regression test for https://github.com/spree/spree/issues/1331
50
41
  context "update" do
42
+ it "can update the existing calculator", js: true do
43
+ within("#listing_shipping_methods") do
44
+ click_icon :edit
45
+ end
46
+
47
+ fill_in 'Amount', with: 20
48
+
49
+ click_button "Update"
50
+
51
+ expect(page).to have_content 'successfully updated'
52
+ expect(page).to have_field 'Amount', with: '20.0'
53
+ end
54
+
51
55
  it "can change the calculator", js: true do
52
56
  within("#listing_shipping_methods") do
53
57
  click_icon :edit
54
58
  end
55
59
 
56
- expect(find(:css, ".calculator-settings-warning")).not_to be_visible
57
60
  select2_search('Flexible Rate', from: 'Calculator')
58
- expect(find(:css, ".calculator-settings-warning")).to be_visible
61
+
62
+ fill_in 'First Item', with: 10
63
+ fill_in 'Additional Item', with: 20
59
64
 
60
65
  click_button "Update"
61
- expect(page).not_to have_content("Shipping method is not found")
66
+
67
+ expect(page).to have_content 'successfully updated'
68
+ expect(page).to have_field 'First Item', with: '10.0'
69
+ expect(page).to have_field 'Additional Item', with: '20.0'
62
70
  end
63
71
  end
64
72
  end
@@ -29,8 +29,9 @@ describe "Stock Locations", type: :feature do
29
29
  accept_alert do
30
30
  click_icon :trash
31
31
  end
32
- # Wait for API request to complete.
33
- wait_for_ajax
32
+
33
+ expect(page).to have_content('Stock Location "NY Warehouse" has been successfully removed')
34
+
34
35
  visit current_path
35
36
  expect(page).to have_content("No Stock Locations found")
36
37
  end
@@ -14,13 +14,12 @@ describe "Store", type: :feature, js: true do
14
14
  visit spree.admin_path
15
15
  click_link "Settings"
16
16
  within('.admin-nav') do
17
- click_link "Store"
17
+ click_link "Stores"
18
18
  end
19
19
  end
20
20
 
21
21
  context "visiting general store settings" do
22
22
  it "should have the right content" do
23
- expect(page).to have_content("SettingsStore")
24
23
  expect(page).to have_field("store_name", with: "Test Store")
25
24
  expect(page).to have_field("store_url", with: "test.example.org")
26
25
  expect(page).to have_field("store_mail_from_address", with: "test@example.org")
@@ -33,29 +32,29 @@ describe "Store", type: :feature, js: true do
33
32
  fill_in "store_mail_from_address", with: "spree@example.org"
34
33
  click_button "Update"
35
34
 
36
- assert_successful_update_message(:general_settings)
35
+ expect(page).to have_content "successfully updated"
37
36
  expect(page).to have_field("store_name", with: "Spree Demo Site99")
38
37
  expect(page).to have_field("store_mail_from_address", with: "spree@example.org")
39
38
  end
40
39
 
41
40
  it "should be able to update the default cart tax country" do
42
- expect(page).to have_select("Tax Country for Empty Carts", selected: "No taxes on carts without address")
41
+ expect(page).to have_select('Tax Country for Empty Carts', selected: 'No taxes on carts without address', visible: false)
43
42
 
44
- select "Germany", from: "Tax Country for Empty Carts"
43
+ select "Germany", from: "Tax Country for Empty Carts", visible: false
45
44
  click_button "Update"
46
45
 
47
- assert_successful_update_message(:general_settings)
48
- expect(page).to have_select("Tax Country for Empty Carts", selected: "Germany")
46
+ expect(page).to have_content("has been successfully updated")
47
+ expect(page).to have_select("Tax Country for Empty Carts", selected: "Germany", visible: false)
49
48
  end
50
49
  end
51
50
 
52
51
  context "update fails" do
53
52
  it "should display the error" do
54
- fill_in "Site Name", with: ""
53
+ fill_in "Site Name", with: " "
55
54
  click_button "Update"
56
55
 
57
56
  expect(page).to have_content("can't be blank")
58
- expect(page).to have_field("Site Name", with: "")
57
+ expect(page).to have_field("Site Name", with: " ")
59
58
  end
60
59
  end
61
60
  end
@@ -0,0 +1,20 @@
1
+ require 'spec_helper'
2
+
3
+ RSpec.describe 'JS Spree.formatMoney', js: true do
4
+ stub_authorization!
5
+
6
+ # This is a slightly hacky spec to ensure that our JS will format money in
7
+ # the same was as our ruby code.
8
+ # This should probably replaced with a pure JS test in the future.
9
+ it 'should behave identically to Spree::Money#to_s' do
10
+ visit '/admin'
11
+
12
+ Money::Currency.all.map(&:id).map(&:to_s).map(&:upcase).uniq.each do |currency|
13
+ money = Spree::Money.new(1234, currency: currency)
14
+
15
+ js_result = page.evaluate_script("Spree.formatMoney(#{money.to_d}, '#{currency}')")
16
+
17
+ expect(js_result).to eq money.to_s
18
+ end
19
+ end
20
+ end
@@ -1,6 +1,8 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe "Customer Details", type: :feature, js: true do
4
+ include OrderFeatureHelper
5
+
4
6
  stub_authorization!
5
7
 
6
8
  let(:country) { create(:country, name: "Kangaland") }
@@ -23,11 +25,9 @@ describe "Customer Details", type: :feature, js: true do
23
25
  click_link "Orders"
24
26
  click_link "New Order"
25
27
  click_on 'Cart'
26
- select2_search product.name, from: Spree.t(:name_or_sku)
27
- within("table.stock-levels") do
28
- find('.variant_quantity').set(quantity)
29
- end
30
- click_button 'Add'
28
+
29
+ add_line_item product.name, quantity: quantity
30
+
31
31
  expect(page).to have_css('.line-item')
32
32
  click_link "Customer"
33
33
  targetted_select2 "foobar@example.com", from: "#s2id_customer_search"
@@ -41,9 +41,9 @@ describe "Customer Details", type: :feature, js: true do
41
41
  expect(page).to have_field('Street Address', with: user.bill_address.address1)
42
42
  expect(page).to have_field("Street Address (cont'd)", with: user.bill_address.address2)
43
43
  expect(page).to have_field('City', with: user.bill_address.city)
44
- expect(page).to have_field('Zip', with: user.bill_address.zipcode)
45
- expect(page).to have_field('Country', with: user.bill_address.country_id)
46
- expect(page).to have_field('State', with: user.bill_address.state_id)
44
+ expect(page).to have_field('Zip Code', with: user.bill_address.zipcode)
45
+ expect(page).to have_select('Country', selected: "United States of America", visible: false)
46
+ expect(page).to have_select('State', selected: user.bill_address.state.name, visible: false)
47
47
  expect(page).to have_field('Phone', with: user.bill_address.phone)
48
48
  click_button "Update"
49
49
  expect(Spree::Order.last.user).not_to be_nil
@@ -137,7 +137,7 @@ describe "Customer Details", type: :feature, js: true do
137
137
 
138
138
  it "sets default country when displaying form" do
139
139
  click_link "Customer"
140
- expect(page).to have_field("order_bill_address_attributes_country_id", with: brazil.id)
140
+ expect(page).to have_field("order_bill_address_attributes_country_id", with: brazil.id, visible: false)
141
141
  end
142
142
  end
143
143
 
@@ -158,13 +158,17 @@ describe "Customer Details", type: :feature, js: true do
158
158
  fill_in "order_ship_address_attributes_city", with: "Bethesda"
159
159
  fill_in "order_ship_address_attributes_zipcode", with: "20170"
160
160
 
161
- page.select('Alabama', from: 'order_ship_address_attributes_state_id')
161
+ select_state('Alabama', 'ship')
162
162
  fill_in "order_ship_address_attributes_phone", with: "123-456-7890"
163
163
  click_button "Update"
164
164
  end
165
165
  end
166
166
  end
167
167
 
168
+ def select_state(state_name, kind = "bill")
169
+ targetted_select2 state_name, from: "#s2id_order_#{kind}_address_attributes_state_id"
170
+ end
171
+
168
172
  def fill_in_address(kind = "bill")
169
173
  fill_in "First Name", with: "John 99"
170
174
  fill_in "Last Name", with: "Doe"
@@ -172,8 +176,8 @@ describe "Customer Details", type: :feature, js: true do
172
176
  fill_in "Street Address", with: "100 first lane"
173
177
  fill_in "Street Address (cont'd)", with: "#101"
174
178
  fill_in "City", with: "Bethesda"
175
- fill_in "Zip", with: "20170"
176
- targetted_select2 "Alabama", from: "#s2id_order_#{kind}_address_attributes_state_id"
179
+ fill_in "Zip Code", with: "20170"
180
+ select_state("Alabama", kind)
177
181
  fill_in "Phone", with: "123-456-7890"
178
182
  end
179
183
  end
@@ -17,7 +17,7 @@ describe "Order Line Items", type: :feature, js: true do
17
17
  end
18
18
 
19
19
  it "can edit a line item's quantity" do
20
- visit spree.edit_admin_order_path(order)
20
+ visit spree.cart_admin_order_path(order)
21
21
  within(".line-items") do
22
22
  find(".edit-line-item").click
23
23
  fill_in "quantity", with: 10
@@ -32,7 +32,7 @@ describe "Order Line Items", type: :feature, js: true do
32
32
  end
33
33
 
34
34
  it "can delete a line item" do
35
- visit spree.edit_admin_order_path(order)
35
+ visit spree.cart_admin_order_path(order)
36
36
 
37
37
  product_name = find(".line-items tr:nth-child(1) .line-item-name").text
38
38
 
@@ -13,6 +13,21 @@ describe "Orders Listing", type: :feature, js: true do
13
13
  visit spree.admin_orders_path
14
14
  end
15
15
 
16
+ it 'displays the new order button' do
17
+ expect(page).to have_link('New Order')
18
+ end
19
+
20
+ context 'without create permission' do
21
+ custom_authorization! do |_user|
22
+ can :manage, Spree::Order
23
+ cannot :create, Spree::Order
24
+ end
25
+
26
+ it 'does not display the new order button' do
27
+ expect(page).to_not have_link('New Order')
28
+ end
29
+ end
30
+
16
31
  context "listing orders" do
17
32
  it "should list existing orders" do
18
33
  within_row(1) do
@@ -30,7 +45,7 @@ describe "Orders Listing", type: :feature, js: true do
30
45
  within_row(1) { expect(page).to have_content("R100") }
31
46
  within_row(2) { expect(page).to have_content("R200") }
32
47
 
33
- click_link "Completed At"
48
+ click_link "Completed At", exact: false
34
49
 
35
50
  # Completed at desc
36
51
  within_row(1) { expect(page).to have_content("R200") }
@@ -57,7 +72,7 @@ describe "Orders Listing", type: :feature, js: true do
57
72
  it "can find the orders belonging to a specific store" do
58
73
  main_store, other_store = stores
59
74
 
60
- click_on "Filter"
75
+ click_on "Filter Results"
61
76
  select2 main_store.name, from: Spree.t(:store)
62
77
  click_on "Filter Results"
63
78
 
@@ -72,7 +87,7 @@ describe "Orders Listing", type: :feature, js: true do
72
87
 
73
88
  context "when there's a single store" do
74
89
  it "should be able to search orders" do
75
- click_on 'Filter'
90
+ click_on "Filter Results"
76
91
  fill_in "q_number_cont", with: "R200"
77
92
  click_on 'Filter Results'
78
93
  within_row(1) do
@@ -84,7 +99,7 @@ describe "Orders Listing", type: :feature, js: true do
84
99
  end
85
100
 
86
101
  it "should be able to filter on variant_id" do
87
- click_on 'Filter'
102
+ click_on "Filter Results"
88
103
  select2_search @order1.products.first.sku, from: Spree.t(:variant)
89
104
  click_on 'Filter Results'
90
105
 
@@ -108,20 +123,20 @@ describe "Orders Listing", type: :feature, js: true do
108
123
  # Regression test for https://github.com/spree/spree/issues/4004
109
124
  it "should be able to go from page to page for incomplete orders" do
110
125
  10.times { Spree::Order.create email: "incomplete@example.com" }
111
- click_on 'Filter'
126
+ click_on "Filter Results"
112
127
  uncheck "q_completed_at_not_null"
113
128
  click_on 'Filter Results'
114
129
  within(".pagination", match: :first) do
115
130
  click_link "2"
116
131
  end
117
132
  expect(page).to have_content("incomplete@example.com")
118
- click_on 'Filter'
133
+ click_on "Filter Results"
119
134
  expect(find("#q_completed_at_not_null")).not_to be_checked
120
135
  end
121
136
  end
122
137
 
123
138
  it "should be able to search orders using only completed at input" do
124
- click_on 'Filter'
139
+ click_on "Filter Results"
125
140
  fill_in "q_created_at_gt", with: Date.current
126
141
 
127
142
  # Just so the datepicker gets out of poltergeists way.
@@ -145,8 +160,8 @@ describe "Orders Listing", type: :feature, js: true do
145
160
  end
146
161
 
147
162
  it "only shows the orders with the selected promotion" do
148
- click_on 'Filter'
149
- fill_in "q_promotions_codes_value_cont", with: promotion.codes.first.value
163
+ click_on "Filter Results"
164
+ fill_in "q_order_promotions_promotion_code_value_cont", with: promotion.codes.first.value
150
165
  click_on 'Filter Results'
151
166
  within_row(1) { expect(page).to have_content("R100") }
152
167
  within("table#listing_orders") { expect(page).not_to have_content("R200") }
@@ -160,7 +175,7 @@ describe "Orders Listing", type: :feature, js: true do
160
175
 
161
176
  it "shows both complete and incomplete orders" do
162
177
  check "q_completed_at_not_null"
163
- click_on 'Filter'
178
+ click_on "Filter Results"
164
179
 
165
180
  expect(page).to have_content("R200")
166
181
  expect(page).to_not have_content("R300")