solidus_backend 1.2.3 → 1.3.0.beta1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of solidus_backend might be problematic. Click here for more details.

Files changed (507) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +3 -3
  3. data/Rakefile +1 -1
  4. data/app/assets/javascripts/spree/backend.js +5 -4
  5. data/app/assets/javascripts/spree/backend/adjustments.js.coffee +1 -1
  6. data/app/assets/javascripts/spree/backend/{admin.js.erb → admin.js} +13 -44
  7. data/app/assets/javascripts/spree/backend/checkouts/edit.js +36 -25
  8. data/app/assets/javascripts/spree/backend/components/tabs.coffee +79 -0
  9. data/app/assets/javascripts/spree/backend/components/tooltips.js +31 -0
  10. data/app/assets/javascripts/spree/backend/images/index.js.coffee +0 -3
  11. data/app/assets/javascripts/spree/backend/{line_items_on_order_edit.js.erb → line_items_on_order_edit.js} +3 -10
  12. data/app/assets/javascripts/spree/backend/{option_type_autocomplete.js.erb → option_type_autocomplete.js} +0 -0
  13. data/app/assets/javascripts/spree/backend/payments/edit.js.coffee +32 -147
  14. data/app/assets/javascripts/spree/backend/routes.js +1 -0
  15. data/app/assets/javascripts/spree/backend/shipments.js +314 -0
  16. data/app/assets/javascripts/spree/backend/{spree-select2.js.erb → spree-select2.js} +2 -11
  17. data/app/assets/javascripts/spree/backend/stock_management/index_add_forms.coffee +52 -73
  18. data/app/assets/javascripts/spree/backend/stock_management/index_update_forms.coffee +54 -52
  19. data/app/assets/javascripts/spree/backend/stock_management/stock_item.coffee +4 -37
  20. data/app/assets/javascripts/spree/backend/stock_movement.js.coffee +1 -1
  21. data/app/assets/javascripts/spree/backend/stock_transfers/edit.coffee +0 -10
  22. data/app/assets/javascripts/spree/backend/stock_transfers/receive.coffee +0 -10
  23. data/app/assets/javascripts/spree/backend/{taxon_autocomplete.js.erb → taxon_autocomplete.js} +10 -6
  24. data/app/assets/javascripts/spree/backend/templates/stock_items/stock_location_stock_item.hbs +25 -19
  25. data/app/assets/javascripts/spree/backend/user_picker.js +8 -5
  26. data/app/assets/javascripts/spree/backend/{variant_autocomplete.js.coffee.erb → variant_autocomplete.js.coffee} +2 -4
  27. data/app/assets/stylesheets/spree/backend.css +0 -3
  28. data/app/assets/stylesheets/spree/backend/_bootstrap_custom.scss +666 -0
  29. data/app/assets/stylesheets/spree/backend/components/_navigation.scss +17 -0
  30. data/app/assets/stylesheets/spree/backend/components/_progress.scss +1 -0
  31. data/app/assets/stylesheets/spree/backend/components/_tabs.scss +108 -0
  32. data/app/assets/stylesheets/spree/backend/plugins/_bootstrap_tooltip.scss +47 -0
  33. data/app/assets/stylesheets/spree/backend/sections/_orders.scss +1 -1
  34. data/app/assets/stylesheets/spree/backend/sections/_payments.scss +14 -0
  35. data/app/assets/stylesheets/spree/backend/sections/_stock_management.scss +11 -9
  36. data/app/assets/stylesheets/spree/backend/sections/_stock_transfers.scss +0 -49
  37. data/app/assets/stylesheets/spree/backend/shared/_forms.scss +11 -14
  38. data/app/assets/stylesheets/spree/backend/shared/_header.scss +30 -0
  39. data/app/assets/stylesheets/spree/backend/shared/_layout.scss +0 -105
  40. data/app/assets/stylesheets/spree/backend/shared/_skeleton.scss +242 -0
  41. data/app/assets/stylesheets/spree/backend/shared/_tables.scss +2 -0
  42. data/app/assets/stylesheets/spree/backend/shared/_typography.scss +5 -1
  43. data/app/assets/stylesheets/spree/backend/shared/_utilities.scss +35 -0
  44. data/app/assets/stylesheets/spree/backend/spree_admin.scss +9 -5
  45. data/app/controllers/spree/admin/adjustments_controller.rb +2 -3
  46. data/app/controllers/spree/admin/base_controller.rb +46 -56
  47. data/app/controllers/spree/admin/cancellations_controller.rb +1 -1
  48. data/app/controllers/spree/admin/countries_controller.rb +0 -2
  49. data/app/controllers/spree/admin/customer_returns_controller.rb +1 -1
  50. data/app/controllers/spree/admin/general_settings_controller.rb +6 -8
  51. data/app/controllers/spree/admin/images_controller.rb +16 -17
  52. data/app/controllers/spree/admin/log_entries_controller.rb +1 -2
  53. data/app/controllers/spree/admin/option_types_controller.rb +17 -21
  54. data/app/controllers/spree/admin/option_values_controller.rb +1 -1
  55. data/app/controllers/spree/admin/orders/customer_details_controller.rb +21 -22
  56. data/app/controllers/spree/admin/orders_controller.rb +41 -42
  57. data/app/controllers/spree/admin/payment_methods_controller.rb +18 -18
  58. data/app/controllers/spree/admin/payments_controller.rb +11 -11
  59. data/app/controllers/spree/admin/product_properties_controller.rb +13 -13
  60. data/app/controllers/spree/admin/products_controller.rb +4 -4
  61. data/app/controllers/spree/admin/promotion_actions_controller.rb +15 -11
  62. data/app/controllers/spree/admin/promotion_codes_controller.rb +0 -1
  63. data/app/controllers/spree/admin/promotion_rules_controller.rb +15 -15
  64. data/app/controllers/spree/admin/promotions_controller.rb +35 -35
  65. data/app/controllers/spree/admin/prototypes_controller.rb +2 -3
  66. data/app/controllers/spree/admin/reports_controller.rb +11 -5
  67. data/app/controllers/spree/admin/resource_controller.rb +130 -133
  68. data/app/controllers/spree/admin/return_authorizations_controller.rb +2 -2
  69. data/app/controllers/spree/admin/return_items_controller.rb +0 -1
  70. data/app/controllers/spree/admin/search_controller.rb +1 -3
  71. data/app/controllers/spree/admin/shipping_methods_controller.rb +3 -3
  72. data/app/controllers/spree/admin/states_controller.rb +10 -10
  73. data/app/controllers/spree/admin/stock_items_controller.rb +42 -42
  74. data/app/controllers/spree/admin/stock_locations_controller.rb +4 -12
  75. data/app/controllers/spree/admin/stock_movements_controller.rb +1 -1
  76. data/app/controllers/spree/admin/stock_transfers_controller.rb +7 -4
  77. data/app/controllers/spree/admin/store_credits_controller.rb +4 -4
  78. data/app/controllers/spree/admin/style_guide_controller.rb +3 -0
  79. data/app/controllers/spree/admin/taxonomies_controller.rb +0 -6
  80. data/app/controllers/spree/admin/taxons_controller.rb +13 -36
  81. data/app/controllers/spree/admin/users_controller.rb +54 -72
  82. data/app/controllers/spree/admin/variants_controller.rb +22 -35
  83. data/app/controllers/spree/admin/variants_including_master_controller.rb +0 -2
  84. data/app/controllers/spree/admin/zones_controller.rb +11 -11
  85. data/app/helpers/spree/admin/adjustments_helper.rb +4 -5
  86. data/app/helpers/spree/admin/base_helper.rb +32 -34
  87. data/app/helpers/spree/admin/general_settings_helper.rb +1 -1
  88. data/app/helpers/spree/admin/images_helper.rb +0 -1
  89. data/app/helpers/spree/admin/navigation_helper.rb +41 -35
  90. data/app/helpers/spree/admin/orders_helper.rb +5 -6
  91. data/app/helpers/spree/admin/payments_helper.rb +1 -1
  92. data/app/helpers/spree/admin/products_helper.rb +7 -7
  93. data/app/helpers/spree/admin/stock_locations_helper.rb +1 -1
  94. data/app/helpers/spree/admin/store_credit_events_helper.rb +6 -6
  95. data/app/helpers/spree/admin/tables_helper.rb +0 -2
  96. data/app/helpers/spree/admin/taxons_helper.rb +1 -1
  97. data/app/helpers/spree/promotion_rules_helper.rb +1 -4
  98. data/app/models/spree/backend_configuration.rb +1 -0
  99. data/app/views/kaminari/solidus_admin/_first_page.html.erb +3 -0
  100. data/app/views/kaminari/solidus_admin/_gap.html.erb +3 -0
  101. data/app/views/kaminari/solidus_admin/_last_page.html.erb +3 -0
  102. data/app/views/kaminari/solidus_admin/_next_page.html.erb +3 -0
  103. data/app/views/kaminari/solidus_admin/_page.html.erb +9 -0
  104. data/app/views/kaminari/solidus_admin/_paginator.html.erb +15 -0
  105. data/app/views/kaminari/solidus_admin/_prev_page.html.erb +3 -0
  106. data/app/views/spree/admin/adjustment_reasons/edit.html.erb +2 -0
  107. data/app/views/spree/admin/adjustment_reasons/index.html.erb +7 -6
  108. data/app/views/spree/admin/adjustment_reasons/new.html.erb +2 -0
  109. data/app/views/spree/admin/adjustment_reasons/shared/_form.html.erb +3 -3
  110. data/app/views/spree/admin/adjustments/_adjustments_table.html.erb +4 -4
  111. data/app/views/spree/admin/adjustments/_form.html.erb +5 -5
  112. data/app/views/spree/admin/adjustments/edit.html.erb +1 -2
  113. data/app/views/spree/admin/adjustments/new.html.erb +0 -1
  114. data/app/views/spree/admin/cancellations/index.html.erb +6 -6
  115. data/app/views/spree/admin/countries/_form.html.erb +3 -3
  116. data/app/views/spree/admin/countries/edit.html.erb +1 -1
  117. data/app/views/spree/admin/countries/index.html.erb +4 -4
  118. data/app/views/spree/admin/countries/new.html.erb +1 -1
  119. data/app/views/spree/admin/customer_returns/_reimbursements_table.html.erb +4 -4
  120. data/app/views/spree/admin/customer_returns/_return_item_decision.html.erb +10 -10
  121. data/app/views/spree/admin/customer_returns/_return_item_selection.html.erb +11 -11
  122. data/app/views/spree/admin/customer_returns/edit.html.erb +2 -2
  123. data/app/views/spree/admin/customer_returns/index.html.erb +9 -10
  124. data/app/views/spree/admin/customer_returns/new.html.erb +2 -3
  125. data/app/views/spree/admin/general_settings/edit.html.erb +37 -26
  126. data/app/views/spree/admin/images/_form.html.erb +2 -2
  127. data/app/views/spree/admin/images/edit.html.erb +0 -1
  128. data/app/views/spree/admin/images/index.html.erb +2 -2
  129. data/app/views/spree/admin/images/new.html.erb +0 -3
  130. data/app/views/spree/admin/log_entries/index.html.erb +2 -2
  131. data/app/views/spree/admin/option_types/_form.html.erb +3 -3
  132. data/app/views/spree/admin/option_types/_option_value_fields.html.erb +1 -1
  133. data/app/views/spree/admin/option_types/edit.html.erb +7 -5
  134. data/app/views/spree/admin/option_types/index.html.erb +6 -7
  135. data/app/views/spree/admin/orders/_add_product.html.erb +1 -1
  136. data/app/views/spree/admin/orders/_adjustments.html.erb +4 -2
  137. data/app/views/spree/admin/orders/_carton.html.erb +7 -7
  138. data/app/views/spree/admin/orders/_carton_manifest.html.erb +3 -5
  139. data/app/views/spree/admin/orders/_form.html.erb +0 -1
  140. data/app/views/spree/admin/orders/_line_items.html.erb +10 -8
  141. data/app/views/spree/admin/orders/_line_items_edit_form.html.erb +0 -2
  142. data/app/views/spree/admin/orders/_risk_analysis.html.erb +3 -1
  143. data/app/views/spree/admin/orders/_shipment.html.erb +99 -100
  144. data/app/views/spree/admin/orders/_shipment_manifest.html.erb +4 -9
  145. data/app/views/spree/admin/orders/confirm/_line_items.html.erb +4 -4
  146. data/app/views/spree/admin/orders/confirm/_payments.html.erb +7 -7
  147. data/app/views/spree/admin/orders/confirm/_shipment.html.erb +10 -7
  148. data/app/views/spree/admin/orders/confirm/_shipment_manifest.html.erb +2 -2
  149. data/app/views/spree/admin/orders/customer_details/_form.html.erb +1 -5
  150. data/app/views/spree/admin/orders/index.html.erb +15 -14
  151. data/app/views/spree/admin/payment_methods/_form.html.erb +9 -10
  152. data/app/views/spree/admin/payment_methods/edit.html.erb +1 -1
  153. data/app/views/spree/admin/payment_methods/index.html.erb +18 -17
  154. data/app/views/spree/admin/payment_methods/new.html.erb +2 -2
  155. data/app/views/spree/admin/payments/_capture_events.html.erb +2 -2
  156. data/app/views/spree/admin/payments/_form.html.erb +3 -3
  157. data/app/views/spree/admin/payments/_list.html.erb +29 -17
  158. data/app/views/spree/admin/payments/credit.html.erb +3 -3
  159. data/app/views/spree/admin/payments/index.html.erb +3 -3
  160. data/app/views/spree/admin/payments/new.html.erb +2 -2
  161. data/app/views/spree/admin/payments/show.html.erb +3 -3
  162. data/app/views/spree/admin/payments/source_forms/_gateway.html.erb +4 -4
  163. data/app/views/spree/admin/payments/source_views/_gateway.html.erb +4 -4
  164. data/app/views/spree/admin/payments/source_views/_storecredit.html.erb +5 -5
  165. data/app/views/spree/admin/product_properties/index.html.erb +6 -8
  166. data/app/views/spree/admin/products/_form.html.erb +33 -33
  167. data/app/views/spree/admin/products/_properties_form.erb +1 -1
  168. data/app/views/spree/admin/products/index.html.erb +10 -9
  169. data/app/views/spree/admin/products/new.html.erb +6 -5
  170. data/app/views/spree/admin/promotion_codes/index.csv.ruby +2 -2
  171. data/app/views/spree/admin/promotions/_actions.html.erb +2 -2
  172. data/app/views/spree/admin/promotions/_form.html.erb +2 -2
  173. data/app/views/spree/admin/promotions/_rules.html.erb +1 -1
  174. data/app/views/spree/admin/promotions/actions/_promotion_calculators_with_custom_fields.html.erb +1 -1
  175. data/app/views/spree/admin/promotions/calculators/tiered_flat_rate/_fields.html.erb +1 -1
  176. data/app/views/spree/admin/promotions/calculators/tiered_percent/_fields.html.erb +1 -1
  177. data/app/views/spree/admin/promotions/index.html.erb +15 -16
  178. data/app/views/spree/admin/promotions/rules/_item_total.html.erb +5 -2
  179. data/app/views/spree/admin/promotions/rules/_option_value.html.erb +3 -3
  180. data/app/views/spree/admin/properties/_form.html.erb +2 -2
  181. data/app/views/spree/admin/properties/index.html.erb +8 -9
  182. data/app/views/spree/admin/prototypes/_form.html.erb +4 -4
  183. data/app/views/spree/admin/prototypes/_prototypes.html.erb +2 -2
  184. data/app/views/spree/admin/prototypes/index.html.erb +7 -10
  185. data/app/views/spree/admin/prototypes/new.js.erb +1 -1
  186. data/app/views/spree/admin/prototypes/show.html.erb +1 -1
  187. data/app/views/spree/admin/refund_reasons/edit.html.erb +2 -0
  188. data/app/views/spree/admin/refund_reasons/index.html.erb +7 -8
  189. data/app/views/spree/admin/refund_reasons/new.html.erb +2 -0
  190. data/app/views/spree/admin/refund_reasons/shared/_form.html.erb +2 -2
  191. data/app/views/spree/admin/refunds/edit.html.erb +3 -4
  192. data/app/views/spree/admin/refunds/new.html.erb +4 -5
  193. data/app/views/spree/admin/reimbursement_types/index.html.erb +4 -4
  194. data/app/views/spree/admin/reimbursements/edit.html.erb +10 -11
  195. data/app/views/spree/admin/reimbursements/index.html.erb +4 -6
  196. data/app/views/spree/admin/reimbursements/show.html.erb +12 -12
  197. data/app/views/spree/admin/return_authorizations/_form.html.erb +15 -15
  198. data/app/views/spree/admin/return_authorizations/edit.html.erb +1 -2
  199. data/app/views/spree/admin/return_authorizations/index.html.erb +5 -5
  200. data/app/views/spree/admin/return_authorizations/new.html.erb +1 -2
  201. data/app/views/spree/admin/return_reasons/index.html.erb +2 -2
  202. data/app/views/spree/admin/shared/_address_form.html.erb +10 -10
  203. data/app/views/spree/admin/shared/_areas_tabs.html.erb +19 -0
  204. data/app/views/spree/admin/shared/_calculator_fields.html.erb +2 -2
  205. data/app/views/spree/admin/shared/_configuration_menu.html.erb +9 -64
  206. data/app/views/spree/admin/shared/_destroy.js.erb +0 -2
  207. data/app/views/spree/admin/shared/_edit_resource_links.html.erb +0 -1
  208. data/app/views/spree/admin/shared/_flash.html.erb +11 -0
  209. data/app/views/spree/admin/shared/_general_tabs.html.erb +2 -0
  210. data/app/views/spree/admin/shared/_head.html.erb +10 -1
  211. data/app/views/spree/admin/shared/_header.html.erb +13 -5
  212. data/app/views/spree/admin/shared/_navigation.html.erb +1 -1
  213. data/app/views/spree/admin/shared/_navigation_header.html.erb +5 -0
  214. data/app/views/spree/admin/shared/_new_resource_links.html.erb +0 -1
  215. data/app/views/spree/admin/shared/_no_objects_found.html.erb +4 -0
  216. data/app/views/spree/admin/shared/_order_submenu.html.erb +18 -18
  217. data/app/views/spree/admin/shared/_order_summary.html.erb +12 -12
  218. data/app/views/spree/admin/shared/_order_tabs.html.erb +4 -1
  219. data/app/views/spree/admin/shared/_payments_tabs.html.erb +9 -0
  220. data/app/views/spree/admin/shared/_product_sub_menu.html.erb +2 -2
  221. data/app/views/spree/admin/shared/_product_tabs.html.erb +9 -14
  222. data/app/views/spree/admin/shared/_promotion_sub_menu.html.erb +1 -1
  223. data/app/views/spree/admin/shared/_refunds.html.erb +6 -6
  224. data/app/views/spree/admin/shared/_settings_checkout_tabs.html.erb +21 -0
  225. data/app/views/spree/admin/shared/_settings_sub_menu.html.erb +26 -0
  226. data/app/views/spree/admin/shared/_shipping_tabs.html.erb +17 -0
  227. data/app/views/spree/admin/shared/_spinner.html.erb +6 -0
  228. data/app/views/spree/admin/shared/_stock_sub_menu.html.erb +3 -3
  229. data/app/views/spree/admin/shared/_table_filter.html.erb +1 -1
  230. data/app/views/spree/admin/shared/_tabs.html.erb +4 -2
  231. data/app/views/spree/admin/shared/_taxes_tabs.html.erb +13 -0
  232. data/app/views/spree/admin/shared/_variant_search.html.erb +2 -2
  233. data/app/views/spree/admin/shared/named_types/_edit.html.erb +2 -0
  234. data/app/views/spree/admin/shared/named_types/_form.html.erb +3 -5
  235. data/app/views/spree/admin/shared/named_types/_index.html.erb +4 -5
  236. data/app/views/spree/admin/shared/named_types/_new.html.erb +2 -0
  237. data/app/views/spree/admin/shipping_categories/_form.html.erb +2 -2
  238. data/app/views/spree/admin/shipping_categories/edit.html.erb +1 -1
  239. data/app/views/spree/admin/shipping_categories/index.html.erb +6 -7
  240. data/app/views/spree/admin/shipping_categories/new.html.erb +1 -1
  241. data/app/views/spree/admin/shipping_methods/_form.html.erb +26 -8
  242. data/app/views/spree/admin/shipping_methods/edit.html.erb +1 -1
  243. data/app/views/spree/admin/shipping_methods/index.html.erb +10 -11
  244. data/app/views/spree/admin/shipping_methods/new.html.erb +1 -1
  245. data/app/views/spree/admin/states/_form.html.erb +2 -2
  246. data/app/views/spree/admin/states/_state_list.html.erb +3 -3
  247. data/app/views/spree/admin/states/edit.html.erb +1 -1
  248. data/app/views/spree/admin/states/index.html.erb +3 -3
  249. data/app/views/spree/admin/states/new.html.erb +1 -1
  250. data/app/views/spree/admin/stock_items/_stock_management.html.erb +15 -27
  251. data/app/views/spree/admin/stock_items/index.html.erb +1 -3
  252. data/app/views/spree/admin/stock_locations/_form.html.erb +17 -18
  253. data/app/views/spree/admin/stock_locations/_transfer_stock_form.html.erb +2 -3
  254. data/app/views/spree/admin/stock_locations/edit.html.erb +1 -1
  255. data/app/views/spree/admin/stock_locations/index.html.erb +9 -10
  256. data/app/views/spree/admin/stock_locations/new.html.erb +1 -1
  257. data/app/views/spree/admin/stock_movements/_form.html.erb +2 -2
  258. data/app/views/spree/admin/stock_movements/index.html.erb +8 -9
  259. data/app/views/spree/admin/stock_transfers/_stock_movements.html.erb +4 -4
  260. data/app/views/spree/admin/stock_transfers/_transfer_item_actions.html.erb +1 -1
  261. data/app/views/spree/admin/stock_transfers/_transfer_item_table.html.erb +1 -1
  262. data/app/views/spree/admin/stock_transfers/edit.html.erb +8 -21
  263. data/app/views/spree/admin/stock_transfers/index.html.erb +8 -6
  264. data/app/views/spree/admin/stock_transfers/new.html.erb +2 -3
  265. data/app/views/spree/admin/stock_transfers/receive.html.erb +6 -21
  266. data/app/views/spree/admin/stock_transfers/show.html.erb +8 -8
  267. data/app/views/spree/admin/stock_transfers/tracking_info.html.erb +10 -23
  268. data/app/views/spree/admin/store_credits/_form.html.erb +3 -3
  269. data/app/views/spree/admin/store_credits/_update_reason_field.html.erb +1 -1
  270. data/app/views/spree/admin/store_credits/edit_amount.html.erb +1 -1
  271. data/app/views/spree/admin/store_credits/edit_validity.html.erb +0 -1
  272. data/app/views/spree/admin/store_credits/index.html.erb +11 -12
  273. data/app/views/spree/admin/store_credits/show.html.erb +11 -11
  274. data/app/views/spree/admin/style_guide/topics/components/_tabs.html.erb +17 -0
  275. data/app/views/spree/admin/style_guide/topics/forms/_building_forms.html.erb +2 -2
  276. data/app/views/spree/admin/style_guide/topics/messaging/_tooltips.html.erb +1 -1
  277. data/app/views/spree/admin/tax_categories/_form.html.erb +5 -7
  278. data/app/views/spree/admin/tax_categories/edit.html.erb +1 -1
  279. data/app/views/spree/admin/tax_categories/index.html.erb +8 -9
  280. data/app/views/spree/admin/tax_categories/new.html.erb +1 -1
  281. data/app/views/spree/admin/tax_categories/show.html.erb +1 -1
  282. data/app/views/spree/admin/tax_rates/_form.html.erb +4 -4
  283. data/app/views/spree/admin/tax_rates/edit.html.erb +1 -1
  284. data/app/views/spree/admin/tax_rates/index.html.erb +12 -13
  285. data/app/views/spree/admin/tax_rates/new.html.erb +2 -2
  286. data/app/views/spree/admin/taxonomies/_form.html.erb +1 -1
  287. data/app/views/spree/admin/taxonomies/_list.html.erb +1 -1
  288. data/app/views/spree/admin/taxonomies/edit.erb +0 -3
  289. data/app/views/spree/admin/taxonomies/index.html.erb +4 -7
  290. data/app/views/spree/admin/taxonomies/new.html.erb +1 -3
  291. data/app/views/spree/admin/taxons/_form.html.erb +8 -7
  292. data/app/views/spree/admin/taxons/_taxon_table.html.erb +1 -1
  293. data/app/views/spree/admin/taxons/edit.html.erb +1 -4
  294. data/app/views/spree/admin/taxons/index.html.erb +1 -1
  295. data/app/views/spree/admin/trackers/_form.html.erb +3 -3
  296. data/app/views/spree/admin/trackers/edit.html.erb +1 -1
  297. data/app/views/spree/admin/trackers/index.html.erb +7 -8
  298. data/app/views/spree/admin/trackers/new.html.erb +1 -1
  299. data/app/views/spree/admin/users/_addresses_form.html.erb +2 -4
  300. data/app/views/spree/admin/users/_form.html.erb +6 -6
  301. data/app/views/spree/admin/users/_sidebar.html.erb +5 -5
  302. data/app/views/spree/admin/users/addresses.html.erb +1 -1
  303. data/app/views/spree/admin/users/edit.html.erb +0 -2
  304. data/app/views/spree/admin/users/index.html.erb +2 -2
  305. data/app/views/spree/admin/users/items.html.erb +11 -12
  306. data/app/views/spree/admin/users/orders.html.erb +9 -10
  307. data/app/views/spree/admin/variants/_form.html.erb +60 -34
  308. data/app/views/spree/admin/variants/_table.html.erb +47 -0
  309. data/app/views/spree/admin/variants/_table_filter.html.erb +25 -0
  310. data/app/views/spree/admin/variants/edit.html.erb +6 -1
  311. data/app/views/spree/admin/variants/index.html.erb +28 -112
  312. data/app/views/spree/admin/variants/new.html.erb +1 -1
  313. data/app/views/spree/admin/variants/new.js.erb +2 -3
  314. data/app/views/spree/admin/zones/_country_members.html.erb +2 -2
  315. data/app/views/spree/admin/zones/_form.html.erb +3 -3
  316. data/app/views/spree/admin/zones/_state_members.html.erb +2 -2
  317. data/app/views/spree/admin/zones/edit.html.erb +1 -1
  318. data/app/views/spree/admin/zones/index.html.erb +9 -10
  319. data/app/views/spree/admin/zones/new.html.erb +1 -1
  320. data/app/views/spree/layouts/admin.html.erb +15 -33
  321. data/config/initializers/assets.rb +7 -1
  322. data/config/initializers/form_builder.rb +2 -3
  323. data/config/routes.rb +12 -11
  324. data/lib/spree/backend.rb +1 -0
  325. data/lib/spree/backend/action_callbacks.rb +0 -1
  326. data/lib/spree/backend/callbacks.rb +3 -5
  327. data/lib/spree/backend/engine.rb +1 -14
  328. data/script/rails +0 -1
  329. data/solidus_backend.gemspec +1 -0
  330. data/spec/controllers/spree/admin/base_controller_spec.rb +2 -2
  331. data/spec/controllers/spree/admin/cancellations_controller_spec.rb +2 -2
  332. data/spec/controllers/spree/admin/customer_returns_controller_spec.rb +6 -7
  333. data/spec/controllers/spree/admin/general_settings_controller_spec.rb +1 -1
  334. data/spec/controllers/spree/admin/missing_products_controller_spec.rb +2 -4
  335. data/spec/controllers/spree/admin/orders/customer_details_controller_spec.rb +0 -1
  336. data/spec/controllers/spree/admin/orders_controller_spec.rb +27 -91
  337. data/spec/controllers/spree/admin/payment_methods_controller_spec.rb +38 -13
  338. data/spec/controllers/spree/admin/payments_controller_spec.rb +108 -104
  339. data/spec/controllers/spree/admin/products_controller_spec.rb +7 -7
  340. data/spec/controllers/spree/admin/promotion_actions_controller_spec.rb +3 -3
  341. data/spec/controllers/spree/admin/promotion_codes_controller_spec.rb +1 -1
  342. data/spec/controllers/spree/admin/promotion_rules_controller_spec.rb +3 -3
  343. data/spec/controllers/spree/admin/promotions_controller_spec.rb +6 -9
  344. data/spec/controllers/spree/admin/refunds_controller_spec.rb +0 -1
  345. data/spec/controllers/spree/admin/reimbursements_controller_spec.rb +3 -3
  346. data/spec/controllers/spree/admin/reports_controller_spec.rb +14 -9
  347. data/spec/controllers/spree/admin/resource_controller_spec.rb +6 -6
  348. data/spec/controllers/spree/admin/return_authorizations_controller_spec.rb +13 -13
  349. data/spec/controllers/spree/admin/return_items_controller_spec.rb +2 -2
  350. data/spec/controllers/spree/admin/search_controller_spec.rb +2 -2
  351. data/spec/controllers/spree/admin/shipping_methods_controller_spec.rb +3 -3
  352. data/spec/controllers/spree/admin/stock_items_controller_spec.rb +1 -1
  353. data/spec/controllers/spree/admin/stock_locations_controller_spec.rb +8 -7
  354. data/spec/controllers/spree/admin/stock_transfers_controller_spec.rb +13 -25
  355. data/spec/controllers/spree/admin/store_credits_controller_spec.rb +3 -4
  356. data/spec/controllers/spree/admin/users_controller_spec.rb +19 -19
  357. data/spec/controllers/spree/admin/variants_controller_spec.rb +7 -6
  358. data/spec/features/admin/configuration/analytics_tracker_spec.rb +3 -3
  359. data/spec/features/admin/configuration/countries_spec.rb +1 -1
  360. data/spec/features/admin/configuration/general_settings_spec.rb +12 -2
  361. data/spec/features/admin/configuration/payment_methods_spec.rb +13 -12
  362. data/spec/features/admin/configuration/shipping_methods_spec.rb +7 -7
  363. data/spec/features/admin/configuration/states_spec.rb +12 -12
  364. data/spec/features/admin/configuration/stock_locations_spec.rb +5 -4
  365. data/spec/features/admin/configuration/tax_categories_spec.rb +6 -6
  366. data/spec/features/admin/configuration/tax_rates_spec.rb +4 -4
  367. data/spec/features/admin/configuration/taxonomies_spec.rb +6 -6
  368. data/spec/features/admin/configuration/zones_spec.rb +6 -6
  369. data/spec/features/admin/homepage_spec.rb +2 -5
  370. data/spec/features/admin/locale_spec.rb +9 -7
  371. data/spec/features/admin/orders/adjustments_promotions_spec.rb +15 -15
  372. data/spec/features/admin/orders/adjustments_spec.rb +17 -18
  373. data/spec/features/admin/orders/cancelling_and_resuming_spec.rb +1 -2
  374. data/spec/features/admin/orders/cancelling_inventory_spec.rb +1 -1
  375. data/spec/features/admin/orders/customer_details_spec.rb +12 -12
  376. data/spec/features/admin/orders/line_items_spec.rb +3 -3
  377. data/spec/features/admin/orders/listing_spec.rb +21 -1
  378. data/spec/features/admin/orders/log_entries_spec.rb +7 -7
  379. data/spec/features/admin/orders/new_order_spec.rb +7 -7
  380. data/spec/features/admin/orders/order_details_spec.rb +41 -29
  381. data/spec/features/admin/orders/payments_spec.rb +20 -28
  382. data/spec/features/admin/orders/risk_analysis_spec.rb +2 -2
  383. data/spec/features/admin/orders/shipments_spec.rb +11 -6
  384. data/spec/features/admin/products/edit/images_spec.rb +14 -14
  385. data/spec/features/admin/products/edit/products_spec.rb +10 -10
  386. data/spec/features/admin/products/edit/taxons_spec.rb +2 -2
  387. data/spec/features/admin/products/edit/variants_spec.rb +9 -9
  388. data/spec/features/admin/products/option_types_spec.rb +11 -12
  389. data/spec/features/admin/products/products_spec.rb +66 -68
  390. data/spec/features/admin/products/properties_spec.rb +14 -14
  391. data/spec/features/admin/products/prototypes_spec.rb +3 -3
  392. data/spec/features/admin/products/stock_management_spec.rb +16 -11
  393. data/spec/features/admin/products/variant_spec.rb +4 -4
  394. data/spec/features/admin/promotion_adjustments_spec.rb +41 -41
  395. data/spec/features/admin/reports_spec.rb +9 -9
  396. data/spec/features/admin/stock_transfer_spec.rb +8 -22
  397. data/spec/features/admin/store_credits_spec.rb +0 -1
  398. data/spec/features/admin/taxons_spec.rb +5 -6
  399. data/spec/features/admin/users_spec.rb +6 -9
  400. data/spec/helpers/admin/base_helper_spec.rb +1 -2
  401. data/spec/helpers/admin/navigation_helper_spec.rb +15 -18
  402. data/spec/helpers/admin/reimbursements_helper_spec.rb +3 -3
  403. data/spec/helpers/admin/stock_movements_helper_spec.rb +1 -3
  404. data/spec/helpers/admin/store_credit_events_helper_spec.rb +3 -3
  405. data/spec/helpers/promotion_rules_helper_spec.rb +1 -1
  406. data/spec/spec_helper.rb +7 -4
  407. data/spec/support/feature/base_feature_helper.rb +3 -3
  408. data/vendor/assets/javascripts/{backbone.js → solidus_admin/backbone.js} +764 -452
  409. data/vendor/assets/javascripts/solidus_admin/bind-polyfill.js +28 -0
  410. data/vendor/assets/javascripts/solidus_admin/bootstrap.js +3560 -0
  411. data/vendor/assets/javascripts/solidus_admin/tether.js +1726 -0
  412. data/vendor/assets/javascripts/solidus_admin/underscore.js +1548 -0
  413. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_alert.scss +65 -0
  414. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_animation.scss +27 -0
  415. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_breadcrumb.scss +23 -0
  416. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_button-group.scss +224 -0
  417. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_buttons.scss +173 -0
  418. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_card.scss +292 -0
  419. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_carousel.scss +252 -0
  420. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_close.scss +28 -0
  421. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_code.scss +58 -0
  422. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_custom-forms.scss +226 -0
  423. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_dropdown.scss +193 -0
  424. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_forms.scss +452 -0
  425. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_grid.scss +76 -0
  426. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_images.scss +53 -0
  427. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_input-group.scss +189 -0
  428. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_jumbotron.scss +20 -0
  429. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_labels.scss +77 -0
  430. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_list-group.scss +140 -0
  431. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_media.scss +90 -0
  432. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_mixins.scss +55 -0
  433. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_modal.scss +146 -0
  434. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_nav.scss +162 -0
  435. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_navbar.scss +230 -0
  436. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_normalize.scss +428 -0
  437. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_pager.scss +57 -0
  438. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_pagination.scss +73 -0
  439. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_popover.scss +140 -0
  440. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_print.scss +88 -0
  441. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_progress.scss +156 -0
  442. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_reboot.scss +347 -0
  443. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_responsive-embed.scss +39 -0
  444. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_tables.scss +193 -0
  445. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_tooltip.scss +85 -0
  446. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_type.scss +157 -0
  447. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_utilities-background.scss +24 -0
  448. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_utilities-responsive.scss +49 -0
  449. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_utilities-spacing.scss +39 -0
  450. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_utilities.scss +95 -0
  451. data/vendor/assets/stylesheets/solidus_admin/bootstrap/_variables.scss +666 -0
  452. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-flex.scss +8 -0
  453. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-grid.scss +62 -0
  454. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap-reboot.scss +10 -0
  455. data/vendor/assets/stylesheets/solidus_admin/bootstrap/bootstrap.scss +56 -0
  456. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_alert.scss +14 -0
  457. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_background-variant.scss +13 -0
  458. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_border-radius.scss +35 -0
  459. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_breakpoints.scss +86 -0
  460. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_buttons.scss +100 -0
  461. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_cards.scss +38 -0
  462. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_center-block.scss +7 -0
  463. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_clearfix.scss +7 -0
  464. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_forms.scss +89 -0
  465. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_gradients.scss +43 -0
  466. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_grid-framework.scss +44 -0
  467. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_grid.scss +75 -0
  468. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_hover.scss +59 -0
  469. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_image.scss +34 -0
  470. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_label.scss +11 -0
  471. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_list-group.scss +30 -0
  472. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_lists.scss +7 -0
  473. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_nav-divider.scss +10 -0
  474. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_navbar-align.scss +9 -0
  475. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_pagination.scss +22 -0
  476. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_progress.scss +18 -0
  477. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_pulls.scss +6 -0
  478. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_reset-filter.scss +8 -0
  479. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_reset-text.scss +18 -0
  480. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_resize.scss +6 -0
  481. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_screen-reader.scss +32 -0
  482. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_size.scss +6 -0
  483. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_tab-focus.scss +9 -0
  484. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_table-row.scss +30 -0
  485. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_text-emphasis.scss +12 -0
  486. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_text-hide.scss +8 -0
  487. data/vendor/assets/stylesheets/solidus_admin/bootstrap/mixins/_text-truncate.scss +8 -0
  488. metadata +140 -35
  489. data/app/assets/javascripts/spree/backend/orders/edit_form.js +0 -20
  490. data/app/assets/javascripts/spree/backend/shipments.js.erb +0 -353
  491. data/app/assets/javascripts/spree/backend/stock_management/index.coffee +0 -4
  492. data/app/assets/javascripts/spree/backend/stock_transfers/ship.js.coffee +0 -10
  493. data/app/assets/javascripts/spree/backend/taxon_tree_menu.js.coffee +0 -21
  494. data/app/assets/javascripts/spree/frontend/backend.js +0 -1
  495. data/app/assets/stylesheets/spree/backend/components/_pagination.scss +0 -17
  496. data/app/assets/stylesheets/spree/backend/plugins/_powertip.scss +0 -87
  497. data/app/assets/stylesheets/spree/backend/plugins/_token-input.scss +0 -110
  498. data/app/assets/stylesheets/spree/frontend/backend.css +0 -1
  499. data/app/views/spree/admin/orders/_line_item.html.erb +0 -9
  500. data/app/views/spree/admin/shared/_content_header.html.erb +0 -23
  501. data/app/views/spree/admin/shared/_show_resource_links.html.erb +0 -5
  502. data/app/views/spree/admin/shared/_update_order_state.js +0 -7
  503. data/vendor/assets/javascripts/jquery.cookie.js +0 -41
  504. data/vendor/assets/javascripts/jquery.powertip.js +0 -1165
  505. data/vendor/assets/javascripts/underscore-min.js +0 -1227
  506. data/vendor/assets/stylesheets/bootstrap/components/_media.scss +0 -61
  507. data/vendor/assets/stylesheets/jquery.powertip.css +0 -85
