1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
var SignupView = FormView.extend({
el: "#signup",
action: sdk.account.signup,
last_data: null,
test_data: {
"Email": "testit.account" + Math.floor(Math.random() * 10000000) + "@yoox.com",
"Password": "TestPassword",
"Password2": "TestPassword",
"Gender": "U",
"Name": "TestName",
"Surname": "TestSurname",
"BirthDay": "1978-11-12",
"DataProfiling": true,
"DataProfiling2": true,
},
events: {
"click .privacy-msg": "privacy_link",
"submit form": "save",
},
initialize: function(){
this.$form = this.$("form")
this.$msg = this.$(".msg")
this.scroller = new IScroll('#signup', app.iscroll_options)
},
show: function(){
if (auth.logged_in()) {
app.router.go("intro")
return
}
var msg = "* Your personal and payment<br>information will always remain private"
app.footer.show("SUBMIT", "CANCEL")
this.$form.get(0).reset()
this.$msg.html(msg)
document.body.className = "signup"
this.preload()
},
validate_presence: {
"Name": "Please enter your first name.",
"Surname": "Please enter your last name.",
"Email": "Please enter a valid email address.",
"ConfirmEmail": "Please enter a valid email address.",
"Password": "Please enter your password.",
"Password2": "Please enter your password again.",
"DataProfiling": "You must agree to data profiling.",
},
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.match("@")) { errors.push([ "Email", "Email address is not valid." ]) }
if (data.Email.toLowerCase() !== data.ConfirmEmail.toLowerCase()) { errors.push([ "ConfirmEmail", "Email addresses don't match." ]) }
if (data.Gender === "NONE") { errors.push([ "Gender", "Please supply your gender." ]) }
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
data.BirthDay += "T00:00:00Z"
this.last_data = data
console.log(data)
},
privacy_link: function(){
// rewrite app.privacy instance temporarily
app.privacy.back = function(){
app.router.go("account/signup")
}
app.privacy.hide = function(){
app.privacy.back = app.privacy.hide = null
}
app.router.go("page/privacy")
},
success: function(data){
console.log('success', data)
auth.user = auth.user || {}
auth.user.Name = this.last_data.Name
auth.user.Surname = this.last_data.Surname
auth.user.Email = this.last_data.Email
auth.user.BirthDay = this.last_data.BirthDay
app.account.logged_in(function(){ app.router.go("store") })
},
error: function(data){
console.log('error', data)
},
cancel: function(){
auth.deferred_product = null
},
})
|