<script type="text/x-red" data-template-name="emoncms">
    <div class="form-row">
        <label for="node-input-emonServer"><i class="fa fa-globe"></i> Emoncms server</label>
        <input type="text" id="node-input-emonServer">
    </div>
    <div class="form-row">
        <label for="node-input-nodegroup"><i class="fa fa-object-group"></i> Node</label>
        <input type="text" id="node-input-nodegroup" placeholder="number eg: 3">
    </div>
    <div class="form-row">
        <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
        <input type="text" id="node-input-name" placeholder="Emoncms">
    </div>
</script>

<script type="text/x-red" data-help-name="emoncms">
    <p>Posts data to Emoncms.</p>
    <p>The <code>msg.payload</code> can contain either a comma separated list of name
    value pairs e.g. <pre>name:value,...</pre> or a comma separated list of values e.g. <pre>1,2,...</pre>
    or a simple javascript object e.g. <pre>msg.payload = {temp:12}</pre>
    <p>If <i>Node</i> is left blank <code>msg.nodegroup</code> will used.</p>
    <p>Insertion time can be manipulated by setting <code>msg.time</code>.
    This must be in epoch format - seconds since 1970.</p>
</script>

<script type="text/javascript">
    RED.nodes.registerType('emoncms',{
        category: 'output',
        color:"rgb(91, 192, 222)",
        defaults: {
            name: {value:"Emoncms"},
            emonServer: {type:"emoncms-server", required:true},
            nodegroup: {value:"", validate:function(v) {return ((v === "")||(/^\d+$/).test(v));} }
        },
        inputs:1,
        outputs:0,
        icon: "emoncms.png",
        align: "right",
        label: function() {
            return this.name||this.baseurl;
        },
        labelStyle: function() {
            return this.name?"node_label_italic":"";
        }
    });
</script>





<script type="text/x-red" data-template-name="emoncms in">
    <div class="form-row">
        <label for="node-input-emonServer"><i class="fa fa-globe"></i> Emoncms server</label>
        <input type="text" id="node-input-emonServer">
    </div>
    <div class="form-row">
        <label for="node-input-feedid"><i class="fa fa-tag"></i> Feed ID</label>
        <input type="text" id="node-input-feedid" placeholder="">
    </div>
    <div class="form-row">
        <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
        <input type="text" id="node-input-name" placeholder="Emoncms">
    </div>
</script>

<script type="text/x-red" data-help-name="emoncms in">
    <p>Fetches data from emoncms.</p>
    <p>The <code>msg.payload</code> contains last emoncms feed value
</script>

<script type="text/javascript">
    RED.nodes.registerType('emoncms in',{
        category: 'input',
        color:"rgb(91, 192, 222)",
        defaults: {
            name: {value:"Emoncms"},
            emonServer: {type:"emoncms-server", required:true},
            feedid: {value:""}
        },
        inputs:1,
        outputs:1,
        icon: "emoncms.png",
        align: "right",
        label: function() {
            return this.name||this.baseurl;
        },
        labelStyle: function() {
            return this.name?"node_label_italic":"";
        }
    });
</script>













<script type="text/x-red" data-template-name="emoncms-server">
    <div class="form-row">
        <label for="node-config-input-server"><i class="fa fa-globe"></i> Base URL</label>
        <input type="text" id="node-config-input-server">
    </div>
    <div class="form-row">
        <label for="node-config-input-apikey"><i class="fa fa-tasks"></i> API key</label>
        <input type="text" id="node-config-input-apikey">
    </div>
    <div class="form-row">
        <label for="node-config-input-name"><i class="fa fa-tag"></i> Name</label>
        <input type="text" id="node-config-input-name">
    </div>
<div class="form-tips">The <b>Base URL</b> is the URL to the Emoncms root directory.</div>
</script>

<script type="text/javascript">
    RED.nodes.registerType('emoncms-server',{
        category: 'config',
        defaults: {
            server: {value:"http://localhost",required:true},
            name: {value:""}
        },
        credentials: {
            apikey: {type:"text"}
        },
        label: function() {
            return this.name||this.server;
        }
    });
</script>