@@ -4,7 +4,7 @@ describe Spree::Admin::GeneralSettingsController, type: :controller do
4
4
  let(:user) { create(:user) }
5
5
 
6
6
  before do
7
- allow(controller).to receive_messages :spree_current_user => user
7
+ allow(controller).to receive_messages spree_current_user: user
8
8
  user.spree_roles << Spree::Role.find_or_create_by(name: 'admin')
9
9
  end
10
10
 
@@ -4,15 +4,13 @@ require 'spec_helper'
4
4
  # the load_resource filter in Spree::Admin::ResourceController is prepended to the filter chain
5
5
  # this means this call is triggered before the authorize_admin call and in this case
6
6
  # the load_resource filter halts the request meaning authorize_admin is not called at all.
7
- describe Spree::Admin::ProductsController, :type => :controller do
7
+ describe Spree::Admin::ProductsController, type: :controller do
8
8
  stub_authorization!
9
9
 
10
10
  # Regression test for GH https://github.com/spree/spree/issues/538
11
11
  it "cannot find a non-existent product" do
12
- spree_get :edit, :id => "non-existent-product"
12
+ spree_get :edit, id: "non-existent-product"
13
13
  expect(response).to redirect_to(spree.admin_products_path)
14
14
  expect(flash[:error]).to eql("Product is not found")
