UNPKG

node-red-contrib-polymer

Version:
109 lines (100 loc) 4.21 kB
<script type="text/javascript"> RED.nodes.registerType('polymer_paper-button', { category: 'polymer', color: '#a6bbcf', defaults: { element: {value: 'polymer_paper-button', required: true}, name: {value: ''}, label: {value: ''}, attributes: {value: ''}, parent: {value: ''}, repeat: {value: 0}, width: {value: '100%'}, height: {value: ''}, icon: {value: ''}, topic: {value: ''}, payload: {value: '',validate: (RED.validators.hasOwnProperty('typedInput')?RED.validators.typedInput('payloadType'):function(v) { return true})}, payloadType: { value: 'str'}, raised: { value: true} }, inputs: 1, outputs: 1, icon: "ui_button.png", paletteLabel: 'button', label: function() { return this.name || 'button'; }, 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-payload').typedInput({ default: 'str', typeField: $("#node-input-payloadType"), //types:['flow','global','str','num','bool','json','date'] types:['str','num','bool'] }); } }); </script> <script type="text/x-red" data-template-name="polymer_paper-button"> <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-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-label"><i class="fa fa-tag"></i> Label</label> <input type="text" id="node-input-label"> </div> <!-- <div class="form-row"> <label for="node-input-icon"><i class="fa fa-tag"></i> Icon</label> <input type="text" id="node-input-icon"> </div> --> <div class="form-row"> <label for="node-input-raised"><i class="fa fa-tag"></i> Raised</label> <input type="checkbox" id="node-input-raised"> </div> <div class="form-row"> <label for="node-input-repeat"><i class="fa fa-tag"></i> Repeat</label> <input type="number" id="node-input-repeat"> </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 style="width:auto" for="node-input-payload"><i class="fa fa-envelope-o"></i> When clicked, send:</label> </div> <div class="form-row"> <label for="node-input-payload" style="padding-left: 25px; margin-right: -25px">Payload</label> <input type="text" id="node-input-payload" style="width:70%"> <input type="hidden" id="node-input-payloadType"> </div> </script> <script type="text/x-red" data-help-name="polymer_paper-button"> </script>