var CartSummary = ScrollableView.extend({ el: "#cart_summary", template: $("#cart_summary .template").html(), events: { }, data: null, initialize: function(opt){ this.parent = opt.parent this.$loader = this.$(".loader") this.$cart_body = this.$(".cart_body") this.$cart_empty = this.$(".cart_empty") this.scroller = new IScroll('#cart_summary', app.iscroll_options) this.$rows = this.$(".rows") this.$subtotal = this.$(".subtotal") this.$shipping = this.$(".shipping") this.$tax = this.$(".tax") this.$total = this.$(".total") }, show: function(){ document.body.className = "cart" app.cart.el.className = "summary" if (auth.has_cart()) { this.load() } else { this.empty() } }, load: function(){ this.$loader.show() sdk.cart.get_status({ success: this.populate.bind(this), error: this.empty.bind(this), }) }, populate: function(data){ this.data = data this.$loader.hide() app.footer.show("SHIPPING >", "CANCEL") app.header.set_cart_count(data.Cart.Items.length) this.parent.$itemcount.html(pluralize(data.Cart.Items.length, "ITEM", "S")) this.$rows.empty() data.Cart.Items.forEach(function(item){ var $el = $("
") this.$rows.append($el) var code_ten = item['Code10'] var code = code_ten.substr(0, 8) var size_id = item['Size'] app.product.find(code, function(data, details){ console.log(data, details) var descriptions = app.product.get_descriptions( details ) console.log(descriptions) var name_partz = descriptions['ModelNames'].split(' ') var num = name_partz.shift() var title = name_partz.join(' ') var type = title_case( descriptions['MicroCategory'] ) var color_name, size_name console.log(code) details.Item.ModelColors.some(function(color){ console.log(color) if (color['Code10'] == code_ten) { color_name = color['ColorDescription'] console.log(color) return true } return false }) details.Item.ModelSizes.some(function(size){ if (size['SizeId'] == size_id) { console.log(size) size_name = size['Default']['Text'] size_name = SIZE_LOOKUP[ size_name ] || size_name return true } return false }) var t = this.template .replace(/{{image}}/, sdk.image(item['Code10'], '11_f')) .replace(/{{sku}}/, num) .replace(/{{title}}/, title) .replace(/{{type}}/, type) .replace(/{{size}}/, size_name) .replace(/{{color}}/, color_name) .replace(/{{quantity}}/, 1) .replace(/{{price}}/, as_cash(details.Item.Price.DiscountedPrice)) $el.html(t) }.bind(this)) }.bind(this)) var subtotal = data.Cart.Totals.TotalToPay var shipping_cost = data.Cart.DeliveryMethod.Selected.Amount.Total var tax = 0 var total = data.Cart.Totals.TotalToPay this.$subtotal.html( as_cash(subtotal) ) this.$shipping.html( as_cash(shipping_cost) ) this.$tax.html( as_cash(tax) ) this.$total.html( as_cash(total) ) this.$el.removeClass("empty").addClass("full") this.deferScrollToTop() }, empty: function(){ this.$loader.hide() app.footer.hide() app.header.set_cart_count(0) this.parent.$itemcount.html("0 ITEMS") this.$el.addClass("empty").removeClass("full") }, ok: function(){ app.router.go('cart/shipping') }, cancel: function(){ app.router.go('intro') }, remove_item: function(e){ // $( e.currentTarget ).closest(".row").remove() sdk.cart.delete_item({ data: { Code10: "", Size: "", }, }).done(function(){ }) }, })