15
15
  end
16
16
  end
17
-
18
-
@@ -3,7 +3,6 @@ require "cancan"
3
3
  require "spree/testing_support/bar_ability"
4
4
 
5
5
  describe Spree::Admin::Orders::CustomerDetailsController, type: :controller do
6
-
7
6
  context "with authorization" do
8
7
  stub_authorization!
9
8
 
@@ -2,8 +2,8 @@ require 'spec_helper'
2
2
  require 'cancan'
3
3
  require 'spree/testing_support/bar_ability'
4
4
 
5
- describe Spree::Admin::OrdersController, :type => :controller do
6
-
5
+ describe Spree::Admin::OrdersController, type: :controller do
6
+ let!(:store) { create(:store) }
7
7
  context "with authorization" do
8
8
  stub_authorization!
9
9
 
@@ -23,7 +23,7 @@ describe Spree::Admin::OrdersController, :type => :controller do
23
23
  total: 100,
24
24
  number: 'R123456789',
25
25
  all_adjustments: adjustments,
26
- ship_address: mock_model(Spree::Address),
26
+ ship_address: mock_model(Spree::Address)
27
27
  )
28
28
  end
29
29
 
@@ -60,7 +60,7 @@ describe Spree::Admin::OrdersController, :type => :controller do
60
60
 
