summaryrefslogtreecommitdiff
path: root/StoneIsland/www/js/lib/products/GalleryView.js
blob: 02193f14b3e77137971ae63d4aabfc84e011994a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
var GalleryView = View.extend({

  el: "#gallery",
  template: $("#gallery .template").html(),
  
  events: {
//     "click .left": "prev",
//     "click .right": "next",
//     "touchstart .gallery": "touchstart",
//     "touchmove .gallery": "touchmove",
//     "touchend .gallery": "touchend",
  },
  
  initialize: function(){
    this.$(".template").remove()
  },
  
  reset: function(){
    this.gallery && this.gallery.destroy()
    this.$el.empty()
  },
  
  populate: function(code, image_ids){
    var valid_styles = {}
    image_ids.forEach(function(id){
      if (id.indexOf("_") == -1) return
      var partz = id.split("_")
      var size = parseInt(partz[0]), style = partz[1]
      if (size > 13) return;
      if (! valid_styles[style] || valid_styles[style] < size) {
        valid_styles[style] = size
      }
    })
    Object.keys(valid_styles).sort(sort_image_styles).forEach(function(style){
      var id = valid_styles[style] + "_" + style
      var t = this.template.replace(/{{image}}/, sdk.image(code, id))
      this.$el.append(t)
    }.bind(this))
    
    this.gallery = new Flickity( "#gallery", {
      selector: '.item',
      cellAlign: 'center',
      autoPlay: false,
      freeScroll: false,
      wrapAround: true,
      imagesLoaded: true,
      prevNextButtons: false,
      pageDots: false,
      contain: true,
      draggable: true,
    })
  },

  touchstart: function(e){
  },
  touchmove: function(e){
  },
  touchend: function(e){
  },

})

var YOOX_IMAGE_STYLE_ORDER = "ZZZ d f".split(" ")

function sort_image_styles (b,a){ return (YOOX_IMAGE_STYLE_ORDER.indexOf(a)) - (YOOX_IMAGE_STYLE_ORDER.indexOf(b)) }