Add error handling code for edit form
This commit is contained in:
parent
f557460f1b
commit
ca6a961097
|
@ -411,26 +411,102 @@ $(function() {
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
$('#edit_form').live('submit', function() {
|
$('#edit_form').live('submit', function() {
|
||||||
$.post('/users.json', {
|
var errors = []
|
||||||
'id': $('#id').val(),
|
if(!/[\w\.%\+\]+@[\w\]+\.+[\w]{2,}/.test($('#user_email').val())) {
|
||||||
'hydrant_id': activeHydrantId,
|
errors.push($('#user_email'));
|
||||||
'commit': $('#edit_form_submit').val(),
|
$('#user_email_label').addClass('error', 500);
|
||||||
'utf8': '✓',
|
$('#user_email').addClass('error', 500);
|
||||||
'authenticity_token': $('#edit_form input[name="authenticity_token"]').val(),
|
} else {
|
||||||
'_method': 'put',
|
$('#user_email_label').removeClass('error');
|
||||||
'user': {
|
$('#user_email').removeClass('error');
|
||||||
'email': $('#user_email').val(),
|
}
|
||||||
'name': $('#user_name').val(),
|
if($('#user_name').val() === '') {
|
||||||
'organization': $('#user_organization').val(),
|
errors.push($('#user_name'));
|
||||||
'voice_number': $('#user_voice_number').val(),
|
$('#user_name_label').addClass('error', 500);
|
||||||
'sms_number': $('#user_sms_number').val(),
|
$('#user_name').addClass('error', 500);
|
||||||
'password': $('#user_password').val(),
|
} else {
|
||||||
'password_confirmation': $('#user_password').val(),
|
$('#user_name_label').removeClass('error');
|
||||||
'current_password': $('#user_current_password').val()
|
$('#user_name').removeClass('error');
|
||||||
}
|
}
|
||||||
}, function(data) {
|
if($('#user_password').val() && ($('#user_password').val().length < 6 || $('#user_password').val().length > 20)) {
|
||||||
activeInfoWindow.setContent(data);
|
errors.push($('#user_password'));
|
||||||
});
|
$('#user_password_label').addClass('error', 500);
|
||||||
|
$('#user_password').addClass('error', 500);
|
||||||
|
} else {
|
||||||
|
$('#user_password_label').removeClass('error');
|
||||||
|
$('#user_password').removeClass('error');
|
||||||
|
}
|
||||||
|
if($('#user_current_password').val().length < 6 || $('#user_current_password').val().length > 20) {
|
||||||
|
errors.push($('#user_current_password'));
|
||||||
|
$('#user_current_password_label').addClass('error', 500);
|
||||||
|
$('#user_current_password').addClass('error', 500);
|
||||||
|
} else {
|
||||||
|
$('#user_current_password_label').removeClass('error');
|
||||||
|
$('#user_current_password').removeClass('error');
|
||||||
|
}
|
||||||
|
if(errors.length > 0) {
|
||||||
|
errors[0].focus();
|
||||||
|
} else {
|
||||||
|
$.post('/users.json', {
|
||||||
|
'id': $('#id').val(),
|
||||||
|
'hydrant_id': activeHydrantId,
|
||||||
|
'commit': $('#edit_form_submit').val(),
|
||||||
|
'utf8': '✓',
|
||||||
|
'authenticity_token': $('#edit_form input[name="authenticity_token"]').val(),
|
||||||
|
'_method': 'put',
|
||||||
|
'user': {
|
||||||
|
'email': $('#user_email').val(),
|
||||||
|
'name': $('#user_name').val(),
|
||||||
|
'organization': $('#user_organization').val(),
|
||||||
|
'voice_number': $('#user_voice_number').val(),
|
||||||
|
'sms_number': $('#user_sms_number').val(),
|
||||||
|
'password': $('#user_password').val(),
|
||||||
|
'password_confirmation': $('#user_password').val(),
|
||||||
|
'current_password': $('#user_current_password').val()
|
||||||
|
}
|
||||||
|
}, function(data) {
|
||||||
|
if(data.errors) {
|
||||||
|
if(data.errors.email) {
|
||||||
|
errors.push($('#user_email'));
|
||||||
|
$('#user_email_label').addClass('error', 500);
|
||||||
|
$('#user_email').addClass('error', 500);
|
||||||
|
}
|
||||||
|
if(data.errors.name) {
|
||||||
|
errors.push($('#user_name'));
|
||||||
|
$('#user_name_label').addClass('error', 500);
|
||||||
|
$('#user_name').addClass('error', 500);
|
||||||
|
}
|
||||||
|
if(data.errors.organization) {
|
||||||
|
errors.push($('#user_organization'));
|
||||||
|
$('#user_organization_label').addClass('error', 500);
|
||||||
|
$('#user_organization').addClass('error', 500);
|
||||||
|
}
|
||||||
|
if(data.errors.voice_number) {
|
||||||
|
errors.push($('#user_voice_number'));
|
||||||
|
$('#user_voice_number_label').addClass('error', 500);
|
||||||
|
$('#user_voice_number').addClass('error', 500);
|
||||||
|
}
|
||||||
|
if(data.errors.sms_number) {
|
||||||
|
errors.push($('#user_sms_number'));
|
||||||
|
$('#user_sms_number_label').addClass('error', 500);
|
||||||
|
$('#user_sms_number').addClass('error', 500);
|
||||||
|
}
|
||||||
|
if(data.errors.password) {
|
||||||
|
errors.push($('#user_password'));
|
||||||
|
$('#user_password_label').addClass('error', 500);
|
||||||
|
$('#user_password').addClass('error', 500);
|
||||||
|
}
|
||||||
|
if(data.errors.current_password) {
|
||||||
|
errors.push($('#user_current_password'));
|
||||||
|
$('#user_current_password_label').addClass('error', 500);
|
||||||
|
$('#user_current_password').addClass('error', 500);
|
||||||
|
}
|
||||||
|
errors[0].focus();
|
||||||
|
} else {
|
||||||
|
activeInfoWindow.setContent(data);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
return false;
|
return false;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
Loading…
Reference in New Issue