61
61
  context "pagination" do
62
62
  it "can page through the orders" do
63
- spree_get :index, :page => 2, :per_page => 10
63
+ spree_get :index, page: 2, per_page: 10
64
64
  expect(assigns[:orders].offset_value).to eq(10)
65
65
  expect(assigns[:orders].limit_value).to eq(10)
66
66
  end
@@ -70,7 +70,7 @@ describe Spree::Admin::OrdersController, :type => :controller do
70
70
  context "#new" do
71
71
  let(:user) { create(:user) }
72
72
  before do
73
- allow(controller).to receive_messages :spree_current_user => user
73
+ allow(controller).to receive_messages spree_current_user: user
74
74
  end
75
75
 
76
76
  it "imports a new order and sets the current user as a creator" do
@@ -96,7 +96,7 @@ describe Spree::Admin::OrdersController, :type => :controller do
96
96
 
97
97
  context "when a user_id is passed as a parameter" do
98
98
  let(:user) { mock_model(Spree.user_class) }
99
- before { allow(Spree.user_class).to receive_messages :find_by_id => user }
99
+ before { allow(Spree.user_class).to receive_messages find_by_id: user }
100
100
 
101
101
  it "imports a new order and assigns the user to the order" do
102
102
  expect(Spree::Core::Importer::Order).to receive(:import)
