UNPKG

node-red-contrib-doorbird-ultimate

Version:
82 lines (76 loc) 3.13 kB
<script type="text/javascript"> RED.nodes.registerType('doorbird-open', { category: 'Doorbird', defaults: { name: {value: ''}, station: {value: '', type: 'doorbird-config'}, relay: {value: '', required: true} }, inputs: 1, outputs: 1, color: '#dedede', paletteLabel: function () { return this._('doorbird-open.admin.paletteLabel'); }, label: function () { return this.name || this._('doorbird-open.admin.paletteLabel'); }, inputLabels: function() { return this._('doorbird-open.admin.inputLabel'); }, outputLabels: function() { return this._('doorbird-open.admin.outputLabel'); }, icon: 'doorbird.png', oneditprepare: function () { var node = this; var stationNode = RED.nodes.node($('#node-input-station').val()); if (stationNode === undefined) { $('#divDeployFirst').show(); $('#divMain').hide(); } else { $('#divDeployFirst').hide(); $('#divMain').show(); } var updateRelays = () => { $.ajax({ url: `DoorbirdUltimate/${stationNode.id}/info`, type: 'GET' }).done(info => { var selectElement = $('#node-input-relay'); selectElement.empty(); var relays = info?.BHA?.VERSION[0]?.RELAYS; if (relays === undefined) { relays = []; } relays.forEach(relay => { $(`<option value="${relay}">${relay}</option>`).appendTo(selectElement); }); }); }; updateRelays(); $('#node-input-station').change(updateRelays); } }); </script> <script type="text/html" data-template-name="doorbird-open"> <div class="form-row"> <label for="node-input-name"><i class="fa fa-tag"></i> <span data-i18n="doorbird-open.admin.form.labels.name"></span></label> <input type="text" id="node-input-name" data-i18n="[placeholder]doorbird-open.admin.form.placeholders.name"> </div> <div class="form-row"> <label for="node-input-station"><i class="fa fa-tag"></i> <span data-i18n="doorbird-open.admin.form.labels.station"></span></label> <input type="text" id="node-input-station"> </div> <div id="divMain"> <div class="form-row"> <label for="node-input-relay"><i class="fa fa-tag"></i> <span data-i18n="doorbird-open.admin.form.labels.relay"></span></label> <select id="node-input-relay"></select> </div> </div> <div id="divDeployFirst"> <div class="form-tips" style="margin-top:11px"> <span data-i18n="doorbird-open.admin.form.deployFirst"></span> </div> </div> </script>