WIP: fix: #8335 fixed translations for errors in creation forms #1353

Draft
provira wants to merge 1 commits from 8335-creationFormErrors into dev
3 changed files with 102 additions and 12 deletions

View File

@ -17,22 +17,35 @@ export default boot(({ app }) => {
const response = error.response; const response = error.response;
const responseData = response?.data; const responseData = response?.data;
const responseError = responseData && response.data.error; const responseError = responseData && response.data.error;
if (responseError) { if (responseError) {
message = responseError.message; message = responseError.message;
} }
switch (response?.status) { switch (response?.status) {
case 422: case 422:
if (error.name == 'ValidationError') const fieldErrors = responseError.details.messages;
message += const firstField = Object.keys(fieldErrors)[0];
' "' + const firstErrorMessage = fieldErrors[firstField][0];
responseError.details.context + const normalizedField = firstField.replace(/([A-Z])/g, '_$1').toLowerCase();
'.' + console.log('normalizedField: ', normalizedField);
Object.keys(responseError.details.codes).join(',') +
'"'; message = `errors.${normalizedField}_${firstErrorMessage.replace(/\s|'|"/g, '_').toLowerCase()}`;
break; break;
case 500: case 500:
message = 'errors.statusInternalServerError'; let serverErrorMessage = responseError?.message || 'statusInternalServerError';
if (serverErrorMessage.includes('ER_NO_REFERENCED_ROW_2')) {
const foreignKeyMatch = serverErrorMessage.match(/FOREIGN KEY \(`(.+?)`\)/);
const fieldName = foreignKeyMatch ? foreignKeyMatch[1] : 'unknown_field';
message = `errors.foreign_key_${fieldName.toLowerCase()}`;
} else {
message = `errors.${serverErrorMessage
.replace(/::/g, '')
.replace(/\s|'|"/g, '_')
.toLowerCase()}`;
}
break; break;
case 502: case 502:
message = 'errors.statusBadGateway'; message = 'errors.statusBadGateway';
@ -40,12 +53,17 @@ export default boot(({ app }) => {
case 504: case 504:
message = 'errors.statusGatewayTimeout'; message = 'errors.statusGatewayTimeout';
break; break;
case 400:
message = `errors.${responseError.message
.replace(/\.$/, '')
.replace(/\s|'|"/g, '_')
.toLowerCase()}`;
break;
} }
console.error(error);
if (error instanceof axios.CanceledError) { if (error instanceof axios.CanceledError) {
const env = process.env.NODE_ENV; if (process.env.NODE_ENV !== 'development') return;
if (env && env !== 'development') return;
message = 'Duplicate request'; message = 'Duplicate request';
} }

View File

@ -377,6 +377,42 @@ errors:
updateUserConfig: Error updating user config updateUserConfig: Error updating user config
tokenConfig: Error fetching token config tokenConfig: Error fetching token config
writeRequest: The requested operation could not be completed writeRequest: The requested operation could not be completed
origin_fk_cannot_be_blank: Origin cannot be blank
name_can_t_be_blank: Name cannot be blank
hour_can_t_be_blank: Close cannot be blank
agency_mode_fk_agency_cannot_be_blank: Agency cannot be blank
email_is_a_required_argument: Email cannot be blank
bossFk_is_a_required_argument: Boss cannot be blank
supplier_fk_can_t_be_blank: Supplier cannot be blank
travel_fk_can_t_be_blank: Travel cannot be blank
company_fk_can_t_be_blank: Company cannot be blank
es_necesario_un_email: Email cannot be blank
el_tipo_de_negocio_debe_estar_rellenado_en_datos_básicos: Business type cannot be blank
social_name_can_t_be_blank: Social name cannot be blank
social_name_social_name_should_be_uppercase: Social name should be uppercase
street_can_t_be_blank: Street cannot be blank
street_street_should_be_uppercase: Street should be uppercase
city_can_t_be_blank: Location cannot be blank
El_correo_del_usuario_web_ya_existe: Web user email already exists
name_a_client_with_that_web_user_name_already_exists: A client with that web user name already exists
email_is_blank: Email cannot be blank
email_is_invalid: Email is invalid
id_is_a_required_argument: Client cannot be blank
landed_is_a_required_argument: Landed cannot be blank
addressid_is_a_required_argument: Address cannot be blank
agencymodeid_is_a_required_argument: Agency cannot be blank
serial_is_a_required_argument: Serial cannot be blank
elija_un_ticket_o_un_client: Choose a ticket or a clients
modelfindbyid_requires_the_id_argument: Type cannot be blank
foreign_key_intrastatfk: Intrastat cannot be blank
er_bad_null_error:_column__code__cannot_be_null: Code cannot be blank
er_bad_null_error:_column__priority__cannot_be_null: Priority cannot be blank
value_is_not_a_number: Client cannot be blank
este_ticket_ya_está_facturado: This ticket is already invoiced
no_se_puede_facturar_un_ticket_con_importe_cero: You cannot invoice a ticket with zero amount
este_cliente_no_es_facturable: This client is not invoiceable
value_is_not_a_string: Reference cannot be blank
la_fecha_límite_es_requerida: Due date cannot be blank
login: login:
title: Login title: Login
username: Username username: Username

View File

@ -370,6 +370,42 @@ errors:
updateUserConfig: Error al actualizar la configuración de usuario updateUserConfig: Error al actualizar la configuración de usuario
tokenConfig: Error al obtener configuración de token tokenConfig: Error al obtener configuración de token
writeRequest: No se pudo completar la operación solicitada writeRequest: No se pudo completar la operación solicitada
origin_fk_cannot_be_blank: El campo origen no puede estar en blanco
name_can_t_be_blank: El campo nombre no puede estar en blanco
hour_can_t_be_blank: El campo cierre no puede estar en blanco
agency_mode_fk_agency_cannot_be_blank: El campo agencia no puede estar en blanco
email_is_a_required_argument: El campo email no puede estar en blanco
bossFk_is_a_required_argument: El campo jefe no puede estar en blanco
supplier_fk_can_t_be_blank: El campo proveedor no puede estar en blanco
travel_fk_can_t_be_blank: El campo envío no puede estar en blanco
company_fk_can_t_be_blank: El campo empresa no puede estar en blanco
es_necesario_un_email: El campo email no puede estar en blanco
el_tipo_de_negocio_debe_estar_rellenado_en_datos_básicos: El campo tipo de negocio no puede estar en blanco
social_name_can_t_be_blank: El campo razón social no puede estar en blanco
social_name_social_name_should_be_uppercase: El campo razón social debe estar en mayúsculas
street_can_t_be_blank: El campo dirección fiscal no puede estar en blanco
street_street_should_be_uppercase: El campo dirección fiscal debe estar en mayúsculas
city_can_t_be_blank: El campo ubicación no puede estar en blanco
El_correo_del_usuario_web_ya_existe: El correo del usuario web ya existe
name_a_client_with_that_web_user_name_already_exists: Ya existe un cliente con ese nombre de usuario web
email_is_blank: El campo email no puede estar en blanco
email_is_invalid: El campo email no es válido
id_is_a_required_argument: El campo cliente no puede estar en blanco
landed_is_a_required_argument: El campo f. entrega no puede estar en blanco
addressid_is_a_required_argument: El campo dirección no puede estar en blanco
agencymodeid_is_a_required_argument: El campo agencia no puede estar en blanco
serial_is_a_required_argument: El campo serie no puede estar en blanco
elija_un_ticket_o_un_client: Elija un ticket o un cliente
modelfindbyid_requires_the_id_argument: El campo tipo no puede estar en blanco
foreign_key_intrastatfk: El campo intrastat no puede estar en blanco
er_bad_null_error:_column__code__cannot_be_null: El campo código no puede estar en blanco
er_bad_null_error:_column__priority__cannot_be_null: El campo prioridad no puede estar en blanco
value_is_not_a_number: El campo cliente no puede estar en blanco
este_ticket_ya_está_facturado: Este ticket ya ha sido facturado
no_se_puede_facturar_un_ticket_con_importe_cero: No se puede facturar un ticket con importe cero
este_cliente_no_es_facturable: Este cliente no es facturable
value_is_not_a_string: El campo referencia no puede estar en blanco
la_fecha_límite_es_requerida: El campo fecha límite no puede estar en blanco
login: login:
title: Inicio de sesión title: Inicio de sesión
username: Nombre de usuario username: Nombre de usuario