@@ -115,27 +115,27 @@ describe Spree::Admin::OrdersController, :type => :controller do
115
115
  # Regression test for https://github.com/spree/spree/issues/3684
116
116
  context "#edit" do
117
117
  it "does not refresh rates if the order is completed" do
118
- allow(order).to receive_messages :completed? => true
118
+ allow(order).to receive_messages completed?: true
119
119
  expect(order).not_to receive :refresh_shipment_rates
120
- spree_get :edit, :id => order.number
120
+ spree_get :edit, id: order.number
121
121
  end
122
122
 
123
123
  it "does refresh the rates if the order is incomplete" do
124
- allow(order).to receive_messages :completed? => false
124
+ allow(order).to receive_messages completed?: false
125
125
  expect(order).to receive :refresh_shipment_rates
126
- spree_get :edit, :id => order.number
126
+ spree_get :edit, id: order.number
127
127
  end
128
128
 
129
129
  context "when order does not have a ship address" do
130
130
  before do
131
- allow(order).to receive_messages :ship_address => nil
131
+ allow(order).to receive_messages ship_address: nil
132
132
  end
133
133
 
134
134
  context 'when order_bill_address_used is true' do
135
135
  before { Spree::Config[:order_bill_address_used] = true }
136
136
 
137
137
  it "should redirect to the customer details page" do
