/* exported folder_path windowOpen tool previewOpen doLoad openPreviewConfig Copy Paste updateField deleteNode checkField getField maskPreview setToolbars setLights selectItem editQuery newQuery editZoom newZoom reset select_font select_icon loadFieldName openMask loadValue save saveAs writeHTML Help old_name ListObj setJDEF getJDEF */ var CSV_SEP="#!$"; var currentname=""; //nome della configurazione corrente var folder_path='' var newPropObj = null; var nField=0,nGroup=0,nCalculation=0,nLabel=0,nButton=0,nAction=0; var windowOpen=null; var currentVersion; var forceSaveVdm=false;//per forzare il salvataggio (non viene controllato il num di versione in caso di sovrascrittura) var tool='maskparameters'; var zoomMode=false; var listFieldName={},listActionName={},listCalcName={},listButtonName={}; var queryName=""; var field_tree; var emptyGroup=false; var variant='', maskName; var focusProperty=true,previewOpen=false; var toolbars={} var customMask; function doLoad(e, filename, _zoomMode, _queryName, custom){ var form = {}; zoomMode=_zoomMode||false; queryName=_queryName; initTree() // dividere tra nome, utente/gruppo, codice variante var _opener = GetOpener()||window.parent.GetOpener(); //var create=false; if(!Empty(filename) || c_ripristino || window.frameElement?.jdef){ currentname=filename; if(Ctrl("srcform")) Ctrl("srcform").value=currentname if(standalone) document.title=currentname+" - Mask Parameters"; old_name=currentname; if( c_ripristino && sessionStorage.getItem(c_ripristino)){ /** * parent.is_Saving a False, perchè se fosse True i vari tab * non sarebbero più cliccabili e quindi non si potrebbe lavorare * sugli altri Tab */ parent.is_Saving = false; form = JSON.parse(sessionStorage.getItem(c_ripristino))["def"]; currentname = JSON.parse(sessionStorage.getItem(c_ripristino))["name"]; filename = currentname; var m_nFileVersione = JSON.parse(sessionStorage.getItem(c_ripristino))["fileVersione"]; form.customVdm = JSON.parse(sessionStorage.getItem(c_ripristino))["custom"]; customMask = form.customVdm; sessionStorage.removeItem(c_ripristino); if(window.parent.location.href.indexOf("portalstudio.jsp") < 0){ if(currentname){ save(); } else if(!currentname){ saveAs(); } } } else if(window.frameElement?.jdef){ parent.is_Saving = false; form = JSON.parse(window.frameElement.jdef); m_nFileVersione = window.frameElement.m_nFileVersione ? JSON.parse(window.frameElement.m_nFileVersione) : 0; form.customVdm = window.frameElement.custom ? JSON.parse(window.frameElement.custom) : false; customMask = form.customVdm; window.frameElement.jdef = undefined; window.frameElement.m_nFileVersione = undefined; window.frameElement.custom = undefined; } else { form=loadVDM(currentname,custom); } form = reload(_opener, currentname, form); // form=updateUserGroup(form) // form.configName=currentname; // if (form!=null && form.fields){ // if (_opener && _opener.getConfigObj){ // form=mergeObject(_opener.getConfigObj(),form) // } // FillTree(form); // create=true; // } } if (!form?.fields){ if (_opener && _opener.getConfigObj){ form=_opener.getConfigObj(); currentname=form.configName; form=updateUserGroup(form) FillTree(form) if (formProp.customVdm==null) formProp.customVdm=false; } else{ if (form.error) PSAlert.alert(form.error) currentname = ''; form=getDefaultForm(); formProp = new ZTObjects.formObj(form); field_tree.load({ json: createTree("List fields",[]) }); } } document.id('backcanvas').setStyle('display','block'); FormProperties(); document.id('loading').setStyle('display','none'); create_gadget_pane(); windowResize(); window.addEvent("keydown", function(e) { if (e.control && e.key=="s") { //CTRL-S e.stop(); if (parent.saveTool) parent.saveTool(); } }); currentVersion=form.fileVersion||0; currentVersion = currentVersion ? currentVersion : m_nFileVersione; m_bUpdated=false; toolbars.action = new SPToolbar(ZTObjects.PSToolbarAction, 'sptoolbar_action', { elementToShow: 'all' }); toolbars.preview = new SPToolbar(ZTObjects.PSToolbarPreview, 'sptoolbar_preview', { elementToShow: 'all' }); if ( 'setTitle' in parent){ parent.setTitle(this); toolbars.action.removeElement("new"); toolbars.action.removeElement("save"); toolbars.action.removeElement("saveas"); toolbars.action.removeElement("separator"); } document.id('configPreviewButton').addEvent('click',function(){ document.id('previewConfigDiv').style.display='none' }) } function openPreviewConfig(/*event*/){ document.id('previewConfigDiv').style.display='block' } function updateUserGroup(_obj){ var obj=_obj||{} currentname=currentname.split('__'); if (currentname.length>1) variant=currentname[1]; // variante + utente/gruppo maskName=currentname[0]; if(currentname[currentname.length - 1].lastIndexOf('_')){ let result = []; let splitIndex = currentname[currentname.length - 1].lastIndexOf('_'); result.push(currentname[currentname.length - 1].substring(0, splitIndex)); result.push(currentname[currentname.length - 1].substring(splitIndex + 1)); currentname = result; } //currentname=currentname[currentname.length-1].split('_'); //controllare se ho un user o group var user_group='',u_g=''; if (currentname.length>1 && !Empty(currentname[0])){ user_group=currentname[currentname.length-1] if (user_group.charAt(0)=='g' && parseInt(user_group.substring(1,user_group.length),10)==user_group.substring(1,user_group.length)){ u_g='group' variant=variant.substring(0,variant.length-(user_group.length+1)) if (Empty(variant)) maskName=maskName.substring(0,maskName.length-(user_group.length+1)) } else if (parseInt(user_group,10)==user_group){ u_g='user' variant=variant.substring(0,variant.length-(user_group.length+1)) if (Empty(variant)) maskName=maskName.substring(0,maskName.length-(user_group.length+1)) } else user_group=''; } obj.user_group=u_g; if (!Empty(u_g)) obj[u_g]=u_g=='user'?user_group:user_group.substring(1,user_group.length); currentname=maskName+(!Empty(variant)?'__'+variant:'')+(!Empty(u_g)?'_'+user_group:'') return obj; } function initTree(){ Mif.Tree.UID=1; field_tree = new Mif.Tree({ container: document.id('fieldListContainer'),// tree container initialize: function(){ new Mif.Tree.Drag(this, { onDrag: function(){ if ((this.target && this.target.type[0] != 'group') && this.where == 'inside'){ this.where = 'notAllowed'; } else if (this.current && this.current.type[0]=='group' && (this.where=='inside' || (this.target && this.target.parentNode && this.target.parentNode.type[0]=='group'))) this.where = 'notAllowed'; }, onStart: function(){ }, onComplete: function(){ }, onDrop: function(current/*, target, where*/){ current.tree.select(current); if (current.parentNode.type[0]=='group'){ itemsHTML[index].group=current.parentNode.name; } else{ itemsHTML[index].group=''; } updateIcon(); m_bUpdated = true; } }); }, types: {// node types field: { openIcon: 'isFilter',//css class open icon closeIcon: 'isFilter'// css class close icon }, group : { openIcon: 'group',//css class open icon closeIcon: 'group'// css class close icon }, fieldList:{ openIcon: 'root',//css class open icon closeIcon: 'root'// css class close icon } }, dfltType: 'field',//default node type height: 20, //node height onSelect: function(node){ if (node.type[0]=='fieldList') selectElement(); else { if (focusProperty) Ctrl('Form_generic_titleMsg').focus(); selectElement(); if (focusProperty){ if (node.type[0]=='group'){ switch (itemsHTML[index].curTab){ case 'generic': Ctrl('generic_groupName').focus(); break; case 'view': Ctrl('view_mode').focus(); break; } } else if (node.type[0]=='field'){ switch (itemsHTML[index].curTab){ case 'generic': Ctrl('generic_fieldName').focus(); break; case 'functional': Ctrl('functional_objType').focus(); break; case 'view': Ctrl('view_visibility').focus(); break; case 'advanced': Ctrl('advanced_viewType').focus(); break; case 'expression': Ctrl('expression_editUnderCondition').focus(); break; } } else if (node.type[0]=='label'){ switch (itemsHTML[index].curTab){ case 'generic': Ctrl('generic_fieldName').focus(); break; case 'view': Ctrl('view_hiddenGroup').focus(); break; case 'expression': Ctrl('expression_hideUnderCondition').focus(); break; } } else if (node.type[0]=='button'){ switch (itemsHTML[index].curTab){ case 'generic': Ctrl('generic_fieldName').focus(); break; case 'functional': Ctrl('functional_entityType').focus(); break; case 'view': Ctrl('view_hiddenGroup').focus(); break; case 'style': Ctrl('style_styleButton').focus(); break; case 'expression': Ctrl('expression_editUnderCondition').focus(); break; } } } } }, onAdd : function(node/*,current,where*/){node.tree.select(node);}, propertiesEditable :true, deletable : true, onBeforeDelete : function(node){ if (node.type[0]=='group') node.deleteCondition = confirm("Are you sure to delete "+node.name+" and all fields within?") }, onDelete: function(node){ index = null; last_index=null; if(field_tree.root == undefined){} else { removeElement(node) var pNode=node.parentNode if (pNode.type[0]=='group') changeIconGroup(pNode) if (node.type[0]=='group'){ for (var j=0; j (container.getPosition().y+container.getSize().y)) new Fx.Scroll(container).toElement(node,'y') else if ((node.getPosition().y) < (container.getPosition().y)) new Fx.Scroll(container).toElement(node,'y') if (index!=null && (itemsHTML[index].type=='calculation' || itemsHTML[index].type=='action')) document.id(itemsHTML[index].name).removeClass('selected'); if (el && el.type[0]!='fieldList'){ index=el.data.index; Properties(); } else{ last_index=null; index=null; if(!Empty(newPropObj)) newPropObj.HideProperties(); } if (portlet_fake) portlet_fake.maskparameters_Lights.Emit(); if (itemsHTML[index] && itemsHTML[index].viewType=='textbox' && document.id('advanced_labelEmptyValue')){ document.id('advanced_labelEmptyValue').fireEvent('hide'); } } function reset(){ if(!m_bUpdated || (confirm("Changes have not been saved yet.\r\nContinue loosing changes?"))){ currentname = ''; maskName=''; variant=''; var form=getDefaultForm(); formProp = new ZTObjects.formObj(form) FormProperties(); var root=field_tree.root; for (var i=root.children.length-1; i>=0; i--){ root.children[i]._delete(); } itemsHTML=[]; document.id('previewMask').innerHTML=""; document.id('properties').hide(); index=null; last_index=null } } function editQuery(queryName) { queryName=queryName||itemsHTML[index].queryName; if(LRTrim(queryName)=="") PSAlert.alert("No query selected."); else if(parent.newCurrentObj!=null && parent.portalStudioContainer) parent.newCurrentObj(queryName,"visualquery"); else window.open("../visualquery/index.jsp?filename="+queryName,"visualquery","resizable=yes,status=no,toolbar=no,menubar=no,location=no"); } function newQuery() { if(parent.newCurrentObj!=null && parent.portalStudioContainer) parent.newCurrentObj('New','visualquery'); else window.open("../visualquery/index.jsp","visualquery","resizable=yes,status=no,toolbar=no,menubar=no,location=no"); } function editZoom(){ if(LRTrim(itemsHTML[index].linkedTable)=="") PSAlert.alert("No table selected."); else if(LRTrim(itemsHTML[index].zoomConfigName)=="") PSAlert.alert("No zoom configuration selected."); else if(parent.newCurrentObj!=null) parent.newCurrentObj(itemsHTML[index].zoomConfigName+'['+itemsHTML[index].linkedTable+']',"portalzoom"); else window.open("../portalzoom/portalzoomeditor.jsp?&Table="+itemsHTML[index].linkedTable+"&ConfigName="+URLenc(itemsHTML[index].zoomConfigName),"Zoom","height=600,width=780,resizable=yes,status=no,toolbar=no,menubar=no,location=no"); } function newZoom(){ if(LRTrim(itemsHTML[index].linkedTable)=="") PSAlert.alert("No table selected."); else if(parent.newCurrentObj!=null) parent.newCurrentObj('['+itemsHTML[index].linkedTable+']',"portalzoom"); else window.open("../portalzoom/portalzoomeditor.jsp?&Table="+itemsHTML[index].linkedTable,"Zoom","height=600,width=780,resizable=yes,status=no,toolbar=no,menubar=no,location=no"); } function select_font(obj){ SelectFont(obj.refId); } function select_icon(obj){ itemsHTML[index].font_name=itemsHTML[index].imageFont; SelectIcons(obj); } function openMask(el){ SPTheme.modalLayerPreferredWidth=500; var left = 100; var top = 100; var allFieldName, allFieldDescription, i, j; switch (el.refPropId){ case 'linkedTable': case 'tableName': case 'queryName': openSPModalLayer("./SPMaskParametersConfigurator_list.jsp?action="+el.refPropId+"¶meter="+URLenc(itemsHTML[index][el.refPropId])+"&SPModalLayerId=mskSPModalLayer", top, left, 500, 500, false, 1, false,false) break; case 'keyField': openSPModalLayer("./SPMaskParametersConfigurator_list.jsp?action=keyField¶meter="+URLenc(itemsHTML[index].keyField)+"&tableName="+URLenc(itemsHTML[index].linkedTable)+"&SPModalLayerId=mskSPModalLayer", top, left, 500, 500, false, 1, false,false) break; case 'readField': case 'fixedFilter': case 'queryParameters': case 'linkedFieldName': case 'dependsOn': case 'filterField': case 'zoomQryParam': allFieldName=[],allFieldDescription=[]; for (i=0, j=0; i0){ // se un gruppo non ha campi all'interno non viene salvato obj.groups.push(copyGroup(itemsHTML[elements[i].data.index])) var el=elements[i].children; for (j=0; j 0 && arguments[0] == "close") window.parent.closeCurrentObj(); if(parent) parent.is_Saving=false; m_bUpdated=false; refreshMask(); currentVersion=parseInt(Right(output,output.length-18)) } else{ if(window.parent.location.href.indexOf("portalstudio.jsp") < 0){ currentVersion--; accessDeniedStandaloneRefresh({ name : currentname}); } else { currentVersion--; parent.jsonConfirmAccessDenied({ name : currentname}); //PSAlert.alert(output); } } forceSaveVdm=false; customMask= formProp.customVdm ; } function writeHTML(){ m_bUpdated=true; var ctrl = document.id('backcanvas'); var tab = document.id('navmenu_tabcontainer'); tab.style.left = ctrl.style.left; tab.style.width = ctrl.style.width; if (index!=null){ if (itemsHTML[index].type=='calculation'){ if (Empty(itemsHTML[index].calculationName)) itemsHTML[index].calculationName=document.id(itemsHTML[index].name).getChildren()[0].innerHTML; else document.id(itemsHTML[index].name).getChildren()[0].innerHTML=itemsHTML[index].calculationName; } else if (itemsHTML[index].type=='action'){ if (Empty(itemsHTML[index].actionName)) itemsHTML[index].actionName=document.id(itemsHTML[index].name).getChildren()[0].innerHTML; else document.id(itemsHTML[index].name).getChildren()[0].innerHTML=itemsHTML[index].actionName; } else{ var selectedElement=findElement(itemsHTML[index].name,itemsHTML[index].type=='group') if( itemsHTML[index].type=='field' && selectedElement){ // aggiorno la lista dei campi if (itemsHTML[index].name!=itemsHTML[index].fieldName){ // ho cambiato il fieldName if (Empty(itemsHTML[index].fieldName)) itemsHTML[index].fieldName=itemsHTML[index].name; else { listFieldName[itemsHTML[index].realFieldName]=false; var realFieldName=itemsHTML[index].fieldName; var idx=-1; while (listFieldName[realFieldName]){ idx++; realFieldName=itemsHTML[index].fieldName+'_'+idx; } listFieldName[realFieldName]=true selectedElement.set({"name":realFieldName}); itemsHTML[index].name=itemsHTML[index].fieldName; itemsHTML[index].id=realFieldName; itemsHTML[index].realFieldName=realFieldName; } } changeIconField(selectedElement); if (itemsHTML[index].viewType=='check' && (itemsHTML[index].objType=='D' || itemsHTML[index].objType=='T' || itemsHTML[index].objType=='M')){ PSAlert.alert('Field can not be viewed as a checkbox'); itemsHTML[index].viewType='textbox'; propertyChangeNotifier.bind(itemsHTML[index].objClass.newProperties.advanced[0])('textbox',false,false) Properties() } if (itemsHTML[index].obligatoryCondition=='') itemsHTML[index].obligatory=false; if (itemsHTML[index].cover==0 && (selectedElement.data.viewType!=itemsHTML[index].viewType)){ // ho cambiato viewType if (itemsHTML[index].viewType=='combo' || itemsHTML[index].viewType=='querycombo' || itemsHTML[index].viewType=='tablecombo' || itemsHTML[index].viewType=='check'){ itemsHTML[index].cover=1; propertyChangeNotifier.bind(itemsHTML[index].objClass.newProperties.view[0])('1',false,false) Properties() } } selectedElement.data.viewType=itemsHTML[index].viewType; } else if((itemsHTML[index].type=='label' || itemsHTML[index].type=='button') && selectedElement){ selectedElement.set({"name":itemsHTML[index].fieldName}); } else if (selectedElement){ selectedElement.set({"name":itemsHTML[index].groupName}); for (var i=0; i80) ctrl.style.width = (document.body.offsetWidth - ((document.id('gadgets_pane').opened ? document.id('gadgets_pane').offsetWidth : 0) + 40))+"px"; //margine di 30 document.id('navmenu_tabcontainer').style.width = ctrl.style.width; if(document.getSize().y - ctrl.offsetTop > 0) ctrl.style.height = (document.getSize().y - (ctrl.offsetTop + 20))+"px"; resizeGadgetsPane(); } window.addEvent('resize', windowResize); function Properties(){ if (newPropObj && last_index != null && last_index==index){ newPropObj.updatePropertiesFromPaint(itemsHTML[index]); }else{ newPropObj = new propertiesObj({m_obj:itemsHTML[index],canExpandToColumn:false,tabindex:100,divcontainer:'properties',moveDiv:true}); last_index=index; document.id('properties').show() } } function Help(the_property){ var i, prop=''; if(typeof(anchorToFeature)!='undefined'){ if(typeof(the_property)!='undefined') prop+="maskparameters_"+the_property.toLowerCase(); if(prop!='' && prop in anchorToFeature) i=anchorToFeature[prop]; else if(index!=null && "maskparameters_"+itemsHTML[index].type.toLowerCase() in anchorToFeature) i=anchorToFeature["maskparameters_"+itemsHTML[index].type.toLowerCase()]; else i=anchorToFeature["maskparameters"]; windowOpenForeground(m_cHelpUrl+'help/portalstudio/ps_urg_navigator.htm?'+URLenc(i+(prop!=""?'||'+prop+"":"")),'','toolbar=0,menubar=0,directories=0,width=720,height=600,resizable=1,scrollbars=1',null,null,null,true); } } function findElement(name,isGroup){ var listField=field_tree.root.children; for (var i=0; i0 && confirm("Some fields are not defined. Create them?")){ var allFields=[]; if (!Empty(table)){ var fieldsCSV = new JSURL("../servlet/SPXDCProxy?action=fields&table="+table+'&format=properties', true); fieldsCSV = fieldsCSV.Response(); if (At(fieldsCSV,'* --- Visual Query Fields 1.0 ---*'+CSV_SEP)==0){ var oFields = new TrsJavascript(); oFields.reset(); oFields.SetRow(0); oFields.BuildProperties(Strtran(fieldsCSV,'* --- Visual Query Fields 1.0 ---*'+CSV_SEP,'')); var rows=GetProperty(oFields,'Rows','N'); for(i=0;i0 && matchFieldToAdd[i]){ find=false; for (j=0; j