UNPKG

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

134 lines (125 loc) 4.96 kB
<script type='text/javascript'> var agiliteUtilityUUIDFunctions = { updateUUIDVersion:function(){ var value = $('#node-input-uuidVersion option:selected').val() switch(value){ case 'v3': case 'v5': document.querySelector('#rowNamespaceType').style.display = 'block' document.querySelector('#rowNamespace').style.display = 'block' break default: document.querySelector('#rowNamespaceType').style.display = 'none' document.querySelector('#rowNamespace').style.display = 'none' document.querySelector('#rowNamespaceCustom').style.display = 'none' break } agiliteUtilityUUIDFunctions.updateNamespaceType() }, updateNamespaceType:function(){ var uuidVersion = $('#node-input-uuidVersion option:selected').val() var value = $('#node-input-namespaceType option:selected').val() if(value !== 'custom' || uuidVersion === 'v1' || uuidVersion === 'v4'){ document.querySelector('#rowNamespaceCustom').style.display = 'none' }else{ document.querySelector('#rowNamespaceCustom').style.display = 'block' } } } RED.nodes.registerType('uuid',{ category: 'utilities', inputs: 1, outputs:1, icon: 'uuid.png', color: '#ffa4a2', label: function() { return this.name||'UUID' }, paletteLabel : 'uuid', defaults : { uuidVersion: { value : '', required : true }, namespaceType: { value : '' }, namespace: { value : '' }, namespaceCustom: { value : '' }, name: { value:'' }, field: { value: 'payload', }, fieldType: { value: 'msg' } }, oneditprepare: function(){ $('#node-input-uuidVersion').change(function(){agiliteUtilityUUIDFunctions.updateUUIDVersion()}) $('#node-input-namespaceType').change(function(){agiliteUtilityUUIDFunctions.updateNamespaceType()}) agiliteUtilityUUIDFunctions.updateUUIDVersion() agiliteUtilityUUIDFunctions.updateNamespaceType() 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='uuid'> <div class='form-row' id='rowUUIDVersion'> <label for='node-input-uuidVersion'><i class='fa fa-arrow-circle-right'></i> UUID Version</label> <select id='node-input-uuidVersion' style='width:auto'> <option value='v1'>Version 1 (Timestamp)</option> <option value='v3'>Version 3 (Namespace)</option> <option value='v4'>Version 4 (Random)</option> <option value='v5'>Version 5 (Namespace)</option> </select> </div> <div class='form-row' id='rowNamespaceType'> <label for='node-input-namespaceType'><i class='fa fa-arrow-circle-right'></i> Namespace Type</label> <select id='node-input-namespaceType' style='width:auto'> <option value='dns'>DNS</option> <option value='url'>URL</option> <option value='custom'>CUSTOM</option> </select> </div> <div class='form-row' id='rowNamespaceCustom'> <label for='node-input-namespaceCustom'><i class='fa fa-calendar-times-o'></i> Custom Namespace</label> <input type='text' id='node-input-namespaceCustom' placeholder='A UUID string specific to your app' /> </div> <div class='form-row' id='rowNamespace'> <label for='node-input-namespace'><i class='fa fa-key'></i> Namespace</label> <input type='text' id='node-input-namespace' placeholder='e.g. 'Hello, World!'' /> </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='uuid'> <p>A Node-RED utility node by Agilit-e based on the 'uuid' Module for NodeJS.</p> <p>The following properties can either be manually specified in the UI Form of this node, or passed programmatically via <code>msg.agiliteUtils</code>: <ul> <li><code>uuidVersion</code>: Enum (v1/v3/v4/v5)</li> <li><code>namespaceType</code>: Enum (dns/url/custom)</li> <li><code>namespaceCustom</code>: String</li> <li><code>namespace</code>: String</li> </ul> </p> <p>The output of this node delivers String value to <code>msg.payload</code>.</p> </script>