node-red-contrib-spruthub
Version:
Sprut.hub connectivity nodes for node-red
140 lines (131 loc) • 6.27 kB
HTML
<script type="text/x-red" data-template-name="spruthub-out">
<link rel="stylesheet" href="spruthub/static/css/multiple-select.css" type="text/css" />
<link rel="stylesheet" href="spruthub/static/css/common.css" type="text/css" />
<div class="form-row">
<label for="node-input-name" class="l-width"><i class="fa fa-bookmark"></i> <span data-i18n="node-red-contrib-spruthub/server:label.name"></span></label>
<input type="text" id="node-input-name" data-i18n="[placeholder]node-red-contrib-spruthub/server:placeholder.name">
</div>
<div class="form-row" style="display:none;">
<label for="node-input-friendly_name" class="l-width"><i class="fa fa-bookmark"></i> <span data-i18n="node-red-contrib-spruthub/server:label.friendly_name"></span></label>
<input type="text" id="node-input-friendly_name" data-i18n="[placeholder]node-red-contrib-spruthub/server:placeholder.friendly_name">
</div>
<div class="form-row">
<label for="node-input-server" class="l-width"><i class="fa fa-globe"></i> <span data-i18n="node-red-contrib-spruthub/server:label.server"></span></label>
<input type="text" id="node-input-server">
</div>
<div class="form-row">
<label for="node-input-uid" class="l-width"><i class="fa fa-crosshairs"></i> <span data-i18n="node-red-contrib-spruthub/server:label.uid"></span></label>
<select id="node-input-uid" class="s-width" multiple="multiple"></select>
</div>
<div class="form-row" id="sh_cid_wr" style="display:none;">
<label for="node-input-cid" class="l-width"><i class="fa fa-tag"></i> <span data-i18n="node-red-contrib-spruthub/server:label.cid"></span></label>
<select id="node-input-cid" class="s-width"></select>
</div>
<!-- <div class="form-row">-->
<!-- <label for='node-input-showHidden' class="l-width"></label>-->
<!-- <input type="checkbox" id="node-input-showHidden" style="display: inline-block; width: auto; vertical-align: top;"> <span data-i18n="node-red-contrib-spruthub/server:label.show_hidden"></span></input>-->
<!-- </div>-->
<div class="form-row">
<label for='node-input-enableMultiple' class="l-width"></label>
<input type="checkbox" id="node-input-enableMultiple" style="display: inline-block; width: auto; vertical-align: top;"> <span data-i18n="node-red-contrib-spruthub/server:label.enable_multiple"></span></input>
</div>
<div class="form-row">
<label for="force-refresh" class="l-width"><i class="fa fa-refresh"></i> <span data-i18n="node-red-contrib-spruthub/server:label.refresh"></span></label>
<a class="red-ui-button s-width" id="force-refresh" name="force-refresh"><span data-i18n="node-red-contrib-spruthub/server:label.refresh_list"></span></a>
</div>
<div class="form-row">
<label for="node-input-payload" class="l-width"><i class="fa fa-envelope"></i> <span data-i18n="node-red-contrib-spruthub/server:label.payload"></span></label>
<input type="text" id="node-input-payload" style="width:70%">
<input type="hidden" id="node-input-payloadType">
</div>
<div class="form-row">
<label for='node-input-rbe' class="l-width"><i class="fa fa-filter"></i> <span data-i18n="node-red-contrib-spruthub/server:label.rbe"></span></label>
<input type="checkbox" id="node-input-rbe" style="display: inline-block; width: auto; vertical-align: top;"> <span data-i18n="node-red-contrib-spruthub/server:label.rbe_help"></span></input>
</div>
</script>
<script type='text/javascript'>
RED.nodes.registerType('spruthub-out', {
category: 'Sprut.hub',
color: '#000000',
align: 'right',
defaults: {
name: {
value: ""
},
server: {
type: "spruthub-server",
required: true
},
friendly_name: {
value: "",
required: false
},
uid: {
required: false
},
cid: {
value: null,
required: false
},
// showHidden: {
// value: false,
// required: true
// },
enableMultiple: {
value: false,
required: true
},
payload: {
value: 'payload',
},
payloadType: {
value: 'msg',
},
rbe: {
value: false,
required: false
}
},
inputLabels: "payload",
paletteLabel: 'out',
inputs: 1,
outputs: 0,
icon: "logo_white.png",
label: function() {
var label = 'spruthub-out';
if (this.name) {
label = this.name;
} else if (typeof(this.friendly_name) == 'string' && this.friendly_name.length) {
label = this.friendly_name;
} else if (typeof(this.uid) == 'string') {
label = this.uid;
}
return label;
},
labelStyle: function () {
return "node_label_white";
},
oneditprepare: function() {
var node = this;
//init typedInput
var payloadTypes = {
value: 'sh_payload',
label: 'SprutHub',
icon: 'icons/node-red-contrib-spruthub/logo_black.png',
options: [
{'value':'toggle', 'label':'Toggle'}
]
};
$('#node-input-payload').typedInput({
types: ['msg', 'str', 'num', 'bool', 'flow', 'global', 'json', payloadTypes],
default: 'msg',
value: 'payload',
typeField: $('#node-input-payloadType'),
});
$('#node-input-payloadType').val(node.payloadType);
setTimeout(function () {
spruthub_devicesSelect(node.uid, {cid:node.cid, allowEmpty:true});
},100);
}
});
</script>