summaryrefslogtreecommitdiff
path: root/StoneIsland/platforms/ios/www/js/lib
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/platforms/ios/www/js/lib')
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/blogs/BlogView.js4
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/blogs/HubView.js178
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/products/CollectionView.js6
-rwxr-xr-xStoneIsland/platforms/ios/www/js/lib/products/ProductView.js10
4 files changed, 109 insertions, 89 deletions
diff --git a/StoneIsland/platforms/ios/www/js/lib/blogs/BlogView.js b/StoneIsland/platforms/ios/www/js/lib/blogs/BlogView.js
index 06e051cb..b7c80520 100755
--- a/StoneIsland/platforms/ios/www/js/lib/blogs/BlogView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/blogs/BlogView.js
@@ -9,8 +9,8 @@ var BlogView = View.extend({
fetch: function(fn){
$.ajax({
method: "GET",
-// url: sdk.env == 'test' ? '/db.json' : "http://stone.sup.land/db.json",
- url: "http://stone.sup.land/db.json",
+// url: sdk.env == 'test' ? '/db.json' : "https://stone.sup.land/db.json",
+ url: "https://stone.sup.land/db.json",
success: function(data){
this.success(data)
fn && fn()
diff --git a/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js b/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js
index cef2d07a..1657d295 100755
--- a/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/blogs/HubView.js
@@ -15,6 +15,7 @@ var HubView = ScrollableView.extend({
this.$content = this.$(".content")
this.$loader = this.$(".loader")
this.scroller = new IScroll('#hub', app.iscroll_options)
+ HubLoader.init(this)
},
show: function(){
@@ -42,91 +43,74 @@ var HubView = ScrollableView.extend({
this.$loader.hide()
this.$content.empty()
this.galleries = {}
+ HubLoader.add(this.data)
+
+ this.deferScrollToTop()
+ },
+
+ append: function(row){
// id date subtitle body link store image[uri caption]
- this.data.forEach(function(row){
- // console.log(row)
- // console.log(moment(row.date))
- var t = this.template.replace(/{{id}}/g, row.id)
- .replace(/{{date}}/, moment(row.date).format("MM.DD.YYYY"))
- .replace(/{{title}}/, row.title)
- .replace(/{{subtitle}}/, row.subtitle)
- .replace(/{{link}}/, row.link)
- .replace(/{{body}}/, row.body.replace(/\n/g, "<br>"))
- var $t = $(t)
- if (row.store != "true") {
- $t.find(".store").remove()
+ // console.log(row)
+ // console.log(moment(row.date))
+ var t = this.template.replace(/{{id}}/g, row.id)
+ .replace(/{{date}}/, moment(row.date).format("MM.DD.YYYY"))
+ .replace(/{{title}}/, row.title)
+ .replace(/{{subtitle}}/, row.subtitle)
+ .replace(/{{link}}/, row.link)
+ .replace(/{{body}}/, row.body.replace(/\n/g, "<br>"))
+ var $t = $(t)
+ if (row.store != "true") {
+ $t.find(".store").remove()
+ }
+ this.$content.append($t)
+
+ if (row.image && row.image.length > 1) {
+ // image gallery
+ var $gallery = $(".gallery-" + row.id)
+ row.image.forEach(function(img){
+ var el = document.createElement("div")
+ el.style.backgroundImage = "url(" + img.uri + ")"
+ el.className = "item"
+ $gallery.append(el)
+ })
+ this.galleries[row.id] = new Flickity( ".gallery-" + row.id, {
+ selector: '.item',
+ cellAlign: 'center',
+ autoPlay: false,
+ freeScroll: false,
+ wrapAround: true,
+ imagesLoaded: true,
+ prevNextButtons: false,
+ pageDots: false,
+ contain: true,
+ draggable: true,
+ })
+ }
+ else {
+ // single image
+ var el = document.createElement("div")
+ if (row.image && row.image.length) {
+ el.style.backgroundImage = "url(" + row.image[0].uri + ")"
}
- this.$content.append($t)
+ el.className = "item"
+ $(".gallery-" + row.id).append(el)
+ $(".gallery-" + row.id).data("row", row)
- if (row.image && row.image.length > 1) {
- // image gallery
- var $gallery = $(".gallery-" + row.id)
- row.image.forEach(function(img){
- var el = document.createElement("div")
- el.style.backgroundImage = "url(" + img.uri + ")"
- el.className = "item"
- $gallery.append(el)
- })
- this.galleries[row.id] = new Flickity( ".gallery-" + row.id, {
- selector: '.item',
- cellAlign: 'center',
- autoPlay: false,
- freeScroll: false,
- wrapAround: true,
- imagesLoaded: true,
- prevNextButtons: false,
- pageDots: false,
- contain: true,
- draggable: true,
- })
- }
- else {
- // single image
- var url = row.link
- var is_video = url.match(/youtube|youtu.be|vimeo/)
- var image_url
- if (row.image && row.image.length) {
- image_url = row.image[0].uri
- }
- else if (is_video && url.match(/youtube|youtu.be/)) {
+ // video, append play button
+ if (row.link.match(/youtube|youtu.be|vimeo/)) {
+ var play = document.createElement("div")
+ play.className = "play"
+ $(".gallery-" + row.id).append(play)
+ $(".gallery-" + row.id).addClass("gallery-video-post")
+ if (! row.image) {
+ var url = row.link
var ytid = (url.match(/v=([-_a-zA-Z0-9]{11})/i) || url.match(/youtu.be\/([-_a-zA-Z0-9]{11})/i) || url.match(/embed\/([-_a-zA-Z0-9]{11})/i))[1].split('&')[0];
- image_url = "http://i.ytimg.com/vi/" + ytid + "/hqdefault.jpg"
- }
- else {
- image_url = ""
+ e.style.backgroundImage = "url(https://i.ytimg.com/vi/" + ytid + "/maxresdefault.jpg"
}
-
- var el = document.createElement("div")
-
- if (is_video) {
- var ytid = (url.match(/v=([-_a-zA-Z0-9]{11})/i) || url.match(/youtu.be\/([-_a-zA-Z0-9]{11})/i) || url.match(/embed\/([-_a-zA-Z0-9]{11})/i))[1].split('&')[0];
- var tag = '<iframe src="https://www.youtube.com/embed/' + ytid + '?showinfo=0&rel=0&modestbranding=1&iv_load_policy=3&controls=0" frameborder="0"></iframe>'
- el.innerHTML = tag
-
- // webkit-playsinline (html attribute)
- // &playsinline=1 (yt iframe api param)
- }
- else {
- el.style.backgroundImage = "url(" + image_url + ")"
- }
- el.className = "item"
- $(".gallery-" + row.id).append(el)
- $(".gallery-" + row.id).data("row", row)
-
- // video, append play button
-// if (is_video) {
-// var play = document.createElement("div")
-// play.className = "play"
-// $(".gallery-" + row.id).append(play)
-// $(".gallery-" + row.id).addClass("gallery-video-post")
-// }
- $t.find(".gallery-left").remove()
- $t.find(".gallery-right").remove()
}
-
- }.bind(this))
-
- this.deferScrollToTop()
+ $t.find(".gallery-left").remove()
+ $t.find(".gallery-right").remove()
+ }
},
store_link: function(){
@@ -152,4 +136,38 @@ var HubView = ScrollableView.extend({
window.plugins.socialsharing.share(title, null, null, "http://deeplink.me/www.stoneisland.com/hub" )
},
-}) \ No newline at end of file
+})
+
+var HubLoader = (function(){
+ var queue, view, item, loader
+ var HubLoader = {}
+ var loader
+ HubLoader.init = function(v){
+ view = v
+ }
+ HubLoader.add = function(items){
+ queue = items
+ this.load()
+ }
+ HubLoader.load = function(){
+ item = queue.shift()
+ if (! item) return
+ if (item.image && item.image.length) {
+ loader = new Loader (HubLoader.build)
+ images = item.image.map(function(img){
+ return img.uri.replace("http:","https:")
+ }).filter(function(img){
+ return img.uri
+ })
+ loader.preloadImages(images)
+ }
+ else {
+ HubLoader.build()
+ }
+ }
+ HubLoader.build = function(){
+ view.append(item)
+ setTimeout(HubLoader.load, 20)
+ }
+ return HubLoader
+})()
diff --git a/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js b/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js
index 55f3b080..b9a7755f 100755
--- a/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/products/CollectionView.js
@@ -33,7 +33,7 @@ var CollectionView = ScrollableView.extend({
if (sdk.env !== "test" && app.closed.storeIsClosed) {
return app.closed.show()
}
- if (this.data && this.data.SearchResponseFull.Results.Items.length == 1) {
+ if (this.data && this.data.SearchResponseFull.Results.Items.length < 4) {
app.footer.hide()
}
else {
@@ -91,8 +91,8 @@ var CollectionView = ScrollableView.extend({
this.$content.empty()
// DefaultCode10
// data.SearchResponseFull.Results.Items.length = 1
- var is_single_product = (data.SearchResponseFull.Results.Items.length == 1)
- this.$content.toggleClass("single", is_single_product)
+ var is_single_product = (data.SearchResponseFull.Results.Items.length < 4)
+ this.$el.toggleClass("single", is_single_product)
if (is_single_product) {
console.log("IS SINGLE PRODUCT")
diff --git a/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js b/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js
index 390d2f6a..cfb39f20 100755
--- a/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js
+++ b/StoneIsland/platforms/ios/www/js/lib/products/ProductView.js
@@ -113,15 +113,13 @@ var ProductView = ScrollableView.extend({
var descriptions = this.get_descriptions(details)
- this.gallery.populate( data['Code8'], details['Item']['ImageTypes'] )
-
var name_partz = data['ModelNames'].split(' ')
var num = name_partz.shift()
var title = name_partz.join(' ')
var type = title_case( data['MicroCategory'] )
var price = "$" + data['DiscountedPrice'] + ".00"
var body = descriptions['Details'] + "<br>" + descriptions['EditorialDescription']
- body = body.replace(/<br>/g, "<br><br>")
+ body = body.replace(/<br>/g, "<br><br>").replace(/(<br>)+$/, "")
var default_color_id = this.populate_selectors(data, details)
@@ -129,15 +127,19 @@ var ProductView = ScrollableView.extend({
this.$style.css("opacity", 0)
this.$color.html("NOT AVAILABLE")
this.$size.hide()
+ this.gallery.populate( data['Code8'], details['Item']['ImageTypes'] )
}
else {
this.$style.css("opacity", 1)
+
var color = this.colors[default_color_id]
var color_label = color.label
var sizes = this.find_sizes_for_color(default_color_id)
var size = sizes[0]
var size_label = this.sizes[size].label
+ this.gallery.populate( color.code, details['Item']['ImageTypes'] )
+
this.color = color
this.size = size
@@ -475,4 +477,4 @@ ModelFabric: "631520081CC-6315-81"
ModelNames: "20081 DATA DRIP PIN"
Neckline: "Claudine or round collar"
-*/ \ No newline at end of file
+*/