node-red-contrib-polymer
Version:
Polymer based dashboard UI for Node-RED
107 lines (94 loc) • 4.14 kB
HTML
<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>