summaryrefslogtreecommitdiff
path: root/StoneIsland/www/js/lib/products/ProductView.js
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/www/js/lib/products/ProductView.js')
-rw-r--r--StoneIsland/www/js/lib/products/ProductView.js49
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 ]