1
0
mirror of https://github.com/node-red/node-red.git synced 2023-10-10 13:36:53 +02:00

Add sub options to Inject node

This commit is contained in:
Nick O'Leary 2018-06-25 10:38:34 +01:00
parent 80873e4ea9
commit c243481432
No known key found for this signature in database
GPG Key ID: 4F2157149161A6C9
2 changed files with 39 additions and 6 deletions

View File

@ -14,10 +14,40 @@
* limitations under the License. * limitations under the License.
**/ **/
(function($) { (function($) {
var contextParse = function(v) {
var parts = {};
var m = /^#:\((\S+?)\)::(.*)$/.exec(v);
if (m) {
parts.option = m[1];
parts.value = m[2];
} else {
parts.value = v;
}
return parts;
}
var contextExport = function(v,opt) {
return "#:("+((typeof opt === "string")?opt:opt.value)+")::"+v;
}
var allOptions = { var allOptions = {
msg: {value:"msg",label:"msg.",validate:RED.utils.validatePropertyExpression}, msg: {value:"msg",label:"msg.",validate:RED.utils.validatePropertyExpression},
flow: {value:"flow",label:"flow.",validate:RED.utils.validatePropertyExpression}, flow: {value:"flow",label:"flow.",hasValue:true,
global: {value:"global",label:"global.",validate:RED.utils.validatePropertyExpression}, options:[
{value:"memory",label: "memory", icon:'<i class="red-ui-typedInput-icon fa fa-database" style="color: #ddd"></i>'}//,
// {value:"redis",label:"redis",icon:'<i class="red-ui-typedInput-icon fa fa-database" style="color: #777"></i>'}
],
validate:RED.utils.validatePropertyExpression,
parse: contextParse,
export: contextExport
},
global: {value:"global",label:"global.",hasValue:true,
options:[
{value:"memory",label: "memory", icon:'<i class="red-ui-typedInput-icon fa fa-database" style="color: #ddd"></i>'},
{value:"redis",label:"redis",icon:'<i class="red-ui-typedInput-icon fa fa-database" style="color: #777"></i>'}
],
validate:RED.utils.validatePropertyExpression,
parse: contextParse,
export: contextExport
},
str: {value:"str",label:"string",icon:"red/images/typedInput/az.png"}, str: {value:"str",label:"string",icon:"red/images/typedInput/az.png"},
num: {value:"num",label:"number",icon:"red/images/typedInput/09.png",validate:/^[+-]?[0-9]*\.?[0-9]*([eE][-+]?[0-9]+)?$/}, num: {value:"num",label:"number",icon:"red/images/typedInput/09.png",validate:/^[+-]?[0-9]*\.?[0-9]*([eE][-+]?[0-9]+)?$/},
bool: {value:"bool",label:"boolean",icon:"red/images/typedInput/bool.png",options:["true","false"]}, bool: {value:"bool",label:"boolean",icon:"red/images/typedInput/bool.png",options:["true","false"]},

View File

@ -237,10 +237,13 @@ If you want every 20 minutes from now - use the <i>"interval"</i> option.</p>
} else { } else {
return this._("inject.timestamp")+suffix; return this._("inject.timestamp")+suffix;
} }
} else if (this.payloadType === 'flow' && this.payload.length < 19) { } else if (this.payloadType === 'flow' || this.payloadType === 'global') {
return 'flow.'+this.payload+suffix; var key = this.payload;
} else if (this.payloadType === 'global' && this.payload.length < 17) { var m = /^#:\((\S+?)\)::(.*)$/.exec(key);
return 'global.'+this.payload+suffix; if (m) {
key = m[2];
}
return 'flow.'+key+suffix;
} else { } else {
return this._("inject.inject")+suffix; return this._("inject.inject")+suffix;
} }