node-red-contrib-agilite-utils
Version:
A set of Agilit-e Node-RED Nodes to perform various adhoc tasks without calling 3rd party web services
137 lines (131 loc) • 4.93 kB
HTML
<script type='text/javascript'>
const agiliteUtilsVariousFunctions = {
updateActionType: function(){
const value = $('#node-input-actionType option:selected').val()
switch (value) {
case '4': // Create HMAC Object
document.querySelector('#rowAlgorithm').style.display = 'block'
document.querySelector('#rowKey').style.display = 'block'
document.querySelector('#rowDigest').style.display = 'block'
document.querySelector('#rowByteSize').style.display = 'none'
document.querySelector('#rowOutputType').style.display = 'none'
break
case '5': // Generate Nonce
document.querySelector('#rowAlgorithm').style.display = 'none'
document.querySelector('#rowKey').style.display = 'none'
document.querySelector('#rowDigest').style.display = 'none'
document.querySelector('#rowByteSize').style.display = 'block'
document.querySelector('#rowOutputType').style.display = 'block'
break
default:
document.querySelector('#rowAlgorithm').style.display = 'none'
document.querySelector('#rowKey').style.display = 'none'
document.querySelector('#rowDigest').style.display = 'none'
document.querySelector('#rowByteSize').style.display = 'none'
document.querySelector('#rowOutputType').style.display = 'none'
}
}
}
RED.nodes.registerType('various', {
category: 'utilities',
color: '#ffa4a2',
icon: 'various.png',
inputs: 1,
outputs: 1,
paletteLabel: 'various',
defaults: {
name: {
value: ''
},
field: {
value: 'payload'
},
fieldType: {
value: 'msg'
},
actionType: {
value: '',
required: true
},
algorithm: {
value: ''
},
key: {
value: ''
},
digest: {
value: ''
},
byteSize: {
value: ''
},
outputType: {
value: ''
}
},
label: function(){
return this.name || 'Various'
},
oneditprepare: function(){
$('#node-input-actionType').change(function() {
agiliteUtilsVariousFunctions.updateActionType()
})
agiliteUtilsVariousFunctions.updateActionType()
if (!this.fieldType) this.fieldType = 'msg'
$('#node-input-field').typedInput({
default: 'msg',
types: ['msg', 'flow', 'global'],
typeField: $('#node-input-fieldType')
})
}
})
</script>
<script type='text/x-red' data-template-name='various'>
<div class='form-row'>
<label for='node-input-actionType'><i class='fa fa-arrow-circle-right'></i> Action Type</label>
<select id='node-input-actionType' style='width: auto'>
<option value=''>-Select-</option>
<option value='4'>Create HMAC Object</option>
<option value='1'>Detect Payload Type</option>
<option value='2'>Generate MD5 Hash</option>
<option value='3'>Generate MongoDB Object Id</option>
<option value='5'>Generate Nonce</option>
<option value='6'>Is Number</option>
<option value='7'>Encode XML</option>
<option value='8'>Decode XML</option>
<option value='9'>Generate UUID</option>
</select>
</div>
<div class='form-row' id='rowAlgorithm'>
<label for='node-input-algorithm'><i class='fa fa-key'></i> Algorithm {{m}}</label>
<input type='text' id='node-input-algorithm' />
</div>
<div class='form-row' id='rowKey'>
<label for='node-input-key'><i class='fa fa-key'></i> Key {{m}}</label>
<input type='text' id='node-input-key' />
</div>
<div class='form-row' id='rowDigest'>
<label for='node-input-digest'><i class='fa fa-key'></i> Digest {{m}}</label>
<input type='text' id='node-input-digest' />
</div>
<div class='form-row' id='rowByteSize'>
<label for='node-input-byteSize'><i class='fa fa-key'></i> Byte Size {{m}}</label>
<input type='text' id='node-input-byteSize' />
</div>
<div class='form-row' id='rowOutputType'>
<label for='node-input-outputType'><i class='fa fa-key'></i> Output Type {{m}}</label>
<input type='text' id='node-input-outputType' />
</div>
<div class='form-row'>
<label for='node-input-field'><i class='fa fa-edit'></i> <span data-i18n='template.label.property'>Output to</span></label>
<input type='text' id='node-input-field' placeholder='payload' style='width:250px'>
<input type='hidden' id='node-input-fieldType'>
</div>
<div class='form-row'>
<label for='node-input-name'><i class='fa fa-tag'></i> Name</label>
<input type='text' id='node-input-name' placeholder='Node Name' />
<div>
</script>
<script type='text/x-red' data-help-name='various'>
<p></p>
</script>