diff options
Diffstat (limited to 'StoneIsland/www/js')
| -rw-r--r-- | StoneIsland/www/js/index.js | 7 | ||||
| -rw-r--r-- | StoneIsland/www/js/lib/account/LoginView.js | 2 | ||||
| -rw-r--r-- | StoneIsland/www/js/lib/account/LogoutView.js | 7 | ||||
| -rw-r--r-- | StoneIsland/www/js/lib/account/PaymentView.js | 2 | ||||
| -rw-r--r-- | StoneIsland/www/js/lib/account/ProfileView.js | 2 | ||||
| -rw-r--r-- | StoneIsland/www/js/lib/account/SettingsView.js | 2 | ||||
| -rw-r--r-- | StoneIsland/www/js/lib/account/ShippingView.js | 2 | ||||
| -rw-r--r-- | StoneIsland/www/js/lib/account/SignupView.js | 2 | ||||
| -rw-r--r-- | StoneIsland/www/js/lib/nav/IntroView.js | 1 | ||||
| -rw-r--r-- | StoneIsland/www/js/lib/nav/NavView.js | 31 | ||||
| -rw-r--r-- | StoneIsland/www/js/lib/products/ProductView.js | 2 | ||||
| -rw-r--r-- | StoneIsland/www/js/sdk/auth.js | 55 | ||||
| -rw-r--r-- | StoneIsland/www/js/vendor/view/formview.js | 146 | ||||
| -rw-r--r-- | StoneIsland/www/js/vendor/view/serializable.js | 6 |
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) |
