Skip to content
Snippets Groups Projects
Commit 2c61be16 authored by Fabien Pinckaers's avatar Fabien Pinckaers Committed by Thibault Delavallée
Browse files

[FIX] website_form: improve field error management in contact form

This commit proposes to ease field error management by having a
structured json response having field name as keys and error message
as value. Controllers can return a specific error message for some
fields that is displayed in a popover.
parent 90748117
No related branches found
No related tags found
No related merge requests found
......@@ -61,7 +61,7 @@ odoo.define('website_form.animation', function (require) {
var self = this;
self.$target.find('#o_website_form_result').empty();
if (!self.check_error_fields([])) {
if (!self.check_error_fields({})) {
self.update_status('invalid');
return false;
}
......@@ -115,7 +115,7 @@ odoo.define('website_form.animation', function (require) {
if(!result_data.id) {
// Failure, the server didn't return the created record ID
self.update_status('error');
if (result_data.error_fields && result_data.error_fields.length) {
if (result_data.error_fields) {
// If the server return a list of bad fields, show these fields for users
self.check_error_fields(result_data.error_fields);
}
......@@ -178,8 +178,14 @@ odoo.define('website_form.animation', function (require) {
// Update field color if invalid or erroneous
$field.removeClass('has-error');
if(invalid_inputs.length || error_fields.indexOf(field_name) >= 0){
if(invalid_inputs.length || error_fields[field_name]){
$field.addClass('has-error');
if (_.isString(error_fields[field_name])){
$field.popover({content: error_fields[field_name], trigger: 'hover', container: 'body', placement: 'top'});
// update error message and show it.
$field.data("bs.popover").options.content = error_fields[field_name];
$field.popover('show');
}
form_valid = false;
}
});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment