summaryrefslogtreecommitdiff
path: root/StoneIsland/www/js
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/www/js')
-rwxr-xr-xStoneIsland/www/js/lib/products/CollectionView.js45
-rw-r--r--StoneIsland/www/js/lib/products/filters/SizeFilter.js1
2 files changed, 42 insertions, 4 deletions
diff --git a/StoneIsland/www/js/lib/products/CollectionView.js b/StoneIsland/www/js/lib/products/CollectionView.js
index ad98da65..803acc76 100755
--- a/StoneIsland/www/js/lib/products/CollectionView.js
+++ b/StoneIsland/www/js/lib/products/CollectionView.js
@@ -126,16 +126,53 @@ var CollectionView = ScrollableView.extend({
// }
console.log( data.SearchResponseFull.Results.Items.length )
- data.SearchResponseFull.Results.Items.forEach(function(item){
- console.log(">>> ITEM")
- this.append(item, is_single_product)
- }.bind(this))
+ if (app.store.GroupBy === 'size') {
+ this.groupBySize( data.SearchResponseFull.Results.Items, is_single_product )
+ }
+ else {
+ this.appendItems( data.SearchResponseFull.Results.Items, is_single_product )
+ }
this.deferScrollToTop()
}
this.afterFetchCallback && this.afterFetchCallback()
app.collection.deferRefresh()
},
+ groupBySize: function(items, is_single_product){
+ var groups = {}
+ items.forEach(function(item){
+ if (! item.Sizes.length) return
+ var size = item.Sizes[0]
+ var id = size['Text']
+ if ( ! (id in groups) ) {
+ groups[id] = {
+ label: SIZE_LOOKUP[ id ],
+ items: [],
+ }
+ }
+ groups[id].items.push( item )
+ }.bind(this))
+
+ Object.keys(groups).sort(function(a,b){
+ var ao = SIZE_ORDER.indexOf( a )
+ var bo = SIZE_ORDER.indexOf( b )
+ return ao - bo
+ }).forEach(function(id){
+ var size = groups[id]
+ var $el = $("<div>")
+ $el.addClass("product-group")
+ $el.html( size.label )
+ this.$content.append($el)
+ this.appendItems( size.items, is_single_product )
+ }.bind(this))
+ },
+
+ appendItems: function(items, is_single_product){
+ items.forEach(function(item){
+ this.append(item, is_single_product)
+ }.bind(this))
+ },
+
append: function(item, is_single_product){
this.items[ item['Code8'] ] = item
var t = this.template.replace(/{{image}}/, sdk.image(item['DefaultCode10'], is_single_product ? '13_f' : '11_f'))
diff --git a/StoneIsland/www/js/lib/products/filters/SizeFilter.js b/StoneIsland/www/js/lib/products/filters/SizeFilter.js
index 6efcdeec..a009dd15 100644
--- a/StoneIsland/www/js/lib/products/filters/SizeFilter.js
+++ b/StoneIsland/www/js/lib/products/filters/SizeFilter.js
@@ -19,6 +19,7 @@ var SizeFilter = View.extend({
sizes.sort(function(a,b){
return a.Id - b.Id
})
+
var cats = sizes.map(function(cat){
return {
id: cat.Id,