2 Copyright 2013 IBM Corp.
4 Licensed under the Apache License, Version 2.0 (the "License");
5 you may not use this file except in compliance with the License.
6 You may obtain a copy of the License at
8 http://www.apache.org/licenses/LICENSE-2.0
10 Unless required by applicable law or agreed to in writing, software
11 distributed under the License is distributed on an "AS IS" BASIS,
12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 See the License for the specific language governing permissions and
14 limitations under the License.
17 <script type="text/x-red" data-template-name="record">
18 <div class="form-row">
19 <label for="node-input-name"><i class="fa fa-tag"></i> Name</label>
20 <input type="text" id="node-input-name" placeholder="Name">
22 <div class="form-row">
23 <label for="node-input-xml"><i class="fa fa-wrench"></i> Node XML</label>
24 <input type="hidden" id="node-input-xml" autofocus="autofocus">
25 <div style="height: 450px;" class="node-text-editor" id="node-input-xml-editor" onkeyup="resetStatus()" ></div>
27 <div class="form-row">
28 <a href="#" class="btn btn-mini" id="node-input-validate" style="margin-top: 4px;"><b>Validate XML</b></a>
29 <a href="#" class="btn btn-mini" id="node-input-show-sli-values" style="margin-top: 4px;"><b>Show Values</b></a>
30 <input type="hidden" id="node-input-comments">
31 <a href="#" class="btn btn-mini" id="node-input-btnComments" style="margin-top: 4px;"><b>Add Comments</b></a>
32 <div id="node-validate-result" class="form-tips" style="float:right;font-size:10px"></div>
34 <div class="form-tips">See the Info tab for help using this node.</div>
37 <script type="text/x-red" data-help-name="record">
39 <p>First line of XML must contain opening tag.</p>
40 <p>Do not include closing tag - it will be automatically generated.</p>
43 <h3><a name="Recording"></a>Recording</h3>
45 <h4><a name="Record_node"></a>Record node</h4>
47 <h5><a name="Description"></a>Description</h5>
48 <p>A <b>record</b> node is used to record an event. For example, this might be used to log provisioning events.</p></div>
50 <h5><a name="Attributes"></a>Attributes</h5>
51 <table border="1" class="table table-striped">
53 <td align="center"><b>plugin</b></td>
54 <td align="left">Fully qualified Java class to handle recording.</td></tr></table></div>
56 <h5><a name="Parameters"></a>Parameters</h5>
57 <p>Parameters will depend on the plugin being used. For the FileRecorder class, the parameters are as follows</p>
58 <table border="1" class="table table-striped">
60 <td align="center"><b>file</b></td>
61 <td align="left">The file to which the record should be written</td></tr>
63 <td align="center"><b>field1</b></td>
64 <td align="left">First field to write. There will be <b>field</b> parameters for each field to write, from <b>field1</b> through <b>fieldN</b>. A special value __TIMESTAMP__ may be assigned to a field to insert the current timestamp</td></tr></table></div>
66 <h5><a name="Outcomes"></a>Outcomes</h5>
67 <table border="1" class="table table-striped">
69 <td align="center"><b>success</b></td>
70 <td align="left">Record successfully written</td></tr>
72 <td align="center"><b>failure</b></td>
73 <td align="left">Record could not be successfully written</td></tr></table></div>
75 <h5><a name="Example"></a>Example</h5>
77 <pre><record plugin="org.onap.ccsdk.sli.core.sli.recording.FileRecorder">
78 <parameter name="file" value="/tmp/sample_r1.log" />
79 <parameter name="field1" value="__TIMESTAMP__"/>
80 <parameter name="field2" value="ACTIVE"/>
81 <parameter name="field3" value="$uni-circuit-id"/>
82 </record></pre></div></div></div></div>
87 <script type="text/javascript">
88 RED.nodes.registerType('record',{
92 name: {value:"record"},
93 xml: {value:"<record plugin=''>\n"},
103 oneditprepare: function() {
105 $( "#node-input-outputs" ).spinner({
108 var comments = $( "#node-input-comments").val();
109 if(comments != null){
110 comments = comments.trim();
112 $("#node-input-btnComments").html("<span style='color:blue;'><b>View Comments</b></span>");
116 function functionDialogResize() {
117 var rows = $("#dialog-form>div:not(.node-text-editor-row)");
118 var height = $("#dialog-form").height();
119 for (var i=0;i<rows.size();i++) {
120 height -= $(rows[i]).outerHeight(true);
122 var editorRow = $("#dialog-form>div.node-text-editor-row");
123 height -= (parseInt(editorRow.css("marginTop"))+parseInt(editorRow.css("marginBottom")));
124 $(".node-text-editor").css("height",height+"px");
125 that.editor.resize();
127 $( "#dialog" ).on("dialogresize", functionDialogResize);
128 $( "#dialog" ).one("dialogopen", function(ev) {
129 var size = $( "#dialog" ).dialog('option','sizeCache-function');
131 $("#dialog").dialog('option','width',size.width);
132 $("#dialog").dialog('option','height',size.height);
133 functionDialogResize();
136 $( "#dialog" ).one("dialogclose", function(ev,ui) {
137 var height = $( "#dialog" ).dialog('option','height');
138 $( "#dialog" ).off("dialogresize",functionDialogResize);
141 this.editor = RED.editor.createEditor({
142 id: 'node-input-xml-editor',
143 mode: 'ace/mode/html'
145 this.editor.setValue($("#node-input-xml").val(),-1);
148 url:"functions", // where to get the data from
149 type:"function", // the type of object the library is for
150 editor:this.editor, // the field name the main text body goes to
151 mode:"ace/mode/html",
152 fields:['name','outputs']
156 /* close dialog when ESC is pressed and released */
157 $( "#node-input-xml-editor" ).keyup(function(event){
158 if(event.which == 27 ) {
159 $("#node-dialog-cancel").click();
162 $("#node-input-validate").click(function(){
163 console.log("validate clicked.");
164 //console.dir(that.editor);
165 //console.log("getText:" + that.editor.getText());
166 var val = that.editor.getValue();
169 $("#node-input-show-sli-values").click(function(){
170 //console.log("show Values clicked.");
171 showValuesBox(that.editor,sliValuesObj);
173 //for click of add comments button
174 $("#node-input-btnComments").click(function(e){
178 oneditsave: function() {
179 $("#node-input-xml").val(this.editor.getValue());
180 var resp=validateXML(this.editor.getValue());
182 this.status = {fill:"green",shape:"dot",text:"OK"};
184 this.status = {fill:"red",shape:"dot",text:"ERROR"};