From 09d22f74ecb0c78970ceee4d4b94d3915ddb3da0 Mon Sep 17 00:00:00 2001 From: Will Marshall Date: Wed, 9 Apr 2014 11:51:12 +1000 Subject: [PATCH] Renaming some methods in our experimental --- .../controllers/checkout_controller.js.coffee | 26 ++++++++++--------- .../shop/checkout/_authentication.html.haml | 2 +- app/views/shop/checkout/_details.html.haml | 4 +-- app/views/shop/checkout/edit.html.haml | 2 +- .../shop/checkout_controller_spec.rb | 2 ++ 5 files changed, 19 insertions(+), 17 deletions(-) diff --git a/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee index 93273b7ed0..28ade6e08f 100644 --- a/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee +++ b/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee @@ -3,24 +3,24 @@ Darkswarm.controller "CheckoutCtrl", ($scope, Order, storage) -> $scope.order = $scope.Order = Order $scope.accordion = {} - storage.bind $scope, "user", { defaultValue: true} - $scope.disable = -> - $scope.user = false - $scope.details = true - + $scope.show = (name)-> + $scope.accordion[name] = true + storage.bind $scope, "accordion.user", { defaultValue: true} storage.bind $scope, "accordion.details" storage.bind $scope, "accordion.billing" storage.bind $scope, "accordion.shipping" storage.bind $scope, "accordion.payment" # Validation utilities to keep things DRY - $scope.dirtyValid = (name)-> - $scope.dirty(name) and $scope.valid(name) + $scope.dirtyInvalid = (name)-> + $scope.dirty(name) and $scope.invalid(name) $scope.dirty = (name)-> $scope.checkout[name].$dirty - $scope.valid = (name)-> + $scope.invalid = (name)-> $scope.checkout[name].$invalid + + # Validations $scope.error = (name)-> $scope.checkout[name].$error $scope.required = (name)-> @@ -43,10 +43,12 @@ Darkswarm.controller "DetailsSubCtrl", ($scope) -> $scope.detailsValid() , (valid)-> if valid - $scope.accordion.details = false - $scope.accordion.billing = true + $scope.show("billing") $scope.detailsFields = -> + + {"order[email]" : {email: "must be email", required: "field required"}} + ["order[email]", "order[bill_address_attributes][phone]", "order[bill_address_attributes][firstname]", @@ -54,14 +56,14 @@ Darkswarm.controller "DetailsSubCtrl", ($scope) -> $scope.emailName = 'order[email]' $scope.emailValid = -> - $scope.dirtyValid($scope.emailName) + $scope.dirtyInvalid($scope.emailName) $scope.emailError = -> return "can't be blank" if $scope.required($scope.emailName) return "must be valid" if $scope.email($scope.emailName) $scope.phoneName = "order[bill_address_attributes][phone]" $scope.phoneValid = -> - $scope.dirtyValid($scope.phoneName) + $scope.dirtyInvalid($scope.phoneName) $scope.phoneError = -> "must be a number" diff --git a/app/views/shop/checkout/_authentication.html.haml b/app/views/shop/checkout/_authentication.html.haml index 133cd69a09..891958de25 100644 --- a/app/views/shop/checkout/_authentication.html.haml +++ b/app/views/shop/checkout/_authentication.html.haml @@ -6,4 +6,4 @@ .large-4.columns.text-center{"ng-controller" => "AuthenticationActionsCtrl"} %button{"ng-click" => "toggle('/signup')"} Signup .large-4.columns.text-center - %button{"ng-click" => "disable()"} Checkout as guest + %button{"ng-click" => "show('details')"} Checkout as guest diff --git a/app/views/shop/checkout/_details.html.haml b/app/views/shop/checkout/_details.html.haml index ad8c5acbeb..ef5fb98d53 100644 --- a/app/views/shop/checkout/_details.html.haml +++ b/app/views/shop/checkout/_details.html.haml @@ -1,7 +1,6 @@ %fieldset#details %accordion-group{"is-open" => "accordion.details"} %div{"ng-controller" => "DetailsSubCtrl"} - {{ detailsValid() }} %accordion-heading .row .large-6.columns @@ -12,8 +11,8 @@ .row .large-6.columns = f.email_field :email, required: "", "ng-model" => "order.email", - "ng-change" => "next()", "ng-class" => "{error: '!emailValid()'}" + %small.error.medium.input-text{"ng-show" => "emailValid()"} {{ emailError() }} @@ -31,4 +30,3 @@ .large-6.columns = ba.text_field :lastname, "ng-model" => "order.bill_address.lastname" - diff --git a/app/views/shop/checkout/edit.html.haml b/app/views/shop/checkout/edit.html.haml index 6d2a0feecc..17ded5cc12 100644 --- a/app/views/shop/checkout/edit.html.haml +++ b/app/views/shop/checkout/edit.html.haml @@ -6,7 +6,7 @@ = render partial: "shop/details" - %accordion.row{"close-others" => "false"} + %accordion.row{"close-others" => "true"} %checkout{"ng-controller" => "CheckoutCtrl"} .large-9.columns - unless spree_current_user diff --git a/spec/controllers/shop/checkout_controller_spec.rb b/spec/controllers/shop/checkout_controller_spec.rb index ed91818fbd..5b06b7c66f 100644 --- a/spec/controllers/shop/checkout_controller_spec.rb +++ b/spec/controllers/shop/checkout_controller_spec.rb @@ -8,6 +8,7 @@ describe Shop::CheckoutController do order.stub(:checkout_allowed?).and_return true controller.stub(:check_authorization).and_return true end + it "redirects home when no distributor is selected" do get :edit response.should redirect_to root_path @@ -46,6 +47,7 @@ describe Shop::CheckoutController do end describe "building the order" do + before do controller.stub(:current_distributor).and_return(distributor) controller.stub(:current_order_cycle).and_return(order_cycle)