UNPKG

node-red-contrib-polymer

Version:
107 lines (94 loc) 4.14 kB
<script type="text/javascript"> RED.nodes.registerType('polymer_paper-checkbox', { category: 'polymer', color: '#a6bbcf', defaults: { name: {value: ''}, html: {value: ''}, 'class': {value: ''}, parent: {value: ''}, width: {value: '100%'}, height: {value: ''}, topic: {value: ''}, payloadTrueType: {value: 'bool'}, payloadFalseType: {value: 'bool'}, payloadTrue: {value: 'true', validate: (RED.validators.hasOwnProperty('typedInput')?RED.validators.typedInput('payloadTrueType'):function(v) { return true})}, payloadFalse: {value: 'false', validate: (RED.validators.hasOwnProperty('typedInput')?RED.validators.typedInput('payloadFalseType'):function(v) { return true})} }, inputs: 1, outputs: 1, icon: "ui_radio.png", paletteLabel: 'checkbox', label: function() { return this.name || 'checkbox'; }, oneditprepare: function () { var node = this; var options = {}; RED.nodes.eachNode(function (group) { if (group.type.indexOf('polymer_nav_group') === 0) { var optionText = RED.nodes.node(RED.nodes.node(RED.nodes.node(group.id).parent).parent).name + '/' + RED.nodes.node(RED.nodes.node(group.id).parent).name + '/' + group.name; options[optionText] = '<option value="' + group.id + '"' + (group.id === node.parent ? ' selected' : '') + '>' + optionText + '</option>'; } }); Object.keys(options).sort().forEach(function (option) { jQuery('#node-input-parent').append(options[option]); }); $('#node-input-payloadFalse').typedInput({ default: 'bool', typeField: $("#node-input-payloadFalseType"), types:['str','num','bool'] }); $('#node-input-payloadTrue').typedInput({ default: 'bool', typeField: $("#node-input-payloadTrueType"), types:['str','num','bool'] }); } }); </script> <script type="text/x-red" data-template-name="polymer_paper-checkbox"> <div class="form-row"> <label for="node-input-parent"><i class="fa fa-tag"></i> Parent Group</label> <select id="node-input-parent"> </select> </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"> </div> <div class="form-row"> <label for="node-input-class"><i class="fa fa-tag"></i> Class</label> <input type="text" id="node-input-class"> </div> <div class="form-row"> <label for="node-input-width"><i class="fa fa-tag"></i> Width</label> <input type="text" id="node-input-width"> </div> <div class="form-row"> <label for="node-input-height"><i class="fa fa-tag"></i> Height</label> <input type="text" id="node-input-height"> </div> <div class="form-row"> <label for="node-input-html"><i class="fa fa-tag"></i> Label</label> <input type="text" id="node-input-html"> </div> <div class="form-row"> <label for="node-input-topic"><i class="fa fa-tag"></i> Topic</label> <input type="text" id="node-input-topic"> </div> <div class="form-row"> <label for="node-input-payloadTrue"><i class="fa fa-tag"></i> On Payload</label> <input type="hidden" id="node-input-payloadTrueType"> <input type="text" id="node-input-payloadTrue"> </div> <div class="form-row"> <label for="node-input-payloadFalse"><i class="fa fa-tag"></i> Off Payload</label> <input type="hidden" id="node-input-payloadFalseType"> <input type="text" id="node-input-payloadFalse"> </div> </script> <script type="text/x-red" data-help-name="polymer_paper-checkbox"> </script>