Patching local storage; authentication actions

This commit is contained in:
Will Marshall
2014-04-08 15:05:39 +10:00
parent a4cba99de6
commit 8495c13063
10 changed files with 34 additions and 55 deletions

View File

@@ -1,4 +1,4 @@
window.AuthenticationActionsCtrl = Darkswarm.controller "AuthenticationActionsCtrl", ($scope, Navigation) ->
window.AuthenticationActionsCtrl = Darkswarm.controller "AuthenticationActionsCtrl", ($scope, Navigation, storage) ->
$scope.toggleLogin = ->
Navigation.navigate "/login"

View File

@@ -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()

View File

@@ -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

View File

@@ -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"

View File

@@ -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}

View File

@@ -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"

View File

@@ -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'

View File

@@ -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

View File

@@ -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

View File

@@ -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