/* exported resizeHeight setSearchFocus addRemoveFileInTreeView toggleTree */ var projectTree, userTree, customTree, listFiles={}, loadEditor={}, projectStructure={}; function refreshTreeheight(){ if (projectTree) projectTree.refreshHeight(); if (userTree) userTree.refreshHeight(); } function resizeHeight(h){ document.id('tree_container').style.height=(h-40)+'px'; document.id('userTree_container').style.height=(h-40)+'px'; document.id('customTree_container').style.height=(h-40)+'px'; refreshTreeheight(); } function setSearchFocus(){ if (document.id("pv_btn").hasClass('tabSelected')){ projectTree.searchInput.focus(); } else userTree.searchInput.focus(); } function openFile(fileName,type,props){ if (window.parent && window.parent.newCurrentObj) window.parent.newCurrentObj(fileName,type,props); else{ window.open(getOpenUrl(fileName,type,props)); } } var painterList={ portlet:{nodeName:'Portlet',index:0}, pagelet:{nodeName:'Pagelet',index:1,skin:true,jsp_system:true}, plan:{nodeName:'Plan',index:2}, query:{nodeName:'Query',index:3,on_off:true,custom:true}, zoom:{nodeName:'Zoom',index:4,custom:true,user_group:true}, report:{nodeName:'Report',index:5,custom:true}, smartreport:{nodeName:'SmartReport',index:6,custom:true}, chart:{nodeName:'Chart',index:7,custom:true,user_group:true}, module:{nodeName:'Module',index:8}, scan:{nodeName:'Scan',index:9}, menu:{nodeName:'Menu',index:10,on_off:true,custom:true,user_group:true,company:true}, decorators:{nodeName:'Decorators',index:11,skin:true}, cssclass:{nodeName:'CSS Class',index:12,skin:true}, maskparameters:{nodeName:'Mask parameters',index:13,custom:true,user_group:true}, interfaces:{nodeName:'Interfaces',index:14}, visualpivot:{nodeName:'VisualPivot',index:15,custom:true} } var userStructure={} function loadFiles(){ for (var painter in painterList){ if (painterList[painter].on_off && painterList[painter].custom){ // menu, query var mode=["online","offline"]; if (!listFiles[painter]) listFiles[painter]={}; for (var j=0; j b.toLowerCase()) return 1; return 0; }); break; case "group": keys=keys.sort(function (a,b){ a=groupObj[a.substring(1)]||a b=groupObj[b.substring(1)]||b if (a.toLowerCase() < b.toLowerCase()) return -1; if (a.toLowerCase() > b.toLowerCase()) return 1; return 0; }); break; case "company": keys=keys.sort(function (a,b){ a=companyObj[a.substring(1)]||a b=companyObj[b.substring(1)]||b if (a.toLowerCase() < b.toLowerCase()) return -1; if (a.toLowerCase() > b.toLowerCase()) return 1; return 0; }); break; default: keys=keys.sort(function (a,b){ if (a.toLowerCase() < b.toLowerCase()) return -1; if (a.toLowerCase() > b.toLowerCase()) return 1; return 0; }); } return keys; } function toggleTree(el){ if (el.id=='uv_btn'){ document.id('userTree_container').style.display='block'; document.id('tree_container').style.display='none'; document.id('customTree_container').style.display='none'; document.id('pv_btn').removeClass('tabSelected'); document.id('cv_btn').removeClass('tabSelected'); document.id('uv_btn').addClass('tabSelected'); if (!userTree) createUserTree(); userTree.refreshHeight(); userTree.searchInput.focus(); } else if (el.id=='cv_btn'){ document.id('customTree_container').style.display='block'; document.id('tree_container').style.display='none'; document.id('userTree_container').style.display='none'; document.id('pv_btn').removeClass('tabSelected'); document.id('uv_btn').removeClass('tabSelected'); document.id('cv_btn').addClass('tabSelected'); if (!customTree) createCustomTree(); customTree.refreshHeight(); customTree.searchInput.focus(); } else{ document.id('tree_container').style.display='block'; document.id('userTree_container').style.display='none'; document.id('customTree_container').style.display='none'; document.id('pv_btn').addClass('tabSelected'); document.id('uv_btn').removeClass('tabSelected'); document.id('cv_btn').removeClass('tabSelected'); projectTree.refreshHeight(); projectTree.refreshNanoScroll(); projectTree.searchInput.focus(); } } function createTree(container,json){ var tree = new Mif.Tree.Search({ container: document.id(container), types: {// node types folder:{ openIcon: 'PS-tree-submenu-open-icon',//css class open icon closeIcon: 'PS-tree-submenu-close-icon'// css class close icon } }, dfltType:'folder',//default node type height: 24, //node height, nanoScroll:true }); var refreshBtn = new Element('div',{ 'class':'mif-tree-btn-refresh', type:'button' }).inject(tree.searchBtn,'after'); refreshBtn.addEvent('click',function(){ listFiles={}; tree.searchInput.value=''; tree.filter(tree.root,""); tree.root.toggle(false); tree.root.toggle('open'); tree.refreshNanoScroll(); }) tree.load({ json: json }); tree.root.toggle('open'); return tree; } function addRemoveFileInTreeView(action,obj){ var name=obj.name var type=obj.type if (type=='visualquery') type='query'; else if (type=='portalzoom') type='zoom' else if (type=='scandoc') type='scan' else if (type=='pageleteditor') type='pagelet' if (!painterList[type]) return; var index=painterList[type].index; if (!listFiles[type]) return; function sort(a,b){ if (a.toLowerCase() < b.toLowerCase()) return -1; if (a.toLowerCase() > b.toLowerCase()) return 1; return 0; } function customSort(a,b){ if (a.name.toLowerCase() < b.name.toLowerCase()) return -1; if (a.name.toLowerCase() > b.name.toLowerCase()) return 1; return 0; } function updateTree(tree,node){ tree.filter(node,filter) tree.root.toggle(false) tree.root.toggle('open') tree.refreshNanoScroll(); } var theme=obj.parms.folder_path || '' var custom=obj.parms.custom; var line=obj.parms.offlinemode var filter=Lower(projectTree.searchInput.get('value')); var customFilter=userTree?Lower(userTree.searchInput.get('value')):'' var fileNameWithExt=getFileNameWithExtension(name,type.toLowerCase(),line) var i, ii, update, indexFile, cd, files, updateCustom, ug, fileName; var indexTheme; if (!Empty(theme)){ // css,pagelet,decorators if (listFiles[type][theme]){ indexFile=LibJavascript.Array.indexOf(listFiles[type][theme].files,fileNameWithExt) update=false; indexTheme=-1 if (indexFile==-1 && action=='add'){ listFiles[type][theme].files.push(fileNameWithExt); listFiles[type][theme].files=listFiles[type][theme].files.sort(sort); for (i=projectTree.root.children[index].children.length-1;i>=0 && indexTheme==-1; i--){ if (projectTree.root.children[index].children[i]._name==theme) indexTheme=i; } update=true; } else if (indexFile!=-1 && action=='remove'){ listFiles[type][theme].files.splice(indexFile,1); update=true; } if (update && ((filter!='' && Lower(name).indexOf(filter)!=-1) || (indexTheme!=-1 && filter=='' && projectTree.root.children[index].state.loaded && projectTree.root.children[index].children[indexTheme].state.loaded))){ updateTree(projectTree,projectTree.root.children[index]) } } } else if (custom!=null){ if (line==null){ //zoom, maschere, report, chart, smartreport cd=custom?'custom':'def' files=custom?'customFiles':'files' if (listFiles[type][files]){ indexFile=LibJavascript.Array.indexOf(listFiles[type][files],fileNameWithExt) update=false; if (indexFile==-1 && action=='add'){ listFiles[type][files].push(fileNameWithExt) listFiles[type][files].sort(sort) if (files=='files'){ i = LibJavascript.Array.indexOf(listFiles[type][files],'Custom') if (i!=-1){ listFiles[type].files.splice(i,1) listFiles[type].files=['Custom'].concat(listFiles[type].files) } } update=true; } else if (indexFile!=-1 && action=='remove'){ listFiles[type][files].splice(indexFile,1) update=true; } if (update){ if (painterList[type].user_group){ fileName=getFileName(name,type)[0] var tableName=""; var isZoom=type=='zoom' if (isZoom){ fileName=name.split('[')[0] tableName=name.split('[')[1]; tableName=tableName.substring(0,tableName.length-1); } var userOrGroup=fileName.split('_'); ug=''; if (userOrGroup.length>1 && (type!='maskparameters' || !Empty(userOrGroup[userOrGroup.length-2]))){ //potrebbe essere la variante di una maschera userOrGroup=userOrGroup[userOrGroup.length-1]; ug=IsUser(userOrGroup)?'user':IsGroup(userOrGroup)?'group':'' if (!Empty(ug)){ fileName=fileName.substring(0,(fileName.length-1)-userOrGroup.length) updateCustom=false; if (action=='add'){ if (userTree && userStructure[cd] && userStructure[cd][ug]){ initUserStructure(type,cd,null,null,ug,userOrGroup) userStructure[cd][ug][userOrGroup][type].file.push({name:fileName+(isZoom?'['+tableName+']':''),realName:name}) userStructure[cd][ug][userOrGroup][type].file.sort(customSort) updateCustom=true; } } else { projectStructure[type][cd][ug][userOrGroup].splice(LibJavascript.Array.indexOf(projectStructure[type][cd][ug][userOrGroup],fileName+(isZoom?'.'+tableName:'')),1); if (projectStructure[type][cd][ug][userOrGroup].length==0) delete projectStructure[type][cd][ug][userOrGroup] if (userTree && userStructure[cd] && userStructure[cd][ug][userOrGroup]){ ii=-1; for (i=0; i=0 && indexCustom==-1; i--){ if (projectTree.root.children[index].children[i]._name=='Custom') indexCustom=i; } if (filter!='' || projectTree.root.children[index].children[indexCustom].state.loaded) updateTree(projectTree,projectTree.root.children[index]) } else updateTree(projectTree,projectTree.root) } } } } else { //menu, query line=line?'offline':'online' cd=custom?'custom':'def' files=custom?'customFiles':'files' if (listFiles[type][line][files]){ indexFile=LibJavascript.Array.indexOf(listFiles[type][line][files],fileNameWithExt); if (indexFile==-1 && action=='add'){ listFiles[type][line][files].push(fileNameWithExt) listFiles[type][line][files].sort(sort) if (files=='files'){ i = LibJavascript.Array.indexOf(listFiles[type][line][files],('Custom')) if (i!=-1){ listFiles[type][line].files.splice(i,1) listFiles[type][line].files=['Custom'].concat(listFiles[type][line].files) } } update=true } else if(indexFile!=-1 && action=='remove'){ listFiles[type][line][files].splice(indexFile,1) update=true; } if (update){ if (type=='menu'){ fileName=getFileName(name,Lower[type])[0]; var splitName=fileName.split('_'); if (splitName.length>1){ var company=splitName[splitName.length-1] userOrGroup=''; if (IsCompany(company)){ if (splitName.length>2){ userOrGroup=splitName[splitName.length-2]; ug=IsUser(userOrGroup)?'user':IsGroup(userOrGroup)?'group':'' } else ug=''; } else { company=''; userOrGroup=splitName[splitName.length-1]; ug=IsUser(userOrGroup)?'user':IsGroup(userOrGroup)?'group':'' } updateCustom=false; if (!Empty(company)){ name=name.substring(0,(name.length-1)-company.length) if (action=='add'){ initProjectStructure(type,cd,line,company); if (!Empty(ug)){ name=name.substring(0,(name.length-1)-userOrGroup.length) if (userTree && userStructure[cd]){ initUserStructure('menu',cd,line,company,ug,userOrGroup); userStructure[cd].company[company][ug][userOrGroup].menu[line].file.push({name:name,realName:name+'_'+userOrGroup+'_'+company}) userStructure[cd].company[company][ug][userOrGroup].menu[line].file.sort(customSort) updateCustom=true; } } else { if (userTree && userStructure[cd]){ initUserStructure('menu',cd,line,company,null,null); userStructure[cd].company[company].menu[line].file.push({name:name,realName:name+'_'+company}) userStructure[cd].company[company].menu[line].file.sort(customSort) updateCustom=true; } } } else { //remove if (Empty(ug)){ projectStructure[type][line][cd].company[company].files.splice(LibJavascript.Array.indexOf(projectStructure[type][line][cd].company[company].files,name),1) if (projectStructure[type][line][cd].company[company].files.length==0){ delete projectStructure[type][line][cd].company[company].files if (projectStructure[type][line][cd].company[company].user=={} && projectStructure[type][line][cd].company[company].group=={}) delete projectStructure[type][line][cd].company[company] } if (userTree && userStructure[cd] && userStructure[cd].company[company]){ ii=-1; for (i=0; i=0 && indexCustom==-1; i--){ if (projectTree.root.children[index].children[indexLine].children[i]._name=='Custom') indexCustom=i; } if (filter!='' || projectTree.root.children[index].children[indexLine].children[indexCustom].state.loaded) updateTree(projectTree,projectTree.root.children[index].children[indexLine]) } else updateTree(projectTree,projectTree.root.children[index]) } } } } } else{ indexFile=LibJavascript.Array.indexOf(listFiles[type].files,fileNameWithExt) update=false; if (indexFile==-1 && action=='add'){ listFiles[type].files.push(fileNameWithExt); listFiles[type].files=listFiles[type].files.sort(sort); if (painterList[type].skin){ theme=getTheme(); indexTheme; for (i=0; i3 && painterList[ancestorsName[3]]) ) { if (!listFiles[ancestorsName[1]][ancestorsName[0]]) listFiles[ancestorsName[1]][ancestorsName[0]]={} if (painterList[ancestorsName[1]] && painterList[ancestorsName[1]].on_off){ // query|menu listFiles[ancestorsName[1]][ancestorsName[0]].files=getPainterFiles(ancestorsName[1],{offlinemode:node._name=='Offline',custom:false}) } else if (painterList[ancestorsName[1]] && (painterList[ancestorsName[1]].skin || painterList[ancestorsName[1]].jsp_system || ancestorsName[1]=='interfaces')){ //pagelet|decorators|cssclass listFiles[ancestorsName[1]][ancestorsName[0]].files=getPainterFiles(ancestorsName[1],{folder_path:node._name}) } else if (painterList[ancestorsName[1]] && painterList[ancestorsName[1]].user_group){ // sono su un utente o gruppo //maschere|chart|zoom return { json: GetList(projectStructure[ancestorsName[1]].def.user[node._name]||projectStructure[ancestorsName[1]].def.group[node._name]||[],ancestorsName[1],_filter,node) }; } else if (painterList[ancestorsName[2]] && painterList[ancestorsName[2]].user_group && !painterList[ancestorsName[2]].on_off){// sono su un utente o gruppo custom //maschere|chart|zoom if (ancestorsName[1]=="custom"){ return { json: GetList( projectStructure[ancestorsName[2]].custom.user[node._name] || projectStructure[ancestorsName[2]].custom.group[node._name] || [], ancestorsName[2], _filter,node) }; } } else if ( (painterList[ancestorsName[2]] && painterList[ancestorsName[2]].company) || (painterList[ancestorsName[3]] && painterList[ancestorsName[3]].company) || (painterList[ancestorsName[4]] && painterList[ancestorsName[4]].company) ) { // menu cd=ancestorsName[1]=='custom'?'custom':'def'; var line; if (ancestorsName[1]=='online' || ancestorsName[1]=='offline') line=ancestorsName[1] else if (ancestorsName[2]=='online' || ancestorsName[2]=='offline') line=ancestorsName[2] else line=ancestorsName[3] if (node._name.charAt(0)=='c'){ return { json: GetList(projectStructure.menu[line][cd].company[node._name]||[],'menu',_filter,node) }; } else { if (ancestorsName[1]=='online' || ancestorsName[1]=='offline') cd='def' if (cd=='custom' || ancestorsName[1]=='online' || ancestorsName[1]=='offline'){ return { json: GetList(projectStructure.menu[line][cd].user[node._name]||projectStructure.menu[line][cd].group[node._name]||[],'menu',_filter,node) }; } else { // figlio di un'azienda if (ancestorsName[2]=='custom') cd='custom' else cd='def' return { json: GetList(projectStructure.menu[line][cd].company[ancestorsName[1]].user[node._name]||projectStructure.menu[line][cd].company[ancestorsName[1]].group[node._name]||[],'menu',_filter,node) } } } } } return { json: GetList(listFiles[ancestorsName[1]][ancestorsName[0]].files||[],Lower(ancestorsName[1]),_filter,node) }; } } }; document.id("tree_container").addEvent("dblclick", function(evt){ if (evt.target.tagName=='SPAN'){ var el=projectTree.getSelected(); var custom; if (el){ var type=el.type[0]||el.type; if (!el.loadable && el._name!=''){ var parentNodeName=el.parentNode.$name || el.parentNode._name; if (!el.parentNode.parentNode) return; var grandParentNodeName=el.parentNode.parentNode._name var path='' if (type=='decorators' && parentNodeName!='Decorators') path=parentNodeName; else if (type=='cssclass' && parentNodeName!='CSS Class') path=parentNodeName; else if (type=='portlet' && parentNodeName=='jsp-system') path='jsp-system'; else if (type=='interfaces') path=parentNodeName; if (type=='zoom' || type=='maskparameters' || type=='chart'){ custom=parentNodeName=='Custom'||grandParentNodeName=='Custom'; openFile(el.$name,type=='zoom'?'portalzoom':type,{custom:custom}) } else if (type=='pagelet'){ var pageType = (new JSURL('../servlet/JSPReader?action=getType&name='+el._name+'&folder_path='+(parentNodeName=='Pagelet'?'':getPainterPath(parentNodeName,'pagelet')),true).Response()).toLowerCase(); openFile(el.$name,pageType,{folder_path:parentNodeName=='Pagelet'?'':parentNodeName}) } else if (type=='menu'){ if (parentNodeName=='Online' || parentNodeName=='Offline'){ openFile(el.$name,'menu',{offlinemode:parentNodeName=='Offline',custom:false}) } else { var grandParentNode=el.parentNode.parentNode; grandParentNodeName=grandParentNode._name; while (grandParentNodeName!='Online' && grandParentNodeName!='Offline'){ parentNodeName=grandParentNodeName; grandParentNode=grandParentNode.parentNode; grandParentNodeName=grandParentNode._name; } custom=parentNodeName=='Custom'; openFile(el.$name,'menu',{offlinemode:grandParentNodeName=='Offline',custom:custom}) } } else if (type=="query"){ if (parentNodeName=='Offline' || parentNodeName=='Online'){ openFile(el.$name,'visualquery',{offlinemode:parentNodeName=='Offline',custom:false}) } else { parentNodeName=el.parentNode.parentNode._name openFile(el.$name,'visualquery',{offlinemode:parentNodeName=='Offline',custom:true}) } } else if (type=="report" || type=="smartreport"){ custom=parentNodeName=='Custom'; openFile(el.$name,type,{custom:custom}) } else{ if (type=="scan") type='scandoc'; openFile(el.$name,type,{folder_path:path}) } } } } }) } function GetList(arr,type,filter,node,onlyCustom) { //funzione che riempie la projectStructure e ritorna gli oggetti da mostrare nella treeview type=Lower(Strtran(type," ","")); filter=Lower(filter) var result=[]; var loadable,name, ug, cd, userOrGroup, realName; var i, line, keys; for (i=0;i1){ userOrGroup=userOrGroup[userOrGroup.length-1]; if (IsUser(userOrGroup) || IsGroup(userOrGroup)) zoomName=zoomName.substring(0,(zoomName.length-1)-userOrGroup.length) else userOrGroup=''; } else userOrGroup=''; } if (Lower(zoomName).indexOf(filter)!=-1 || zoomName=='Custom' || Lower(tableName).indexOf(filter)!=-1){ ug='user' if (userOrGroup.charAt(0)=='g') ug='group'; if (userOrGroup!=''){ cd=onlyCustom?'custom':node._name=='Custom'?'custom':'def'; initProjectStructure('zoom',cd,null,null,ug,userOrGroup); if (projectStructure.zoom[cd][ug][userOrGroup].indexOf(zoomName+'.'+tableName.substring(0,tableName.length-1))==-1) projectStructure.zoom[cd][ug][userOrGroup].push(zoomName+'.'+tableName.substring(0,tableName.length-1)); } else { realName='' if (node._name=='Zoom' || node._name=='Custom') realName=name; else{ realName=name.split('[') realName=realName[0]+'_'+node._name+'['+realName[1] } result.push(getMifTreePropertyObject(name,type,loadable,true,realName)); // sistemare } } } else if (type=='maskparameters' || type=='chart'){ userOrGroup='' if (node._name=='Mask parameters' || node._name=='Custom' || node._name=='Chart'){ userOrGroup=name.split('_'); if (userOrGroup.length>1 && !Empty(userOrGroup[userOrGroup.length-2])){ // devo controllare che non sia una varinate userOrGroup=userOrGroup[userOrGroup.length-1]; if (IsUser(userOrGroup) || IsGroup(userOrGroup)) name=name.substring(0,(name.length-1)-userOrGroup.length); else userOrGroup=''; } else userOrGroup='' } if (Lower(name).indexOf(filter)!=-1 || name=='Custom'){ ug='user'; if (userOrGroup.charAt(0)=='g') ug='group'; if (userOrGroup!=''){ cd=onlyCustom?'custom':node._name=='Custom'?'custom':'def'; initProjectStructure(type,cd,null,null,ug,userOrGroup) if (projectStructure[type][cd][ug][userOrGroup].indexOf(name)==-1) projectStructure[type][cd][ug][userOrGroup].push(name); } else { realName=''; if (node._name=='Mask parameters' || node._name=='Custom' || node._name=='Chart') realName=name; else // utente o gruppo realName=name+'_'+node._name result.push(getMifTreePropertyObject(name,type,loadable,true,realName)); } } } else if (type=='menu'){ userOrGroup=''; var company=''; var parentNodeName=node.parentNode._name; if (node._name=='Custom' || node._name=='Offline' || node._name=='Online'){ var tmpArr=name.split('_'); if (tmpArr.length>1){ company=tmpArr[tmpArr.length-1] if (IsCompany(company)){ name=name.substring(0,(name.length-1)-company.length) if (tmpArr.length>2) userOrGroup=tmpArr[tmpArr.length-2] } else { company=''; userOrGroup=tmpArr[tmpArr.length-1]; } } if (userOrGroup!=''){ if (IsUser(userOrGroup) || IsGroup(userOrGroup)) name=name.substring(0,(name.length-1)-userOrGroup.length) else userOrGroup=''; } } if (Lower(name).indexOf(filter)!=-1 || name=='Custom'){ cd=onlyCustom?'custom':node._name=='Custom'?'custom':'def'; if (node._name=='Custom') line=Lower(node.parentNode._name); else line=Lower(node._name); ug='user'; if (userOrGroup!=''){ if (userOrGroup.charAt(0)=='g') ug='group' if (company==''){ initProjectStructure('menu',cd,line,null,ug,userOrGroup) if (projectStructure.menu[line][cd][ug][userOrGroup].indexOf(name)==-1) projectStructure.menu[line][cd][ug][userOrGroup].push(name); } else { initProjectStructure('menu',cd,line,company,ug,userOrGroup) if (projectStructure.menu[line][cd].company[company][ug][userOrGroup].indexOf(name)==-1) projectStructure.menu[line][cd].company[company][ug][userOrGroup].push(name) } } else if (company!=''){ initProjectStructure('menu',cd,line,company,null,null) if (projectStructure.menu[line][cd].company[company].files.indexOf(name)==-1) projectStructure.menu[line][cd].company[company].files.push(name); } else { realName=''; if (node._name=='Online' || node._name=='Offline' || node._name=='Custom') realName=name; else if (parentNodeName=='Online' || parentNodeName=='Offline' || parentNodeName=='Custom') // utente o gruppo o azienda realName=name+'_'+node._name else // azienda + utente o gruppo realName=name+'_'+node._name+'_'+parentNodeName; result.push(getMifTreePropertyObject(name,type,loadable,true,realName)); } } } else if (type=='query'){ if (loadable || Lower(name).indexOf(filter)!=-1) result.push(getMifTreePropertyObject(name,type,loadable,true,name)); } else { if ((loadable) || (!loadable && Lower(name).indexOf(filter)!=-1)){ result.push(getMifTreePropertyObject(name,type,loadable,false,name)); } } } } if ((type=='zoom' && (node._name=='Zoom' || node._name=='Custom')) || (type=='maskparameters' && (node._name=='Mask parameters' || node._name=='Custom')) || (type=='chart' && (node._name=='Chart' || node._name=='Custom'))){ cd=onlyCustom?'custom':node._name=='Custom'?'custom':'def'; var painter=node._name=='Custom'?node.parentNode._name:node._name; painter=Strtran(Lower(painter),' ',''); keys=getElementsSorted(projectStructure[painter][cd].group,'group'); for (i=0; i3 && painterList[ancestorsName[3]]) ) { if (!listFiles[ancestorsName[1]][ancestorsName[0]]) listFiles[ancestorsName[1]][ancestorsName[0]]={} if (painterList[ancestorsName[1]] && painterList[ancestorsName[1]].on_off){ // query|menu listFiles[ancestorsName[1]][ancestorsName[0]].customFiles=getPainterFiles(ancestorsName[1],{offlinemode:node._name=='Offline',custom:true}) } else if (painterList[ancestorsName[1]] && painterList[ancestorsName[1]].user_group){ // sono su un utente o gruppo //maschere|chart|zoom return { json: GetList( projectStructure[ancestorsName[1]].custom.user[node._name] || projectStructure[ancestorsName[1]].custom.group[node._name] || [], ancestorsName[1], _filter, node, true) }; } else if ( (painterList[ancestorsName[2]] && painterList[ancestorsName[2]].company) || (painterList[ancestorsName[3]] && painterList[ancestorsName[3]].company) || (painterList[ancestorsName[4]] && painterList[ancestorsName[4]].company) ) { // menu var line; if (ancestorsName[1]=='online' || ancestorsName[1]=='offline') line=ancestorsName[1] else if (ancestorsName[2]=='online' || ancestorsName[2]=='offline') line=ancestorsName[2] else line=ancestorsName[3] if (node._name.charAt(0)=='c'){ return { json: GetList(projectStructure.menu[line].custom.company[node._name]||[],'menu',_filter,node,true) }; } else { if (ancestorsName[1]=='online' || ancestorsName[1]=='offline'){ return { json: GetList(projectStructure.menu[line].custom.user[node._name]||projectStructure.menu[line].custom.group[node._name]||[],'menu',_filter,node,true) }; } else { // figlio di un'azienda return { json: GetList(projectStructure.menu[line].custom.company[ancestorsName[1]].user[node._name]||projectStructure.menu[line].custom.company[ancestorsName[1]].group[node._name]||[],'menu',_filter,node) } } } } } return { json: GetList(listFiles[ancestorsName[1]][ancestorsName[0]].customFiles||[],Lower(ancestorsName[1]),_filter,node,true) }; } } }; document.id("customTree_container").addEvent("dblclick", function(evt){ if (evt.target.tagName=='SPAN'){ var el=customTree.getSelected(); if (el){ var type=el.type[0]||el.type; if (!el.loadable && el._name!=''){ var parentNodeName=el.parentNode.$name || el.parentNode._name; if (!el.parentNode.parentNode) return; var grandParentNodeName=el.parentNode.parentNode._name if (type=='zoom' || type=='maskparameters' || type=='chart'){ openFile(el.$name,type=='zoom'?'portalzoom':type,{custom:true}); } else if (type=='menu'){ if (parentNodeName=='Online' || parentNodeName=='Offline'){ openFile(el.$name,'menu',{offlinemode:parentNodeName=='Offline',custom:true}) } else { var grandParentNode=el.parentNode.parentNode; grandParentNodeName=grandParentNode._name; while (grandParentNodeName!='Online' && grandParentNodeName!='Offline'){ parentNodeName=grandParentNodeName; grandParentNode=grandParentNode.parentNode; grandParentNodeName=grandParentNode._name; } openFile(el.$name,'menu',{offlinemode:grandParentNodeName=='Offline',custom:true}) } } else if (type=="query"){ if (parentNodeName=='Offline' || parentNodeName=='Online'){ openFile(el.$name,'visualquery',{offlinemode:parentNodeName=='Offline',custom:true}) } else { parentNodeName=el.parentNode.parentNode._name openFile(el.$name,'visualquery',{offlinemode:parentNodeName=='Offline',custom:true}) } } else if (type=="report" || type=="smartreport"){ openFile(el.$name,type,{custom:true}) } } } } }) } function FillUserStructure(fileName,painter,mode,type,filter){ var realFileName=fileName; filter=Lower(filter) var table=''; if (painter=='zoom'){ fileName=fileName.split('['); table='['+fileName[1]; fileName=fileName[0]; } var name=fileName.split('_'); var userOrGroup, _usGr; if (name.length>1){ if (painter=='Mask parameters' && Empty(name[name.length-2])) // � una variante return; var company=name[name.length-1]; if (IsCompany(company)){ fileName=fileName.substring(0,(fileName.length-1)-company.length) _usGr=''; if (name.length>2){ userOrGroup=name[name.length-2]; if (IsGroup(userOrGroup)) _usGr='group'; else if (IsUser(userOrGroup)) _usGr='user'; if (_usGr!=''){ fileName=fileName.substring(0,(fileName.length-1)-userOrGroup.length) if (Lower(fileName).indexOf(filter)!=-1){ initUserStructure(painter,type,mode,company,_usGr,userOrGroup) if (mode!='') userStructure[type].company[company][_usGr][userOrGroup][painter][mode].file.push({name:fileName+table,realName:realFileName}); else userStructure[type].company[company][_usGr][userOrGroup][painter].file.push({name:fileName+table,realName:realFileName}); } } } if ((name.length<=2 || _usGr=='') && Lower(fileName).indexOf(filter)!=-1){ initUserStructure(painter,type,mode,company,null,null) if (mode!='') userStructure[type].company[company][painter][mode].file.push({name:fileName+table,realName:realFileName}); else userStructure[type].company[company][painter].file.push({name:fileName+table,realName:realFileName}); } } else{ company=''; _usGr=''; userOrGroup=name[name.length-1]; if (IsGroup(userOrGroup)) _usGr='group'; else if (IsUser(userOrGroup)) _usGr='user'; if (_usGr!=''){ fileName=fileName.substring(0,(fileName.length-1)-userOrGroup.length) if (Lower(fileName).indexOf(filter)!=-1){ initUserStructure(painter,type,mode,null,_usGr,userOrGroup) if (mode!='') userStructure[type][_usGr][userOrGroup][painter][mode].file.push({name:fileName+table,realName:realFileName}); else userStructure[type][_usGr][userOrGroup][painter].file.push({name:fileName+table,realName:realFileName}); } } } } } function initUserStructure(p,cd,l,c,ug,name_ug){ //cd=default/custom, c=company , ug=user/group, name_ug=name user/group, p=painter, l=Online/Offline if (!Empty(c)){ if (!userStructure[cd].company[c]) userStructure[cd].company[c]={group:{},user:{}}; if (!Empty(p)){ if (Empty(ug)){ if (!userStructure[cd].company[c][p]) userStructure[cd].company[c][p]={file:[]} if (l!=''){ if (!userStructure[cd].company[c][p][l]) userStructure[cd].company[c][p][l]={file:[]} } } else { if (!userStructure[cd].company[c][ug][name_ug]) userStructure[cd].company[c][ug][name_ug]={} if (!userStructure[cd].company[c][ug][name_ug][p]) userStructure[cd].company[c][ug][name_ug][p]={file:[]} if (l!=''){ if (!userStructure[cd].company[c][ug][name_ug][p][l]) userStructure[cd].company[c][ug][name_ug][p][l]={file:[]} } } } } else { if (!userStructure[cd][ug][name_ug]) userStructure[cd][ug][name_ug]={}; if (!userStructure[cd][ug][name_ug][p]) userStructure[cd][ug][name_ug][p]={file:[]}; if (l!=''){ if (!userStructure[cd][ug][name_ug][p][l]) userStructure[cd][ug][name_ug][p][l]={file:[]}; } } } function createUserStructure(custom,filter){ filter=Lower(filter) if (custom) userStructure['custom']={company:{},user:{},group:{}} else userStructure['def']={company:{},user:{},group:{}} var painter=["menu"]; var mode=["online","offline"] var files=[]; var name='', i, k; for (i=0; i carico i file for (el in userStructure[def_custom][node.type[0]][node._name]){ result.push(getMifTreePropertyObject(el,el,true,true,el)); } } } else if (ancestorsName.length==4){ parentNode=node.parentNode; if (node.type[0]=='user' || node.type[0]=='group'){ // menu con company + utente|gruppo ancestorsName[1]=company, node=user|group for (el in userStructure[def_custom].company[ancestorsName[1]][node.type[0]][node._name]){ result.push(getMifTreePropertyObject(el,el,true,true,el)); } } else { // painter painter=Strtran(Lower(node._name),' ',''); for (el in userStructure[def_custom][parentNode.type[0]][ancestorsName[1]][painter]){ if (el!='file') result.push(getMifTreePropertyObject(el,painter,true,true,el)); } if (userStructure[def_custom][parentNode.type[0]][ancestorsName[1]][painter].file){ for (i=0; i