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) } }, populateAddresses: function(data){ console.log("populate addresses:", data) if (! data.AddressBook) { console.log("no addresses") return } // console.log(data.AddressBook) data.AddressBook.addressBookItem.forEach(function(item){ if (item.isDefault) { // populate app.shipping.address } else if (item.isBillingDefault) { // populate app.billing.address } }) }, logged_in: function(cb){ sdk.address.list({ success: this.populateAddresses.bind(this) }) $("#nav .login").hide() $("#nav .account, #nav .logout").show() if (app.last_view && 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() ) { auth.create_cart(auth.add_deferred_product_to_cart) } else { if (auth.deferred_product) { auth.add_deferred_product_to_cart() } else { app.cart.load() } } }, logged_out: function(cb){ $("#nav .login").show() $("#nav .account, #nav .logout").hide() $("#nav").removeClass("account") cb && cb() }, })