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>\n"},
103 oneditprepare: function() {
104 $( "#node-input-outputs" ).spinner({
109 var comments = $( "#node-input-comments").val();
110 if(comments != null){
111 comments = comments.trim();
113 $("#node-input-btnComments").html("<span style='color:blue;'><b>View Comments</b></span>");
117 function functionDialogResize(ev,ui) {
118 $("#node-input-xml-editor").css("height",(ui.size.height-275)+"px");
121 $( "#dialog" ).dialog( "option", "width", 1200 );
122 $( "#dialog" ).dialog( "option", "height", 750 );
123 $( "#dialog" ).on("dialogresize", functionDialogResize);
124 $( "#dialog" ).one("dialogopen", function(ev) {
125 var size = $( "#dialog" ).dialog('option','sizeCache-function');
127 functionDialogResize(null,{size:size});
131 /* close dialog when ESC is pressed and released */
132 $( "#dialog" ).keyup(function(event){
133 if(event.which == 27 ) {
134 $("#node-dialog-cancel").click();
138 $( "#dialog" ).one("dialogclose", function(ev,ui) {
139 var height = $( "#dialog" ).dialog('option','height');
140 $( "#dialog" ).off("dialogresize",functionDialogResize);
143 require(["orion/editor/edit"], function(edit) {
145 parent:document.getElementById('node-input-xml-editor'),
147 contents: $("#node-input-xml").val()
150 url:"functions", // where to get the data from
151 type:"function", // the type of object the library is for
152 editor:that.editor, // the field name the main text body goes to
153 fields:['name','outputs']
155 $("#node-input-name").focus();
156 $("#node-input-validate").click(function(){
157 console.log("validate clicked.");
158 //console.dir(that.editor);
159 //console.log("getText:" + that.editor.getText());
160 var val = that.editor.getText();
163 $("#node-input-show-sli-values").click(function(){
164 console.log("SLIValues clicked.");
165 showValuesBox(that.editor,sliValuesObj);
169 //for click of add comments button
170 $("#node-input-btnComments").click(function(e){
174 oneditsave: function() {
175 $("#node-input-xml").val(this.editor.getText());
176 var resp=validateXML(this.editor.getText());
178 this.status = {fill:"green",shape:"dot",text:"OK"};
180 this.status = {fill:"red",shape:"dot",text:"ERROR"};