diff --git a/app/assets/javascripts/darkswarm/controllers/authentication_actions_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/authentication_actions_controller.js.coffee index 77fd2c2464..0fa5c6b05a 100644 --- a/app/assets/javascripts/darkswarm/controllers/authentication_actions_controller.js.coffee +++ b/app/assets/javascripts/darkswarm/controllers/authentication_actions_controller.js.coffee @@ -1,4 +1,4 @@ -window.AuthenticationActionsCtrl = Darkswarm.controller "AuthenticationActionsCtrl", ($scope, Navigation) -> +window.AuthenticationActionsCtrl = Darkswarm.controller "AuthenticationActionsCtrl", ($scope, Navigation, storage) -> $scope.toggleLogin = -> Navigation.navigate "/login" diff --git a/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee b/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee index cd95a7faa3..db944ab955 100644 --- a/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee +++ b/app/assets/javascripts/darkswarm/controllers/checkout_controller.js.coffee @@ -1,13 +1,16 @@ -Darkswarm.controller "CheckoutCtrl", ($scope, $rootScope, Order, storage) -> +Darkswarm.controller "CheckoutCtrl", ($scope, Order, storage) -> $scope.order = $scope.Order = Order - # Binding accordion panel states to local storage - storage.bind $scope, "user", { defaultValue: true } + storage.bind $scope, "user", { defaultValue: true} + $scope.disable = -> + $scope.user = false + storage.bind $scope, "details" storage.bind $scope, "billing" storage.bind $scope, "shipping" storage.bind $scope, "payment" + $scope.purchase = (event)-> event.preventDefault() checkout.submit() diff --git a/app/assets/javascripts/shared/angular-local-storage.js b/app/assets/javascripts/shared/angular-local-storage.js index dfe1e2471c..2ac18eba9e 100644 --- a/app/assets/javascripts/shared/angular-local-storage.js +++ b/app/assets/javascripts/shared/angular-local-storage.js @@ -127,11 +127,12 @@ // If a value doesn't already exist store it as is if (!publicMethods.get(storeName)) { - publicMethods.set(storeName, opts.defaultValue); - } + publicMethods.set(storeName, $parse(key)($scope) || opts.defaultValue); + } else { + // If it does exist assign it to the $scope value + $parse(key).assign($scope, publicMethods.get(storeName)); + } - // If it does exist assign it to the $scope value - $parse(key).assign($scope, publicMethods.get(storeName)); // Register a listener for changes on the $scope value // to update the localStorage value diff --git a/app/views/shop/checkout/_authentication.html.haml b/app/views/shop/checkout/_authentication.html.haml index 282a713015..5c0385d6ce 100644 --- a/app/views/shop/checkout/_authentication.html.haml +++ b/app/views/shop/checkout/_authentication.html.haml @@ -1,12 +1,17 @@ -%fieldset +%fieldset{"ng-controller" => "CheckoutCtrl"} %accordion-group{heading: "User", "is-open" => "user"} - .row{"ng-controller" => "AuthenticationActionsCtrl"} + .row .large-12.columns - %button{"ng-click" => "toggle('/login')"} Login - %button{"ng-click" => "toggle('/signup')"} Signup + .div{"ng-controller" => "AuthenticationActionsCtrl"} + %button{"ng-click" => "toggle('/login')"} Login + %button{"ng-click" => "toggle('/signup')"} Signup + %button{"ng-click" => "disable()"} Checkout as guest + + -#%section#checkout_login -#.large-6.columns -#= render partial: "shop/checkout/login" -#%section#checkout_signup -#.large-6.columns -#= render partial: "shop/checkout/signup" + diff --git a/app/views/shop/checkout/_form.html.haml b/app/views/shop/checkout/_form.html.haml index 759baabd64..66bea3b4cf 100644 --- a/app/views/shop/checkout/_form.html.haml +++ b/app/views/shop/checkout/_form.html.haml @@ -1,15 +1,13 @@ -%checkout{"ng-controller" => "CheckoutCtrl"} += f_form_for current_order, url: main_app.shop_update_checkout_path, html: {name: "checkout", id: "checkout_form"} do |f| - = f_form_for current_order, url: main_app.shop_update_checkout_path, html: {name: "checkout", id: "checkout_form"} do |f| + :javascript + angular.module('Darkswarm').value('order', #{render "shop/checkout/order"}) - :javascript - angular.module('Darkswarm').value('order', #{render "shop/checkout/order"}) + -#%pre + -#{{ order | json }} - -#%pre - -#{{ order | json }} - - .large-12.columns - = render partial: "shop/checkout/details", locals: {f: f} - = render partial: "shop/checkout/billing", locals: {f: f} - = render partial: "shop/checkout/shipping", locals: {f: f} - = render partial: "shop/checkout/payment", locals: {f: f} + .large-12.columns + = render partial: "shop/checkout/details", locals: {f: f} + = render partial: "shop/checkout/billing", locals: {f: f} + = render partial: "shop/checkout/shipping", locals: {f: f} + = render partial: "shop/checkout/payment", locals: {f: f} diff --git a/app/views/shop/checkout/_login.html.haml b/app/views/shop/checkout/_login.html.haml deleted file mode 100644 index 33bf41fed5..0000000000 --- a/app/views/shop/checkout/_login.html.haml +++ /dev/null @@ -1,14 +0,0 @@ -= form_for Spree::User.new, :html => {'data-type' => :json}, :as => :spree_user, :url => spree.spree_user_session_path do |f| - %fieldset - %legend I have an OFN Account - %p - = f.label :email, t(:email) - = f.email_field :email, :class => 'title', :tabindex => 1, :id => "login_spree_user_email" - %p - = f.label :password, t(:password) - = f.password_field :password, :class => 'title', :tabindex => 2, :id => "login_spree_user_password" - %p - %label - = f.check_box :remember_me - = f.label :remember_me, t(:remember_me) - %p= f.submit t(:login), :class => 'button primary', :tabindex => 3, :id => "login_spree_user_remember_me" diff --git a/app/views/shop/checkout/_signup.html.haml b/app/views/shop/checkout/_signup.html.haml deleted file mode 100644 index 81ed7744d0..0000000000 --- a/app/views/shop/checkout/_signup.html.haml +++ /dev/null @@ -1,14 +0,0 @@ -= form_for Spree::User.new, :as => :spree_user, :url => spree.spree_user_registration_path(@spree_user) do |f| - %fieldset - %legend New to OFN? - %p - = f.label :email, t(:email) - = f.email_field :email, :class => 'title', :id => "signup_spree_user_email" - %p - = f.label :password, t(:password) - = f.password_field :password, :class => 'title', :id => "signup_spree_user_password" - %p - = f.label :password_confirmation, t(:confirm_password) - = f.password_field :password_confirmation, :class => 'title', :id => "signup_spree_user_password_confirmation" - - = f.submit "Sign Up", :class => 'button' diff --git a/app/views/shop/checkout/_summary.html.haml b/app/views/shop/checkout/_summary.html.haml index a852e666e1..77ec80b1e6 100644 --- a/app/views/shop/checkout/_summary.html.haml +++ b/app/views/shop/checkout/_summary.html.haml @@ -1,4 +1,4 @@ -%orderdetails{"ng-controller" => "CheckoutCtrl"} +%orderdetails = form_for current_order, url: "#", html: {"ng-submit" => "purchase($event)"} do |f| %fieldset %legend Your Order diff --git a/app/views/shop/checkout/edit.html.haml b/app/views/shop/checkout/edit.html.haml index 09b2561409..03f76703bb 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" - %checkout + %checkout{"ng-controller" => "CheckoutCtrl"} %accordion.row{"close-others" => "false"} .large-9.columns - unless spree_current_user diff --git a/spec/javascripts/unit/darkswarm/controllers/checkout_controller_spec.js.coffee b/spec/javascripts/unit/darkswarm/controllers/checkout_controller_spec.js.coffee index 9730989427..ab2369dedb 100644 --- a/spec/javascripts/unit/darkswarm/controllers/checkout_controller_spec.js.coffee +++ b/spec/javascripts/unit/darkswarm/controllers/checkout_controller_spec.js.coffee @@ -11,4 +11,4 @@ describe "CheckoutCtrl", -> ctrl = $controller 'CheckoutCtrl', {$scope: scope, Order: order} it "defaults the user accordion to visible", -> - expect(scope.user).toEqual true + expect(scope.userpanel).toEqual true