var ModalFormView = ModalView.extend({
events: {
"submit form": "submit"
},
initialize: function(){
this.$form = this.$("form")
this.$errors = this.$(".errors")
this.$errorList = this.$(".errorList")
},
reset: function(){
this.$("input").not("[type='submit']").not("[type='hidden']").val("")
},
load: function(){
this.reset()
this.show()
},
showErrors: function(errors){
if (errors && errors.length) {
this.$errors.show();
for (var i in errors) {
this.$errorList.append('
' + errors[i] + '
');
}
}
},
submit: function(e){
e.preventDefault()
this.$errors.hide();
this.$errorList.empty();
if (this.validate) {
var errors = this.validate()
if (errors && errors.length) {
this.showErrors(errors)
return
}
}
var fields = this.$form.serializeArray()
fields.forEach(function(pair){
if (pair.name == "password" && pair.value.length > 0) {
pair.value = SHA1.hex('lol$' + pair.value + '$vvalls')
}
})
var request = $.post(this.action, $.param(fields));
request.done($.proxy(function (response) {
if (response.error) {
this.$errors.show();
var errors = []
for (var key in response.error.errors) {
errors.push(response.error.errors[key].message);
}
this.showErrors(errors)
return
}
else {
this.success && this.success(response)
}
}, this));
}
})