node-red-contrib-spruthub
Version: 
Sprut.hub connectivity nodes for node-red
113 lines (105 loc) • 5.11 kB
HTML
<script type="text/x-red" data-template-name="spruthub-get">
    <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"  data-i18n="[placeholder]node-red-contrib-spruthub/server:multiselect.complete_payload"></select>
        <input type="text" style="display:none;" id="node-input-ctype">
    </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>
</script>
<script type='text/javascript'>
    RED.nodes.registerType('spruthub-get', {
        category: 'Sprut.hub',
        color: '#000000',
        defaults: {
            name: {
                value: ""
            },
            server: {
                type: "spruthub-server",
                required: true
            },
            friendly_name: {
                value: "",
                required: false
            },
            uid: {
                required: false
            },
            cid: {
                value: 0,
                required: false
            },
            ctype: {
                value: 0,
                required: false
            },
            // showHidden: {
            //     value: false,
            //     required: true
            // },
            enableMultiple: {
                value: false,
                required: true
            }
        },
        inputs: 1,
        outputs: 1,
        outputLabels: ["value"],
        paletteLabel: 'get',
        icon: "logo_white.png",
        label: function () {
            var label = 'spruthub-get';
            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;
            setTimeout(function () {
                spruthub_devicesSelect(node.uid, {cid:node.cid, allowEmpty:true});
            },100);
        },
        oneditsave: function () {
          var cid = $("#node-input-cid option:selected").val();
          var ctype = $("#node-input-cid option[value="+cid+"]").attr('data-ctype')
          $('#node-input-ctype').val(cid?ctype:'');
        }
    });
</script>