[CCSDK-28] populated the seed code for dgbuilder
[ccsdk/distribution.git] / dgbuilder / nodes / dge / dgelogic / breakNode.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="break">
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="break">
38         <p>A break 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="Break_node"></a>Break node</h4>
44 <div class="section">
45 <h5><a name="Description"></a>Description</h5>
46 <p>A <b>break</b> node works like a break in any programming language. So you can break out of a for loop.</p></div>
47 <div class="section">
48 <h5><a name="Attributes"></a>Attributes</h5>
49 <p>Not applicable. The <b>break</b> node does not have attributes.</p></div>
50 <div class="section">
51 <h5><a name="Parameters"></a>Parameters</h5>
52 <p>Not applicable. The <b>break</b> node does not have attributes.</p> </div>
53 <div class="section">
54 <h5><a name="Outcomes"></a>Outcomes</h5>
55 <p>Not applicable. The <b>break</b> node has no outcomes.</p></div>
56 <div class="section">
57 <h5><a name="Example"></a>Example</h5>
58 <div class="source">
59 <pre>&lt;break&gt;
60 </pre></div></div></div>
61
62 </script>
63
64
65 <script type="text/javascript">
66     RED.nodes.registerType('break',{
67         color:"#fdd0a2",
68         category: 'DGElogic',
69         defaults: {
70             name: {value:"break"},
71             xml: {value:"<break>\n"},
72             comments:{value:""} 
73         },
74         inputs:1,
75         icon: "arrow-in.png",
76         label: function() {
77             return this.name;
78         },
79         oneditprepare: function() {
80             $( "#node-input-outputs" ).spinner({
81                 min:1
82             });
83
84
85              var comments = $( "#node-input-comments").val();
86              if(comments != null){
87                 comments = comments.trim();
88                 if(comments != ''){
89                         $("#node-input-btnComments").html("<span style='color:blue;'><b>View Comments</b></span>");
90                 }
91              }
92
93             function functionDialogResize(ev,ui) {
94                 $("#node-input-xml-editor").css("height",(ui.size.height-275)+"px");
95             };
96
97             $( "#dialog" ).dialog( "option", "width", 1200 );
98             $( "#dialog" ).dialog( "option", "height", 750 );
99             $( "#dialog" ).on("dialogresize", functionDialogResize);
100             $( "#dialog" ).one("dialogopen", function(ev) {
101                 var size = $( "#dialog" ).dialog('option','sizeCache-function');
102                 if (size) {
103                     functionDialogResize(null,{size:size});
104                 }
105             });
106
107             /* close dialog when ESC is pressed and released */ 
108             $( "#dialog" ).keyup(function(event){
109                 if(event.which == 27 ) {
110                         $("#node-dialog-cancel").click();
111                 }
112             }); 
113
114             $( "#dialog" ).one("dialogclose", function(ev,ui) {
115                 var height = $( "#dialog" ).dialog('option','height');
116                 $( "#dialog" ).off("dialogresize",functionDialogResize);
117             });
118             var that = this;
119             require(["orion/editor/edit"], function(edit) {
120                 that.editor = edit({
121                     parent:document.getElementById('node-input-xml-editor'),
122                     lang:"html",
123                     contents: $("#node-input-xml").val()
124                 });
125                 RED.library.create({
126                     url:"functions", // where to get the data from
127                     type:"function", // the type of object the library is for
128                     editor:that.editor, // the field name the main text body goes to
129                     fields:['name','outputs']
130                 });
131                 $("#node-input-name").focus();
132                 $("#node-input-validate").click(function(){
133                                 console.log("validate clicked.");
134                                 //console.dir(that.editor);
135                                 //console.log("getText:" + that.editor.getText());
136                                 var val = that.editor.getText();
137                                 validateXML(val); 
138                 });
139                 $("#node-input-show-sli-values").click(function(){
140                                 console.log("SLIValues clicked.");
141                                 showValuesBox(that.editor,sliValuesObj);
142                 });
143
144             });
145             //for click of add comments button
146             $("#node-input-btnComments").click(function(e){
147                         showCommentsBox();
148             }); 
149         },
150         oneditsave: function() {
151             $("#node-input-xml").val(this.editor.getText());
152                 var resp=validateXML(this.editor.getText());
153                 if(resp){
154                         this.status = {fill:"green",shape:"dot",text:"OK"};
155                 }else{
156                         this.status = {fill:"red",shape:"dot",text:"ERROR"};
157                 }       
158                 delete this.editor;
159         }
160     });
161 </script>