removing unused db file
[policy/engine.git] / ecomp-sdk-app / src / main / webapp / WEB-INF / fusion / raptor / tree / folderNav.jsp
1 <%--
2   ================================================================================
3   eCOMP Portal SDK
4   ================================================================================
5   Copyright (C) 2017 AT&T Intellectual Property
6   ================================================================================
7   Licensed under the Apache License, Version 2.0 (the "License");
8   you may not use this file except in compliance with the License.
9   You may obtain a copy of the License at
10   
11        http://www.apache.org/licenses/LICENSE-2.0
12   
13   Unless required by applicable law or agreed to in writing, software
14   distributed under the License is distributed on an "AS IS" BASIS,
15   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16   See the License for the specific language governing permissions and
17   limitations under the License.
18   ================================================================================
19   --%>
20 <%@page import="org.openecomp.portalsdk.analytics.system.AppUtils" %>
21 <%@page import="org.openecomp.portalsdk.analytics.model.runtime.ReportRuntime"%>
22 <%@page import="org.openecomp.portalsdk.analytics.util.AppConstants"%>
23 <%@page import="org.openecomp.portalsdk.analytics.system.Globals"%>
24
25 <%
26         boolean isFolderAllowed = false;
27         ReportRuntime rr = (ReportRuntime) request.getSession().getAttribute(AppConstants.SI_REPORT_RUNTIME);
28         boolean adminUser = AppUtils.isAdminUser(request);
29         if (Globals.isFolderTreeAllowed()) {
30                 if(adminUser) {
31                         isFolderAllowed = true;
32                 } else if (!Globals.isFolderTreeAllowedOnlyForAdminUsers()) { 
33                         isFolderAllowed = true; 
34                 } else isFolderAllowed = false;
35         }
36         
37     
38         
39 %>
40
41
42 <script src='dwr/engine.js'></script>
43 <script src='dwr/util.js'></script>
44 <script src='dwr/interface/folderNavAjax.js'></script>
45
46
47 <script>
48         var imgFolder = '<%=AppUtils.getImgFolderURL()%>';
49         var isFolderAllowed = '<%= isFolderAllowed%>';
50 </script>
51 <script type="text/javascript" src="<%= AppUtils.getBaseFolderURL() %>js/tree/ajax.js"></script>
52 <script type="text/javascript" src="<%= AppUtils.getBaseFolderURL() %>js/tree/context-menu.js"></script>
53 <script type="text/javascript" src="<%= AppUtils.getBaseFolderURL() %>js/tree/drag-drop-folder-tree.js">
54 <script type="text/javascript" src="<%= AppUtils.getBaseFolderURL() %>js/raptor.js">
55 </script>
56 <link rel="stylesheet" type="text/css" href="<%= AppUtils.getBaseFolderURL() %>css/raptor.css">
57 <link rel="stylesheet" type="text/css" href="<%= AppUtils.getBaseFolderURL() %>css/tree/drag-drop-folder-tree.css">
58 <link rel="stylesheet" type="text/css" href="<%= AppUtils.getBaseFolderURL() %>css/tree/context-menu.css">
59 <style type="text/css">
60 /* CSS for the demo */
61 img{
62         border:0px;
63 }
64 </style>
65 <script>
66         var doCollapse = '<%=request.getParameter("doCollapseTree")%>';
67         var selectedFolderId;
68         var ajaxObjects = new Array();
69                 
70                 // Use something like this if you want to save data by Ajax.
71                 function saveMyTree()
72                 {
73                                 saveString = treeObj.getNodeOrders();
74                                 alert(saveString);
75                                 var ajaxIndex = ajaxObjects.length;
76                                 ajaxObjects[ajaxIndex] = new sack();
77                                 var url = 'tree';
78                                 //var url = 'tree';
79                                 ajaxObjects[ajaxIndex].requestFile = url;       // Specifying which file to get
80                                 ajaxObjects[ajaxIndex].onCompletion = function() { saveComplete(ajaxIndex); } ; // Specify function that will be executed after file has been found
81                                 ajaxObjects[ajaxIndex].runAJAX(url);            // Execute AJAX function                        
82                         
83                 }
84                 function saveComplete(index)
85                 {
86                         alert(ajaxObjects[index].response);                     
87                 }
88         
89                 
90                 // Call this function if you want to save it by a form.
91                 function saveMyTree_byForm()
92                 {
93                         displayFolderInfo();
94                         var data=folderNavAjax.saveFolderStructure(treeObj.getNodeOrders(), "<%=AppUtils.getUserID(request)%>", fillFolderStructure);
95                         
96                 }
97                 
98                 function cancelMyTree_byForm(){
99                         //document.treeFrm.submit();            
100                         displayFolderInfo();
101                         var data=folderNavAjax.getFolderListString("<%=AppUtils.getUserID(request)%>", fillFolderStructure);
102                 }
103                 
104                 function deleteMyTree_byForm()
105                 {
106                         //document.treeForm.submit();
107                         displayFolderInfo();
108                         var data=folderNavAjax.deleteFolderStructure(document.treeFrm.deleteIds.value, "<%=AppUtils.getUserID(request)%>", fillFolderStructure);
109                 }
110                 
111                 function addMyTree_byForm()
112                 {
113                         //document.treeFrm.submit();
114                         displayFolderInfo();
115                         selectedFolderId = document.treeFrm.saveString.value;
116                         var data=folderNavAjax.createNewFolder(document.treeFrm.saveString.value, document.treeFrm.newName.value, "<%=AppUtils.getUserID(request)%>", fillFolderStructure);
117                                         
118                 }
119                 
120                 function renameMyTree_byForm()
121                 {
122                         //document.treeFrm.submit();
123                         displayFolderInfo();
124                         var data=folderNavAjax.renameFolder(document.treeFrm.renameId.value, document.treeFrm.newName.value, "<%=AppUtils.getUserID(request)%>", fillFolderStructure);
125                                         
126                 }
127                 
128                 function createFolder(){
129                         if(JSTreeObj.selectedItem == null || JSTreeObj.selectedItem.parentNode.id.substr(0,3) == '000') 
130                                 return; 
131                         if (JSTreeObj.isAddAllowed(JSTreeObj.selectedItem.parentNode.id) == false){
132                                 alert("You do not have rights on this folder");
133                                 return;
134                         }
135                         selectedFolderId = JSTreeObj.selectedItem.parentNode.id;
136                         displayFolderInfo();
137                         if (JSTreeObj.addItem(JSTreeObj.selectedItem, JSTreeObj.selectedItem) == false){
138                                 hideFolderInfo();
139                         }
140                 }
141                 
142                 function deleteFolder(){
143                         if(JSTreeObj.selectedItem == null) {
144                                 return; 
145                         }
146                         var id = JSTreeObj.selectedItem.parentNode.id.replace(/[^0-9]/gi,'');
147                         if (JSTreeObj.isDeleteAllowed(id) == false){
148                                 alert("You do not have rights on this folder");
149                                 return;
150                         }
151                         if(id.substr(0,3) == '000') {
152                                 return;
153                         }                       
154                         displayFolderInfo();
155                         if (JSTreeObj.deleteItem(JSTreeObj.selectedItem, JSTreeObj.selectedItem) == false){
156                                 hideFolderInfo();
157                         }
158                 }
159                 
160                 function runReport()
161                 {
162                         
163                         if (JSTreeObj == null || JSTreeObj.selectedItem == null){
164                                 return;
165                         }
166                         
167                         var id = JSTreeObj.selectedItem.parentNode.id.replace(/[^0-9]/gi,'');
168                         if(id.substr(0,3) != '000') {
169                                 return;
170                         }                       
171                         //displayFolderInfo();
172                         id = id.substr(3, id.length);
173                         addBreadCrumb(true, id);        
174                         if (window.frames && window.frames[0] && window.frames[0].name == 'content_Iframe'){
175                                 window.frames[0].location='<%= AppUtils.getRaptorActionURL() %>report.run&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
176                         }
177                         else if (document.getElementById('searchContentContainer')){
178                                 document.getElementById('searchContentContainer').innerHTML = "<div id='breadCrumbArea'> </div><iframe name='content_Iframe' frameborder='0'  id='content_Iframe' src='<%= AppUtils.getRaptorActionURL() %>report.run&c_master=" + id + "&PAGE_ID=HOME&refresh=Y' width='100%' height='450' ></iframe>";
179                                 //document.getElementById('content_Iframe').height=document.body.offsetHeight - 210;
180                                 resizeWindow();
181                                 document.getElementById('content_Iframe').location = '<%= AppUtils.getRaptorActionURL() %>report.run&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
182                                                                         
183                         }else{
184                         
185                                 document.treeFrm.action='<%= AppUtils.getRaptorActionURL() %>report.run&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
186                                 document.treeFrm.submit();
187                         }
188                         
189                 }
190                 function editReport()
191                 {
192                         if (JSTreeObj == null || JSTreeObj.selectedItem == null){
193                                 return;
194                         }
195                         
196                         var id = JSTreeObj.selectedItem.parentNode.id.replace(/[^0-9]/gi,'');
197                         if(id.substr(0,3) != '000') {
198                                 return;
199                         }                       
200                         id = id.substr(3, id.length);
201                         if (window.frames && window.frames[0] && window.frames[0].name == 'content_Iframe'){
202                                 window.frames[0].location='<%= AppUtils.getRaptorActionURL() %>report.edit&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
203                         }
204                         else if (document.getElementById('searchContentContainer')){
205                                 document.getElementById('searchContentContainer').innerHTML = "<div id='breadCrumbArea'> </div><iframe name='content_Iframe' frameborder='0'  id='content_Iframe' src='<%= AppUtils.getRaptorActionURL() %>report.edit&c_master=" + id + "&PAGE_ID=HOME&refresh=Y' width='100%' height='450' ></iframe>";
206                                 //document.getElementById('content_Iframe').height=document.body.offsetHeight - 210;
207                                 resizeWindow();
208                                 document.getElementById('content_Iframe').location = '<%= AppUtils.getRaptorActionURL() %>report.edit&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
209                                                 
210                         }else{
211                                 document.treeFrm.action='<%= AppUtils.getRaptorActionURL() %>report.edit&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
212                                 document.treeFrm.submit();                      
213                         }
214                 }
215                 function deleteReport()
216                 {
217                         if (JSTreeObj == null || JSTreeObj.selectedItem == null){
218                                 return;
219                         }
220                         
221                         var id = JSTreeObj.selectedItem.parentNode.id.replace(/[^0-9]/gi,'');
222                         if(id.substr(0,3) != '000') {
223                                 return;
224                         }                       
225                         id = id.substr(3, id.length);
226                         if (window.frames && window.frames[0] && window.frames[0].name == 'content_Iframe'){
227                                 window.frames[0].location='<%= AppUtils.getRaptorActionURL() %>report.delete&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
228                         }
229                         else if (document.getElementById('searchContentContainer')){
230                                 document.getElementById('searchContentContainer').innerHTML = "<div id='breadCrumbArea'> </div><iframe name='content_Iframe' frameborder='0'  id='content_Iframe' src='<%= AppUtils.getRaptorActionURL() %>report.delete&c_master=" + id + "&PAGE_ID=HOME&refresh=Y' width='100%' height='450' ></iframe>";
231                                 //document.getElementById('content_Iframe').height=document.body.offsetHeight - 210;
232                                 resizeWindow();
233                                 document.getElementById('content_Iframe').location = '<%= AppUtils.getRaptorActionURL() %>report.delete&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
234                                                 
235                         }
236                         else{
237                                 document.treeFrm.action='<%= AppUtils.getRaptorActionURL() %>report.delete&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
238                                 document.treeFrm.submit();                      
239                         }
240                         
241                 }
242                 function createReport()
243                 {
244                         if (JSTreeObj == null || JSTreeObj.selectedItem == null){
245                                 return;
246                         }       
247                         var id = JSTreeObj.selectedItem.parentNode.id.replace(/[^0-9]/gi,'');
248                         addBreadCrumb(false, id);
249                         if (window.frames && window.frames[0] && window.frames[0].name == 'content_Iframe'){
250                                 window.frames[0].location='<%= AppUtils.getRaptorActionURL() %>report.create&folder_id=' + id + '&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
251                         }
252                         else if (document.getElementById('searchContentContainer')){
253                                 document.getElementById('searchContentContainer').innerHTML = "<div id='breadCrumbArea'> </div><iframe name='content_Iframe' frameborder='0'  id='content_Iframe' src='<%= AppUtils.getRaptorActionURL() %>report.create&folder_id=" + id + "&c_master=' + id + '&PAGE_ID=HOME&refresh=Y' width='100%' height='450' ></iframe>";
254                                 //document.getElementById('content_Iframe').height=document.body.offsetHeight - 210;
255                                 resizeWindow();
256                                 document.getElementById('content_Iframe').location = '<%= AppUtils.getRaptorActionURL() %>report.create.container&folder_id=' + id + '&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
257                                                 
258                         }
259                         else{
260                                 displayFolderInfo();
261                                 document.treeFrm.action='<%= AppUtils.getRaptorActionURL() %>report.create.container&folder_id=' + id + '&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
262                                 document.treeFrm.submit();
263                         }
264                 }
265                 function getFolderReports(id)
266                 {       
267                         addBreadCrumb(false, id);
268                         if (window.frames && window.frames[0] && window.frames[0].name == 'content_Iframe'){
269                                 window.frames[0].location='<%= AppUtils.getRaptorActionURL() %>report.folderlist_iframe&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';                            
270                         }
271                         else if (document.getElementById('searchContentContainer')){
272                                 document.getElementById('searchContentContainer').innerHTML = "<div id='breadCrumbArea'> </div><iframe name='content_Iframe' frameborder='0'  id='content_Iframe' src='<%= AppUtils.getRaptorActionURL() %>report.folderlist_iframe&c_master=" + id + "&PAGE_ID=HOME&refresh=Y' width='100%' height='450' ></iframe>";
273                                 //document.getElementById('content_Iframe').height=document.body.offsetHeight - 210;
274                                 resizeWindow();
275                                 document.getElementById('content_Iframe').location = "<%= AppUtils.getRaptorActionURL() %>report.folderlist_iframe&c_master=" + id + "&PAGE_ID=HOME&refresh=Y";
276                         
277                         }
278                         else{
279                                 document.treeFrm.action='<%= AppUtils.getRaptorActionURL() %>report.folderlist&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
280                                 document.treeFrm.submit();
281                         }
282                 }
283                 
284                 function getAllFolderReports()
285                 {
286                         var id = JSTreeObj.selectedItem.parentNode.id.replace(/[^0-9]/gi,'');
287                         document.treeFrm.action='<%= AppUtils.getRaptorActionURL() %>report.folderlist&c_master=' + id + '&PAGE_ID=HOME&refresh=Y';
288                         document.treeFrm.submit();
289                 }
290                 
291                 
292                 function displayFolderInfo()
293                 {
294                         var infoDiv = document.getElementById('loadingMessageDiv');
295                         if (infoDiv == null)
296                                 return;                 
297                         infoDiv.style.left = document.body.offsetWidth - 100 ;
298                         infoDiv.style.top = document.getElementById('scrollableTable').style.top;
299                         infoDiv.style.display='block';                  
300                 }
301                 function hideFolderInfo()
302                 {
303                         var infoDiv = document.getElementById('loadingMessageDiv');
304                         if (infoDiv == null)
305                                 return;                                         
306                         infoDiv.style.display='none';
307                 }
308                 
309                 function displayTree(id){
310                         if (isFolderAllowed ){
311                                 if (id != null)
312                                         selectedFolderId = id;
313                                 if (document.getElementById('reportFolderTree') == null){
314                                         displayFolderInfo();
315                                         var data=folderNavAjax.getFolderListString("<%=AppUtils.getUserID(request)%>", fillFolderStructure);
316                                 }                       
317                                 document.getElementById('expandedTree').style.display='block';
318                                 document.getElementById('collapsedTree').style.display='none';
319                                 if (document.getElementById('folderTreeContainer'))
320                                         document.getElementById('folderTreeContainer').width="25%";
321                                         
322                                 //document.getElementById('scrollableTable').style.height=window.screen.height - 320;
323                                 //document.getElementById('scrollableTable').style.height=document.body.offsetHeight - 260;
324                                 resizeWindow();
325                                 folderNavAjax.displayTree();
326                         }
327
328
329                 }
330                 function hideTree(){
331                         document.getElementById('expandedTree').style.display='none';
332                         document.getElementById('collapsedTree').style.display='block';
333                         //GET BREAD CRUMBS and assign
334                         if (document.getElementById('folderTreeContainer'))
335                                 document.getElementById('folderTreeContainer').width="2px";
336                         folderNavAjax.hideTree();
337                 }
338                 function refreshTree(id){
339
340                         if (isFolderAllowed ){
341                                 if (id != null)
342                                         selectedFolderId = id;
343                                 displayFolderInfo();
344                                 var data=folderNavAjax.getFolderListString("<%=AppUtils.getUserID(request)%>", fillFolderStructure);
345                                 
346                                 document.getElementById('expandedTree').style.display='block';
347                                 document.getElementById('collapsedTree').style.display='none';
348                                 if (document.getElementById('folderTreeContainer'))
349                                         document.getElementById('folderTreeContainer').width="25%";
350                                         
351                                 //document.getElementById('scrollableTable').style.height=document.body.offsetHeight - 210;
352                                 resizeWindow();
353                                 folderNavAjax.displayTree(selectedFolderId);
354                         }
355                 }
356                 function addBreadCrumb(isReport, id){
357                 //      if (id != null)
358                 //              var data=folderNavAjax.getBreadCrumb(isReport, id, addBreadCrumbCallback);
359                         
360                 }
361                 function addBreadCrumbCallback(data){
362                         var collapsedTree = document.getElementById('breadCrumbArea');
363                         if (collapsedTree == null)
364                                 return;
365                         collapsedTree.innerHTML = "<font class=rtabletext style='background-color:white'>" + data + "</font>";
366                 }
367                 function collapseAllTree(){
368                         treeObj.collapseAll();
369                 }
370 </script>
371
372 <form name='treeFrm' method='post'>
373
374         <input type='hidden' id='newName' name='newName'/>
375         <input type='hidden' id='saveString' name='saveString'/>
376         <input type='hidden' id='deleteIds' name='deleteIds'/>
377         <input type='hidden' id='renameId' name='renameId'/>
378         
379         
380         <tr id="def" height="0">
381                 <td colspan="10"></td>
382         </tr>
383         
384         <tr width="100%" ><td valign='top' width='300'>
385         <% if(isFolderAllowed) { %>
386                 <div id="expandedTree" style="position:absoulte;top:0;width:100%;height:25px;display:none;">
387                 <table width="100%" border="0" cellspacing="1" align="left">
388                         <tr>
389                                 <td colspan=2 align="right"><img border="0" src="<%= AppUtils.getImgFolderURL() %>tree/grnarrowleft.gif" onClick="javascript:hideTree()"  alt='Hide Folder Tree' style='cursor:hand'>
390                                         &nbsp;&nbsp;&nbsp;
391                                 </td>
392                                 
393                         </tr>
394                         <tr>
395                                 <td colspan=3>
396                                         <div id="scrollableTable" class="scrollableTable" style="position:absoulte;top:0;width:100%;height:430px;display:block;overflow:scroll">
397                                                 <table id="folderTree" width="100%" border="0" cellspacing="1" align="center">
398                                                         <tr>
399                                                                 <td nowrap>     
400                                                                 </td>
401                                                         </tr>
402                                                 </table>
403                                         </div>
404                                         <div id='loadingMessageDiv' style="position:absolute;top:150;left:650;width:40px;height:25px;display:none">
405                                                 <table><tr bgcolor='red'><td class=rcolheader> Loading...</td></tr></table>
406                                         </div>                  
407                                         
408                                 </td>                           
409                         </tr>
410                         <tr>
411                                 <td class=rtabletext width='100%'>
412                                         <a href="#" onclick='javascript:createFolder();'>New Folder</a> | 
413                                         <a href="#" onclick='javascript:deleteFolder();'>Delete Folder</a> | 
414                                         <a href="#" onclick='javascript:runReport();'>Run</a> | 
415                                         <a href="#" onclick="treeObj.collapseAll()">Collapse</a> | 
416                                         <a href="#" onclick="treeObj.expandAll()">Expand</a> |
417                                         <a href="#" onclick="javascript:refreshTree()">Refresh Tree</a>
418                                 </td>
419                                 <td ></td>
420                         </tr>
421                         
422                 </table>
423                 </div>
424                 <% } %>
425                 
426
427         </td></tr>
428         <% if(isFolderAllowed) { %>
429         <div id="collapsedTree" style="position:absolute;top=122;display:block;width:550">
430                 <img border="0" src="<%= AppUtils.getImgFolderURL() %>tree/grnarrowright.gif" onClick="javascript:displayTree()"  alt='Show Folder Tree' style='cursor:hand'> 
431         </div>
432         <% } %>
433         
434
435
436 </form>
437
438
439 <script type="text/javascript"> 
440         
441         <% if(isFolderAllowed) { %>
442                 document.body.scroll="no";
443         <% } %>
444         
445         //window.onscroll = floatMenu;
446         window.onresize = resizeWindow;
447         
448         function floatMenu()
449         {
450                 var elem = document.getElementById("def");
451                 var sy = document.body.scrollTop;
452                 //elem.style.left = startX;
453                 if (sy == null || sy == 0)
454                         sy = 1;
455                 elem.height = sy ;
456         }
457         
458
459         function fillFolderStructure(data){
460                 document.getElementById("folderTree").childNodes[0].childNodes[0].childNodes[0].innerHTML=data;
461                 initializeTree();
462                 hideFolderInfo();
463
464         }
465         
466         function initializeTree(){
467                 treeObj = new JSDragDropTree();
468                 treeObj.setTreeId('reportFolderTree');
469                 treeObj.setMaximumDepth(7);
470                 treeObj.setMessageMaximumDepthReached('Maximum depth reached'); // If you want to show a message when maximum depth is reached, i.e. on drop.
471                 treeObj.initTree(selectedFolderId);
472                 treeObj.expandAll();
473                 treeObj.collapseAll();
474                 if (selectedFolderId && selectedFolderId != '0')
475                         treeObj.showSelectedNode(selectedFolderId);
476
477         }
478         
479         if (doCollapse == 'N')
480                 refreshTree();
481 </script>
482                                         
483