mirror of
				https://github.com/node-red/node-red.git
				synced 2025-03-01 10:36:34 +00:00 
			
		
		
		
	| @@ -40,9 +40,22 @@ RED.validators = { | ||||
|             return opt ? RED._("validator.errors.invalid-regexp") : false; | ||||
|         }; | ||||
|     }, | ||||
|     typedInput: function(ptypeName,isConfig,mopt) { | ||||
|     typedInput: function(ptypeName, isConfig, mopt) { | ||||
|         let options = ptypeName | ||||
|         if (typeof ptypeName === 'string' ) { | ||||
|             options = {} | ||||
|             options.typeField = ptypeName | ||||
|             options.isConfig = isConfig | ||||
|             options.allowBlank = false | ||||
|         } | ||||
|         return function(v, opt) { | ||||
|             var ptype = $("#node-"+(isConfig?"config-":"")+"input-"+ptypeName).val() || this[ptypeName]; | ||||
|             let ptype = options.type | ||||
|             if (!ptype && options.typeField) { | ||||
|                 ptype = $("#node-"+(options.isConfig?"config-":"")+"input-"+options.typeField).val() || this[options.typeField]; | ||||
|             } | ||||
|             if (options.allowBlank && v === '') { | ||||
|                 return true | ||||
|             } | ||||
|             const result = RED.utils.validateTypedProperty(v, ptype, opt) | ||||
|             if (result === true || opt) { | ||||
|                 // Valid, or opt provided - return result as-is | ||||
|   | ||||
| @@ -57,7 +57,12 @@ | ||||
|             action: {value:"scale"}, | ||||
|             round: {value:false}, | ||||
|             property: {value:"payload",required:true, | ||||
|                        label:RED._("node-red:common.label.property")}, | ||||
|                        label:RED._("node-red:common.label.property"), | ||||
|                        validate: RED.validators.typedInput({ type: 'msg' }) | ||||
|                     }, | ||||
|              | ||||
|              | ||||
|             // RED.validators.typedInput("propertyType", false)}, | ||||
|             name: {value:""} | ||||
|         }, | ||||
|         inputs: 1, | ||||
|   | ||||
| @@ -56,7 +56,7 @@ | ||||
|         color:"darksalmon", | ||||
|         defaults: { | ||||
|             command: {value:""}, | ||||
|             addpay: {value:""}, | ||||
|             addpay: {value:"", validate: RED.validators.typedInput({ type: 'msg', allowBlank: true })}, | ||||
|             append: {value:""}, | ||||
|             useSpawn: {value:"false"}, | ||||
|             timer: {value:""}, | ||||
|   | ||||
| @@ -56,9 +56,11 @@ | ||||
|             inout: {value:"out"}, | ||||
|             septopics: {value:true}, | ||||
|             property: {value:"payload", required:true, | ||||
|                        label:RED._("node-red:rbe.label.property")}, | ||||
|                        label:RED._("node-red:rbe.label.property"), | ||||
|                        validate: RED.validators.typedInput({ type: 'msg' })}, | ||||
|             topi: {value:"topic", required:true, | ||||
|                    label:RED._("node-red:rbe.label.topic")} | ||||
|                    label:RED._("node-red:rbe.label.topic"), | ||||
|                    validate: RED.validators.typedInput({ type: 'msg' })} | ||||
|         }, | ||||
|         inputs:1, | ||||
|         outputs:1, | ||||
|   | ||||
| @@ -41,8 +41,8 @@ | ||||
|         color:"#DEBD5C", | ||||
|         defaults: { | ||||
|             name: {value:""}, | ||||
|             property: {value:"payload"}, | ||||
|             outproperty: {value:"payload"}, | ||||
|             property: {value:"payload", validate: RED.validators.typedInput({ type: 'msg' }) }, | ||||
|             outproperty: {value:"payload", validate: RED.validators.typedInput({ type: 'msg' }) }, | ||||
|             tag: {value:""}, | ||||
|             ret: {value:"html"}, | ||||
|             as: {value:"single"} | ||||
|   | ||||
| @@ -32,6 +32,7 @@ | ||||
|         defaults: { | ||||
|             name: {value:""}, | ||||
|             property: {value:"payload",required:true, | ||||
|                        validate: RED.validators.typedInput({ type: 'msg' }), | ||||
|                        label:RED._("node-red:json.label.property")}, | ||||
|             action: {value:""}, | ||||
|             pretty: {value:false} | ||||
|   | ||||
| @@ -27,7 +27,8 @@ | ||||
|         defaults: { | ||||
|             name: {value:""}, | ||||
|             property: {value:"payload",required:true, | ||||
|                        label:RED._("node-red:common.label.property")}, | ||||
|                        label:RED._("node-red:common.label.property"), | ||||
|                        validate: RED.validators.typedInput({ type: 'msg' })}, | ||||
|             attr: {value:""}, | ||||
|             chr: {value:""} | ||||
|         }, | ||||
|   | ||||
| @@ -16,6 +16,7 @@ | ||||
|         color:"#DEBD5C", | ||||
|         defaults: { | ||||
|             property: {value:"payload",required:true, | ||||
|                        validate: RED.validators.typedInput({ type: 'msg' }), | ||||
|                        label:RED._("node-red:common.label.property")}, | ||||
|             name: {value:""} | ||||
|         }, | ||||
|   | ||||
| @@ -57,7 +57,7 @@ | ||||
|             arraySplt: {value:1}, | ||||
|             arraySpltType: {value:"len"}, | ||||
|             stream: {value:false}, | ||||
|             addname: {value:""} | ||||
|             addname: {value:"", validate: RED.validators.typedInput({ type: 'msg', allowBlank: true })} | ||||
|         }, | ||||
|         inputs:1, | ||||
|         outputs:1, | ||||
| @@ -208,7 +208,22 @@ | ||||
|                 validate:RED.validators.typedInput("propertyType", false) | ||||
|             }, | ||||
|             propertyType: { value:"msg"}, | ||||
|             key: {value:"topic"}, | ||||
|             key: {value:"topic", validate: (function () { | ||||
|                 const typeValidator = RED.validators.typedInput({ type: 'msg' }) | ||||
|                 return function(v, opt) { | ||||
|                     const joinMode = $("#node-input-mode").val() || this.mode | ||||
|                     if (joinMode !== 'custom') { | ||||
|                         return true | ||||
|                     } | ||||
|                     const buildType = $("#node-input-build").val() || this.build | ||||
|                     if (buildType !== 'object') { | ||||
|                         return true | ||||
|                     } else { | ||||
|                         return typeValidator(v, opt) | ||||
|                     } | ||||
|                 } | ||||
|                 })() | ||||
|             }, | ||||
|             joiner: { value:"\\n"}, | ||||
|             joinerType: { value:"str"}, | ||||
|             accumulate: { value:"false" }, | ||||
|   | ||||
| @@ -198,7 +198,7 @@ | ||||
|         category: 'storage', | ||||
|         defaults: { | ||||
|             name: {value:""}, | ||||
|             filename: {value:""}, | ||||
|             filename: {value:"", validate: RED.validators.typedInput({ typeField: 'filenameType' })}, | ||||
|             filenameType: {value:"str"}, | ||||
|             appendNewline: {value:true}, | ||||
|             createDir: {value:false}, | ||||
| @@ -297,7 +297,7 @@ | ||||
|         category: 'storage', | ||||
|         defaults: { | ||||
|             name: {value:""}, | ||||
|             filename: {value:""}, | ||||
|             filename: {value:"", validate: RED.validators.typedInput({ typeField: 'filenameType' }) }, | ||||
|             filenameType: {value:"str"}, | ||||
|             format: {value:"utf8"}, | ||||
|             chunk: {value:false}, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user