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="release">
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="release">
38 <p>A release node.</p>
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 <h4><a name="Release_node"></a>Release node</h4>
45 <h5><a name="Description"></a>Description</h5>
46 <p>A <b>release</b> node is used to mark a resource as no longer in use, and thus available for assignment.</p></div>
48 <h5><a name="Attributes"></a>Attributes</h5>
49 <table border="1" class="table table-striped">
51 <td align="center"><b>plugin</b></td>
52 <td align="left">Fully qualified Java class of resource adaptor to be used</td></tr>
54 <td align="center"><b>resource</b></td>
55 <td align="left">Type of resource to release</td></tr>
57 <td align="center"><b>key</b></td>
58 <td align="left">SQL-like string specifying key to check of resource to release</td></tr></table></div>
60 <h5><a name="Parameters"></a>Parameters</h5>
63 <h5><a name="Outcomes"></a>Outcomes</h5>
64 <table border="1" class="table table-striped">
66 <td align="center"><b>success</b></td>
67 <td align="left">Resource successfully released</td></tr>
69 <td align="center"><b>not-found</b></td>
70 <td align="left">Resource referenced does not exist</td></tr>
72 <td align="center"><b>failure</b></td>
73 <td align="left">Resource release failed for some other reason</td></tr></table></div>
75 <h5><a name="Example"></a>Example</h5>
77 <pre><release plugin="org.onap.ccsdk.sli.resource.samplesvc.SampleServiceResource"
78 resource="ase-port"
79 key="uni_circuit_id == $uni-circuit-id">
80 <outcome value="success">
81 <return status="success"/>
83 <outcome value="not-found">
84 <return status="failure"/>
86 <outcome value="failure">
87 <return status="failure"/>
89 </release></pre></div></div></div>
94 <script type="text/javascript">
95 RED.nodes.registerType('release',{
99 name: {value:"release"},
100 xml: {value:"<release plugin='' resource='' key='' >\n"},
106 icon: "arrow-in.png",
110 oneditprepare: function() {
112 $( "#node-input-outputs" ).spinner({
115 var comments = $( "#node-input-comments").val();
116 if(comments != null){
117 comments = comments.trim();
119 $("#node-input-btnComments").html("<span style='color:blue;'><b>View Comments</b></span>");
123 function functionDialogResize() {
124 var rows = $("#dialog-form>div:not(.node-text-editor-row)");
125 var height = $("#dialog-form").height();
126 for (var i=0;i<rows.size();i++) {
127 height -= $(rows[i]).outerHeight(true);
129 var editorRow = $("#dialog-form>div.node-text-editor-row");
130 height -= (parseInt(editorRow.css("marginTop"))+parseInt(editorRow.css("marginBottom")));
131 $(".node-text-editor").css("height",height+"px");
132 that.editor.resize();
134 $( "#dialog" ).on("dialogresize", functionDialogResize);
135 $( "#dialog" ).one("dialogopen", function(ev) {
136 var size = $( "#dialog" ).dialog('option','sizeCache-function');
138 $("#dialog").dialog('option','width',size.width);
139 $("#dialog").dialog('option','height',size.height);
140 functionDialogResize();
143 $( "#dialog" ).one("dialogclose", function(ev,ui) {
144 var height = $( "#dialog" ).dialog('option','height');
145 $( "#dialog" ).off("dialogresize",functionDialogResize);
148 this.editor = RED.editor.createEditor({
149 id: 'node-input-xml-editor',
150 mode: 'ace/mode/html'
152 this.editor.setValue($("#node-input-xml").val(),-1);
155 url:"functions", // where to get the data from
156 type:"function", // the type of object the library is for
157 editor:this.editor, // the field name the main text body goes to
158 mode:"ace/mode/html",
159 fields:['name','outputs']
163 /* close dialog when ESC is pressed and released */
164 $( "#node-input-xml-editor" ).keyup(function(event){
165 if(event.which == 27 ) {
166 $("#node-dialog-cancel").click();
169 $("#node-input-validate").click(function(){
170 console.log("validate clicked.");
171 //console.dir(that.editor);
172 //console.log("getText:" + that.editor.getText());
173 var val = that.editor.getValue();
176 $("#node-input-show-sli-values").click(function(){
177 //console.log("show Values clicked.");
178 showValuesBox(that.editor,sliValuesObj);
180 //for click of add comments button
181 $("#node-input-btnComments").click(function(e){
185 oneditsave: function() {
186 $("#node-input-xml").val(this.editor.getValue());
187 var resp=validateXML(this.editor.getValue());
189 this.status = {fill:"green",shape:"dot",text:"OK"};
191 this.status = {fill:"red",shape:"dot",text:"ERROR"};