From 8158487c3e632357f4748cc308254d25dfd2e927 Mon Sep 17 00:00:00 2001 From: Nick O'Leary Date: Tue, 19 Oct 2021 10:12:13 +0100 Subject: [PATCH] Reduce churn in setting Switch rule typedInput type --- .../nodes/core/function/10-switch.html | 93 +++++++------------ 1 file changed, 32 insertions(+), 61 deletions(-) diff --git a/packages/node_modules/@node-red/nodes/core/function/10-switch.html b/packages/node_modules/@node-red/nodes/core/function/10-switch.html index e0827b40f..f6fc82f0a 100644 --- a/packages/node_modules/@node-red/nodes/core/function/10-switch.html +++ b/packages/node_modules/@node-red/nodes/core/function/10-switch.html @@ -117,30 +117,35 @@ return r; } - function createValueField(row){ - return $('',{class:"node-input-rule-value",type:"text",style:"width: 100%;"}).appendTo(row).typedInput({default:'str',types:['msg','flow','global','str','num','jsonata','env',previousValueType]}); + function createValueField(row, defaultType){ + return $('',{class:"node-input-rule-value",type:"text",style:"width: 100%;"}).appendTo(row) + .typedInput({default:defaultType||'str',types:['msg','flow','global','str','num','jsonata','env',previousValueType]}); } - function createNumValueField(row){ - return $('',{class:"node-input-rule-num-value",type:"text",style:"width: 100%;"}).appendTo(row).typedInput({default:'num',types:['flow','global','num','jsonata','env']}); + function createNumValueField(row, defaultType){ + return $('',{class:"node-input-rule-num-value",type:"text",style:"width: 100%;"}).appendTo(row) + .typedInput({default:defaultType||'num',types:['flow','global','num','jsonata','env']}); } function createExpValueField(row){ - return $('',{class:"node-input-rule-exp-value",type:"text",style:"width: 100%;"}).appendTo(row).typedInput({default:'jsonata',types:['jsonata']}); + return $('',{class:"node-input-rule-exp-value",type:"text",style:"width: 100%;"}).appendTo(row) + .typedInput({default:'jsonata',types:['jsonata']}); } - function createBtwnValueField(row){ - return $('',{class:"node-input-rule-btwn-value",type:"text",style:"width: 100%;"}).appendTo(row).typedInput({default:'num',types:['msg','flow','global','str','num','jsonata','env',previousValueType]}); + function createBtwnValueField(row, defaultType){ + return $('',{class:"node-input-rule-btwn-value",type:"text",style:"width: 100%;"}).appendTo(row) + .typedInput({default:defaultType||'num',types:['msg','flow','global','str','num','jsonata','env',previousValueType]}); } - function createBtwnValue2Field(row3, andLabel){ + function createBtwnValue2Field(row3, andLabel, defaultType){ $('
',{class:"node-input-rule-btwn-label", style:"width: 120px; text-align: right;"}).text(" "+andLabel+" ").appendTo(row3); var row3InputCell = $('
',{style:"flex-grow:1; margin-left: 5px;"}).appendTo(row3); - return $('',{class:"node-input-rule-btwn-value2",type:"text",style:"width: 100%"}).appendTo(row3InputCell).typedInput({default:'num',types:['msg','flow','global','str','num','jsonata','env',previousValueType]}); + return $('',{class:"node-input-rule-btwn-value2",type:"text",style:"width: 100%"}).appendTo(row3InputCell) + .typedInput({default:defaultType||'num',types:['msg','flow','global','str','num','jsonata','env',previousValueType]}); } - function createTypeValueField(){ - return $('',{class:"node-input-rule-type-value",type:"text",style:"width: 100%;"}).appendTo(row).typedInput({default:'string',types:[ + function createTypeValueField(row, defaultType){ + return $('',{class:"node-input-rule-type-value",type:"text",style:"width: 100%;"}).appendTo(row).typedInput({default:defaultType || 'string',types:[ {value:"string",label:RED._("common.type.string"),hasValue:false,icon:"red/images/typedInput/az.png"}, {value:"number",label:RED._("common.type.number"),hasValue:false,icon:"red/images/typedInput/09.png"}, {value:"boolean",label:RED._("common.type.boolean"),hasValue:false,icon:"red/images/typedInput/bool.png"}, @@ -279,24 +284,12 @@ selectField.on("change", function() { var fieldToFocus; var type = selectField.val(); - if (valueField){ - valueField.typedInput('hide'); - } - if (expValueField){ - expValueField.typedInput('hide'); - } - if (numValueField){ - numValueField.typedInput('hide'); - } - if (typeValueField){ - typeValueField.typedInput('hide'); - } - if (btwnValueField){ - btwnValueField.typedInput('hide'); - } - if (btwnValue2Field){ - btwnValue2Field.typedInput('hide'); - } + if (valueField) { valueField.typedInput('hide'); } + if (expValueField) { expValueField.typedInput('hide'); } + if (numValueField) { numValueField.typedInput('hide'); } + if (typeValueField) { typeValueField.typedInput('hide'); } + if (btwnValueField) { btwnValueField.typedInput('hide'); } + if (btwnValue2Field) { btwnValue2Field.typedInput('hide'); } if ((type === "btwn") || (type === "index")) { if (!btwnValueField){ @@ -319,7 +312,7 @@ } else if (type === "istype") { if (!typeValueField){ - typeValueField = createTypeValueField(); + typeValueField = createTypeValueField(rowInputCell); } typeValueField.typedInput('show'); fieldToFocus = typeValueField; @@ -362,48 +355,26 @@ // } }); selectField.val(rule.t); - if ((rule.t == "btwn") || (rule.t == "index")) { - if (!btwnValueField){ - btwnValueField = createBtwnValueField(rowInputCell); - } - btwnValueField.typedInput('value',rule.v); - btwnValueField.typedInput('type',rule.vt||'num'); - if (!btwnValue2Field){ - btwnValue2Field = createBtwnValue2Field(row3, andLabel); - } + if ((rule.t == "btwn") || (rule.t == "index")) { + btwnValueField = createBtwnValueField(rowInputCell,rule.vt||'num'); + btwnValueField.typedInput('value',rule.v); + btwnValue2Field = createBtwnValue2Field(row3, andLabel,rule.v2t||'num'); btwnValue2Field.typedInput('value',rule.v2); - btwnValue2Field.typedInput('type',rule.v2t||'num'); } else if ((rule.t === "head") || (rule.t === "tail")) { - if (!numValueField){ - numValueField = createNumValueField(row); - } + numValueField = createNumValueField(rowInputCell,rule.vt||'num'); numValueField.typedInput('value',rule.v); - numValueField.typedInput('type',rule.vt||'num'); } else if (rule.t === "istype") { - if (!typeValueField){ - typeValueField =createTypeValueField(); - } + typeValueField = createTypeValueField(rowInputCell,rule.vt); typeValueField.typedInput('value',rule.vt); - typeValueField.typedInput('type',rule.vt); } else if (rule.t === "jsonata_exp") { - if (!expValueField){ - expValueField = createExpValueField(row); - } + expValueField = createExpValueField(rowInputCell,rule.vt||'jsonata'); expValueField.typedInput('value',rule.v); - expValueField.typedInput('type',rule.vt||'jsonata'); } else if (typeof rule.v != "undefined") { - if (!valueField){ - valueField = createValueField(rowInputCell); - } + valueField = createValueField(rowInputCell,rule.vt||'str'); valueField.typedInput('value',rule.v); - valueField.typedInput('type',rule.vt||'str'); - } - if (rule.case) { - caseSensitive.prop('checked',true); - } else { - caseSensitive.prop('checked',false); } + caseSensitive.prop('checked',!!rule.case); selectField.change(); var currentOutputs = JSON.parse(outputCount.val()||"{}");