From 1ba720481ff8ecc5613995ccf63204d362fc1a6b Mon Sep 17 00:00:00 2001 From: Will Marshall Date: Thu, 13 Mar 2014 11:41:46 +1100 Subject: [PATCH] Finally fixing the same as billing address checkbox? --- .../darkswarm/controllers/checkout_controller.js.coffee | 1 + app/models/spree/order_decorator.rb | 6 ++++++ app/views/shop/checkout/_form.html.haml | 1 + app/views/shop/checkout/_order.rabl | 5 +---- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee index a98c0bcd60..60b0715d25 100644 --- a/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee +++ b/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee @@ -7,6 +7,7 @@ angular.module("Checkout").controller "CheckoutCtrl", ($scope, $rootScope, order # Here we default to the first shipping method if none is selected $scope.order.shipping_method_id ||= Object.keys(order.shipping_methods)[0] $scope.order.ship_address_same_as_billing = true if $scope.order.ship_address_same_as_billing == null + $scope.require_ship_address = $scope.order.shipping_methods[$scope.order.shipping_method_id] $scope.shippingMethodChanged = -> diff --git a/app/models/spree/order_decorator.rb b/app/models/spree/order_decorator.rb index e78c5686d5..c744a3270a 100644 --- a/app/models/spree/order_decorator.rb +++ b/app/models/spree/order_decorator.rb @@ -65,6 +65,12 @@ Spree::Order.class_eval do where("state != ?", state) } + # Accessors + # + def ship_address_same_as_billing=(string_value) + @ship_address_same_as_billing = (string_value == "true") + end + # -- Methods def products_available_from_new_distribution diff --git a/app/views/shop/checkout/_form.html.haml b/app/views/shop/checkout/_form.html.haml index 21c700c3f3..ab66cd9d19 100644 --- a/app/views/shop/checkout/_form.html.haml +++ b/app/views/shop/checkout/_form.html.haml @@ -73,6 +73,7 @@ #ship_address{"ng-show" => "require_ship_address"} %label + = hidden_field_tag "order[ship_address_same_as_billing]", "false" = check_box_tag "order[ship_address_same_as_billing]", true, @order.ship_address_same_as_billing, "ng-model" => "order.ship_address_same_as_billing" Shipping address same as billing address? diff --git a/app/views/shop/checkout/_order.rabl b/app/views/shop/checkout/_order.rabl index fc18538afd..237a782d85 100644 --- a/app/views/shop/checkout/_order.rabl +++ b/app/views/shop/checkout/_order.rabl @@ -1,8 +1,5 @@ object current_order -attributes :id, :email, :shipping_method_id -node :ship_address_same_as_billing do - current_order.ship_address_same_as_billing == "true" -end +attributes :id, :email, :shipping_method_id, :ship_address_same_as_billing child current_order.bill_address => :bill_address do attributes :phone, :firstname, :lastname, :address1, :address2, :city, :country_id, :state_id, :zipcode