var ProfileView = FormView.extend({ el: "#profile", events: { }, initialize: function(){ this.$form = this.$("form") this.$msg = this.$(".msg") this.scroller = new IScroll('#profile', app.iscroll_options) }, show: function(){ if (! auth.logged_in()) { return app.router.go("intro") } app.footer.show("SAVE", "CANCEL") document.body.className = "profile" this.preload(auth.user) }, validate_presence: { "Name": "Please enter your first name.", "Surname": "Please enter your last name.", "Email": "Please enter a valid email address.", }, 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." ]) } if (data.Gender === "NONE") { errors.push([ "Gender", "Please supply your gender." ]) } data.BirthDay += "T00:00:00Z" data.YooxLetter = data.YooxLetter || "false" }, save: function(e){ e && e.preventDefault() var valid = this.validate() if (valid.errors.length) { this.show_errors(valid.errors) return } else { this.hide_errors() } var data = valid.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(valid.data, "Name Surname BirthDay Gender YooxLetter".split(" ")) 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.DataProfiling = "true" app.curtain.show("loading") sdk.account.update({ data: submissible_data, success: function(data){ app.curtain.hide("loading") this.success(data) }.bind(this), error: function(data){ app.curtain.hide("loading") this.error(data) }.bind(this), }) }, success: function(data){ }, error: function(data){ }, })