summaryrefslogtreecommitdiff
path: root/StoneIsland/www/js/lib/auth/SignupView.js
blob: 22b310de2f0b9ceeee2721f581fb926f64d881bc (plain)
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
104
105
106
107
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 }
  },
  
  finalize: function(data){
    delete data.DataProfiling2
    delete data.ConfirmEmail
    
    data.Gender = "U"
    data.BirthDay += "T00:00:00Z"
    
    this.last_data = data
    console.log(data)
    return 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
  },

})