From ace5f81a177bac2599e852ce967ae2754909f5b5 Mon Sep 17 00:00:00 2001 From: Hiroyasu Nishiyama Date: Mon, 11 Apr 2022 23:06:26 +0900 Subject: [PATCH] fix validation function argument check & eliminate option of standard validation function --- .../editor-client/src/js/ui/editor.js | 8 +++++++- .../editor-client/src/js/validators.js | 20 +++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js index a9cda7069..4d4eab84b 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js +++ b/packages/node_modules/@node-red/editor-client/src/js/ui/editor.js @@ -156,8 +156,14 @@ RED.editor = (function() { if (valid && "validate" in definition[property]) { try { var opt = {}; + if (label) { + opt.label = label; + } valid = definition[property].validate.call(node,value, opt); - if ((typeof valid) === "string") { + // If the validator takes two arguments, it is a 3.x validator that + // can return a String to mean 'invalid' and provide a reason + if ((definition[property].validate.length === 2) && + ((typeof valid) === "string")) { return valid; } } catch(err) { diff --git a/packages/node_modules/@node-red/editor-client/src/js/validators.js b/packages/node_modules/@node-red/editor-client/src/js/validators.js index 5cbb6211e..c2d5e17fb 100644 --- a/packages/node_modules/@node-red/editor-client/src/js/validators.js +++ b/packages/node_modules/@node-red/editor-client/src/js/validators.js @@ -19,9 +19,9 @@ RED.validators = { if ((blankAllowed&&(v===''||v===undefined)) || (v!=='' && !isNaN(v))) { return true; } - if (mopt && mopt.property) { + if (mopt && mopt.label) { return opt ? RED._("validator.errors.invalid-num-prop", { - prop: mopt.property + prop: mopt.label }) : false; } return opt ? RED._("validator.errors.invalid-num") : false; @@ -32,9 +32,9 @@ RED.validators = { if (re.test(v)) { return true; } - if (mopt && mopt.property) { + if (mopt && mopt.label) { return opt ? RED._("validator.errors.invalid-regex-prop", { - prop: mopt.property + prop: mopt.label }) : false; } return opt ? RED._("validator.errors.invalid-regexp") : false; @@ -48,10 +48,10 @@ RED.validators = { JSON.parse(v); return true; } catch(err) { - if (mopt && mopt.property) { + if (mopt && mopt.label) { return opt ? RED._("validator.errors.invalid-json-prop", { error: err.message, - prop: mopt.property, + prop: mopt.label, }) : false; } return opt ? RED._("validator.errors.invalid-json", { @@ -62,9 +62,9 @@ RED.validators = { if (RED.utils.validatePropertyExpression(v)) { return true; } - if (mopt && mopt.property) { + if (mopt && mopt.label) { return opt ? RED._("validator.errors.invalid-prop-prop", { - prop: mopt.property + prop: mopt.label }) : false; } return opt ? RED._("validator.errors.invalid-prop") : false; @@ -72,9 +72,9 @@ RED.validators = { if (/^[+-]?[0-9]*\.?[0-9]*([eE][-+]?[0-9]+)?$/.test(v)) { return true; } - if (mopt && mopt.property) { + if (mopt && mopt.label) { return opt ? RED._("validator.errors.invalid-num-prop", { - prop: mopt.property + prop: mopt.label }) : false; } return opt ? RED._("validator.errors.invalid-num") : false;