[CCSDK-683] fixed dg import from local git repo
[ccsdk/distribution.git] / dgbuilder / public / index.html
1 <!DOCTYPE html>
2 <html>
3 <meta charset="utf-8">
4 <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0"/>
5 <meta name="apple-mobile-web-app-capable" content="yes">
6 <meta name="mobile-web-app-capable" content="yes">
7
8 <!--
9   Copyright 2013, 2014 IBM Corp.
10
11   Licensed under the Apache License, Version 2.0 (the "License");
12   you may not use this file except in compliance with the License.
13   You may obtain a copy of the License at
14
15   http://www.apache.org/licenses/LICENSE-2.0
16
17   Unless required by applicable law or agreed to in writing, software
18   distributed under the License is distributed on an "AS IS" BASIS,
19   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20   See the License for the specific language governing permissions and
21   limitations under the License.
22 -->
23 <head>
24 <!--<title>Node-RED</title>-->
25 <title>Directed Graph Builder</title>
26 <link href="bootstrap/css/bootstrap.min.css" rel="stylesheet" media="screen">
27 <link href="jquery/css/smoothness/jquery-ui-1.10.3.custom.min.css" rel="stylesheet" media="screen">
28 <link rel="stylesheet" type="text/css" href="font-awesome/css/font-awesome.min.css"/>
29 <link rel="stylesheet" href="style.css">
30 <link rel="stylesheet" href="ace/ace-styles.css">
31 <script src="ace/ace.js" type="text/javascript" charset="utf-8"></script>
32 <script src="ace/ace-diff.js"></script>
33 <script src="ace/diff_match_patch.js"></script> 
34 <script src="ace/mode-json.js"></script> 
35 <!-- <script src="ace/mode-javascript.js"></script>  -->
36 <script src="ace/mode-xml.js"></script> 
37 <!--<script src="ace/theme-dreamweaver.js"></script> -->
38 <script src="ace/theme-eclipse.js"></script> 
39 </head>
40 <body spellcheck="false">
41 <div id="header">
42     <!--<span class="logo"><img src="node-red.png"> <span>Node-RED</span></span>-->
43     <!--<span class="logo"><img src="node-red.png"> <span>Directed Graph Builder</span></span>-->
44     <span class="logo"><img src="node-red.png"> <span>Directed Graph Builder</span><span id='processingStatusId' ></span></span>
45     <div class="pull-right">
46         <span id='releaseId' ></span>
47         <a id="btn-deploy" class="button action-deploy disabled" href="#"><i id="btn-icn-deploy" class="fa fa-download"></i>Save</a>
48         <a id="btn-sidemenu" class="button dropdown-toggle" data-toggle="dropdown" href="#"><i class="fa fa-bars"></i></a>
49     </div>
50 </div>
51 <div id="main-container" class="sidebar-closed">
52     <div id="palette">
53         <img src="spin.svg" class="palette-spinner"/>
54         <div id="palette-container" class="palette-scroll">
55         </div>
56         <div id="palette-search">
57             <i class="fa fa-search"></i><input id="palette-search-input" type="text" placeholder="filter"><a href="#" id="palette-search-clear"><i class="fa fa-times"></i></a></input>
58         </div>
59     </div><!-- /palette -->
60
61     <div id="workspace">
62         <ul id="workspace-tabs"></ul>
63         <div id="workspace-add-tab"><a id="btn-workspace-add-tab" href="#"><i class="fa fa-plus"></i></a></div>
64         <div id="chart"></div>
65         <div id="workspace-toolbar">
66             <div class="btn-group">
67                 <a class="btn btn-small" href="#"><i class="fa fa-search-minus"></i></a>
68                 <a class="btn btn-small" href="#"><i class="fa fa-dot-circle-o"></i></a>
69                 <a class="btn btn-small" href="#"><i class="fa fa-search-plus"></i></a>
70             </div>
71         </div>
72     </div>
73
74     <div id="chart-zoom-controls">
75         <div class="btn-group">
76             <a class="btn btn-mini" id="btn-zoom-out" href="#"><i class="fa fa-search-minus"></i></a>
77             <a class="btn btn-mini" id="btn-zoom-zero" href="#"><i class="fa fa-dot-circle-o"></i></a>
78             <a class="btn btn-mini" id="btn-zoom-in" href="#"><i class="fa fa-search-plus"></i></a>
79         </div>
80     </div>
81
82     <div id="sidebar">
83         <ul id="sidebar-tabs"></ul>
84         <div id="sidebar-content"></div>
85     </div>
86
87     <div id="sidebar-separator"></div>
88
89 </div>
90
91 <div id="notifications"></div>
92 <div id="dropTarget"><div>Drop the flow here<br/><i class="fa fa-download"></i></div></div>
93
94 <div id="dialog" class="hide"><form id="dialog-form" class="form-horizontal"></form></div>
95 <div id="node-config-dialog" class="hide"><form id="dialog-config-form" class="form-horizontal"></form><div class="form-tips" id="node-config-dialog-user-count"></div></div>
96
97 <div id="node-dialog-confirm-deploy" class="hide">
98     <form class="form-horizontal">
99         <div id="node-dialog-confirm-deploy-config" style="text-align: center; padding-top: 30px;">
100          Some of the nodes are not properly configured. Are you sure you want to deploy?
101         </div>
102         <div id="node-dialog-confirm-deploy-unknown" style="text-align: center; padding-top: 10px;">
103          The workspace contains some unknown node types:
104          <ul style="width: 300px; margin: auto; text-align: left;" id="node-dialog-confirm-deploy-unknown-list"></ul>
105          Are you sure you want to deploy?
106         </div>
107     </form>
108 </div>
109
110 <div id="node-help" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="node-help-label" aria-hidden="true">
111   <div class="modal-header">
112     <h5 id="node-help-label">Keyboard Shortcuts <!-- <span style="float: right;"><a href="http://node-red.github.io/docs" target="_blank">Open help in new window &raquo;</a></span> -->
113 </h5>
114   </div>
115   <div class="modal-body">
116     <table>
117         <tr>
118           <td><span class="help-key">Ctrl</span> <span class="help-key">?</span></td><td>Help</td>
119           <td><span class="help-key">Ctrl</span> <span class="help-key">a</span></td><td>Select all nodes</td>
120         </tr>
121         <tr>
122           <td><span class="help-key">Ctrl</span> <span class="help-key">Space</span></td><td>Toggle sidebar</td>
123           <td><span class="help-key">Shift</span> <span class="help-key">Click</span></td><td>Select all connected nodes</td>
124         </tr>
125         <tr>
126           <td><span class="help-key">Ctrl</span> <span class="help-key">z</span></td><td>Undo</td>
127           <td><span class="help-key">Ctrl</span> <span class="help-key">Click</span></td><td>Add/remove node from selection</td>
128         </tr>
129         <tr>
130           <td><span class="help-key">Ctrl</span> <span class="help-key">m</span></td><td>Toggle Node Palette</td>
131           <td><span class="help-key">Delete</span></td><td>Delete selected nodes or link</td>
132         </tr>
133         <tr>
134           <td><span class="help-key">Ctrl</span> <span class="help-key">x</span></td><td>Cut selected nodes</td>
135           <td><span class="help-key">Ctrl</span> <span class="help-key">b</span></td><td>Find Node</td>
136         </tr>
137         <tr>
138           <td><span class="help-key">Ctrl</span> <span class="help-key">o</span></td><td>RPC Input</td>
139         <td></td>       
140         </tr>
141         <tr>
142           <td><span class="help-key">Ctrl</span> <span class="help-key">c</span></td><td>Copy selected nodes</td>
143           <td><span class="help-key">Ctrl</span> <span class="help-key">v</span></td><td>Paste nodes</td>
144         </tr>
145         <tr>
146           <td><span class="help-key">Ctrl</span> <span class="help-key">i</span></td><td>Import nodes</td>
147           <td><span class="help-key">Ctrl</span> <span class="help-key">e</span></td><td>Export selected nodes</td>
148         </tr>
149         <tr>
150           <td colspan="2"></td>
151         </tr>
152         <tr>
153           <td><span class="help-key">Ctrl</span> <span class="help-key">+</span></td><td>Zoom in</td>
154           <td><span class="help-key">Ctrl</span> <span class="help-key">-</span></td><td>Zoom out</td>
155         </tr>
156     </table>
157   </div>
158   <div class="modal-footer">
159     <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
160   </div>
161 </div>
162
163 <div id="node-dialog-library-save-confirm" class="hide">
164     <form class="form-horizontal">
165         <div style="text-align: center; padding-top: 30px;">
166          A <span id="node-dialog-library-save-type"></span> called <span id="node-dialog-library-save-name"></span> already exists. Overwrite?
167         </div>
168     </form>
169 </div>
170
171 <div id="node-dialog-library-save" class="hide">
172     <form class="form-horizontal">
173         <div class="form-row">
174             <label for="node-dialog-library-save-folder"><i class="fa fa-folder-open"></i> Folder</label>
175             <input type="text" id="node-dialog-library-save-folder" placeholder="Folder">
176         </div>
177         <div class="form-row">
178             <label for="node-dialog-library-save-filename"><i class="fa fa-file"></i> Filename</label>
179             <input type="text" id="node-dialog-library-save-filename" placeholder="Filename">
180         </div>
181     </form>
182 </div>
183
184 <div id="node-dialog-library-lookup" class="hide">
185     <form class="form-horizontal">
186         <div class="form-row">
187             <ul id="node-dialog-library-breadcrumbs" class="breadcrumb">
188                 <li class="active"><a href="#">Library</a></li>
189             </ul>
190         </div>
191         <div class="form-row">
192             <div style="vertical-align: top; display: inline-block; height: 100%; width: 30%; padding-right: 20px;">
193                 <div id="node-select-library" style="border: 1px solid #999; width: 100%; height: 100%; overflow:scroll;"><ul></ul></div>
194             </div>
195             <div style="vertical-align: top; display: inline-block;width: 65%; height: 100%;">
196                 <div style="height: 100%; width: 95%;" class="node-text-editor" id="node-select-library-text" ></div>
197             </div>
198         </div>
199     </form>
200 </div>
201 <div id="node-dialog-rename-workspace" class="hide">
202     <form class="form-horizontal">
203         <div class="form-row">
204             <label for="node-input-workspace-name" ><i class="fa fa-tag"></i> Name:</label>
205             <input type="text" id="node-input-workspace-name">
206         </div>
207     </form>
208 </div>
209 <div id="node-dialog-delete-workspace" class="hide">
210     <form class="form-horizontal">
211         <div style="text-align: center; padding-top: 30px;">
212          Are you sure you want to delete '<span id="node-dialog-delete-workspace-name"></span>'?
213         </div>
214     </form>
215 </div>
216 <div id="xmldialog" class="hide"></div>
217 <div id="filter-tabs-dialog" class="hide"></div>
218 <div id="loop-detection-dialog" class="hide"></div>
219 <div id="dgnumber-find-dialog" class="hide"></div>
220 <div id="search-text-dialog" class="hide"></div>
221 <div id="dgstart-generate-xml-dialog" class="hide"></div>
222 <div id="update-password-dialog" class="hide"></div>
223 <div id="update-configuration-dialog" class="hide"></div>
224 <div id="dgflow-browser-dialog" class="hide"></div>
225 <div id="codecloud-browser-dialog" class="hide"></div>
226 <div id="gitlocal-browser-dialog" class="hide"></div>
227 <div id="gitcommands-dialog" class="hide"></div>
228 <div id="upload-xml-status-dialog" class="hide"></div>
229 <div id="flow-design-err-dialog" class="hide"></div>
230 <div id="sli-values-dialog" class="hide"></div>
231 <div id="comments-dialog" class="hide"></div>
232 <div id="show-errors-dialog" class="hide"></div>
233 <div id="yang-upload-dialog" class="hide"></div>
234 <div id="yang-modules-browser-dialog" class="hide"></div>
235 <div id="list-yang-browser-dialog" class="hide"></div>
236 <div id="request-input-dialog" class="hide"></div>
237 <div id="test-dg-dialog" class="hide"></div>
238 <div id="ctx-values-dialog" class="hide"></div>
239 <div id="list-input-browser-dialog" class="hide"></div>
240 <div id="diff-browser-dialog" class="hide"></div>
241
242 <script type="text/x-red" data-template-name="export-clipboard-dialog">
243     <div class="form-row">
244         <label for="node-input-export" style="display: block; width:100%;"><i class="fa fa-clipboard"></i> Nodes:</label>
245         <textarea readonly style="font-family: monospace; font-size: 12px; background:rgb(226, 229, 255); padding-left: 0.5em;" class="input-block-level" id="node-input-export" rows="5"></textarea>
246     </div>
247     <div class="form-tips">
248         Select the text above and copy to the clipboard with Ctrl-A Ctrl-C.
249     </div>
250 </script>
251 <script type="text/x-red" data-template-name="export-library-dialog">
252     <div class="form-row">
253         <label for="node-input-filename" ><i class="fa fa-file"></i> Filename:</label>
254         <input type="text" id="node-input-filename" placeholder="Filename">
255     </div>
256 </script>
257 <script type="text/x-red" data-template-name="import-dialog">
258     <div class="form-row">
259         <label for="node-input-import"><i class="fa fa-clipboard"></i> Nodes:</label>
260         <textarea style="font-family: monospace; font-size: 12px; background:rgb(226, 229, 255); padding-left: 0.5em;" class="input-block-level" id="node-input-import" rows="5" placeholder="Paste nodes here"></textarea>
261     </div>
262 </script>
263
264 <script src="jquery/js/jquery-1.11.1.min.js"></script>
265 <script src="bootstrap/js/bootstrap.min.js"></script>
266 <script src="jquery/js/jquery-ui-1.10.3.custom.min.js"></script>
267 <script src="jquery/js/jquery.ui.touch-punch.min.js"></script>
268 <script src="d3.v3.min.js"></script>
269
270 <script src="red/main.js"></script>
271 <script src="red/comms.js"></script>
272 <script src="red/ui/state.js"></script>
273 <script src="red/nodes.js"></script>
274 <script src="red/history.js"></script>
275 <script src="red/validators.js"></script>
276 <script src="red/ui/menu.js"></script>
277 <script src="red/ui/keyboard.js"></script>
278 <script src="red/ui/tabs.js"></script>
279 <script src="red/ui/view.js"></script>
280 <script src="red/ui/sidebar.js"></script>
281 <script src="red/ui/palette.js"></script>
282 <script src="red/ui/tab-info.js"></script>
283 <script src="red/ui/tab-config.js"></script>
284 <script src="red/ui/editor.js"></script>
285 <script src="red/ui/library.js"></script>
286 <script src="red/ui/notifications.js"></script>
287 <script src="red/ui/touch/radialMenu.js"></script>
288
289
290 <script lang="javascript">
291  $(function() {
292         RED.keyboard.add(/* M */ 77,{ctrl:true},function(){RED.menu.setSelected("btn-node-panel",!RED.menu.isSelected("btn-node-panel"));d3.event.preventDefault();});
293         RED.menu.setSelected("btn-node-panel",true);
294     });
295 var format_xml = "Y";
296 var format_json = "Y";
297 var sliValuesObj = {};
298 var rpcValues = {};
299 var reqInputValues = {};
300 $(function(){
301  $.get("/initialLoadSelectedModules")
302         .done(function( data ) {
303                 //console.dir(data);
304                 if(data != undefined && data != null){
305                       for(var i=0;i<data.sliValuesObj.length;i++){
306                                 var moduleName = data.sliValuesObj[i].moduleName;       
307                                 //console.dir(data.sliValuesObj[i][ moduleName + '_PROPS']);
308                                 //console.dir(data.sliValuesObj[i][moduleName + '_RPCS']);
309                                 sliValuesObj[moduleName] = data.sliValuesObj[i][moduleName + '_PROPS'];
310                                 rpcValues[moduleName] = data.sliValuesObj[i][ moduleName +'_RPCS'];
311                                 for(var k=0;rpcValues[moduleName] != undefined && k<rpcValues[moduleName].length;k++){
312                                         var rpcName = rpcValues[moduleName][k];
313                                         reqInputValues[moduleName + "_" + rpcName] = data.sliValuesObj[i][rpcName +"-input"];
314                                 }
315                         }
316                 }
317
318         })
319         .fail(function(err) {
320                 console.dir(err);
321         })
322         .always(function() {
323         });
324 });
325
326 </script>
327 <script>
328  $(document).ready(function() {
329
330 var urlPath="/getRelease";
331         $.get(urlPath)
332         .done(function( data ) {
333                 //console.dir(data);
334                 if(data != undefined && data != null){
335                         var release = data.release;
336                         //document.title +=" " + release;
337                         $("#releaseId").text("Workspace:" + release);
338                         $("#releaseId").css({color:'lightgrey'});
339                         
340                 }
341         })
342         .fail(function(err) {
343         })
344         .always(function() {
345         });
346 });
347
348 $.get("/getCurrentSettings")
349         .done(function( data ) {
350                 //console.dir(data);
351                 if(data != undefined && data != null){
352                         format_xml = data.formatXML;    
353                         format_json = data.formatJSON;  
354                 }
355         })
356         .fail(function(err) {
357         })
358         .always(function() {
359         });
360
361 </script>
362 </body>
363 </html>