summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--StoneIsland/www/css/nav.css7
-rw-r--r--StoneIsland/www/index.html26
-rw-r--r--StoneIsland/www/js/lib/account/ProfileView.js8
-rw-r--r--StoneIsland/www/js/lib/auth/LoginView.js2
-rw-r--r--StoneIsland/www/js/lib/auth/SignupView.js16
-rw-r--r--StoneIsland/www/js/lib/cart/CartPayment.js11
-rw-r--r--StoneIsland/www/js/lib/cart/CartShipping.js4
-rw-r--r--StoneIsland/www/js/lib/cart/CartSummary.js19
-rw-r--r--StoneIsland/www/js/lib/nav/AddressView.js4
-rw-r--r--StoneIsland/www/js/lib/nav/CreditCardView.js2
-rw-r--r--StoneIsland/www/js/lib/products/ProductView.js2
-rw-r--r--StoneIsland/www/js/sdk/cart.js3
-rw-r--r--StoneIsland/www/js/vendor/util.js4
-rw-r--r--StoneIsland/www/js/vendor/view/serializable.js15
14 files changed, 93 insertions, 30 deletions
diff --git a/StoneIsland/www/css/nav.css b/StoneIsland/www/css/nav.css
index 8bc131d1..b5fbec93 100644
--- a/StoneIsland/www/css/nav.css
+++ b/StoneIsland/www/css/nav.css
@@ -241,7 +241,7 @@ padding-bottom:0px;
width: 50%;
text-align: center;
padding: 10px 0;
- color: #bbb;
+ color: #000;
float: left;
font-size:14px;
font-weight:bold;
@@ -264,7 +264,7 @@ padding-bottom:0px;
position: absolute;
top: 0; left: 0;
width: 100%; height: 100%;
- background: rgba(72,72,72,0.8);
+ background: rgba(255,255,255,0.8);
opacity: 0;
-webkit-transition: opacity 0.2s;
transition: opacity 0.2s;
@@ -277,6 +277,9 @@ padding-bottom:0px;
#curtain.white {
background: rgba(255,255,255,0.8);
}
+#curtain.loading .loader {
+ display: block;
+}
/* SELECTOR */
diff --git a/StoneIsland/www/index.html b/StoneIsland/www/index.html
index f82d71c2..ac2e5bf2 100644
--- a/StoneIsland/www/index.html
+++ b/StoneIsland/www/index.html
@@ -347,6 +347,16 @@
Consult our <u>PRIVACY POLICY</u> for further information.
</div>
</div>
+
+ <div class="container-fill">
+ <div class="container-message">
+ <span class="msg">
+ * Your personal and payment<br>
+ information will always remain private
+ </span>
+ </div>
+ </div>
+
</form>
</div>
</div>
@@ -581,7 +591,14 @@
<form>
<div class="cc"></div>
<div class="address"></div>
- <span class="msg"></span>
+ <div class="container-fill">
+ <div class="container-message">
+ <span class="msg">
+ * Your personal and payment<br>
+ information will always remain private
+ </span>
+ </div>
+ </div>
</form>
</div>
</div>
@@ -616,10 +633,11 @@
</div>
<script type="text/html" id="creditcard_template">
- <input type="text" name="CC" placeholder="CREDIT CARD NUMBER" required>
+ <input type="text" name="Number" placeholder="CREDIT CARD NUMBER" required>
<div class="half-input">
- <input type="text" name="EXP" placeholder="EXPIRATION DATE" required>
- <input type="text" name="CVV" placeholder="SECURITY CODE" required>
+ <input type="number" name="ExpirationMonth" placeholder="EXPIRATION MONTH" required>
+ <input type="number" name="ExpirationYear" placeholder="EXPIRATION YEAR" required>
+ <input type="number" name="CVV" placeholder="SECURITY CODE" required>
</div>
<span class="address"></span>
</script>
diff --git a/StoneIsland/www/js/lib/account/ProfileView.js b/StoneIsland/www/js/lib/account/ProfileView.js
index 3c37c835..83ab0cdc 100644
--- a/StoneIsland/www/js/lib/account/ProfileView.js
+++ b/StoneIsland/www/js/lib/account/ProfileView.js
@@ -22,10 +22,10 @@ var ProfileView = FormView.extend({
"Email": "Please enter a valid email address.",
},
- validate_fields: function(errors){
- if (! data.CurrentPassword && data.NewPassword) { errors.push("CurrentPassword", "Please enter your current password.") }
- if (data.CurrentPassword && ! data.NewPassword) { errors.push("NewPassword", "Please enter your new password.") }
- if (data.NewPassword && data.NewPassword.length < 7) { errors.push("CurrentPassword", "New password must be 7 characters or more.") }
+ validate_fields: function(data, errors){
+ if (! data.CurrentPassword && data.NewPassword) { errors.push([ "CurrentPassword", "Please enter your current password." ]) }
+ if (data.CurrentPassword && ! data.NewPassword) { errors.push([ "NewPassword", "Please enter your new password." ]) }
+ if (data.NewPassword && data.NewPassword.length < 7) { errors.push([ "CurrentPassword", "New password must be 7 characters or more." ]) }
},
success: function(data){
diff --git a/StoneIsland/www/js/lib/auth/LoginView.js b/StoneIsland/www/js/lib/auth/LoginView.js
index c4ec8870..1e0f3b7a 100644
--- a/StoneIsland/www/js/lib/auth/LoginView.js
+++ b/StoneIsland/www/js/lib/auth/LoginView.js
@@ -36,6 +36,8 @@ var LoginView = FormView.extend({
},
error: function(data){
+ this.$msg.html("There was an error logging you in. Bad password?")
+ this.$msg.addClass('alert-notice')
},
cancel: function(){
diff --git a/StoneIsland/www/js/lib/auth/SignupView.js b/StoneIsland/www/js/lib/auth/SignupView.js
index 3ad84cc9..a29b4657 100644
--- a/StoneIsland/www/js/lib/auth/SignupView.js
+++ b/StoneIsland/www/js/lib/auth/SignupView.js
@@ -32,13 +32,17 @@ var SignupView = FormView.extend({
"DataProfiling": "You must agree to data profiling.",
},
- validate_fields: function(errors){
- if (data.Password.length < 7) { errors.push("Password", "Password must be 7 characters or more.") }
- if (data.Password !== data.Password2) { errors.push("Password2", "Passwords don't match.") }
- if (data.Email !== data.ConfirmEmail) { errors.push("ConfirmEmail", "Email addresses don't match.") }
- if (data.DataProfiling !== "true") { errors.push("DataProfiling", "You must consent to use this service.") }
- if (data.DataProfiling2 !== "true") { errors.push("DataProfiling2", "You must consent to use this service.") }
+ validate_fields: function(data, errors){
+ if (data.Password.length < 7) { errors.push([ "Password", "Password must be 7 characters or more." ]) }
+ if (data.Password !== data.Password2) { errors.push([ "Password2", "Passwords don't match." ]) }
+ if (data.Email.toLowerCase() !== data.ConfirmEmail.toLowerCase()) { errors.push([ "ConfirmEmail", "Email addresses don't match." ]) }
+ if (data.DataProfiling !== "true") { errors.push([ "DataProfiling", "You must consent to use this service." ]) }
+ if (data.DataProfiling2 !== "true") { errors.push([ "DataProfiling2", "You must consent to use this service." ]) }
if (! data.YooxLetter) { data.YooxLetter = "false" }
+
+ delete data.DataProfiling2
+ delete data.ConfirmEmail
+ console.log(data)
},
privacy_link: function(){
diff --git a/StoneIsland/www/js/lib/cart/CartPayment.js b/StoneIsland/www/js/lib/cart/CartPayment.js
index a9772ffe..19d21ffd 100644
--- a/StoneIsland/www/js/lib/cart/CartPayment.js
+++ b/StoneIsland/www/js/lib/cart/CartPayment.js
@@ -14,11 +14,21 @@ var CartPayment = FormView.extend({
this.scroller = new IScroll('#cart_payment', app.iscroll_options)
},
+ // sdk.cart.set_credit_card
+ // sdk.payment.list_credit_cards
+ // sdk.payment.add_credit_card
+ // sdk.payment.delete_credit_card
+ // sdk.payment.get_payment_types
+ // sdk.cart.use_stored_credit_card
+
show: function(){
document.body.className = "cart"
app.cart.el.className = "payment"
app.footer.show("CONFIRM &gt;", "CANCEL")
+
this.deferScrollToTop()
+
+ sdk.cart.set_payment_type({ data: payment_id })
},
save: function(){
@@ -27,5 +37,4 @@ var CartPayment = FormView.extend({
cancel: function(){
},
-
}) \ No newline at end of file
diff --git a/StoneIsland/www/js/lib/cart/CartShipping.js b/StoneIsland/www/js/lib/cart/CartShipping.js
index c0c21b4d..7d7c8540 100644
--- a/StoneIsland/www/js/lib/cart/CartShipping.js
+++ b/StoneIsland/www/js/lib/cart/CartShipping.js
@@ -20,6 +20,10 @@ var CartShipping = FormView.extend({
this.deferScrollToTop()
},
+ // sdk.cart.set_shipping_address
+ // sdk.shipping.get_delivery_types
+ // sdk.shipping.set_delivery_type
+
save: function(){
},
diff --git a/StoneIsland/www/js/lib/cart/CartSummary.js b/StoneIsland/www/js/lib/cart/CartSummary.js
index 290627d3..268f6ee0 100644
--- a/StoneIsland/www/js/lib/cart/CartSummary.js
+++ b/StoneIsland/www/js/lib/cart/CartSummary.js
@@ -2,6 +2,8 @@ var CartSummary = ScrollableView.extend({
el: "#cart_summary",
+ template: $("#cart_summary .template").html(),
+
events: {
},
@@ -20,7 +22,7 @@ var CartSummary = ScrollableView.extend({
sdk.cart.get_status({
success: this.populate.bind(this),
- error: this.error.bind(this),
+ error: this.empty.bind(this),
})
},
@@ -36,7 +38,7 @@ var CartSummary = ScrollableView.extend({
this.deferScrollToTop()
},
- error: function(){
+ empty: function(){
this.$loader.hide()
app.footer.hide()
this.parent.$itemcount.html("0 ITEMS")
@@ -44,9 +46,22 @@ var CartSummary = ScrollableView.extend({
},
ok: function(){
+ app.router.go('cart/shipping')
},
cancel: function(){
+ app.router.go('intro')
+ },
+
+ remove_item: function(e){
+ // $( e.currentTarget ).closest(".row").remove()
+ sdk.cart.delete_item({
+ data: {
+ Code10: "",
+ Size: "",
+ },
+ }).done(function(){
+ })
},
}) \ No newline at end of file
diff --git a/StoneIsland/www/js/lib/nav/AddressView.js b/StoneIsland/www/js/lib/nav/AddressView.js
index e5467250..15a5784d 100644
--- a/StoneIsland/www/js/lib/nav/AddressView.js
+++ b/StoneIsland/www/js/lib/nav/AddressView.js
@@ -32,8 +32,8 @@ var AddressView = SerializableView.extend({
"Phone": "Please enter your phone number.",
},
- validate_fields: function(errors){
- if (data.Phone.replace(/[^0-9]/g, "").length < 10) { errors.push("Phone", "Phone numbers must be at least 10 digits.") }
+ validate_fields: function(data, errors){
+ if (data.Phone.replace(/[^0-9]/g, "").length < 10) { errors.push([ "Phone", "Phone numbers must be at least 10 digits." ]) }
},
})
diff --git a/StoneIsland/www/js/lib/nav/CreditCardView.js b/StoneIsland/www/js/lib/nav/CreditCardView.js
index 20705a9e..33ecab79 100644
--- a/StoneIsland/www/js/lib/nav/CreditCardView.js
+++ b/StoneIsland/www/js/lib/nav/CreditCardView.js
@@ -21,7 +21,7 @@ var CreditCardView = View.extend({
validate_presence: {
},
- validate_fields: function(errors){
+ validate_fields: function(data, errors){
},
})
diff --git a/StoneIsland/www/js/lib/products/ProductView.js b/StoneIsland/www/js/lib/products/ProductView.js
index 84889db1..d1a9005f 100644
--- a/StoneIsland/www/js/lib/products/ProductView.js
+++ b/StoneIsland/www/js/lib/products/ProductView.js
@@ -88,7 +88,7 @@ var ProductView = ScrollableView.extend({
var name_partz = data['ModelNames'].split(' ')
var num = name_partz.shift()
var title = name_partz.join(' ')
- var type = data['MicroCategory'].toUpperCase()
+ var type = title_case( data['MicroCategory'] )
var price = "$" + data['DiscountedPrice'] + ".00"
var body = descriptions['EditorialDescription'].replace(/<br>/g, "<br><br>")
diff --git a/StoneIsland/www/js/sdk/cart.js b/StoneIsland/www/js/sdk/cart.js
index 308231ff..a8cfaf2b 100644
--- a/StoneIsland/www/js/sdk/cart.js
+++ b/StoneIsland/www/js/sdk/cart.js
@@ -81,6 +81,9 @@ sdk.cart = (function(){
}
cart.get_status = function(opt){
+ if (! cart.id) {
+ return opt.error()
+ }
return $.ajax({
method: "GET",
url: sdk.path("Cart.API/1.6", "carts/" + cart.id + ".json"),
diff --git a/StoneIsland/www/js/vendor/util.js b/StoneIsland/www/js/vendor/util.js
index 0e48ce5a..fede4761 100644
--- a/StoneIsland/www/js/vendor/util.js
+++ b/StoneIsland/www/js/vendor/util.js
@@ -24,6 +24,10 @@ function rgba_string (rgb,a) { return "rgba(" + rgb.map(Math.round).join(",") +
function hex_string (rgb) { return "#" + rgb.map(Math.round).map(function(n){ var s = n.toString(16); return s.length == 1 ? "0"+s : s }).join("") }
function parse_rgba_string (s) { return s.match(/(\d+)/g).slice(0,3) }
+function title_case (str) {
+ return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
+}
+
var E = Math.E
var PI = Math.PI
var PHI = (1+Math.sqrt(5))/2
diff --git a/StoneIsland/www/js/vendor/view/serializable.js b/StoneIsland/www/js/vendor/view/serializable.js
index db996f23..3c069880 100644
--- a/StoneIsland/www/js/vendor/view/serializable.js
+++ b/StoneIsland/www/js/vendor/view/serializable.js
@@ -22,15 +22,16 @@ var SerializableView = View.extend({
Object.keys(presence_msgs).forEach(function(k){
if (! data[k]) errors.push( [ k, presence_msgs[k] ] )
})
- this.validate_fields && this.validate_fields(errors)
+ this.validate_fields && this.validate_fields(data, errors)
this.cc && this.cc.validate(errors)
this.address && this.address.validate(errors)
- return errors.length ? errors : null
+ return { errors: errors, data: data }
},
show_errors: function(errors){
var msgs = []
- errors.forEach(function(e){
+ errors.forEach(function(e, i){
+ if (i > 0) { return }
this.$("[name=" + e[0] + "]").addClass('error_hilite')
msgs.push(e[1])
}.bind(this))
@@ -46,9 +47,9 @@ var SerializableView = View.extend({
save: function(e){
e && e.preventDefault()
- var errors = this.validate()
- if (errors) {
- this.show_errors(errors)
+ var valid = this.validate()
+ if (valid.errors.length) {
+ this.show_errors(valid.errors)
return
}
else {
@@ -57,7 +58,7 @@ var SerializableView = View.extend({
app.curtain.show("loading")
this.action({
- data: data,
+ data: valid.data,
success: function(data){
app.curtain.hide("loading")
this.success(data)