UNPKG

node-red-contrib-domotz

Version:

A collection of Node-Red nodes to access the Domotz public API

63 lines (60 loc) 2.29 kB
<script type="text/javascript"> RED.nodes.registerType('domotz-api-conf', { category: 'config', defaults: { name: {value: 'Name', required: true}, endpoint: {value: 'https://', required: true}, }, credentials: { key: {type: 'text'}, }, label: function () { return this.name; }, oneditprepare: function () { var node = this; var configNodeId = node.id; var configNode = RED.nodes.node(configNodeId); if (!configNode) { return; } var apiUsageContainer = $('#api-usage'); var apiUsage = $('#api-usage-text'); var qs = '?endpoint=' + configNode.endpoint + '&key=' + configNode.credentials.key + '&path=/meta/usage'; var setNA = function () { apiUsage.val('N/A'); }; $.getJSON('domotz-api-call' + qs, function (apiRes) { apiUsageContainer.show(); if (apiRes.daily_usage && apiRes.daily_limit) { apiUsage.val(apiRes.daily_usage + '/' + apiRes.daily_limit); } else { setNA(); } }).fail(function () { setNA(); }); }, }); </script> <script type="text/x-red" data-template-name="domotz-api-conf"> <div class="form-row"> <label for="node-config-input-name"><i class="icon-bookmark"></i>Name</label> <input type="text" id="node-config-input-name"> </div> <div class="form-row"> <label for="node-config-input-endpoint"><i class="fa fa-fw fa-cloud"></i>Endpoint</label> <input type="text" id="node-config-input-endpoint"> </div> <div class="form-row"> <label for="node-config-input-key"><i class="fa fa-fw fa-key"></i>API-Key</label> <input type="text" id="node-config-input-key"> </div> <div class="form-row" id="api-usage" style="display: none"> <label for="api-usage-text"><i class="fa fa-fw fa-pie-chart"></i>API Usage</label> <input type="text" id="api-usage-text" disabled></input> </div> <div> </div> </script>