/*global tablename configname frontendport offlinemode custom jsonconfiguration*/ /* exported folder_path num_child itemsClone searchNode doLoad Help reset newCurrentObj insertImage ListObj AfterQueryChange ManageQueryChange GetRequestParams selectForm GetResourceName saveNewName closeOrderExtraTitle toggleManageFilters confirmOrderExtraTitle GetCurrentName DeleteRowLayer DeleteHidddenField EditRowLayer SetRowLayer deleteFilter confirmManageFilters closeManageFilters DeleteColumn closeNewColumn EditColumn SetColumn getOpener GetSelectedColId _togglePreview toggleRowView toggleSecondaryBarView getJDEF */ var folder_path='' var newPropObj = null; var nItem=0; var notimooManager; var baseCustomization = {custom:false, user: 0, group:0, user_group:"" }; var nFilter=0; var mySortables = new Sortables('#actionList,#linkedConfList'); function doLoad(/*e*/){ try{ //parent.setTitle(this) } catch(ec) {} document.getElementById('backcanvas').setStyle('display','block'); windowResize(); FormProperties(); document.getElementById('loading').setStyle('display','none'); notimooManager = new Notimoo({}); create_gadget_pane(); window.addEvent("keydown", function(e) { if (e.control && e.key=="s") { //CTRL-S if(document.activeElement.tagName=='INPUT'){ var activeE=document.activeElement; activeE.blur(); activeE.focus(); } e.stop(); if (parent.saveTool) parent.saveTool(); } }); } function Help(the_property) { var i; var prop = ''; if (typeof(anchorToFeature) != 'undefined') { if (typeof(the_property) != 'undefined') { prop += "vzoomeditor_" + the_property.toLowerCase(); } if (prop in anchorToFeature && prop != '') { i = anchorToFeature[prop]; } else if (index != null && "vzoomeditor_" + itemsHTML[index].type.toLowerCase() in anchorToFeature) { i = anchorToFeature["vzoomeditor_" + itemsHTML[index].type.toLowerCase()]; } else { i = anchorToFeature["vzoomeditor"]; } 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'); } } function reset(){ if(m_bUpdated){ if(confirm("Changes have not been saved yet.\r\nContinue loosing changes?")){ FormProperties(); } } } function newCurrentObj(name, type, parms){ // var params = (parms && Object.getLength(parms)>0 ? "&" + Object.toQueryString(parms) :""); window.location.href=getOpenUrl(name,type,parms) } function openVZM(){ if(m_bUpdated){ if(!confirm("Changes have not been saved yet.\r\nContinue loosing changes?")){ return false; } } var width = 800; var height = 600; var url = "../portalstudio/open.jsp?tool=portalzoom&onetool=true"; url += "&SPModalLayerId=vzmSPModalLayer"; var left = (screen.width)?(screen.width-width)/2:100; var top = (screen.height)?(screen.height-height-(height/4))/2:100; openSPModalLayer(url,top,left,width,height,true,1,false,false); FormProperties(); } function isExpr(txt){ return txt.match(/(function|var|image|javascript|checkbox|html|eval):/); } function AddColumnLayer(colId,fields, beforeOf) { //beforeOf se non passato si aggiunge in coda unSelectItem(); var col = GetColumnById(colId); var arrayToPut=ReturnAddToCol(fields); var index = col.Layer.length; if (beforeOf) { col.Layer.some(function(itm,i) { if (itm.id==beforeOf) { index = i; return true; } return false; }); } col.Layer.splice.apply(col.Layer, [index,0].concat(arrayToPut)) columnsList.AppendItemsInContainer(colId,arrayToPut,beforeOf); ManageFlagImages(); } function ReturnAddToCol(fields) { var arrayToPut=[]; for (var i=0;i0) alert("Any fields not append to hidden fields") if (fields.length>notInserted.length) ManageFlagImages(); } function saveAs() { var customizationParms = "&custom="+formProp.custom; if (formProp.user_group=='User') customizationParms += "&filter=_" + formProp.user; else if (formProp.user_group=='Group') customizationParms += "&filter=_g" + formProp.group; OpenWindow('../portalstudio/saveas.jsp?tool=portalzoom&tablename='+tablename + customizationParms, 580,600); } function IsModifiedCustomization() { return formProp.user != baseCustomization.user || formProp.group != baseCustomization.group || formProp.custom != baseCustomization.custom || formProp.name != baseCustomization.name || formProp.user_group != baseCustomization.user_group; } function CheckCustomization() { var conf = true; if ( IsModifiedCustomization() ) { // cambiata la parte custom, quindi si sta andando a salvare un nuovo file!! Bisogna chiedere conferma sul salvataggio var filter=''; if (formProp.user_group=='User') filter = "_" + formProp.user; else if (formProp.user_group=='Group') filter = "_g" + formProp.group; var url = new JSURL('../servlet/JSPReader?type=portalzoom&filter='+filter+"&custom="+formProp.custom+"&name="+formProp.name+"&tablename="+formProp.table+"&check=true",true); var output=url.Response(); if(output=="found"){ if(!confirm("You have modified customize options.\nThis custom file already exist, overwrite?")) conf = false; } } return conf; } var AfterSave function save(then) { if (!CheckCustomization()) return; if(viewrowopen) { if(RowViewLayer) try { RowViewLayer.getContainer().getElement('iframe').contentWindow.Save(); } catch(e) {} } if (then=='close') AfterSave='close'; else if( !Empty(then)){ //then e' un oggetto che contiene una funzione che deve essere eseguita dopo il salvataggio AfterSave = then; } if(parent) parent.is_Saving=true; if(!Empty(tablename) && !Empty(configname)){ notimooManager.show({ title:'Notification message', message: 'saving vzm...', sticky : true, width:200, height:40 }); save2.delay(100); } else { saveAs(); } } function searchNode(items,node){ for(var i =0; i-1?col.width:((!Empty(col.width) && col.width.indexOf('px')==-1)?col.width+'px':col.width); } if(typeof(col.fixedwidth)!='undefined'){ col.fixedwidth = col.fixedwidth.indexOf("%")>-1?col.fixedwidth:((!Empty(col.fixedwidth) && col.fixedwidth.indexOf('px')==-1)?col.fixedwidth+'px':col.fixedwidth); } if(!EmptyArray(layer)){ //cerca i fields nei layer di colonna for(var j=0; col=layer[j++]; ){ // eslint-disable-line no-cond-assign field = col.field; if(!isExpr(field) && !(field in fields_map)){ fields_map[field] = _; fields.push(field); } } } } // eslint-disable-next-line no-cond-assign for(i=0; col=confToSend.RowLayer[i++]; ){//cicla nelle cols per raccogliere i fields field = col.field; if(!isExpr(field) && !(field in fields_map)){ fields_map[field] = _; fields.push(field); } } for(col in confToSend.HideFields) if (LibJavascript.Array.indexOf(confToSend.Fields,col)==-1) fields.push(col); confToSend.Configuration.OrderBy=setOrderBy; confToSend.Fields = fields; confToSend.ArrayFilters = []; for (i=0; i -1){ // newPropObj.updatePropertiesFromPaint(it); // writeHTML(); // } index = -1; for(var i=0; i -1){ // $('propertiesTitleTxt').set('html'," "+node.tree.root.name.capitalize()+" properties") var it = itemsHTML[index] // if(!node.property.editable){ var tab, p; for(tab in it.objClass.newProperties){ p = it.objClass.newProperties[tab] for(var j=0; j< p.length; j++){ p[j].noteditable = !node.tree.options.propertiesEditable; } } // } if(newPropObj && last_index != null && last_index==index){ newPropObj.updatePropertiesFromPaint(it); // if(showProperties) showProperties('properties'); }else{ newPropObj = new propertiesObj({m_obj:it,canExpandToColumn:false,tabindex:100,divcontainer:'properties',moveDiv:false}); // newPropObj.re_openColumn() last_index=index; document.getElementById('properties').show() } resizeGadgetsPane(); } } function windowResize(){ var ctrl = document.getElementById('backcanvas'); if(document.body.clientWidth -$('gadgets_pane').offsetWidth >80) ctrl.style.width = (document.body.clientWidth - (($('gadgets_pane').opened ? $('gadgets_pane').offsetWidth : 0) + 40))+"px"; //margine di 30 ctrl.style.height='auto' // if(document.getSize().y - ctrl.offsetTop > 0) // ctrl.style.height = (document.getSize().y - (ctrl.offsetTop + 20))+"px"; } window.addEvent('resize', windowResize); var columnsObj=[], rowLayerObj = [], hiddenFieldsObj = [], filtersObj = []; var columnsList, rowLayerList, hidefieldsList, vqrlist, extratitlelist; function getOpener() { return (window.opener?window.opener:(window.caller?window.caller:window.parent)); } function getColSchema(){ function mandatoryPropertyError(){ throw new Error("Mandatory property error"); } return { id: function(){ return LibJavascript.AlfaKeyGen(10); }, field: mandatoryPropertyError, type: function(){ return "C"; }, title: "", link: "", target: "", format: "", onclick: "", align: "", picture: "", width: "", font: "", font_size: "", font_color: "", bg_color: "", font_weight: "", bg_color: "", col_span: "", row_span: "", enable_HTML: "", Layer: function(){ return []; }, new_line: false, orderbyfld: function(itm){ return isExpr(itm.field) ? '' : itm.field ; }, orderbystatus: '', editable:false, orderbyidx: 0, title_align:'', show_extra_title:false, extracolidx:100, // metto un valore alto in modo che quando ne aggiungo uno va in fondo e non alla fine printable:true }; } var vqrfields, //[alias , desc, column] selectedItems=[], selectedColumns=[], selectedRowLayer=[], selectedHideFields=[], selectedExtraTitle=[]; function TransformHiddenFields(hf) { var hfs = []; for (var i=0; i0){ for (var i=0; i-1) { vqrfields[i].column = colObj[j]; } for (i = 0; i0) { RowViewLayer=new spModalLayer('../portalzoom/rowview.jsp',{'in_iframe':true, 'draggable':true, // 'top':40, // 'left':20, // 'resizable' :true, 'width': document.body.clientWidth , 'height': document.body.clientHeight , 'border_color':'#CCCCCC', 'border_width':1, 'dragger_height':12, 'dragger_image':'../portalstudio/images/ps-editor-drag.png', 'mask_opacity':0.4, 'mask_color':'#CCCCCC', 'show_scrollbars':false, 'close_on_click_mask':'', 'iframe_padding':0, 'hide_close_btn':true, // 'maximize':true, 'maximized':true, 'opener':window }); RowViewLayer.open(); viewrowopen=true; } } function toggleSecondaryBarView(){ var listExtraTitle=[]; var i, j; selectedExtraTitle=[]; var extratitleDiv=document.getElementById('orderExtraTitle'); if (extratitleDiv.style.display=='none'){ for (i=0; i0){ listExtraTitle.sort(function(c1,c2){//ordino l'array temp in base all'idx var res=c1.extracolidx-c2.extracolidx; return res; }); if (!extratitlelist){ extratitlelist = new ZList("extratitle",{ aliasName: "field", idName: "id", descName: "title", cssClassItem: "file-item", sortable: true, onClick: function(el,evt,container) { var oldSel = LibJavascript.CssClassNameUtils.getElementsByClassName('selected-file',container,"div"); for (var j=0; j"+columnsObj[i].title+""; for (var j=0; j"+columnsObj[i].Layer[j].title+""; } } for (i=0; i"+rowLayerObj[i].title+""; } var select=""; // combo per la scelta dell'operazione select+="" var value=""; var li=document.createElement("li"); li.className='margin'; li.setAttribute("idx",nFilter); li.innerHTML="
"+select+value+"" document.getElementById("filters").appendChild(li); if (filter.field){ document.getElementById("filterName_"+nFilter).value=Lower(filter.field); document.getElementById("filterType_"+nFilter).value=Lower(filter.operator); } nFilter++; } function deleteFilter(f){ f.parentNode.destroy(); } function confirmManageFilters(){ document.getElementById('manageFilters').style.display='none' document.getElementById("newcolumncontainercinema").style.display='none'; filtersObj=[]; var filters=document.getElementById("filters").getChildren(); for (var i=0; i-1 ) { droppable.addClass('droppable_container'); } else { var parents = droppable.getParents(); if (parents.indexOf(document.getElementById('columns'))>-1) columnsList.ResponsiveViewOnEnter(droppable); else if (parents.indexOf(document.getElementById('rowlayer'))>-1) rowLayerList.ResponsiveViewOnEnter(droppable); } }, onLeave: function(dragging, droppable){ droppable.removeClass('phantom-span_hover'); droppable.removeClass('droppable_container'); }, onCancel: function (dragging) { dragging.destroy(); columnsList.RemoveDroppableElements(); rowLayerList.RemoveDroppableElements(); document.getElementById('columns').removeClass('droppable_container'); document.getElementById('rowlayer').removeClass('droppable_container'); document.getElementById('hidefields').removeClass('droppable_container'); } }); drag.start(mooevt); } } }); columnsList = new ZList("columns",{ idName: "id", aliasName: "field", descName: "title", cssClassItem: "file-item", sortable: true, itemContainsItem : true, cssClassContainerItem: 'column-layer', containerTitle: "Column layer's fields", subItemsName:"Layer", isSortableElement:function(el) { return LibJavascript.CssClassNameUtils.hasClass(el,'selected-file'); }, images:[{ image:'./images/not_ordered.png' , title:'Not ordered', id:'order', cssClass:'order'}, { image:{value:''} , title:'Sanitized', id:'sanitized', cssClass:'sanitized'}], buttons: [ {image:'' , title:"Edit" , functionName:"EditColumn" , cssClass:"edit"} ,{image:'', title:"Delete", functionName:"DeleteColumn", cssClass:"delete"} ], onClick: function(el,evt,container) { // if (!evt.ctrlKey) { var oldSel = LibJavascript.CssClassNameUtils.getElementsByClassName('selected-file',container,"div"); for (var j=0; j0) { removed = removed[0].Layer.splice(0,removed[0].Layer.length); Array.prototype.splice.apply(colArray,[indexToPut+1,0].concat(removed)); } } else { //inserisco in coda colArray.push(removed[0]); if (removed[0].Layer.length>0) { removed = removed[0].Layer.splice(0,removed[0].Layer.length); colArray.append(removed); } } SetUpdated(); } }); //LibJavascript.JSONUtils.adjust(columnsObj, getColSchema()); document.getElementById("columns").makeResizable({handle: "columns_drag", limit: {'y':[0]}, modifiers:{'x':''}, onDrag: function(el){ document.getElementById("columns_arrows").style.height= (el.getStyle('height').toInt()+50)+"px"; } // onComplete: function(el){ // el.nanoScrollerMT() // } }); rowLayerList = new ZList("rowlayer",{ aliasName: "field", idName: "id", descName: "title", cssClassItem: "file-item", sortable: true, images:[{ image:{value:''} , title:'Sanitized', id:'sanitized', cssClass:'sanitized'}], buttons: [ {image:'' , title:"Edit" , functionName:"EditRowLayer" , cssClass:"edit"} ,{image:'', title:"Delete", functionName:"DeleteRowLayer", cssClass:"delete"} ], onClick: function(el,evt,container) { var oldSel = LibJavascript.CssClassNameUtils.getElementsByClassName('selected-file',container,"div"); for (var j=0; j-1) { selectedFields.push(vqrfields[idx]); } } return selectedFields; } function GetMaxColumnOrderbyIdx() { var orderbyidx=0; for (var i=0;i0){ layIdx = LibJavascript.Array.indexOf(elArray.Layer,myname, function(elLay) { return myname==elLay[propName]; }); if (layIdx>-1) return true; } }); if (layIdx>-1) { return {contId : cols[colIdx][propName], id :cols[colIdx].Layer[layIdx][propName]}; //selezione singola!! } else if (colIdx>-1){ return cols[colIdx][propName]; //selezione singola!! } } } function GetColIndexById(arr,id) { return LibJavascript.Array.indexOf(arr,id,function(el) { return id==el.id; }); } function GetColumnById(id, contId) { var colArray; if (!Empty(contId)) colArray = columnsObj[GetColIndexById(columnsObj,contId)].Layer; else colArray = columnsObj; var index = GetColIndexById(colArray,id); if (index>-1) { var myObj = colArray[index]; if (Empty(contId)) { myObj.maxorderbyidx=GetMaxColumnOrderbyIdx()+1; myObj.orderbystatus=myObj.orderbystatus||''; } return myObj; } else return null; } function SetColumnOrder(id, beforeOtherCols) { var cols=[]; for (var i=0;i-1) { if (Empty(contId)) beforeOtherCols = colArray[index].orderbyidx > obj.orderbyidx; colArray[index] = LibJavascript.JSONUtils.adjust(obj, colArray[index]); columnsList.UpdateItem(id,contId, colArray[index]); } if (Empty(contId)) { SetColumnOrder(id,beforeOtherCols); ManageOrderByImages(); } ManageSanitizeImg(document.getElementsByName(id)[0],obj); } function EditColumn(idx, contId) { unSelectItem(); openSPModalLayer("../jsp-system/SPPortalZoomColumnSettings_portlet.jsp?columnid="+URLenc(idx)+"&type=Column"+(!Empty(contId)?"&contId="+URLenc(contId):""), 100, 100, 660, 545, false, 1, false,false,null,true) } function DeleteColumn(id, contId) { unSelectItem(); SetUpdated(); if (typeof(id)=='object') { contId = id.contId; id = id.id; } var columnArray; if (!Empty(contId)) { var col = GetColumnById(contId); if (col) columnArray = col.Layer; else //id non presente columnArray = columnsObj; } else { columnArray = columnsObj; } var index = GetColIndexById(columnArray,id); if (index>-1) { var oldCol = columnArray.splice(index,1); UpdateField(oldCol); columnsList.RemoveItems(oldCol, contId); SetColumnOrder(); ManageOrderByImages(); ManageFlagImages(); } // document.getElementById('columns').nanoScrollerMT(); } function GetRowLayerById(id) { var index = GetColIndexById(rowLayerObj,id); if (index>-1) return rowLayerObj[index]; else return null; } function SetRowLayer(id,obj,contId) { SetUpdated(); var index = GetColIndexById(rowLayerObj,id); if (index>-1) { rowLayerObj[index] = LibJavascript.JSONUtils.adjust(obj, rowLayerObj[index]); rowLayerList.UpdateItem(id,contId, rowLayerObj[index]); ManageSanitizeImg(document.getElementsByName(id)[0],obj); } } function EditRowLayer(idx) { unSelectItem(); openSPModalLayer("../jsp-system/SPPortalZoomColumnSettings_portlet.jsp?columnid="+URLenc(idx)+"&type=RowLayer", 100, 100, 640, 515, false, 1, false,false,null,true); } function DeleteHidddenField(name) { unSelectItem(); SetUpdated(); var index = LibJavascript.Array.indexOf(hiddenFieldsObj,name,function(el) { return name==el.field; }); if (index>-1) { var oldCol = hiddenFieldsObj.splice(index,1); hidefieldsList.RemoveItems(oldCol); ManageFlagImages(); } // document.getElementById('hidefields').nanoScrollerMT(); } function DeleteRowLayer(id) { unSelectItem(); SetUpdated(); var index = GetColIndexById(rowLayerObj,id); if (index>-1) { var oldCol = rowLayerObj.splice(index,1); rowLayerList.RemoveItems(oldCol); ManageFlagImages(); } // document.getElementById('rowlayer').nanoScrollerMT(); } function GetCurrentName() { var filename = (formProp.custom=="true"?"CUSTOM_":"")+formProp.name+"_"+formProp.table; if (formProp.user_group=='User') filename += "_" + formProp.user; else if (formProp.user_group=='Group') filename += "_g" + formProp.group; return filename; } function GetResourceName(parms) { return '../jsp/SPPortalZoomBase_portlet.jsp?Table='+URLenc(GetTableName())+'&ConfigName='+URLenc(GetConfigName())+'&m_NoCache='+LibJavascript.AlfaKeyGen(10)+parms; } function selectForm(){ FormProperties(); } function GetRequestParams() { //Oggetto nome -> [{description, type, len, dec} | tipo ] var result = {}; var url = new JSURL("../servlet/SPVQRProxy?action=vqrparameters&filename="+URLenc(formProp.query)+"&offlinemode="+URLenc(offlinemode),true); var output=url.Response(); output = JSON.parse(output); for (var i=0;i=0){ itemsHTML[last_index].element.removeClass('selected'); } el.addClass('selected'); itemsHTML.some(function(arr_el,i) { if (arr_el.element==el) { index=i; return true; } else { return false; } }); Properties() } else if(!Empty(newPropObj))newPropObj.HideProperties(); } function unSelectItem(){ if (index!=null){ if(!Empty(newPropObj)) newPropObj.HideProperties(); itemsHTML[index].element.removeClass('selected'); index=null; last_index=null; } } function writeHTML(){ if (index!=null){ var name=(itemsHTML[index].type=='linkedConfiguration'?itemsHTML[index].linkedConfName:itemsHTML[index].actionName)||itemsHTML[index].title; if (itemsHTML[index].name!=name){ var selectedAction=itemsHTML[index].element.getChildren(); selectedAction[1].set('html',name) itemsHTML[index].name=name; itemsHTML[index].id=name; selectedAction[1].set('title',itemsHTML[index].title) } } } 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.getElementById('properties').show() } } function removeItem(el){ var position=-1; if (el) { itemsHTML.some(function(arr_el,i) { if (arr_el.element==el) { position=i; return true; } else { return false; } }); } if (position!=-1){ itemsHTML.splice(position,1) el.destroy(); last_index=null; index=null; if(!Empty(newPropObj)) newPropObj.HideProperties(); resizeGadgetsPane() } } function ListObj(obj){ if (!obj || obj.value=='form'){ unSelectItem(); } else { for (var i=0; i