summaryrefslogtreecommitdiff
path: root/StoneIsland/www/js
diff options
context:
space:
mode:
Diffstat (limited to 'StoneIsland/www/js')
-rw-r--r--StoneIsland/www/js/index.js7
-rw-r--r--StoneIsland/www/js/lib/account/LoginView.js2
-rw-r--r--StoneIsland/www/js/lib/account/LogoutView.js7
-rw-r--r--StoneIsland/www/js/lib/account/PaymentView.js2
-rw-r--r--StoneIsland/www/js/lib/account/ProfileView.js2
-rw-r--r--StoneIsland/www/js/lib/account/SettingsView.js2
-rw-r--r--StoneIsland/www/js/lib/account/ShippingView.js2
-rw-r--r--StoneIsland/www/js/lib/account/SignupView.js2
-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
14 files changed, 90 insertions, 177 deletions
diff --git a/StoneIsland/www/js/index.js b/StoneIsland/www/js/index.js
index 5a4efec8..4350e383 100644
--- a/StoneIsland/www/js/index.js
+++ b/StoneIsland/www/js/index.js
@@ -63,7 +63,12 @@ var app = (function(){
if (window.cordova) {
// cordova.plugins.Keyboard.disableScroll(true)
}
-
+ else {
+ 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..329cf984 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",
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..e8dd1dc2 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",
diff --git a/StoneIsland/www/js/lib/account/ProfileView.js b/StoneIsland/www/js/lib/account/ProfileView.js
index 892ccbec..342e831a 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",
diff --git a/StoneIsland/www/js/lib/account/SettingsView.js b/StoneIsland/www/js/lib/account/SettingsView.js
index f6b2a992..37274b24 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",
diff --git a/StoneIsland/www/js/lib/account/ShippingView.js b/StoneIsland/www/js/lib/account/ShippingView.js
index 37ba9df9..e7f44949 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",
diff --git a/StoneIsland/www/js/lib/account/SignupView.js b/StoneIsland/www/js/lib/account/SignupView.js
index 616fd9ea..62a8f498 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",
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)