138
- spree_get :edit, :id => order.number
138
+ spree_get :edit, id: order.number
139
139
  expect(response).to redirect_to(spree.edit_admin_order_customer_path(order))
140
140
  end
141
141
  end
@@ -144,7 +144,7 @@ describe Spree::Admin::OrdersController, :type => :controller do
144
144
  before { Spree::Config[:order_bill_address_used] = false }
145
145
 
146
146
  it "should redirect to the customer details page" do
147
- spree_get :edit, :id => order.number
147
+ spree_get :edit, id: order.number
148
148
  expect(response).to redirect_to(spree.edit_admin_order_customer_path(order))
149
149
  end
150
150
  end
@@ -180,14 +180,14 @@ describe Spree::Admin::OrdersController, :type => :controller do
180
180
 
181
181
  it 'messages and redirects' do
182
182
  subject
183
- expect(flash[:error]) == order.errors.full_messages
183
+ expect(flash[:error]).to eq order.errors.full_messages
184
184
  expect(response).to redirect_to(spree.confirm_admin_order_path(order))
185
185
  end
186
186
  end
187
187
  end
188
188
 
189
189
  context 'when already completed' do
190
- before { allow(order).to receive_messages :completed? => true }
190
+ before { allow(order).to receive_messages completed?: true }
191
191
 
192
192
  it 'messages and redirects' do
193
193
  subject
@@ -280,7 +280,7 @@ describe Spree::Admin::OrdersController, :type => :controller do
280
280
  let(:user) { create(:user) }
281
281
 
282
282
  before do
283
- allow(controller).to receive_messages :spree_current_user => user
283
+ allow(controller).to receive_messages spree_current_user: user
284
284
  user.spree_roles << Spree::Role.find_or_create_by(name: 'admin')
285
285
 
286
286
  create(:completed_order_with_totals)
@@ -291,7 +291,7 @@ describe Spree::Admin::OrdersController, :type => :controller do
291
291
  spree_get :index, q: {
292
292
  line_items_variant_id_in: Spree::Order.first.variants.map(&:id)
293
293
  }
294
- expect(assigns[:orders].map { |o| o.number }.count).to eq 1
294
+ expect(assigns[:orders].map(&:number).count).to eq 1
295
295
  end
296
296
  end
297
297
 
@@ -337,49 +337,36 @@ describe Spree::Admin::OrdersController, :type => :controller do
337
337
  end
338
338
 
339
339
  context '#authorize_admin' do
340
- let(:user) { create(:user) }
341
- let(:order) { create(:completed_order_with_totals, :number => 'R987654321') }
340
+ let!(:user) { create(:user) }
341
+ let!(:order) { create(:completed_order_with_totals, number: 'R987654321') }
342
342
 
343
343
  before do
344
- allow(Spree::Order).to receive_messages :find_by_number! => order
345
- allow(controller).to receive_messages :spree_current_user => user
344
+ allow(controller).to receive_messages spree_current_user: user
346
345
  end
347
346
 
348
347
  it 'should grant access to users with an admin role' do
349
348
  user.spree_roles << Spree::Role.find_or_create_by(name: 'admin')
350
- spree_post :index
349
+ spree_get :index
351
350
  expect(response).to render_template :index
352
351
  end
353
352
 
354
353
  it 'should grant access to users with an bar role' do
355
354
  user.spree_roles << Spree::Role.find_or_create_by(name: 'bar')
356
355
  Spree::Ability.register_ability(BarAbility)
357
- spree_post :index
356
+ spree_get :index
358
357
  expect(response).to render_template :index
359
358
  Spree::Ability.remove_ability(BarAbility)
360
359
  end
361
360
 
362
- it 'should deny access to users with an bar role' do
363
- allow(order).to receive(:update_attributes).and_return true
364
- allow(order).to receive(:user).and_return Spree.user_class.new
365
- allow(order).to receive(:token).and_return nil
366
- user.spree_roles.clear
367
- user.spree_roles << Spree::Role.find_or_create_by(name: 'bar')
368
- Spree::Ability.register_ability(BarAbility)
369
- spree_put :update, { :id => 'R123' }
370
- expect(response).to redirect_to('/unauthorized')
371
- Spree::Ability.remove_ability(BarAbility)
372
- end
373
-
374
361
  it 'should deny access to users without an admin role' do
