diff options
Diffstat (limited to 'StoneIsland/www/js/lib/products/ProductView.js')
| -rw-r--r-- | StoneIsland/www/js/lib/products/ProductView.js | 49 |
1 files changed, 31 insertions, 18 deletions
diff --git a/StoneIsland/www/js/lib/products/ProductView.js b/StoneIsland/www/js/lib/products/ProductView.js index 69c6e407..0a00f365 100644 --- a/StoneIsland/www/js/lib/products/ProductView.js +++ b/StoneIsland/www/js/lib/products/ProductView.js @@ -40,6 +40,19 @@ var ProductView = ScrollableView.extend({ cache: {}, + find: function(code, cb){ + data = app.collection.items[code] + if (code in this.cache) { + return cb(data, this.cache[code]) + } + sdk.product.item({ + code: code + }).done(function(details){ + this.cache[code] = details + cb(data, details) + }.bind(this)) + }, + load: function(code, data){ this.gallery.reset() this.show() @@ -59,30 +72,23 @@ var ProductView = ScrollableView.extend({ app.collection.afterFetchCallback = null } window.location.href = "#/store/" + code - data = data || app.collection.items[code] - if (code in this.cache) { - return this.populate(data, this.cache[code]) - } - else { - this.el.className = "loading" + + console.log(data) + if (data) { + app.collection.items[code] = data } - sdk.product.item({ - code: code - }).done(function(details){ - this.cache[code] = details - this.populate(data, details) - }.bind(this)) + + this.el.className = "loading" + this.find(code, this.populate.bind(this)) }, - + populate: function(data, details){ this.el.className = "" console.log(data, details) - var descriptions = {} - details['Item']['Descriptions'].forEach(function(pair){ - descriptions[pair.Key] = pair.Value - }) + var descriptions = this.get_descriptions(details) + this.gallery.populate( data['Code8'], details['Item']['ImageTypes'] ) var name_partz = data['ModelNames'].split(' ') @@ -125,7 +131,14 @@ var ProductView = ScrollableView.extend({ this.deferScrollToTop() }, - + + get_descriptions: function (details){ + var descriptions = {} + details['Item']['Descriptions'].forEach(function(pair){ + descriptions[pair.Key] = pair.Value + }) + return descriptions + }, find_sizes_for_color: function(color_id){ return Object.keys( this.colors[color_id].sizes ).sort(function(a,b){ var ao = SIZE_ORDER[ a.label ], bo = SIZE_ORDER[ b.label ] |
