var ProfileView = FormView.extend({ el: "#profile", events: { "click .privacy-msg": "privacy_link", }, action: sdk.account.update, initialize: function(){ this.$form = this.$(".form") this.$msg = this.$(".msg") this.scroller = ScrollFactory('#profile', app.iscroll_options) }, show: function(){ if (! auth.logged_in()) { return app.router.go("intro") } if (! navigator.onLine) { app.closed.showElement() app.closed.setMessage("PLEASE GO ONLINE TO
EDIT YOUR PROFILE.", "") return } if (! auth.user) return app.account.consent.check() app.footer.show("SAVE") document.body.className = "profile" if (auth.user.BirthDay.match(/T/)) { auth.user.BirthDay = auth.user.BirthDay.split("T")[0] } if (auth.user.BirthDay === '1900-01-01') { auth.user.BirthDay = '' } if (auth.user.name && ! auth.user.Name) { auth.user.Name = auth.user.name } if (auth.user.surname && ! auth.user.Surname) { auth.user.Surname = auth.user.surname } if (auth.user.email && ! auth.user.Email) { auth.user.Email = auth.user.email } console.log(auth.user) this.preload(auth.user) this.deferScrollToTop() }, validate_presence: { "Name": "Please enter your first name.", "Surname": "Please enter your last name.", "Email": "Please enter a valid email address.", "BirthDay": "Please your birthday.", }, validate_fields: function(data, errors){ if (! data.Email.match("@")) { errors.push([ "Email", "Email address is not valid." ]) } if (! data.CurrentPassword && (data.NewPassword || data.Email !== auth.user.Email)) { 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." ]) } var now = new Date () var year = now.getFullYear() if (! data.BirthDay) data.BirthDay = year + '-01-01' if (data.BirthDay.split('-')[0] || '2018') var birthday = new Date (data.BirthDay) if (isNaN(birthday) || (now - birthday) / (365*24*60*60*1000) < 18) { errors.push(['BirthDay', 'You must be 18 or older to use the Stone Island app.']) } // if (data.Gender === "NONE") { errors.push([ "Gender", "Please supply your gender." ]) } }, finalize: function(data){ if (data.CurrentPassword && (data.NewPassword || data.Email !== auth.user.Email)) { data.NewPassword = data.NewPassword || data.CurrentPassword data.NewEmail = data.NewEmail || auth.user.Email sdk.account.update_mail_and_password({ data: { Password: data.CurrentPassword, NewPassword: data.NewPassword || data.CurrentPassword, Email: auth.user, NewEmail: data.NewEmail || auth.user.Email, }, success: function(){ console.log("updated password") }, error: function(){ console.log("error updating password") }, }) } var submissible_data = _.pick(data, "Name Surname BirthDay YooxLetter".split(" ")) submissible_data.Gender = "U" // submissible_data.idUser = auth.user_id // submissible_data.AccessToken = auth.access_token // submissible_data.Premium = "false" // submissible_data.LanguageId = "" // submissible_data.SiteCode = "STONEISLAND_US" // submissible_data.FuriganaName = "" // submissible_data.FuriganaSurname = "" // submissible_data.UserPromocode = "" submissible_data.BirthDay += "T00:00:00Z" submissible_data.YooxLetter = this.$("[name=YooxLetter]").prop("checked") submissible_data.DataProfiling = this.$("[name=DataProfiling]").prop("checked") console.log(data.DataProfiling, submissible_data.DataProfiling) console.log(submissible_data) return submissible_data }, privacy_link: function(){ // rewrite app.privacy instance temporarily app.privacy.back = function(){ app.router.go("account/profile") } app.privacy.hide = function(){ app.privacy.back = app.privacy.hide = null } app.router.go("page/privacy") }, success: function(data){ }, error: function(data){ }, cancel: function(){ app.router.go("intro") }, })