removed dependency on built-editor.min.js
[ccsdk/distribution.git] / dgbuilder / nodes / dge / dgereturn / returnFailure.html
1 <!--
2   Copyright 2013 IBM Corp.
3
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
7
8   http://www.apache.org/licenses/LICENSE-2.0
9
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.
15 -->
16
17 <script type="text/x-red" data-template-name="returnFailure">
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">
21     </div>
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>
26     </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>
33     </div>
34     <div class="form-tips">See the Info tab for help using this node.</div>
35 </script>
36
37 <script type="text/x-red" data-help-name="returnFailure">
38         <p>A returnFailure 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>
41
42 <div class="section">
43 <h4><a name="Return_node"></a>Return node</h4>
44 <div class="section">
45 <h5><a name="Description"></a>Description</h5>
46 <p>A <b>return</b> node is used to return a status to the invoking MD-SAL application</p></div>
47 <div class="section">
48 <h5><a name="Attributes"></a>Attributes</h5>
49 <table border="1" class="table table-striped">
50 <tr class="a">
51 <td align="center"><b>status</b></td>
52 <td align="left">Status value to return (<i>failure</i>)</td></tr></table></div>
53 <div class="section">
54 <h5><a name="Parameters"></a>Parameters</h5>
55 <p>The following optional parameters may be passed to convey more detailed status information.</p>
56 <table border="1" class="table table-striped">
57 <tr class="a">
58 <td align="center"><b>error-code</b></td>
59 <td align="left">A brief, usually numeric, code indicating the error condition</td></tr>
60 <tr class="b">
61 <td align="center"><b>error-message</b></td>
62 <td align="left">A more detailed error message</td></tr></table></div>
63 <div class="section">
64 <h5><a name="Outcomes"></a>Outcomes</h5>
65 <p>Not applicable. The <b>status</b> node has no outcomes.</p></div>
66 <div class="section">
67 <h5><a name="Example"></a>Example</h5>
68 <div class="source">
69 <pre>&lt;return status=&quot;failure&quot;&gt;
70   &lt;parameter name=&quot;error-code&quot; value=&quot;1542&quot; /&gt;
71   &lt;parameter name=&quot;error-message&quot; value=&quot;Activation failure&quot; /&gt;
72 &lt;/return&gt;</pre></div></div></div>
73
74 </script>
75
76
77 <script type="text/javascript">
78     RED.nodes.registerType('returnFailure',{
79         color:"#ED0819",
80         category: 'DGEreturn',
81         defaults: {
82             name: {value:"return failure"},
83             xml: {value:"<return status='failure'>\n<parameter name='error-code' value='' />\n<parameter name='error-message' value='' />\n"},
84             comments:{value:""}
85         },
86         inputs:1,
87         icon: "arrow-in.png",
88         label: function() {
89             return this.name;
90         },
91         oneditprepare: function() {
92             var that = this;
93             $( "#node-input-outputs" ).spinner({
94                 min:1
95             });
96              var comments = $( "#node-input-comments").val();
97              if(comments != null){
98                 comments = comments.trim();
99                 if(comments != ''){
100                         $("#node-input-btnComments").html("<span style='color:blue;'><b>View Comments</b></span>");
101                 }
102              }
103
104             function functionDialogResize() {
105                 var rows = $("#dialog-form>div:not(.node-text-editor-row)");
106                 var height = $("#dialog-form").height();
107                 for (var i=0;i<rows.size();i++) {
108                     height -= $(rows[i]).outerHeight(true);
109                 }
110                 var editorRow = $("#dialog-form>div.node-text-editor-row");
111                 height -= (parseInt(editorRow.css("marginTop"))+parseInt(editorRow.css("marginBottom")));
112                 $(".node-text-editor").css("height",height+"px");
113                 that.editor.resize();
114             };
115             $( "#dialog" ).on("dialogresize", functionDialogResize);
116             $( "#dialog" ).one("dialogopen", function(ev) {
117                 var size = $( "#dialog" ).dialog('option','sizeCache-function');
118                 if (size) {
119                     $("#dialog").dialog('option','width',size.width);
120                     $("#dialog").dialog('option','height',size.height);
121                     functionDialogResize();
122                 }
123             });
124             $( "#dialog" ).one("dialogclose", function(ev,ui) {
125                 var height = $( "#dialog" ).dialog('option','height');
126                 $( "#dialog" ).off("dialogresize",functionDialogResize);
127             });
128
129             this.editor = RED.editor.createEditor({
130                 id: 'node-input-xml-editor',
131                 mode: 'ace/mode/html'
132             });
133             this.editor.setValue($("#node-input-xml").val(),-1);
134         /*      
135             RED.library.create({
136                 url:"functions", // where to get the data from
137                 type:"function", // the type of object the library is for
138                 editor:this.editor, // the field name the main text body goes to
139                 mode:"ace/mode/html",
140                 fields:['name','outputs']
141             });
142         */
143             this.editor.focus();
144             /* close dialog when ESC is pressed and released */ 
145             $( "#node-input-xml-editor" ).keyup(function(event){
146                 if(event.which == 27 ) {
147                         $("#node-dialog-cancel").click();
148                 }
149             }); 
150                 $("#node-input-validate").click(function(){
151                                 console.log("validate clicked.");
152                                 //console.dir(that.editor);
153                                 //console.log("getText:" + that.editor.getText());
154                                 var val = that.editor.getValue();
155                                 validateXML(val); 
156                 });
157                 $("#node-input-show-sli-values").click(function(){
158                         //console.log("show Values clicked.");
159                         showValuesBox(that.editor,sliValuesObj);
160                 });
161             //for click of add comments button
162             $("#node-input-btnComments").click(function(e){
163                         showCommentsBox();
164             }); 
165         },
166         oneditsave: function() {
167             $("#node-input-xml").val(this.editor.getValue());
168                 var resp=validateXML(this.editor.getValue());
169                 if(resp){
170                         this.status = {fill:"green",shape:"dot",text:"OK"};
171                 }else{
172                         this.status = {fill:"red",shape:"dot",text:"ERROR"};
173                 }       
174                 delete this.editor;
175         }
176     });
177 </script>