solidus_backend 1.2.3 → 1.3.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 (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