mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-23 01:03:21 +00:00
Splitting out the accordion stuff for checkout
This commit is contained in:
@@ -0,0 +1,11 @@
|
||||
Darkswarm.controller "AccordionCtrl", ($scope, storage) ->
|
||||
$scope.accordion =
|
||||
details: true
|
||||
shipping: false
|
||||
payment: false
|
||||
billing: false
|
||||
storage.bind $scope, "accordion", {storeName: "accordion_#{$scope.order.id}"}
|
||||
|
||||
$scope.show = (name)->
|
||||
$scope.accordion[name] = true
|
||||
|
||||
@@ -0,0 +1,16 @@
|
||||
Darkswarm.controller "CheckoutCtrl", ($scope, storage, CheckoutFormState, Order, CurrentUser) ->
|
||||
$scope.Order = Order
|
||||
storage.bind $scope, "Order.order", {storeName: "order_#{Order.order.id}"}
|
||||
$scope.order = Order.order # Ordering is important
|
||||
|
||||
if CurrentUser
|
||||
$scope.enabled = true
|
||||
else
|
||||
$scope.enabled = false
|
||||
|
||||
$scope.purchase = (event)->
|
||||
event.preventDefault()
|
||||
$scope.Order.submit()
|
||||
|
||||
$scope.CheckoutFormState = CheckoutFormState
|
||||
storage.bind $scope, "CheckoutFormState.ship_address_same_as_billing", { defaultValue: true}
|
||||
@@ -1,38 +0,0 @@
|
||||
Darkswarm.controller "CheckoutCtrl", ($scope, Order, storage, CheckoutFormState, User) ->
|
||||
|
||||
# We put Order.order into the scope for convenience
|
||||
# However, storage.bind replaces Order.order
|
||||
# So we must put Order.order into the scope AFTER it's bound to localStorage
|
||||
$scope.Order = Order
|
||||
storage.bind $scope, "Order.order", {storeName: "order_#{Order.order.id}"}
|
||||
$scope.order = Order.order
|
||||
|
||||
if User
|
||||
$scope.accordion = {details: true}
|
||||
else
|
||||
$scope.accordion = {user: true}
|
||||
$scope.show = (name)->
|
||||
$scope.accordion[name] = true
|
||||
storage.bind $scope, "accordion", {storeName: "accordion_#{$scope.order.id}"}
|
||||
# If we are logged in, but the cached accordion panel is user, move to details
|
||||
if User and $scope.accordion.user
|
||||
$scope.accordion.user = false
|
||||
$scope.accordion.details = true
|
||||
|
||||
# TODO MAKE THIS BETTER SOMEHOW
|
||||
# if User
|
||||
# show details
|
||||
# else
|
||||
# show user
|
||||
#
|
||||
# localStorage overrides above
|
||||
#
|
||||
# If localStorage set to user, but User exists
|
||||
# Then default to details
|
||||
|
||||
$scope.CheckoutFormState = CheckoutFormState
|
||||
storage.bind $scope, "CheckoutFormState.ship_address_same_as_billing", { defaultValue: true}
|
||||
|
||||
$scope.purchase = (event)->
|
||||
event.preventDefault()
|
||||
$scope.Order.submit()
|
||||
@@ -1,7 +1,6 @@
|
||||
Darkswarm.factory 'User', (user)->
|
||||
# This is for the current user
|
||||
Darkswarm.factory 'CurrentUser', (user)-> # This is for the current user
|
||||
if user and !$.isEmptyObject(user)
|
||||
new class User
|
||||
new class CurrentUser
|
||||
constructor: ->
|
||||
@[k] = v for k, v of user
|
||||
else
|
||||
Reference in New Issue
Block a user