diff --git a/loopback/locale/es.json b/loopback/locale/es.json index 9a24f84ba..6199bb106 100644 --- a/loopback/locale/es.json +++ b/loopback/locale/es.json @@ -399,5 +399,5 @@ "All tickets have a route order": "Todos los tickets tienen orden de ruta", "Price cannot be blank": "Price cannot be blank", "There are tickets to be invoiced": "La zona tiene tickets por facturar", - "The value must be a number or a range of numbers": "The value must be a number or a range of numbers" -} \ No newline at end of file + "The value must be a number or a range of numbers": "El valor debe ser un número o un rango de números" +} diff --git a/modules/item/back/models/item-tag.js b/modules/item/back/models/item-tag.js index 4c1ef4d4a..5a81f427f 100644 --- a/modules/item/back/models/item-tag.js +++ b/modules/item/back/models/item-tag.js @@ -12,7 +12,6 @@ module.exports = Self => { }); Self.observe('before save', async ctx => { - const validValue = new RegExp('^\\d{1,3}(-\\d{1,3})?$'); let tagFk; let value; @@ -24,10 +23,13 @@ module.exports = Self => { value = ctx.data.value; } const models = Self.app.models; - const validTag = await models.Tag.findOne({where: {name: 'Longitud(m)'}}); + const validTag = await models.Tag.findOne({where: {id: tagFk}}); - if (tagFk === validTag.id) { - if ((value && !validValue.test(value))) + if (validTag.validationRegex) { + const regexString = validTag.validationRegex.replace(/\\\\/g, '\\'); + const validExpresion = new RegExp(regexString); + + if (value && !validExpresion.test(value)) throw new UserError('The value must be a number or a range of numbers'); } }); diff --git a/modules/item/back/models/tag.json b/modules/item/back/models/tag.json index 6c5f5c0ba..5269b849f 100644 --- a/modules/item/back/models/tag.json +++ b/modules/item/back/models/tag.json @@ -30,6 +30,9 @@ "mysql": { "columnName": "isQuantitatif" } + }, + "validationRegex": { + "type": "string" } }, "acls": [