375
- allow(user).to receive_messages :has_spree_role? => false
376
- spree_post :index
362
+ allow(user).to receive_messages has_spree_role?: false
363
+ spree_get :index
377
364
  expect(response).to redirect_to('/unauthorized')
378
365
  end
379
366
 
380
367
  context 'with only permissions on Order' do
381
- stub_authorization! do |ability|
382
- can [:admin, :manage], Spree::Order, :number => 'R987654321'
368
+ stub_authorization! do |_ability|
369
+ can [:admin, :manage], Spree::Order, number: 'R987654321'
383
370
  end
384
371
 
385
372
  it 'should restrict returned order(s) on index when using OrderSpecificAbility' do
@@ -388,7 +375,7 @@ describe Spree::Admin::OrdersController, :type => :controller do
388
375
  3.times { create(:completed_order_with_totals) }
389
376
  expect(Spree::Order.complete.count).to eq 4
390
377
 
391
- allow(user).to receive_messages :has_spree_role? => false
378
+ allow(user).to receive_messages has_spree_role?: false
392
379
  spree_get :index
393
380
  expect(response).to render_template :index
394
381
  expect(assigns['orders'].size).to eq 1
@@ -406,55 +393,4 @@ describe Spree::Admin::OrdersController, :type => :controller do
406
393
  }.to raise_error ActiveRecord::RecordNotFound
407
394
  end
408
395
  end
409
-
410
- describe "#update" do
411
- stub_authorization!
412
-
413
- let(:order) { create(:order) }
414
- let(:payload) do
415
- {
416
- id: order.number,
417
- order: { email: "foo@bar.com" }
418
- }
419
- end
420
-
421
- before do
422
- allow(order.contents).to receive(:update_cart)
423
- expect(Spree::Order).to receive(:find_by_number!) { order }
424
- end
425
- subject { spree_put :update, payload }
426
-
427
- it "attempts to update the order" do
428
- expect(order.contents).to receive(:update_cart).with(payload[:order])
429
- subject
430
- end
431
-
432
- context "the order is already completed" do
433
- before { allow(order).to receive(:completed?) { true } }
434
-
435
- it "renders the edit route" do
436
- subject
437
- expect(response).to render_template(:edit)
438
- end
439
- end
440
-
441
- context "the order is not completed" do
442
- before { allow(order).to receive(:completed?) { false } }
443
-
444
- it "redirects to the customer path" do
445
- subject
446
- expect(response).to redirect_to(spree.admin_order_customer_path(order))
447
- end
448
- end
449
-
450
- context "the order has no line items" do
451
- let(:order) { Spree::Order.new(:number => "1234") }
452
-
453
- it "includes an error on the order" do
454
- subject
455
- expect(order.errors[:line_items]).to include Spree.t('errors.messages.blank')
456
- end
457
- end
458
-
459
- end
460
396
  end
@@ -2,33 +2,39 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  class GatewayWithPassword < PaymentMethod
5
- preference :password, :string, :default => "password"
5
+ preference :password, :string, default: "password"
6
6
  end
7
7
 
8
- describe Admin::PaymentMethodsController, :type => :controller do
8
+ describe Admin::PaymentMethodsController, type: :controller do
9
9
  stub_authorization!
10
10
 
11
- let(:payment_method) { GatewayWithPassword.create!(:name => "Bogus", :preferred_password => "haxme") }
11
+ context "GatewayWithPassword" do
12
+ let(:payment_method) { GatewayWithPassword.create!(name: "Bogus", preferred_password: "haxme") }
12
13
 
13
- # regression test for https://github.com/spree/spree/issues/2094
14
- it "does not clear password on update" do
15
- expect(payment_method.preferred_password).to eq("haxme")
16
- spree_put :update, :id => payment_method.id, :payment_method => { :type => payment_method.class.to_s, :preferred_password => "" }
17
- expect(response).to redirect_to(spree.edit_admin_payment_method_path(payment_method))
14
+ before do
15
+ allow(Rails.application.config.spree).to receive(:payment_methods).and_return([GatewayWithPassword])
16
+ end
17
+
18
+ # regression test for https://github.com/spree/spree/issues/2094
19
+ it "does not clear password on update" do
20
+ expect(payment_method.preferred_password).to eq("haxme")
21
+ spree_put :update, id: payment_method.id, payment_method: { type: payment_method.class.to_s, preferred_password: "" }
22
+ expect(response).to redirect_to(spree.edit_admin_payment_method_path(payment_method))
18
23
 
19
- payment_method.reload
20
- expect(payment_method.preferred_password).to eq("haxme")
24
+ payment_method.reload
25
+ expect(payment_method.preferred_password).to eq("haxme")
26
+ end
21
27
  end
22
28
 
23
29
  context "tries to save invalid payment" do
24
30
  it "doesn't break, responds nicely" do
25
- spree_post :create, :payment_method => { :name => "", :type => "Spree::Gateway::Bogus" }
31
+ spree_post :create, payment_method: { name: "", type: "Spree::Gateway::Bogus" }
26
32
  end
27
33
  end
28
34
 
29
35
  it "can create a payment method of a valid type" do
30
36
  expect {
31
- spree_post :create, :payment_method => { :name => "Test Method", :type => "Spree::Gateway::Bogus" }
37
+ spree_post :create, payment_method: { name: "Test Method", type: "Spree::Gateway::Bogus" }
32
38
  }.to change(Spree::PaymentMethod, :count).by(1)
33
39
 
34
40
  expect(response).to be_redirect
@@ -37,11 +43,30 @@ module Spree
37
43
 
38
44
  it "can not create a payment method of an invalid type" do
39
45
  expect {
40
- spree_post :create, :payment_method => { :name => "Invalid Payment Method", :type => "Spree::InvalidType" }
46
+ spree_post :create, payment_method: { name: "Invalid Payment Method", type: "Spree::InvalidType" }
41
47
  }.to change(Spree::PaymentMethod, :count).by(0)
42
48
 
43
49
  expect(response).to be_redirect
44
50
  expect(response).to redirect_to spree.new_admin_payment_method_path
45
51
  end
52
+
53
+ describe "GET index" do
54
+ subject { spree_get :index }
55
+
56
+ let!(:first_method) { GatewayWithPassword.create! name: "First", preferred_password: "1235" }
57
+ let!(:second_method) { GatewayWithPassword.create! name: "Second", preferred_password: "1235" }
58
+
59
+ before do
60
+ second_method.move_to_top
61
+ end
62
+
63
+ it { is_expected.to be_success }
64
+ it { is_expected.to render_template "index" }
65
+
66
+ it "respects the order of payment methods by position" do
67
+ subject
68
+ expect(assigns(:payment_methods).to_a).to eql([second_method, first_method])
69
+ end
70
+ end
46
71
  end
47
72
  end
@@ -2,127 +2,132 @@ require 'spec_helper'
2
2
 
3
3
  module Spree
4
4
  module Admin
5
- describe PaymentsController, :type => :controller do
5
+ describe PaymentsController, type: :controller do
6
6
  before do
7
- allow(controller).to receive_messages :spree_current_user => user
7
+ allow(controller).to receive_messages spree_current_user: user
8
8
  end
9
9
 
10
10
  let(:user) { create(:admin_user) }
11
11
  let(:order) { create(:order) }
12
12
 
