summaryrefslogtreecommitdiff
path: root/StoneIsland/www/js
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/www/js')
-rw-r--r--StoneIsland/www/js/index.js3
-rw-r--r--StoneIsland/www/js/lib/account/LoginView.js3
-rw-r--r--StoneIsland/www/js/lib/account/LogoutView.js7
-rw-r--r--StoneIsland/www/js/lib/account/PaymentView.js3
-rw-r--r--StoneIsland/www/js/lib/account/ProfileView.js3
-rw-r--r--StoneIsland/www/js/lib/account/SettingsView.js3
-rw-r--r--StoneIsland/www/js/lib/account/ShippingView.js3
-rw-r--r--StoneIsland/www/js/lib/account/SignupView.js3
-rw-r--r--StoneIsland/www/js/lib/cart/CartConfirm.js2
-rw-r--r--StoneIsland/www/js/lib/cart/CartPayment.js2
-rw-r--r--StoneIsland/www/js/lib/cart/CartShipping.js2
-rw-r--r--StoneIsland/www/js/lib/cart/CartSummary.js4
-rw-r--r--StoneIsland/www/js/lib/cart/CartView.js6
-rw-r--r--StoneIsland/www/js/lib/nav/IntroView.js1
-rw-r--r--StoneIsland/www/js/lib/nav/NavView.js31
-rw-r--r--StoneIsland/www/js/lib/products/ProductView.js2
-rw-r--r--StoneIsland/www/js/sdk/auth.js55
-rw-r--r--StoneIsland/www/js/vendor/view/formview.js146
-rw-r--r--StoneIsland/www/js/vendor/view/serializable.js6
19 files changed, 105 insertions, 180 deletions
diff --git a/StoneIsland/www/js/index.js b/StoneIsland/www/js/index.js
index 5a4efec8..3d8d46bb 100644
--- a/StoneIsland/www/js/index.js
+++ b/StoneIsland/www/js/index.js
@@ -64,6 +64,9 @@ var app = (function(){
// cordova.plugins.Keyboard.disableScroll(true)
}
+ auth.init( app.launch )
+ }
+ app.launch = function(){
app.view = null
app.router = new SiteRouter ()
app.router.route()
diff --git a/StoneIsland/www/js/lib/account/LoginView.js b/StoneIsland/www/js/lib/account/LoginView.js
index 30a4a735..8c875ae8 100644
--- a/StoneIsland/www/js/lib/account/LoginView.js
+++ b/StoneIsland/www/js/lib/account/LoginView.js
@@ -1,4 +1,4 @@
-var LoginView = SerializableView.extend({
+var LoginView = FormView.extend({
el: "#login",
@@ -12,6 +12,7 @@ var LoginView = SerializableView.extend({
initialize: function(){
this.$form = this.$("form")
this.$msg = this.$(".msg")
+ this.scroller = new IScroll('#login', app.iscroll_options)
},
show: function(){
diff --git a/StoneIsland/www/js/lib/account/LogoutView.js b/StoneIsland/www/js/lib/account/LogoutView.js
index 71e0bc31..62c925eb 100644
--- a/StoneIsland/www/js/lib/account/LogoutView.js
+++ b/StoneIsland/www/js/lib/account/LogoutView.js
@@ -9,12 +9,5 @@ var LogoutView = View.extend({
document.body.className = "logout"
app.footer.hide()
},
-
- submit: function(e){
- e.preventDefault()
- },
-
- success: function(){
- },
}) \ No newline at end of file
diff --git a/StoneIsland/www/js/lib/account/PaymentView.js b/StoneIsland/www/js/lib/account/PaymentView.js
index 103cbf8f..4d6ccce5 100644
--- a/StoneIsland/www/js/lib/account/PaymentView.js
+++ b/StoneIsland/www/js/lib/account/PaymentView.js
@@ -1,4 +1,4 @@
-var PaymentView = View.extend({
+var PaymentView = FormView.extend({
el: "#payment",
@@ -10,6 +10,7 @@ var PaymentView = View.extend({
this.$msg = this.$(".msg")
this.address = new AddressView ({ parent: this })
this.cc = new CreditCardView ({ parent: this })
+ this.scroller = new IScroll('#payment', app.iscroll_options)
},
show: function(){
diff --git a/StoneIsland/www/js/lib/account/ProfileView.js b/StoneIsland/www/js/lib/account/ProfileView.js
index 892ccbec..6d9a44a3 100644
--- a/StoneIsland/www/js/lib/account/ProfileView.js
+++ b/StoneIsland/www/js/lib/account/ProfileView.js
@@ -1,4 +1,4 @@
-var ProfileView = View.extend({
+var ProfileView = FormView.extend({
el: "#profile",
@@ -8,6 +8,7 @@ var ProfileView = View.extend({
initialize: function(){
this.$form = this.$("form")
this.$msg = this.$(".msg")
+ this.scroller = new IScroll('#profile', app.iscroll_options)
},
show: function(){
diff --git a/StoneIsland/www/js/lib/account/SettingsView.js b/StoneIsland/www/js/lib/account/SettingsView.js
index f6b2a992..ba871543 100644
--- a/StoneIsland/www/js/lib/account/SettingsView.js
+++ b/StoneIsland/www/js/lib/account/SettingsView.js
@@ -1,4 +1,4 @@
-var SettingsView = View.extend({
+var SettingsView = FormView.extend({
el: "#settings",
@@ -8,6 +8,7 @@ var SettingsView = View.extend({
initialize: function(){
this.$form = this.$("form")
this.$msg = this.$(".msg")
+ this.scroller = new IScroll('#settings', app.iscroll_options)
},
show: function(){
diff --git a/StoneIsland/www/js/lib/account/ShippingView.js b/StoneIsland/www/js/lib/account/ShippingView.js
index 37ba9df9..bc4d24ef 100644
--- a/StoneIsland/www/js/lib/account/ShippingView.js
+++ b/StoneIsland/www/js/lib/account/ShippingView.js
@@ -1,4 +1,4 @@
-var ShippingView = View.extend({
+var ShippingView = FormView.extend({
el: "#shipping",
@@ -9,6 +9,7 @@ var ShippingView = View.extend({
this.$form = this.$("form")
this.$msg = this.$(".msg")
this.address = new AddressView ({ parent: this })
+ this.scroller = new IScroll('#shipping', app.iscroll_options)
},
show: function(){
diff --git a/StoneIsland/www/js/lib/account/SignupView.js b/StoneIsland/www/js/lib/account/SignupView.js
index 616fd9ea..04600517 100644
--- a/StoneIsland/www/js/lib/account/SignupView.js
+++ b/StoneIsland/www/js/lib/account/SignupView.js
@@ -1,4 +1,4 @@
-var SignupView = SerializableView.extend({
+var SignupView = FormView.extend({
el: "#signup",
@@ -11,6 +11,7 @@ var SignupView = SerializableView.extend({
initialize: function(){
this.$form = this.$("form")
this.$msg = this.$(".msg")
+ this.scroller = new IScroll('#signup', app.iscroll_options)
},
show: function(){
diff --git a/StoneIsland/www/js/lib/cart/CartConfirm.js b/StoneIsland/www/js/lib/cart/CartConfirm.js
index 0ce94f22..659d36e6 100644
--- a/StoneIsland/www/js/lib/cart/CartConfirm.js
+++ b/StoneIsland/www/js/lib/cart/CartConfirm.js
@@ -6,12 +6,14 @@ var CartConfirm = View.extend({
},
initialize: function(){
+ this.scroller = new IScroll('#cart_confirm', app.iscroll_options)
},
show: function(){
document.body.className = "cart"
app.cart.el.className = "confirm"
app.footer.show("PLACE ORDER", "CANCEL")
+ this.deferScrollToTop()
},
populate: function(){
diff --git a/StoneIsland/www/js/lib/cart/CartPayment.js b/StoneIsland/www/js/lib/cart/CartPayment.js
index f5dfb6ed..50fbef9c 100644
--- a/StoneIsland/www/js/lib/cart/CartPayment.js
+++ b/StoneIsland/www/js/lib/cart/CartPayment.js
@@ -10,12 +10,14 @@ var CartPayment = View.extend({
this.$msg = this.$(".msg")
this.address = new AddressView ({ parent: this })
this.cc = new CreditCardView ({ parent: this })
+ this.scroller = new IScroll('#cart_payment', app.iscroll_options)
},
show: function(){
document.body.className = "cart"
app.cart.el.className = "payment"
app.footer.show("CONFIRM >", "CANCEL")
+ this.deferScrollToTop()
},
save: function(){
diff --git a/StoneIsland/www/js/lib/cart/CartShipping.js b/StoneIsland/www/js/lib/cart/CartShipping.js
index b819ed0a..2c7bae4a 100644
--- a/StoneIsland/www/js/lib/cart/CartShipping.js
+++ b/StoneIsland/www/js/lib/cart/CartShipping.js
@@ -9,12 +9,14 @@ var CartShipping = View.extend({
this.$form = this.$("form")
this.$msg = this.$(".msg")
this.address = new AddressView ({ parent: this })
+ this.scroller = new IScroll('#cart_shipping', app.iscroll_options)
},
show: function(){
document.body.className = "cart"
app.cart.el.className = "shipping"
app.footer.show("PAYMENT >", "CANCEL")
+ this.deferScrollToTop()
},
save: function(){
diff --git a/StoneIsland/www/js/lib/cart/CartSummary.js b/StoneIsland/www/js/lib/cart/CartSummary.js
index d91b801f..800ac3a6 100644
--- a/StoneIsland/www/js/lib/cart/CartSummary.js
+++ b/StoneIsland/www/js/lib/cart/CartSummary.js
@@ -1,4 +1,4 @@
-var CartSummary = View.extend({
+var CartSummary = ScrollableView.extend({
el: "#summary",
@@ -6,12 +6,14 @@ var CartSummary = View.extend({
},
initialize: function(){
+ this.scroller = new IScroll('#summary', app.iscroll_options)
},
show: function(){
document.body.className = "cart"
app.cart.el.className = "summary"
app.footer.show("SHIPPING >", "CANCEL")
+ this.deferScrollToTop()
},
populate: function(){
diff --git a/StoneIsland/www/js/lib/cart/CartView.js b/StoneIsland/www/js/lib/cart/CartView.js
index 7744ad9d..43dc7dd4 100644
--- a/StoneIsland/www/js/lib/cart/CartView.js
+++ b/StoneIsland/www/js/lib/cart/CartView.js
@@ -22,15 +22,15 @@ var CartView = View.extend({
},
show_summary: function(){
- this.el.className = "summary"
+ this.summary.show()
},
show_shipping: function(){
- this.el.className = "shipping"
+ this.shipping.show()
},
show_payment: function(){
- this.el.className = "payment"
+ this.payment.show()
},
}) \ No newline at end of file
diff --git a/StoneIsland/www/js/lib/nav/IntroView.js b/StoneIsland/www/js/lib/nav/IntroView.js
index 93602eb5..87e68959 100644
--- a/StoneIsland/www/js/lib/nav/IntroView.js
+++ b/StoneIsland/www/js/lib/nav/IntroView.js
@@ -17,6 +17,7 @@ var IntroView = View.extend({
show: function(){
document.body.className = "intro"
window.addEventListener("deviceorientation", this.orient)
+ app.footer.hide()
this.orient({ alpha: 0 })
// get location..
},
diff --git a/StoneIsland/www/js/lib/nav/NavView.js b/StoneIsland/www/js/lib/nav/NavView.js
index a9129650..2145c163 100644
--- a/StoneIsland/www/js/lib/nav/NavView.js
+++ b/StoneIsland/www/js/lib/nav/NavView.js
@@ -3,6 +3,8 @@ var NavView = View.extend({
el: "#nav",
events: {
+ "click .logo": "intro",
+
"click .store": "store",
"click .hub": "hub",
"click .story": "story",
@@ -12,13 +14,13 @@ var NavView = View.extend({
"click .faq": "faq",
"click .search": "search",
- "click .account_back": "account_back",
+ "click .account_back": "back",
"click .profile": "profile",
"click .payment": "payment",
"click .shipping": "shipping",
"click .settings": "settings",
- "click .faq_back": "faq_back",
+ "click .faq_back": "back",
"click .privacy": "privacy",
"click .returns": "returns",
"click .terms": "terms",
@@ -32,9 +34,14 @@ var NavView = View.extend({
initialize: function(){
},
- show: function(){
+ show: function(klass){
$("body").addClass("nav")
app.curtain.show()
+ if (klass) {
+ setTimeout(function(){
+ this.addClass(klass)
+ }.bind(this), 500)
+ }
},
hide: function(){
@@ -42,6 +49,10 @@ var NavView = View.extend({
app.curtain.hide()
},
+ intro: function(){
+ this.hide()
+ app.router.go("intro")
+ },
store: function(){
this.hide()
app.router.go("store")
@@ -60,16 +71,17 @@ var NavView = View.extend({
},
login: function(){
- if (true || auth.logged_in()) {
- this.$el.addClass("account")
+ if (auth.logged_in()) {
+ this.el.className = "account"
}
else {
this.hide()
app.router.go("account/login")
}
},
- account_back: function(){
- this.$el.removeClass("account")
+
+ back: function(){
+ this.el.className = ""
},
profile: function(){
@@ -90,10 +102,7 @@ var NavView = View.extend({
},
faq: function(){
- this.$el.addClass("faq")
- },
- faq_back: function(){
- this.$el.removeClass("faq")
+ this.el.className = "faq"
},
privacy: function(){
this.hide()
diff --git a/StoneIsland/www/js/lib/products/ProductView.js b/StoneIsland/www/js/lib/products/ProductView.js
index df604d5b..75f62ac6 100644
--- a/StoneIsland/www/js/lib/products/ProductView.js
+++ b/StoneIsland/www/js/lib/products/ProductView.js
@@ -116,6 +116,8 @@ var ProductView = ScrollableView.extend({
else {
this.$color.hide()
}
+
+ this.deferScrollToTop()
},
find_sizes_for_color: function(color_id){
diff --git a/StoneIsland/www/js/sdk/auth.js b/StoneIsland/www/js/sdk/auth.js
index 134107c2..95a1dc56 100644
--- a/StoneIsland/www/js/sdk/auth.js
+++ b/StoneIsland/www/js/sdk/auth.js
@@ -20,21 +20,66 @@ var auth = sdk.auth = (function(){
// ios: integrate keychain api
// android: cordova.file.externalRootDirectory api
- auth.set_user = function(user_id, access_token){
- // persist user data
- auth.user_id = user_id
+ auth.init = function(fn){
+ auth.get_user(function(){
+ if (auth.logged_in()) {
+ auth.get_cart()
+ auth.view_logged_in()
+ }
+ else {
+ auth.view_logged_out()
+ }
+ fn && fn()
+ })
+ }
+
+ auth.set_user = function(user_id, access_token, cb){
auth.access_token = access_token
+ auth.user_id = user_id
+
+ localStorage.setItem("yoox.access_token", access_token)
+ localStorage.setItem("yoox.user_id", user_id)
+ cb && cb()
}
auth.get_user = function(cb){
- // fetch user data
+ access_token = localStorage.getItem("yoox.access_token") || ""
+ user_id = localStorage.getItem("yoox.user_id") || -1
+ cb && cb()
+ }
+
+ auth.set_cart = function(cart_id, cart_token, cb){
+ localStorage.setItem("yoox.cart_token", cart_token)
+ localStorage.setItem("yoox.cart_id", cart_id)
+ cb && cb()
+ }
+ auth.get_cart = function(cb){
+ cart.token = localStorage.getItem("yoox.cart_token") || ""
+ cart.id = localStorage.getItem("yoox.cart_id") || -1
+ cb && cb()
}
+
+ auth.view_logged_in = function(){
+ $("#nav .login").hide()
+ $("#nav .account").show()
+ }
+ auth.view_logged_out = function(){
+ $("#nav .login").show()
+ $("#nav .account").hide()
+ }
+
auth.log_out = function(){
- auth.user_id = -1
auth.access_token = ""
+ auth.user_id = -1
+ cart.token = ""
+ cart.id = -1
+ auth.view_logged_out()
}
auth.logged_in = function(){
return (auth.user_id !== -1)
}
+ auth.has_cart = function(){
+ return (cart.id !== -1)
+ }
return auth
})() \ No newline at end of file
diff --git a/StoneIsland/www/js/vendor/view/formview.js b/StoneIsland/www/js/vendor/view/formview.js
deleted file mode 100644
index 8cd222e3..00000000
--- a/StoneIsland/www/js/vendor/view/formview.js
+++ /dev/null
@@ -1,146 +0,0 @@
-var FormView = View.extend({
-
- method: "post",
- useMinotaur: false,
-
- events: {
- "submit form": "save"
- },
-
- initialize: function(opt){
- if (opt && opt.parent) {
- this.parent = opt.parent
- }
- this.$form = this.$("form")
- this.$errors = this.$(".errors")
- this.$errorList = this.$(".errorList")
- },
-
- reset: function(){
- this.$("input,textarea").not("[type='submit']").not("[type='hidden']").val("")
- },
-
- showErrors: function(errors){
- if (errors && errors.length) {
- this.$errorList.empty();
- for (var i in errors) {
- this.$errorList.append('<div>' + errors[i] + '</div>');
- }
- this.$errors.css("opacity", 1.0);
- setTimeout(function(){
- this.$errors.show().css("opacity", 1.0);
- }.bind(this), 200)
- }
- },
-
- serialize: function(){
- var fd = new FormData(), hasCSRF = false
-
- this.$("input[name], select[name], textarea[name]").each( function(){
- if (this.type == "file") {
- if (this.files.length > 0) {
- fd.append(this.name, this.files[0]);
- }
- }
-// else if (this.type == "password") {
-// if (this.value.length > 0) {
-// fd.append(this.name, SHA1.hex('bucky$' + this.value + '$bucky'))
-// }
-// }
- else {
- fd.append(this.name, this.value);
- hasCSRF = hasCSRF || this.name == "_csrf"
- }
- });
-
-// if (! hasCSRF) {
-// fd.append("_csrf", $("[name=_csrf]").attr("value"))
-// }
-//
- return fd
- },
-
- save: function(e, successCallback, errorCallback){
- e && e.preventDefault()
-
- this.$errors.hide().css("opacity", 0.0);
-
- if (this.validate) {
- var errors = this.validate()
- if (errors && errors.length) {
- if (errorCallback) {
- errorCallback(errors)
- }
- else {
- this.showErrors(errors)
- }
- return
- }
- }
-
- var action = typeof this.action == "function" ? this.action() : this.action
- if (! action) return
-
- var request = $.ajax({
- url: action,
- type: this.method,
- data: this.serialize(),
-// headers: { "csrf-token": $("[name=_csrf]").attr("value") },
- dataType: "json",
- processData: false,
- contentType: false,
- success: function(response){
-
- if (response.error) {
- var errors = []
- for (var key in response.error.errors) {
- errors.push(response.error.errors[key].message);
- }
- if (errorCallback) {
- errorCallback(errors)
- }
- else {
- this.showErrors(errors)
- }
- return
- }
- else {
- if (successCallback) {
- successCallback(response)
- }
- if (this.success) {
- this.success(response)
- }
- }
-
-
- }.bind(this),
- error: function(response){
- }.bind(this),
- complete: function(response){
- if (this.useMinotaur) {
- Minotaur.hide()
- }
- }.bind(this),
- })
-
- if (this.useMinotaur) {
- Minotaur.show()
- }
-
- },
-
-})
-
-/*
-
-var ModalFormView = ModalView.extend(FormView.prototype).extend({
-
- load: function(){
- this.reset()
- this.show()
- }
-
-})
-
-*/ \ No newline at end of file
diff --git a/StoneIsland/www/js/vendor/view/serializable.js b/StoneIsland/www/js/vendor/view/serializable.js
index ae742d75..5dfca06e 100644
--- a/StoneIsland/www/js/vendor/view/serializable.js
+++ b/StoneIsland/www/js/vendor/view/serializable.js
@@ -35,9 +35,11 @@ var SerializableView = View.extend({
msgs.push(e[1])
}.bind(this))
this.$msg.html(msgs.join("<br>"))
+ this.$msg.addClass('alert-notice')
},
hide_errors: function(){
+ this.$msg.removeClass('alert-notice')
this.$msg.html("")
},
@@ -76,4 +78,6 @@ var SerializableView = View.extend({
console.log("FAIL", data)
},
-}) \ No newline at end of file
+})
+
+var FormView = View.extend(SerializableView).extend(ScrollableView)