diff options
Diffstat (limited to 'StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js')
| -rwxr-xr-x | StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js | 129 |
1 files changed, 129 insertions, 0 deletions
diff --git a/StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js b/StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js new file mode 100755 index 00000000..1c5c9f16 --- /dev/null +++ b/StoneIsland/platforms/android/assets/www/js/lib/account/AccountView.js @@ -0,0 +1,129 @@ +var AccountView = View.extend({ + + initialize: function(){ + }, + + connect: function(cb){ + auth.init(this.ready.bind(this, cb)) + }, + + ready: function(cb){ + if (auth.logged_in()) { + this.logged_in(cb) + } + else { + this.logged_out(cb) + } + }, + + addresses: [], + addressLookup: {}, + ccs: [], + ccLookup: {}, + + listAddresses: function(cb){ + sdk.address.list({ + success: function(data){ + this.populateAddresses(data, cb) + }.bind(this) + }) + }, + + populateAddresses: function(data, cb){ + console.log("populate addresses:", data.AddressBook.addressBookItem) + + if (! data.AddressBook) { + console.log("no addresses") + cb && cb() + return + } + + this.addresses = data.AddressBook.addressBookItem + this.addressLookup = {} + data.AddressBook.addressBookItem.forEach(function(item){ + this.addressLookup[ item.Id ] = item + if (item.IsDefault) { + console.log("SHIPPING ADDRESS", item) + app.shipping.populate(item) + } + if (item.IsBillingDefault) { + console.log("BILLING ADDRESS") + app.payment.populate(item) + } + }.bind(this)) + + app.cart.shipping.populate() + + cb && cb() + }, + + listCreditCards: function(cb){ + sdk.payment.list_credit_cards({ + success: function(data){ + this.populateCreditCards(data, cb) + }.bind(this) + }) + }, + + populateCreditCards: function(data, cb){ + console.log("populate ccs:", data.CreditCards) + this.ccs = data.CreditCards + this.ccLookup = {} + if (! data.CreditCards || ! data.CreditCards.length) { + } + else { + data.CreditCards.forEach(function(cc){ + this.ccLookup[cc.Id] = cc + }.bind(this)) + app.payment.populate( data.CreditCards[0] ) + app.cart.payment.populate() + } + cb && cb() + }, + + logged_in: function(cb){ + this.listAddresses() + this.listCreditCards() + $("#nav .login").hide() + $("#nav .account, #nav .logout").show() + if (! auth.deferred_product && app.last_view) { + if (app.last_view != app.login && app.last_view != app.signin && app.last_view != app.logout) { + app.view && app.view.hide && app.view.hide() + app.view = app.last_view + app.view.show() + } + } + else { + cb && cb() + } + if ( ! auth.has_cart() ) { + app.curtain.show("loading") + auth.create_cart(function(){ + auth.add_deferred_product_to_cart(function(){ + app.router.go("cart") + setTimeout(function(){ + app.curtain.hide("loading") + }, 500) + }) + }) + } + else { + if (auth.deferred_product) { + auth.add_deferred_product_to_cart(function(){ + app.router.go("cart") + }) + } + else { + app.cart.load() + } + } + }, + + logged_out: function(cb){ + $("#nav .login").show() + $("#nav .account, #nav .logout").hide() + $("#nav").removeClass("account") + cb && cb() + }, + +}) |