13
- context "with a valid credit card" do
14
- let(:order) { create(:order_with_line_items, :state => "payment") }
15
- let(:payment_method) { create(:credit_card_payment_method, :display_on => "back_end") }
16
- let(:attributes) do
17
- {
18
- :order_id => order.number,
19
- :card => "new",
20
- :payment => {
21
- :amount => order.total,
22
- :payment_method_id => payment_method.id.to_s,
23
- :source_attributes => {
24
- :name => "Test User",
25
- :number => "4111 1111 1111 1111",
26
- :expiry => "09 / #{Time.current.year + 1}",
27
- :verification_value => "123"
13
+ describe '#create' do
14
+ context "with a valid credit card" do
15
+ let(:order) { create(:order_with_line_items, state: "payment") }
16
+ let(:payment_method) { create(:credit_card_payment_method, display_on: "back_end") }
17
+ let(:attributes) do
18
+ {
19
+ order_id: order.number,
20
+ card: "new",
21
+ payment: {
22
+ amount: order.total,
23
+ payment_method_id: payment_method.id.to_s,
24
+ source_attributes: {
25
+ name: "Test User",
26
+ number: "4111 1111 1111 1111",
27
+ expiry: "09 / #{Time.current.year + 1}",
28
+ verification_value: "123"
29
+ }
28
30
  }
29
31
  }
30
- }
31
- end
32
-
33
- before do
34
- spree_post :create, attributes
35
- end
36
-
37
- it "should process payment correctly" do
38
- expect(order.payments.count).to eq(1)
39
- expect(order.payments.last.state).to eq 'checkout'
40
- expect(response).to redirect_to(spree.admin_order_payments_path(order))
41
- expect(order.reload.state).to eq('confirm')
42
- end
43
-
44
- context 'with credit card address fields' do
45
- let(:address) { build(:address) }
46
-
47
- let(:attributes) do
48
- attrs = super()
49
- attrs[:payment][:source_attributes][:address_attributes] = address_attributes
50
- attrs
51
32
  end
52
33
 
53
- let(:address_attributes) do
54
- {
55
- 'firstname' => address.firstname,
56
- 'lastname' => address.lastname,
57
- 'address1' => address.address1,
58
- 'city' => address.city,
59
- 'country_id' => address.country_id,
60
- 'state_id' => address.state_id,
61
- 'zipcode' => address.zipcode,
62
- 'phone' => address.phone,
63
- }
34
+ before do
35
+ spree_post :create, attributes
64
36
  end
65
37
 
66
- it 'associates the address' do
38
+ it "should process payment correctly" do
67
39
  expect(order.payments.count).to eq(1)
68
- credit_card = order.payments.last.source
69
- expect(credit_card.address.attributes).to include(address_attributes)
40
+ expect(order.payments.last.state).to eq 'checkout'
41
+ expect(response).to redirect_to(spree.admin_order_payments_path(order))
42
+ expect(order.reload.state).to eq('confirm')
70
43
  end
71
- end
72
- end
73
44
 
74
- # Regression test for https://github.com/spree/spree/issues/3233
75
- context "with a backend payment method" do
76
- before do
77
- @payment_method = create(:check_payment_method, :display_on => "back_end")
78
- end
45
+ context 'with credit card address fields' do
46
+ let(:address) { build(:address) }
79
47
 
80
- it "loads backend payment methods" do
81
- spree_get :new, :order_id => order.number
82
- expect(response.status).to eq(200)
83
- expect(assigns[:payment_methods]).to include(@payment_method)
48
+ let(:attributes) do
49
+ attrs = super()
50
+ attrs[:payment][:source_attributes][:address_attributes] = address_attributes
51
+ attrs
52
+ end
53
+
54
+ let(:address_attributes) do
55
+ {
56
+ 'firstname' => address.firstname,
57
+ 'lastname' => address.lastname,
58
+ 'address1' => address.address1,
59
+ 'city' => address.city,
60
+ 'country_id' => address.country_id,
61
+ 'state_id' => address.state_id,
62
+ 'zipcode' => address.zipcode,
63
+ 'phone' => address.phone
64
+ }
65
+ end
66
+
67
+ it 'associates the address' do
68
+ expect(order.payments.count).to eq(1)
69
+ credit_card = order.payments.last.source
70
+ expect(credit_card.address.attributes).to include(address_attributes)
71
+ end
72
+ end
84
73
  end
85
74
  end
86
75
 
87
- context "order has billing address" do
88
- before do
89
- order.bill_address = create(:address)
90
- order.save!
91
- end
76
+ describe '#new' do
77
+ # Regression test for https://github.com/spree/spree/issues/3233
78
+ context "with a backend payment method" do
79
+ before do
80
+ @payment_method = create(:check_payment_method, display_on: "back_end")
81
+ end
92
82
 
93
- context "order does not have payments" do
94
- it "redirect to new payments page" do
95
- spree_get :index, { amount: 100, order_id: order.number }
96
- expect(response).to redirect_to(spree.new_admin_order_payment_path(order))
83
+ it "loads backend payment methods" do
84
+ spree_get :new, order_id: order.number
85
+ expect(response.status).to eq(200)
86
+ expect(assigns[:payment_methods]).to include(@payment_method)
97
87
  end
98
88
  end
89
+ end
99
90
 
100
- context "order has payments" do
91
+ describe '#index' do
92
+ context "order has billing address" do
101
93
  before do
102
- order.payments << create(:payment, amount: order.total, order: order, state: 'completed')
94
+ order.bill_address = create(:address)
95
+ order.save!
103
96
  end
104
97
 
105
- it "shows the payments page" do
106
- spree_get :index, { amount: 100, order_id: order.number }
107
- expect(response.code).to eq "200"
98
+ context "order does not have payments" do
99
+ it "redirect to new payments page" do
100
+ spree_get :index, { amount: 100, order_id: order.number }
101
+ expect(response).to redirect_to(spree.new_admin_order_payment_path(order))
102
+ end
108
103
  end
109
- end
110
104
 
111
- end
105
+ context "order has payments" do
106
+ before do
107
+ order.payments << create(:payment, amount: order.total, order: order, state: 'completed')
108
+ end
112
109
 
113
- context "order does not have a billing address" do
114
- before do
115
- order.bill_address = nil
116
- order.save
110
+ it "shows the payments page" do
111
+ spree_get :index, { amount: 100, order_id: order.number }
112
+ expect(response.code).to eq "200"
113
+ end
114
+ end
117
115
  end
118
116
 
119
- it "should redirect to the customer details page" do
120
- spree_get :index, { amount: 100, order_id: order.number }
121
- expect(response).to redirect_to(spree.edit_admin_order_customer_path(order))
117
+ context "order does not have a billing address" do
118
+ before do
119
+ order.bill_address = nil
120
+ order.save
121
+ end
122
+
123
+ it "should redirect to the customer details page" do
124
+ spree_get :index, { amount: 100, order_id: order.number }
125
+ expect(response).to redirect_to(spree.edit_admin_order_customer_path(order))
126
+ end
122
127
  end
123
128
  end
124
129
 
125
- describe 'fire' do
130
+ describe '#fire' do
126
131
  describe 'authorization' do
127
132
  let(:payment) { create(:payment, state: 'checkout') }
128
133
  let(:order) { payment.order }
@@ -131,7 +136,7 @@ module Spree
131
136
  class CaptureAllowedAbility
132
137
  include CanCan::Ability
133
138
 
134
- def initialize(user)
139
+ def initialize(_user)
135
140
  can :capture, Spree::Payment
136
141
  end
137
142
  end
@@ -145,31 +150,30 @@ module Spree
145
150
  spree_post(:fire, id: payment.to_param, e: 'capture', order_id: order.to_param)
146
151
  }.to change { payment.reload.state }.from('checkout').to('completed')
147
152
  end
148
- end
149
153
 
150
- context 'the user is not authorized' do
151
- class CaptureNotAllowedAbility
152
- include CanCan::Ability
154
+ context 'the user is not authorized' do
155
+ class CaptureNotAllowedAbility
156
+ include CanCan::Ability
153
157
 
154
- def initialize(user)
155
- cannot :capture, Spree::Payment
158
+ def initialize(_user)
159
+ cannot :capture, Spree::Payment
160
+ end
156
161
  end
157
- end
158
162
 
159
- before do
160
- Spree::Ability.register_ability(CaptureNotAllowedAbility)
161
- end
163
+ before do
164
+ Spree::Ability.register_ability(CaptureNotAllowedAbility)
165
+ end
162
166
 
163
- it 'does not allow the action' do
164
- expect {
165
- spree_post(:fire, id: payment.to_param, e: 'capture', order_id: order.to_param)
166
- }.to_not change { payment.reload.state }
167
- expect(flash[:error]).to eq('Authorization Failure')
167
+ it 'does not allow the action' do
168
+ expect {
169
+ spree_post(:fire, id: payment.to_param, e: 'capture', order_id: order.to_param)
170
+ }.to_not change { payment.reload.state }
171
+ expect(flash[:error]).to eq('Authorization Failure')
172
+ end
168
173
  end
169
174
  end
170
175
  end
171
176
  end
172
-
173
177
  end
174
178
  end
175
179
  end