node-red-contrib-deconz
Version:
deCONZ connectivity nodes for node-red
101 lines (95 loc) • 4.24 kB
HTML
<script type="text/x-red" data-template-name="deconz-server">
<link rel="stylesheet" href="deconz/static/css/common.css" type="text/css" />
<div class="form-row">
<label for="node-config-input-name" class="l-width"><i class="icon-bookmark"></i> <span data-i18n="label.name"></span></label>
<input type="text" id="node-config-input-name">
</div>
<div class="form-row">
<label for="node-config-input-ip" class="l-width"><i class="icon-globe"></i> <span data-i18n="label.ip_address"></span></label>
<input type="text" id="node-config-input-ip">
</div>
<div class="form-row">
<label for="node-config-input-port" class="l-width"><i class="icon-tag"></i> <span data-i18n="label.port"></span></label>
<input type="text" id="node-config-input-port">
</div>
<div class="form-row">
<label for="node-config-input-apikey" class="l-width"><i class="icon-lock"></i> <span data-i18n="label.api_key"></span></label>
<input type="text" id="node-config-input-apikey">
</div>
<div class="form-row">
<label for="node-config-input-ws_port" class="l-width"><i class="icon-tag"></i> <span data-i18n="label.websocket_port"></span></label>
<input type="text" id="node-config-input-ws_port">
</div>
<div class="form-row">
<label for="node-config-input-secure" class="l-width"><i class="icon-tag"></i> SSL</label>
<input type="checkbox" id="node-config-input-secure" style="display: inline-block; width: auto; vertical-align: top;"> <span data-i18n="label.use_secured_ssl"></span></input>
</div>
<div class="form-row">
<label for="node-input-polling" class="l-width"><i class="icon-time"></i> <span data-i18n="label.polling"></span></label>
<input type="text" id="node-config-input-polling" placeholder="15">
</div>
<div class="form-row">
<label for="force-refresh" class="l-width"><i class="fa fa-refresh"></i> <span data-i18n="label.magick"></span></label>
<a style="width: 70%" class="red-ui-button" id="force-refresh" name="force-refresh"><span data-i18n="label.get_settings"></span></a>
</div>
<div class="form-tips" data-i18n="[html]tip.deploy"></div>
</script>
<script type='text/javascript'>
RED.nodes.registerType('deconz-server', {
category: 'config',
defaults: {
name: {
value: '',
required: false
},
ip: {
value: '',
required: true
},
port: {
value: '',
required: true
},
apikey: {
value: '',
required: true
},
ws_port: {
value: '',
required: true
},
secure: {
value: false,
required: true
},
polling: {
value: 15,
required: false,
validate: function (value) {
return !value || value > 2;
}
},
},
label: function() {
return this.name || this.ip+':'+this.port;
},
oneditprepare: function () {
var node = this;
var $refreshBtn = $('#force-refresh');
$refreshBtn.on('click', function(){
var currentSettings = {
name:$('#node-config-input-name').val(),
ip:$('#node-config-input-ip').val(),
port:$('#node-config-input-port').val(),
};
deconz_initSettings(function(settings){
if (settings.name) $('#node-config-input-name').val(settings.name);
if (settings.ip) $('#node-config-input-ip').val(settings.ip);
if (settings.port) $('#node-config-input-port').val(settings.port);
if (settings.apikey) $('#node-config-input-apikey').val(settings.apikey);
if (settings.ws_port) $('#node-config-input-ws_port').val(settings.ws_port);
}, currentSettings);
});
},
});
</script>