<!-- Sample html file that corresponds to the 99-sample.js file              -->
<!-- This creates and configures the onscreen elements of the node           -->

<!-- If you use this as a template, update the copyright with your own name. -->

<!-- First, the content of the edit dialog is defined.                       -->

<script type="text/html" data-template-name="sample">
   <!-- data-template-name identifies the node type this is for              -->

   <!-- Each of the following divs creates a field in the edit dialog.       -->
   <!-- Generally, there should be an input for each property of the node.   -->
   <!-- The for and id attributes identify the corresponding property        -->
   <!-- (with the 'node-input-' prefix).                                     -->
   <!-- The available icon classes are defined Font Awesome Icons (FA Icons) -->
    <div class="form-row">
        <label for="node-input-topic"><i class="fa fa-tasks"></i> Topic</label>
        <input type="text" id="node-input-topic" placeholder="Topic">
    </div>

    <br/>
    <!-- By convention, most nodes have a 'name' property. The following div -->
    <!-- provides the necessary field. Should always be the last option      -->
    <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="Name">
    </div>
</script>


<!-- Next, some simple help text is provided for the node.                   -->
<script type="text/html" data-help-name="sample">
   <!-- data-help-name identifies the node type this help is for             -->
   <!-- This content appears in the Info sidebar when a node is selected     -->
   <!-- The first <p> is used as the pop-up tool tip when hovering over a    -->
   <!-- node in the palette.                                                 -->
   <p>Simple sample input node. Just sends a single message when it starts up.
   This is not very useful.</p>
   <p>Outputs an object called <b>msg</b> containing <b>msg.topic</b> and
   <b>msg.payload</b>. msg.payload is a String.</p>
</script>

<!-- Finally, the node type is registered along with all of its properties   -->
<!-- The example below shows a small subset of the properties that can be set-->
<script type="text/javascript">
    RED.nodes.registerType('sample',{
        category: 'input',      // the palette category
        defaults: {             // defines the editable properties of the node
            name: {value:""},   //  along with default values.
            topic: {value:"", required:true}
        },
        inputs:1,               // set the number of inputs - only 0 or 1
        outputs:1,              // set the number of outputs - 0 to n
        // set the icon (held in icons dir below where you save the node)
        icon: "myicon.png",     // saved in  icons/myicon.png
        label: function() {     // sets the default label contents
            return this.name||this.topic||"sample";
        },
        labelStyle: function() { // sets the class to apply to the label
            return this.name?"node_label_italic":"";
        }
    });
</script>