From 8d534041b2764b5971cfbdc7ed36080590099de2 Mon Sep 17 00:00:00 2001 From: Bing Xie Date: Thu, 8 Sep 2016 18:46:58 +1000 Subject: [PATCH] Refactor js CurrentOrder --- .../javascripts/darkswarm/services/cart.js.coffee | 4 ++-- .../javascripts/darkswarm/services/checkout.js.coffee | 3 +-- .../darkswarm/services/current_order.js.coffee | 11 +++++++---- app/controllers/checkout_controller.rb | 3 ++- 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/app/assets/javascripts/darkswarm/services/cart.js.coffee b/app/assets/javascripts/darkswarm/services/cart.js.coffee index 456d567bb7..59955ba8a3 100644 --- a/app/assets/javascripts/darkswarm/services/cart.js.coffee +++ b/app/assets/javascripts/darkswarm/services/cart.js.coffee @@ -4,8 +4,8 @@ Darkswarm.factory 'Cart', (CurrentOrder, Variants, $timeout, $http, $modal, $roo dirty: false update_running: false update_enqueued: false - order: CurrentOrder.order - line_items: CurrentOrder.order?.line_items || [] + order: CurrentOrder.getOrder() + line_items: CurrentOrder.getOrder()?.line_items || [] constructor: -> for line_item in @line_items diff --git a/app/assets/javascripts/darkswarm/services/checkout.js.coffee b/app/assets/javascripts/darkswarm/services/checkout.js.coffee index 3b6a6f53af..bb0880d05b 100644 --- a/app/assets/javascripts/darkswarm/services/checkout.js.coffee +++ b/app/assets/javascripts/darkswarm/services/checkout.js.coffee @@ -2,12 +2,11 @@ Darkswarm.factory 'Checkout', (CurrentOrder, ShippingMethods, PaymentMethods, $h new class Checkout errors: {} secrets: {} - order: CurrentOrder.order + order: CurrentOrder.getOrder() ship_address_same_as_billing: 'YES' default_bill_address: 'NO' default_ship_address: 'NO' - submit: -> Loading.message = t 'submitting_order' $http.put('/checkout', {order: @preprocess()}).success (data, status)=> diff --git a/app/assets/javascripts/darkswarm/services/current_order.js.coffee b/app/assets/javascripts/darkswarm/services/current_order.js.coffee index 24447a6ebe..d4ac2be0e7 100644 --- a/app/assets/javascripts/darkswarm/services/current_order.js.coffee +++ b/app/assets/javascripts/darkswarm/services/current_order.js.coffee @@ -1,13 +1,16 @@ Darkswarm.factory 'CurrentOrder', (currentOrder) -> # Populate Currentorder.order from json in page. This is probably redundant now. new class CurrentOrder - constructor: -> - if currentOrder.bill_address + # order: currentOrder + + getOrder: -> + if currentOrder && currentOrder.bill_address currentOrder.bill_address.state_id = currentOrder.bill_address.state_id + '' currentOrder.bill_address.country_id = currentOrder.bill_address.country_id + '' - if currentOrder.ship_address + if currentOrder && currentOrder.ship_address currentOrder.ship_address.state_id = currentOrder.ship_address.state_id + '' currentOrder.ship_address.country_id = currentOrder.ship_address.country_id + '' - @order = currentOrder + currentOrder + diff --git a/app/controllers/checkout_controller.rb b/app/controllers/checkout_controller.rb index 097f037561..555349f565 100644 --- a/app/controllers/checkout_controller.rb +++ b/app/controllers/checkout_controller.rb @@ -156,7 +156,8 @@ class CheckoutController < Spree::CheckoutController last_used_bill_address = lua.last_used_bill_address.andand.clone last_used_ship_address = lua.last_used_ship_address.andand.clone - preferred_bill_address, preferred_ship_address = spree_current_user.bill_address, spree_current_user.ship_address + preferred_bill_address, preferred_ship_address = spree_current_user.bill_address, spree_current_user.ship_address if spree_current_user + @order.bill_address ||= preferred_bill_address || last_used_bill_address || Spree::Address.default @order.ship_address ||= preferred_ship_address || last_used_ship_address || Spree::Address.default end