PortaleOrdiniGruppo/PortalStudio/visualpivot/editor.js
2025-03-24 15:28:26 +01:00

1649 lines
56 KiB
JavaScript

/* exported
doLoad Help reset newCurrentObj isExpr AfterSave toggleManageFilters
deleteFilter confirmManageFilters closeManageFilters
EditField DeleteField SetFieldDetail GetCurrentName
GetResourceName selectForm GetRequestParams ManageQueryChange
AfterQueryChange removeItem ListObj insertImage editPortlet selectPortlet
SetChartWizardConfiguration checkChartDef checkDataSourceLevel SetCacheLevel
setJDEF getJDEF
*/
/* global
SetSmartChartdef getChartDefType
*/
//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');
var progrAct = 0, progrLCf = 0;
var deleteMap = [];
var tool = "visualpivot";
function doLoad(/*e*/) {
document.getElementById('backcanvas').setStyle('display', 'block');
windowResize();
FormProperties();
document.getElementById('loading').setStyle('display', 'none');
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) { //wip
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){ //wip
window.location.href=getOpenUrl(name,type,parms)
}
function openVPV(){
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=visualpivot&onetool=true";
url += "&SPModalLayerId=vpvSPModalLayer";
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){//wip
return txt.match(/(function|var|image|javascript|checkbox|html|eval):/);
}
function AddFieldToBox(type, mainobj, fieldlist, fields, beforeOf) {
unSelectItem();
var arrayToPut = [],
f_obj, dobj;
for (var i = 0; i < fields.length; i++) {
f_obj = {
field: fields[i].alias,
title: fields[i].desc,
f_type: fields[i].type,
type: type,
descrs: fields[i].desc
};
if( deleteMap[fields[i].alias] != undefined ) {
dobj = deleteMap[fields[i].alias];
f_obj.keys = dobj.keys;
f_obj.pictures = dobj.pictures;
f_obj.sorts = dobj.sorts;
f_obj.sortsfields = dobj.sortsfields;
f_obj.condformats = dobj.condformats;
delete deleteMap[fields[i].field];
}
arrayToPut.push(JSON.parse(JSON.encode(LibJavascript.JSONUtils.adjust(f_obj, getPropsSchema())), true));
}
var index = mainobj.length;
if (beforeOf) {
mainobj.some(function (itm, i) {
if (itm.id == beforeOf) {
index = i;
return true;
}
return false;
});
}
mainobj.splice.apply(mainobj, [index, 0].concat(arrayToPut));
fieldlist.AppendItems(arrayToPut, beforeOf);
ManageFlagImages();
}
function AddColumns(fields,beforeOf) { //beforeOf se non passato si aggiunge in coda
AddFieldToBox('column',columnsObj,columnsList,fields,beforeOf);
}
function AddRow(fields,beforeOf) { //beforeOf se non passato si aggiunge in coda
AddFieldToBox('row',rowsObj,rowsList,fields,beforeOf);
}
function AddMeasure(fields,beforeOf){
var i, fz = [];
for( i=0; i<fields.length; i++) {
if( fields[i].type == 'N')
fz.push(fields[i]);
}
if( fz.length != fields.length ) alert('Only numeric fields for measures!')
AddFieldToBox('measure',measuresObj,measuresList,fz,beforeOf);
}
function AddOMeasure(fields,beforeOf){
var i, fz = [];
for( i=0; i<fields.length; i++) {
if( fields[i].type == 'N')
fz.push(fields[i]);
}
if( fz.length != fields.length ) alert('Only numeric fields for measures!')
AddFieldToBox('omeasure',omeasuresObj,omeasuresList,fz,beforeOf);
}
function AddODimension(fields,beforeOf){
AddFieldToBox('odimension',odimensionsObj,odimensionsList,fields,beforeOf);
}
function saveAs() {//wip
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=visualpivot&'+customizationParms, 580,600);
}
function IsModifiedCustomization() {
//console.log("BASE", baseCustomization.user, baseCustomization.group, baseCustomization.custom, baseCustomization.name, baseCustomization.user_group)
//console.log("CURRENT", formProp.user, formProp.group, formProp.custom, configname, formProp.user_group)
return formProp.user != baseCustomization.user ||
formProp.group != baseCustomization.group ||
formProp.custom != baseCustomization.custom ||
configname != baseCustomization.name ||
formProp.user_group != baseCustomization.user_group;
}
function CheckCustomization() {//wip
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=visualpivot&filter='+filter+"&custom="+formProp.custom+"&name="+configname+"&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) {//wip
if (!CheckCustomization()) return;
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(configname)){
notimooManager.show({
title:'Notification message',
message: 'saving vpv...',
sticky : true,
width:200,
height:40
});
save2.delay(100);
} else {
saveAs();
}
}
var globalProps = [
/* tab generic */
'description', 'caption', 'query', 'allowedqueries', 'cachelevel', 'cachelevel2', 'vdmfile', 'vdmWidth', 'vdmHeight', 'portletsrc', 'linkparms', 'measuresoncolumn', 'measurestitle', 'hidemeasures',
/* tab view_options */
'viewmode', 'header', 'css', 'css_class',
'canFilter', 'hideFiltersBtn', 'openVdmBeforeQuery', 'applyAdvancedFilter', 'disablePresetParam',
'exportPivot', 'exportTable',
/* tab pivot_options */
'uiDragDrop', 'uiStartOpen', 'othDimMeas', 'rowsort', 'columnsort', 'subtotaltext', 'rowsubtotal', 'columnsubtotal', 'bigtotaltext', 'rowbigtotal', 'columnbigtotal',
/* tab chart_options */
'chartDef',
/*'label_field', 'sfield', 'sfieldlabel', 'value_fields', 'label_series', 'labelKey_field', 'mapSeries', 'manualScale',
'x_field', 'y_field', 'z_field', 'xyz_series_field', 'xKey_field',
'min_field', 'max_field',
'geo_0_field', 'geo_1_field', 'geo_value_field', 'geo_dom_field', 'geo_view', 'geo_level', 'geo_level_2', 'geo_level_3', 'geo_view_select', 'geo_onlydata',
'markers_desc', 'markers_lat', 'markers_lng', 'markers_key', 'markers_type',
'fieldpath', 'fieldvalue', 'keyfieldpath',
'depfield_1', 'depfield_2', 'depvalue', 'depclass', 'depfield_1label', 'depfield_2label', 'depfield_1class', 'depfield_2class',
'class_label', 'class_key', 'class_xfrom', 'class_xto', 'class_yfrom', 'class_yto', 'class_cat', 'class_xval', 'class_yval', 'class_zval', 'class_keycat',
'voro_class', 'voro_cat', 'voro_coords',
'val_field',*/
/* tab print_options */
'PrintMode', 'ReportName', 'print_size', 'print_outputf', 'print_max', 'print_option', 'print_title', 'print_totals', 'print_grep', 'print_hideexport', 'print_hidesettings',
/* customization */
'custom', 'user_group', 'group', 'user'
];
function save2(getDef) {//wip
var output, i; // col;
var customizationParms = "&Custom="+( formProp.custom ? formProp.custom : 'false');
if (formProp.user_group=='User')
customizationParms += "&NewUser=" + formProp.user;
else if (formProp.user_group=='Group')
customizationParms += "&NewGroup=" + formProp.group;
var props = ['field', 'descrs', 'keys', 'pictures', 'sorts', 'sortsfields', 'title', 'f_type'],
mprops = ['field', 'descrs', 'pictures', 'title', 'condformats', 'f_type']
var confToSend = {};
confToSend.configuration = LibJavascript.JSONUtils.purge(formProp, globalProps, true);
confToSend.cols = LibJavascript.JSONUtils.purge(columnsObj, props);
confToSend.rows = LibJavascript.JSONUtils.purge(rowsObj, props);
confToSend.odimensions = LibJavascript.JSONUtils.purge(odimensionsObj, props);
confToSend.measures = LibJavascript.JSONUtils.purge(measuresObj, mprops);
confToSend.omeasures = LibJavascript.JSONUtils.purge(omeasuresObj, mprops);
confToSend.configuration.name = configname;
//console.log(confToSend)
confToSend.arrayFilters = [];
for (i=0; i<filtersObj.length; i++){
var fieldName=filtersObj[i].field;
var f={};
f[fieldName+'_visible']=true;
f[fieldName+'_fixed']=false;
f[fieldName+'_op']=filtersObj[i].operator;
f[fieldName]=filtersObj[i].expression;
confToSend.arrayFilters.push(f);
}
var actions=document.getElementById("actionList").getChildren();
var idx=-1;
confToSend.actions = [];
for (i=0; i<actions.length; i++){
itemsHTML.some(function(arr_el,j) {
if (arr_el.element==actions[i]) {
idx=j;
return true;
} else {
return false;
}
});
confToSend.actions.push({
actionName:itemsHTML[idx].actionName,
title:itemsHTML[idx].title,
tooltip:itemsHTML[idx].tooltip,
url:itemsHTML[idx].url,
image:itemsHTML[idx].image,
visibility:itemsHTML[idx].visibility,
important:itemsHTML[idx].important,
hideWhen:itemsHTML[idx].hideWhen,
image_settings:itemsHTML[idx].image_settings,
font_name:itemsHTML[idx].font_name,
font_image:itemsHTML[idx].font_image,
font_size:itemsHTML[idx].font_size,
font_color:itemsHTML[idx].font_color,
bg_color:itemsHTML[idx].bg_color,
entityType:itemsHTML[idx].entityType,
parameters:itemsHTML[idx].parameters,
memCursParam:itemsHTML[idx].memCursParam,
checkAllParam:itemsHTML[idx].checkAllParam,
queryFilterParam:itemsHTML[idx].queryFilterParam,
sendMemCurs:itemsHTML[idx].sendMemCurs,
parameter:itemsHTML[idx].parameter,
showInMenu:itemsHTML[idx].showInMenu,
popup_width:itemsHTML[idx].popup_width,
popup_height:itemsHTML[idx].popup_height,
doQryAfterRoutine:itemsHTML[idx].doQryAfterRoutine,
progressBar:itemsHTML[idx].progressBar,
progressBarPortlet:itemsHTML[idx].progressBarPortlet,
target:itemsHTML[idx].target,
popup:itemsHTML[idx].popup,
popup_style:itemsHTML[idx].popup_style,
popup_maximized:itemsHTML[idx].popup_maximized,
confirmMessage:itemsHTML[idx].confirmMessage
})
}
var linkedConf=document.getElementById("linkedConfList").getChildren();
confToSend.linkedConfs = [];
for (i=0; i<linkedConf.length; i++){
itemsHTML.some(function(arr_el,j) {
if (arr_el.element==linkedConf[i]) {
idx=j;
return true;
} else {
return false;
}
});
confToSend.linkedConfs.push({
linkedConfName:itemsHTML[idx].linkedConfName,
title:itemsHTML[idx].title,
configname:itemsHTML[idx].configname,
configtype:itemsHTML[idx].configtype,
imagetype:itemsHTML[idx].imagetype,
ontoolbar:itemsHTML[idx].ontoolbar,
ontabs:itemsHTML[idx].ontabs,
imagetoolbar:itemsHTML[idx].imagetoolbar,
image_settings:itemsHTML[idx].image_settings,
font_name:itemsHTML[idx].font_name,
font_image:itemsHTML[idx].font_image,
font_size:itemsHTML[idx].font_size,
font_color:itemsHTML[idx].font_color
})
}
if(getDef == undefined){
var url = new JSURL("../servlet/SPVPVProxy?m_cAction=save"+
"&ConfigName="+configname+
"&vqr="+URLenc(formProp.query)+
"&obj="+ URLenc(JSON.encode(confToSend)) +
"&offlinemode="+URLenc(offlinemode) + customizationParms+
"&fromFullEditor=true" +
"&m_cID=" + cmdhash
,true);
output=url.Response();
try {
//output = JSON.parse(output);
if( !Empty(output) ) {
output = JSON.parse(output);
}
else {
output = {};
output.OK= true;
}
}
catch (e) {
output.ERROR=true;
output.MESSAGE='Error on save';
}
notimooManager.close(notimooManager.elements[0]);
if (output.ERROR) {
notimooManager.close(notimooManager.elements[0]);
alert(output.MESSAGE||'Error on save');
}
else if (output.OK) {
notimooManager.show({
title:'Notification message',
message: 'vpv saved!',
visibleTime: 2000,
width:200
});
if(parent) parent.is_Saving=false;
m_bUpdated=false;
if(AfterSave=="close")
window.parent.closeCurrentObj();
else {
if(window.top.GetOpener() && window.top.GetOpener().ReportPivotConfiguration)
window.top.GetOpener().ReportPivotConfiguration();
if (IsModifiedCustomization()) {
var newconfigname = configname;
if (formProp.user_group=='User')
newconfigname += "_" + formProp.user;
else if (formProp.user_group=='Group')
newconfigname += "_g" + formProp.group;
if (parent.changeName)
parent.changeName(newconfigname, { custom: formProp.custom }, Strtran(window.frameElement.id, 'portalstudioframe', ''))
if (parent.AddRecentOpen)
parent.AddRecentOpen("visualpivot", newconfigname, { custom: formProp.custom })
if (window.history.pushState) {
window.history.pushState(1, newconfigname + " - VisualPivot", "editor.jsp?ConfigName="+newconfigname+(formProp.custom=="true"?"&custom="+formProp.custom:"")+"&offlinemode="+URLenc(offlinemode));
//reset delle variabili
baseCustomization.user = formProp.user;
baseCustomization.group = formProp.group;
baseCustomization.custom = formProp.custom;
baseCustomization.name = formProp.name
baseCustomization.user_group = formProp.user_group;
} else
window.location.href=SPWebRootURL+"/visualpivot/editor.jsp?ConfigName="+newconfigname+(formProp.custom=="true"?"&custom="+formProp.custom:"")+"&offlinemode="+URLenc(offlinemode);
}
if(!Empty(AfterSave)){
AfterSave();
AfterSave=null;
}
}
}
else {
if(window.parent.location.href.indexOf("portalstudio.jsp") < 0){
accessDeniedStandaloneRefresh({ name : configname});
} else {
parent.jsonConfirmAccessDenied({ name : configname});
}
//notimooManager.close(notimooManager.elements[0]);
//alert("Save routine failed.")
}
} else if(getDef == "getJDEF") {
return confToSend;
}
}
function selectItem(node){//wip
/*Find node in itemsHTML*/
index = -1;
for(var i=0; i<itemsHTML.length; i++){ //aggiorna l'index con l'item selezionato
if(node.data && itemsHTML[i].id == node.data.id){
index = i;
break;
}
}
if(index > -1){
// $('propertiesTitleTxt').set('html',"&nbsp;"+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'
}
window.addEvent('resize', windowResize);
var columnsObj=[], rowsObj = [], measuresObj = [], filtersObj = [], odimensionsObj = [], omeasuresObj = [];
var columnsList, rowsList, measuresList, odimensionsList, omeasuresList, vqrlist;
function getPropsSchema(){
function mandatoryPropertyError(){
throw new Error("Mandatory property error");
}
return {
id: function(){ return LibJavascript.AlfaKeyGen(10); },
field: mandatoryPropertyError,
type: "",
descrs: "",
keys: "",
pictures: "",
sorts: "",
sortsfields: "",
condformats: "",
position: "",
col_title: "",
hidetitle: "",
f_type: ""
};
}
var vqrfields, //[alias , desc, column]
selectedItems=[],
// eslint-disable-next-line no-unused-vars
selectedColumns=[], selectedMeasures=[], selectedOMeasures=[], selectedRows=[], selectedODimensions=[];
function ReturnUsedFields() {
var result = {cols:{}, rows:{},measures:{},omeasures:{}, odimensions:{}}, i;
for (i=0; i<columnsObj.length;i++) {
result.cols[columnsObj[i].field]='';
}
for (i=0;i<rowsObj.length; i++) {
result.rows[rowsObj[i].field]='';
}
for (i=0;i<measuresObj.length; i++) {
result.measures[measuresObj[i].field]='';
}
for (i=0;i<omeasuresObj.length; i++) {
result.omeasures[omeasuresObj[i].field]='';
}
for (i=0;i<odimensionsObj.length; i++) {
result.odimensions[odimensionsObj[i].field]='';
}
return result;
}
function ManageFlagImages() {
var flds = ReturnUsedFields();
var keysr = [], keysc = [], keyso = [];
var i, o;
for( i=0; i<columnsObj.length; i++) {
o = columnsObj[i];
if( !Empty(o.keys) ) keysc.push(o.keys)
}
for( i=0; i<rowsObj.length; i++) {
o = rowsObj[i];
if( !Empty(o.keys) ) keysr.push(o.keys)
}
for( i=0; i<odimensionsObj.length; i++) {
o = odimensionsObj[i];
if( !Empty(o.keys) ) keyso.push(o.keys)
}
document.getElementById("list").getChildren().each(function(el) {
var myname = el.get('name');
var img = el.getElementById(el.get('id')+'_'+'flag');
if (myname in flds.cols) {
img.set('title','Field in columns');
img.setStyle('color', '#85bb5c');
img.classList.add('used')
}
else if (myname in flds.rows) {
img.set('title','Field in rows');
img.setStyle('color', '#85bb5c');
img.classList.add('used')
} else if (myname in flds.measures) {
img.set('title','Field in measures');
img.setStyle('color', '#85bb5c');
img.classList.add('used')
} else if (myname in flds.omeasures) {
img.set('title','Field in others measures');
img.setStyle('color', '#85bb5c');
img.classList.add('used')
}else if (myname in flds.odimensions) {
img.set('title','Field in others dimensions');
img.setStyle('color', '#85bb5c');
img.classList.add('used')
} else if (keysr.indexOf(myname) >= 0) {
img.set('title','Field as key in rows');
img.setStyle('color', '#85bb5c');
img.classList.add('used')
}
else if (keysc.indexOf(myname) >= 0) {
img.set('title','Field as key in columns');
img.setStyle('color', '#85bb5c');
img.classList.add('used')
}
else if (keyso.indexOf(myname) >= 0) {
img.set('title','Field as key in others dimensions');
img.setStyle('color', '#85bb5c');
img.classList.add('used')
}
else {
img.set('title','Field excluded');
img.setStyle('color', '#e52929');
img.classList.remove('used')
}
});
}
function UpdateVqrFields(/*first_time*/) {
if( !Empty(formProp.query) ) {
var url = new JSURL("../servlet/SPVPVProxy?action=vqr_fields&vqr="+URLenc(formProp.query)+"&offlinemode="+URLenc(offlinemode),true);
var output=url.Response();
try {
output = JSON.parse(output);
}
catch(e){
alert("ERROR: "+formProp.query+" is not a valid name for a query");
output=[];
}
vqrfields = output;
vqrlist.Empty();
vqrlist.UpdateList(vqrfields);
ManageFlagImages();
/*new JSURL(SPWebRootURL+"/servlet/SPVPVProxy?action=vqr_fields&vqr="+URLenc(formProp.query)+"&offlinemode="+URLenc(offlinemode) ,true, function(response){
selectedItems=[];
var res=response.Response()
if (!Empty(res)) {
try {
vqrfields = JSON.parse(res);
}
catch(e){
alert("ERROR: "+formProp.query+" is not a valid name for a query");
vqrfields=[];
}
}
else
vqrfields=[]
debugger
vqrlist.Empty();
vqrlist.UpdateList(vqrfields);
ManageFlagImages();
});
}*/
}
}
//var RowViewLayer, viewrowopen=false;
function toggleManageFilters(){
var filtersDiv=document.getElementById('manageFilters');
if (filtersDiv.style.display=='none'){
document.getElementById("filters").innerHTML='';
filtersDiv.style.display='block';
document.getElementById("newcolumncontainercinema").style.display='block';
filtersDiv.style.left=window.getSize().x/2-filtersDiv.getSize().x/2+'px';
filtersDiv.style.top=window.getSize().y/2-filtersDiv.getSize().y/2+'px';
nFilter=0;
for (var i=0; i<filtersObj.length; i++){
addFilter(filtersObj[i]);
}
}
else{
document.getElementById("newcolumncontainercinema").style.display='none';
filtersDiv.style.display='none';
}
}
function addFilter(filter){
filter=filter||{};
var listFieldsForFilter="";
var i;
// combo per la selezione del filtro
for (i=0; i<columnsObj.length; i++){
listFieldsForFilter+="<option value='"+Lower(columnsObj[i].field)+"'>"+columnsObj[i].title+"</option>";
}
for (i=0; i<rowsObj.length; i++){
listFieldsForFilter+="<option value='"+Lower(rowsObj[i].field)+"'>"+rowsObj[i].title+"</option>";
}
/*for (i=0; i<measuresObj.length; i++){
listFieldsForFilter+="<option value='"+Lower(measuresObj[i].field)+"'>"+measuresObj[i].title+"</option>";
}*/
var select="<select id='filterName_"+nFilter+"' class='filterName'>"+listFieldsForFilter+"</select>";
// combo per la scelta dell'operazione
select+="<select class='filterType' id='filterType_"+nFilter+"'>"+
'<option selected value="like">Starts with</option>'+
'<option value="contains">Contains</option>'+
'<option value="=">=</option>'+
'<option value="<"><</option>'+
'<option value="<="><=</option>'+
'<option value=">=">>=</option>'+
'<option value=">">></option>'+
'<option value="<>"><></option>'+
'<option value="empty">Empty</option>'+
'<option value="notempty">Not empty</option>'+
'<option value="currentmonth">Current month</option>'+
'<option value="currentyear">Current year</option>'+
'<option value="lastyear">Last year</option>'+
'<option value="lastmonth">Last month</option>'+
'<option value="last30days">Last 30 days</option>'+
'<option value="last60days">Last 60 days</option>'+
'<option value="last90days">Last 90 days</option>'+
"</select>"
var value="<input type='text' value='"+(filter.expression||'')+"' id='filterValue_"+nFilter+"' class='filterValue'/>";
var li=document.createElement("li");
li.className='margin';
li.setAttribute("idx",nFilter);
li.innerHTML="<div class='deleteFilter' title='Delete' onclick='deleteFilter(this)'></div>"+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<filters.length; i++){
var idx=filters[i].getAttribute('idx');
filtersObj.push({
field:document.getElementById('filterName_'+idx).value,
operator:document.getElementById('filterType_'+idx).value,
expression:document.getElementById('filterValue_'+idx).value
});
}
}
function closeManageFilters(){
document.getElementById('manageFilters').style.display='none'
document.getElementById("newcolumncontainercinema").style.display='none';
}
function onResize() {
document.getElementById("list").setStyle("max-height",window.getSize().y-150);
}
window.addEvent('domready',function(){
var toolbar = new SPToolbar(ZTObjects.PSToolbarAction, 'sptoolbar_action', {
elementToShow: 'all'
})
if (window.parent.location.href.indexOf("portalstudio.jsp") < 0){
standalone=true;
/*Add toolbar standalone buttons*/
toolbar.addElement({ 'id': 'open'
, 'class_name': 'btn'
, 'action': function(){ openVPV(); }
, 'image': '../portalstudio/images/icon/btn_open.png'
, 'title': 'Open'
},0)
toolbar.addElement({ 'id': 'save'
, 'class_name': 'btn'
, 'action': function(){ save(); }
, 'image': '../portalstudio/images/icon/btn_save.png'
, 'title': 'Save'
},1)
toolbar.addElement({ 'id': 'saveas'
, 'class_name': 'btn'
, 'action': function(){ saveAs('true'); }
, 'image': '../portalstudio/images/icon/btn_saveAs.png'
, 'title': 'Save As'
},2)
toolbar.addElement({
'isSeparator': true
},3)
}
document.getElementById('i_preview_wrapper').setStyles({'width': window.getSize().x,'height':window.getSize().y-30,'left':window.getSize().x,'top':30});
document.getElementById('i_preview').setStyles({'height': window.getSize().y-70,'top':40});
document.getElementById("list").setStyle("overflow","auto");
onResize();
window.addEvent('resize',onResize);
vqrlist = new ZList("list", {
idName: "alias",
aliasName: "alias",
descName: "desc",
cssClassItem: "file-item",
images: [{ title: 'Not loaded', id: 'flag', cssClass: 'flag', image: { value: "&#xf688", color: "#e52929", font: "icons8_win10", fontWeight: "normal", size: 10 } }],
onClick: function (el, evt, container) {
if (!evt.ctrlKey) {
var oldSel = LibJavascript.CssClassNameUtils.getElementsByClassName('selected-file', container, "div");
for (var j = 0; j < oldSel.length; j++) {
LibJavascript.CssClassNameUtils.removeClass(oldSel[j], 'selected-file');
selectedItems.splice(selectedItems.indexOf(oldSel[j]), 1);
}
}
if (evt.ctrlKey && LibJavascript.CssClassNameUtils.hasClass(el, 'selected-file')) {
LibJavascript.CssClassNameUtils.removeClass(el, 'selected-file');
selectedItems.splice(selectedItems.indexOf(el), 1);
} else {
if( !el.children[0].hasClass('used') ) {
LibJavascript.CssClassNameUtils.addClass(el, 'selected-file');
selectedItems.push(el);
}
}
unSelectItem()
},
moverMsg: 'Move selected fields to your configuration',
//moverImage:'../visualquery/images/move_to_zone.png',
onMoverMouseDown: function (handler, el, evt/*,container*/) {
unSelectItem();
if (LibJavascript.CssClassNameUtils.hasClass(el, 'selected-file')) {
var mooevt = new DOMEvent(evt, window);
mooevt.stop();
var pos = document.id(handler).getCoordinates();
var html = "", sep = ""
for (var i = 0; i < selectedItems.length; i++) {
html += sep + document.id(selectedItems[i]).get('name');
sep = "<br/>";
}
var clone = new Element('span', { 'class': 'dragged' }).setStyles({ 'z-index': 999, 'top': pos.top, 'left': pos.left + 10, 'cursor': 'default' }).set('html', html);
clone.inject(document.body);
var drag = new Drag.Move(clone, {
onBeforeStart: function () {
columnsList.MakeDroppableElements();
rowsList.MakeDroppableElements();
measuresList.MakeDroppableElements();
omeasuresList.MakeDroppableElements();
odimensionsList.MakeDroppableElements();
this.droppables = [document.getElementById('measures')];
if (document.getElementById('columns').childNodes.length == 0)
this.droppables.push(document.getElementById('columns'));
if (document.getElementById('rows').childNodes.length == 0)
this.droppables.push(document.getElementById('rows'));
if (document.getElementById('odimensions').childNodes.length == 0)
this.droppables.push(document.getElementById('odimensions'));
if (document.getElementById('omeasures').childNodes.length == 0)
this.droppables.push(document.getElementById('omeasures'));
this.droppables.combine($$('.droppableItem'))
},
onDrop: function (dragging, drop) {
dragging.destroy();
if (drop != null) {
SetUpdated();
var selectedFields = GetSelectedFields();
if (drop.hasClass("phantom-span")) {
var beforeOf = drop.getNext();
beforeOf = (beforeOf ? beforeOf.get("name") : null);
//livello principale
var container = drop.getParent().get('id');
if (container == 'columns')
AddColumns(selectedFields, beforeOf);
else if (container == 'rows')
AddRow(selectedFields, beforeOf);
else if (container == 'measures')
AddMeasure(selectedFields, beforeOf);
else if (container == 'omeasures')
AddOMeasure(selectedFields, beforeOf);
else if (container == 'odimensions')
AddODimension(selectedFields, beforeOf);
} else if (drop.get('id') == 'columns') AddColumns(selectedFields);
else if (drop.get('id') == 'rows') AddRow(selectedFields);
else if (drop.get('id') == 'measures') AddMeasure(selectedFields);
else if (drop.get('id') == 'omeasures') AddOMeasure(selectedFields);
else if (drop.get('id') == 'odimensions') AddODimension(selectedFields);
}
columnsList.RemoveDroppableElements();
rowsList.RemoveDroppableElements();
measuresList.RemoveDroppableElements();
omeasuresList.RemoveDroppableElements();
odimensionsList.RemoveDroppableElements();
document.getElementById('columns').removeClass('droppable_container');
document.getElementById('rows').removeClass('droppable_container');
document.getElementById('measures').removeClass('droppable_container');
document.getElementById('omeasures').removeClass('droppable_container');
document.getElementById('odimensions').removeClass('droppable_container');
},
onEnter: function (dragging, droppable) {
if (['columns', 'rows', 'measures', 'odimensions', 'omeasures'].indexOf(droppable.get('id')) > -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('rows')) > -1)
rowsList.ResponsiveViewOnEnter(droppable);
else if (parents.indexOf(document.getElementById('measures')) > -1)
measuresList.ResponsiveViewOnEnter(droppable);
else if (parents.indexOf(document.getElementById('omeasures')) > -1)
omeasuresList.ResponsiveViewOnEnter(droppable);
else if (parents.indexOf(document.getElementById('odimensions')) > -1)
odimensionsList.ResponsiveViewOnEnter(droppable);
}
},
onLeave: function (dragging, droppable) {
droppable.removeClass('phantom-span_hover');
droppable.removeClass('droppable_container');
},
onCancel: function (dragging) {
dragging.destroy();
columnsList.RemoveDroppableElements();
rowsList.RemoveDroppableElements();
measuresList.RemoveDroppableElements();
omeasuresList.RemoveDroppableElements();
odimensionsList.RemoveDroppableElements();
document.getElementById('columns').removeClass('droppable_container');
document.getElementById('rows').removeClass('droppable_container');
document.getElementById('measures').removeClass('droppable_container');
document.getElementById('omeasures').removeClass('droppable_container');
document.getElementById('odimensions').removeClass('droppable_container');
}
});
drag.start(mooevt);
}
}
});
var dontupdate = false;
var zListOpts = {
idName: "id",
aliasName: "field",
descName: "title",
cssClassItem: "file-item",
sortable: true,
isSortableElement: function (el) {
return LibJavascript.CssClassNameUtils.hasClass(el, 'selected-file');
},
buttons: [
{ image: '', title: "Edit", functionName: "EditField", cssClass: "edit" },
{ image: '', title: "Delete", functionName: "DeleteField", cssClass: "delete" }
],
onClick: function (el, evt, container) {
var oldSel = LibJavascript.CssClassNameUtils.getElementsByClassName('selected-file', container, "div");
var selarr;
if (this._type == "columns")
selarr = selectedColumns;
else if (this._type == "rows")
selarr = selectedRows;
else if (this._type == "measures")
selarr = selectedMeasures;
else if (this._type == "omeasures")
selarr = selectedOMeasures;
else if (this._type == "odimensions")
selarr = selectedODimensions;
for (var j = 0; j < oldSel.length; j++) {
LibJavascript.CssClassNameUtils.removeClass(oldSel[j], 'selected-file');
selarr.splice(selarr.indexOf(oldSel[j]), 1);
}
LibJavascript.CssClassNameUtils.addClass(el, 'selected-file');
selarr.push(el);
unSelectItem();
},
onMove: function (itmId, oldContId, newContId, elementIdNearTo, mode) {
SetUpdated();
var mainobj;
if (this._type == "columns")
mainobj = columnsObj;
else if (this._type == "rows")
mainobj = rowsObj;
else if (this._type == "measures")
mainobj = measuresObj;
else if (this._type == "omeasures")
mainobj = omeasuresObj;
else if (this._type == "odimensions")
mainobj = odimensionsObj;
var removed = mainobj.splice(GetColIndexById(mainobj, itmId), 1);
if (!Empty(elementIdNearTo)) {
var indexToPut = GetColIndexById(mainobj, elementIdNearTo);
if (mode == "after") indexToPut++;
mainobj.splice(indexToPut, 0, removed[0]);
}
else { //inserisco in coda
mainobj.push(removed[0]);
}
SetUpdated();
}
};
columnsList = new ZList("columns", Object.assign({}, zListOpts, { _type: 'columns' }));
if (!dontupdate) columnsList.UpdateList(columnsObj);
document.getElementById("columns").makeResizable({ handle: "columns_drag", limit: { 'y': [0] }, modifiers: { 'x': '' } });
rowsList = new ZList("rows", Object.assign({}, zListOpts, { _type: 'rows' }));
if (!dontupdate) rowsList.UpdateList(rowsObj);
document.getElementById("rows").makeResizable({ handle: "rows_drag", limit: { 'y': [0] }, modifiers: { 'x': '' } });
measuresList = new ZList("measures", Object.assign({}, zListOpts, { _type: 'measures' }));
if (!dontupdate) measuresList.UpdateList(measuresObj);
document.getElementById("measures").makeResizable({ handle: "measures_drag", limit: { 'y': [0] }, modifiers: { 'x': '' } });
odimensionsList = new ZList("odimensions", Object.assign({}, zListOpts, { _type: 'odimensions' }));
if (!dontupdate) odimensionsList.UpdateList(odimensionsObj);
document.getElementById("odimensions").makeResizable({ handle: "odimensions_drag", limit: { 'y': [0] }, modifiers: { 'x': '' } });
omeasuresList = new ZList("omeasures", Object.assign({}, zListOpts, { _type: 'omeasures' }));
if (!dontupdate) omeasuresList.UpdateList(omeasuresObj);
document.getElementById("omeasures").makeResizable({ handle: "omeasures_drag", limit: { 'y': [0] }, modifiers: { 'x': '' } });
notimooManager = new Notimoo({});
if (!Empty(configname) || c_ripristino || window.frameElement?.jdef){
loadFromFile(dontupdate);
}
else {
formProp.query="";
}
UpdateVqrFields(true);
FormProperties();
document.getElementById("newfilter").addEvent('click',function() {
addFilter();
});
document.getElementById("refreshfields").addEventListener('click', function() {
UpdateVqrFields(false);
})
});
function GetColIndexById(arr,id) {
return LibJavascript.Array.indexOf(arr,id,function(el) {
return id==el.id;
});
}
function SetUpdated() {
m_bUpdated=true;
}
function GetConfigName() { //wip
return (formProp.custom=="true"?"1":"0")+"/"+configname+(Lower(formProp.user_group)=='user'?'/'+jsonobj.configuration.User:(Lower(formProp.user_group)=='group'?'/g'+jsonobj.configuration.Group:''));
}
function GetSelectedFields() {//wip
var selectedFields = [];
for (var j=0;j<selectedItems.length;j++) {
var myname = selectedItems[j].get('name')
var idx = LibJavascript.Array.indexOf(vqrfields,myname,function(elArray) {
return elArray.alias==myname;
});
if (idx>-1) {
selectedFields.push(vqrfields[idx]);
}
}
return selectedFields;
}
function EditField(name_field) {
var c = document.getElementsByName(name_field);
var isMeasure = false;
if( c && c.length > 0) {
if( (c[0].parentNode.id == 'measures') || (c[0].parentNode.id == 'omeasures') )
isMeasure = true;
}
unSelectItem();
openSPModalLayer("../jsp-system/SPVisualPivotColumns_portlet.jsp?isMeasure=" + isMeasure +"&fname="+URLenc(name_field), 100, 100, 660, 225, false, 1, false,false,null,true);
}
function DeleteField(id) {
unSelectItem();
SetUpdated();
var fobj = GetFieldDetail(id),
type = fobj.type + "s",
mainObj = eval(type + "Obj"),
index = GetFieldPosition(mainObj, id),
toRemove = mainObj.splice(index, 1),
mainList = eval(type + "List");
mainList.RemoveItems(toRemove);
deleteMap[toRemove[0].field] = toRemove[0];
ManageFlagImages();
}
function GetFieldDetail(f_name) {
var fobj = null,
elm = document.getElementsByName(f_name);
if (elm.length > 0) {
elm = elm[0];
fobj = GetFieldFromArray(elm.parentElement.id, f_name);
}
return fobj;
}
function GetFieldFromArray(type, id) {
var mainObj = eval(type + "Obj");
return mainObj[GetFieldPosition(mainObj, id)];
}
function GetFieldPosition(array, id) {
return LibJavascript.Array.indexOf(array,id,function(el) {
return el.id == id;
})
}
function SetFieldDetail(f_name, fobj) {
SetUpdated();
var type = fobj.type + "s",
field = GetFieldFromArray(type, f_name);
LibJavascript.JSONUtils.fillWith(field, fobj);
field.title = field.descrs;
field.condformats = fobj.condformats
var list = eval(type + "List");
list.UpdateItem(f_name, null, field);
ManageFlagImages();
}
function GetCurrentName() {
var filename = (formProp.custom=="true"?"CUSTOM_":"")+configname;
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/SPVisualPivot_portlet.jsp?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();
try {
output = JSON.parse(output);
}
catch(e){
alert("ERROR: "+formProp.query+" is not a valid name for a query");
output=[];
}
for (var i=0;i<output.length;i++) {
var nameVar = output[i][0];
if (Left(nameVar,2)!='w_') nameVar = 'w_'+nameVar;
result[nameVar]={description: output[i][1], type:output[i][2], len: output[i][3], dec: output[i][4]};
}
return result;
}
function ManageQueryChange(oldValue, newValue) {
if (Empty(oldValue)) {
reset();
}
else if (confirm("Query name changed from \""+oldValue+"\" to \""+newValue+"\". Empty fields configurations?")) {
reset()
}
function reset() {
columnsObj=[];
rowsObj = [];
measuresObj = [];
omeasuresObj = [];
odimensionsObj = [];
selectedColumns=[];
selectedRows=[];
selectedMeasures=[];
selectedOMeasures=[];
selectedODimensions=[];
columnsList.Empty();
rowsList.Empty();
measuresList.Empty();
omeasuresList.Empty();
odimensionsList.Empty();
}
}
function AfterQueryChange() {
var output
var url = new JSURL("../servlet/SPVQRProxy?action=exists&m_cFilename="+URLenc(formProp.query)+"&offlinemode="+URLenc(offlinemode),true);
output=url.Response();
if (parseInt(output)<1) {
alert("ERROR: "+formProp.query+" is not a valid name for a query");
} else {
UpdateVqrFields(false);
}
}
// eslint-disable-next-line no-redeclare
function selectItem(el){
if (el){
if (last_index!=null && last_index>=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<itemsHTML.length; i++){
if (itemsHTML[i].name==obj.value){
selectItem(itemsHTML[i].element);
break;
}
}
}
}
function insertImage(url,imgnew,retTo){
itemsHTML[index][retTo]=url;
Properties();
writeHTML();
}
function addAction(action,dontUpdate){
var select;
if (!action){
action={}
action.title='action'+progrAct;
action.actionName='action'+progrAct;
action.hyperlink='';
action.url='';
action.visibility='default';
action.important='false';
action.image_settings='default'
action.font_name='';
action.font_image='';
action.font_size='';
action.font_color='';
action.entityType='hyperlink';
action.parameter='';
action.sendMemCurs='false';
action.memCursParam='';
action.checkAllParam='';
action.queryFilterParam='';
action.doQryAfterRoutine='false';
action.image='';
action.showInMenu='false';
action.popup_height='';
action.popup_width='';
action.progressBar='false';
action.progressBarPortlet='';
action.target='_blank';
action.popup='true';
action.confirmMessage='';
select=true;
}
action.actionName = action.actionName || action.title || 'action'+progrAct;
var actionName=new Element('span',{
html:action.actionName,
styles:{
'paddingLeft':'5px'
},
title:action.title
})
var deleteImg=new Element('div',{
'class':'imgDelete',
title:'Delete'
})
deleteImg.addEvent('click',function(){
//si passa l'elemento li
selectItem(this.getParent());
removeItem(this.getParent());
})
var newAction=new Element('li',{
}).adopt(deleteImg).adopt(actionName);
newAction.addEvent('click',function(){
selectItem(this);
})
action.element=newAction;
itemsHTML.push(new ZTObjects.actionObj(action));
// nItem++;
progrAct++
mySortables.addItems(newAction);
document.getElementById('actionList').adopt(newAction);
if (select)
selectItem(newAction)
resizeGadgetsPane();
if (!dontUpdate)
SetUpdated();
}
function addNewLinkedConf(linkedConf,dontUpdate){
var select;
if (!linkedConf){
linkedConf={}
linkedConf.title='Linked Configuration '+progrLCf;
linkedConf.linkedConfName='Linked Configuration '+progrLCf;
linkedConf.configname='';
linkedConf.configtype='';
linkedConf.ontoolbar='false';
linkedConf.ontabs='false';
linkedConf.imagetoolbar='';
linkedConf.imagetype='grid';
select=true;
}
linkedConf.linkedConfName = linkedConf.linkedConfName || linkedConf.title || 'Linked Configuration '+progrLCf;
var linkedConfName=new Element('span',{
html:linkedConf.title,
styles:{
'paddingLeft':'5px'
},
title:linkedConf.title
});
var deleteImg=new Element('div',{
'class':'imgDelete',
title:'Delete'
})
deleteImg.addEvent('click',function(){
//si passa l'elemento li
selectItem(this.getParent())
removeItem(this.getParent())
})
var newLinkedConf=new Element('li',{
}).adopt(deleteImg).adopt(linkedConfName);
newLinkedConf.addEvent('click',function(){
selectItem(this);
})
linkedConf.element=newLinkedConf;
itemsHTML.push(new ZTObjects.linkedConfigurationObj(linkedConf));
//nItem++;
progrLCf++
mySortables.addItems(newLinkedConf);
document.getElementById('linkedConfList').adopt(newLinkedConf);
if (select)
selectItem(newLinkedConf)
resizeGadgetsPane();
if (!dontUpdate)
SetUpdated();
}
function editPortlet(ref){
var url=document.getElementById((typeof ref =='object'?ref.refId:ref)).value;
if(!Empty(url)){
url=Strtran(url,"_portlet.jsp","");
if(url.indexOf("?")>-1){
url = url.substring(0,url.indexOf("?"));
}
if(parent.newCurrentObj!=null && parent.portalStudioContainer)
window.parent.newCurrentObj(url,"portlet",{});
else
window.open("../visualweb/editor.jsp?id="+url, "portleteditor", "resizable=yes,status=no,toolbar=no,menubar=no,location=no");
}
}
function setPropertyValue(isForm,tab,name,value){
var el = document.getElementById((isForm?'Form_':'')+tab+'_'+name);
if(isForm){
formProp[name] = value;
}else{
itemsHTML[index][name] = value;
}
if(el.type == 'checkbox'){
el.checked= (value=='true'?'checked':'');
}else{
el.value=value;
}
el.focus();
el.blur();
}
function SetChartWizardConfiguration(obj) {
if (!Empty(obj.def)) {
setPropertyValue(true, 'chart_options', 'chartDef', obj.def);
}
else {
setPropertyValue(true, 'chart_options', 'chartDef', "type:" + obj.type);
}
}
function selectPortlet(ref){
PickItems('portlet',ref.refId,null, null, 930, 600);
}
function checkChartDef(chartName) {
if (Empty(chartName))
return true;
if (chartName.indexOf("type:") == 0) {
SetSmartChartdef(chartName);
return true;
}
var chartdef = getChartDefType(chartName),
mcat = chartdef.category;
if (mcat != "error") {
//setPropertyValue(true, 'chart_options', 'chartDef', chartName);
}
else {
PSAlert.alert("Chart Definition not Found");
return false;
}
return true;
}
var _clevelObj = null;
function checkDataSourceLevel(obj) {
_clevelObj = obj;
openSPModalLayer("../jsp-system/SPVisualPivotPrefetch_portlet.jsp", 100, 100, 660, 225, false, 1, false,false,null,true);
}
function SetCacheLevel(rowIndex, colIndex) {
if(!_clevelObj) return;
var inp, str;
if( _clevelObj.refPropId == 'cachelevel2' ) {
inp = document.getElementById(_clevelObj.refId)
this.updateProperties(inp,_clevelObj.refPropId,'str',true,colIndex+"",true)
inp.value = colIndex+"";
str = Strtran(_clevelObj.refId, 'cachelevel2', 'cachelevel')
inp = document.getElementById(str)
this.updateProperties(inp,'cachelevel','str',true,rowIndex+"",true)
inp.value = rowIndex+"";
}
else {
inp = document.getElementById(_clevelObj.refId)
this.updateProperties(inp,_clevelObj.refPropId,'str',true,rowIndex+"",true)
inp.value = rowIndex+"";
str = Strtran(_clevelObj.refId, 'cachelevel', 'cachelevel2')
inp = document.getElementById(str)
this.updateProperties(inp,'cachelevel2','str',true,colIndex+"",true)
inp.value = colIndex+"";
}
}
function loadFromFile(dontupdate){
dontupdate = true;
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;
let strreload = JSON.parse(sessionStorage.getItem(c_ripristino))["def"];
configname = JSON.parse(sessionStorage.getItem(c_ripristino))["name"];
reload_(strreload);
sessionStorage.removeItem(c_ripristino);
if(window.parent.location.href.indexOf("portalstudio.jsp") < 0){
if(configname){
save();
} else if(!configname){
save();
}
}
} else if(window.frameElement?.jdef){
parent.is_Saving = false;
let form = JSON.parse(window.frameElement.jdef);
reload_(form);
window.frameElement.jdef = undefined;
} else {
new JSURL(SPWebRootURL+"/servlet/SPVPVProxy?action=load&ConfigName="+URLenc(configname) + "&Custom="+URLenc(custom)+"&offlinemode="+URLenc(offlinemode),
true, (response) => {
let jsonobj;
try {
jsonobj = JSON.parse(response.Response());
} catch (e) {
alert('Errore in caricamento del def');
return;
}
if (jsonobj.ERROR) {
alert(jsonobj.ERROR);
return;
}
reload_(jsonobj);
});
}
return dontupdate;
}
function reload_(jsonobj){
var filters = jsonobj.arrayFilters ? jsonobj.arrayFilters : [];
filtersObj = [];
var i, f, j, keys, key, o; //, c;
for( i=0; i<filters.length; i++) {
f = filters[i];
keys = Object.keys(f);
o = {};
for( j=0; j<keys.length; j++) {
key = keys[j];
if( key.endsWith('_op') )
o.operator = f[key];
else if( !key.endsWith('_visible') && !key.endsWith('_fixed')) {
o.field = key;
o.expression = f[key]
}
}
filtersObj.push(o)
}
for (i=0;i<globalProps.length;i++) {
if ( typeof (jsonobj.configuration[globalProps[i]])!='undefined' && jsonobj.configuration[globalProps[i]]!='undefined' )
formProp[globalProps[i]] = jsonobj.configuration[globalProps[i]];
}
//console.log(jsonobj)
baseCustomization.custom = formProp.custom;
var tmpconfigname = configname;
if (!Empty(jsonobj.configuration.user)) {
baseCustomization.user_group = formProp.user_group = 'User';
tmpconfigname = Strtran(tmpconfigname,"_"+jsonobj.configuration.user,"");
baseCustomization.user = jsonobj.configuration.user;
} else if (!Empty(jsonobj.configuration.group)) {
baseCustomization.user_group = formProp.user_group = 'Group';
tmpconfigname = Strtran(tmpconfigname,"_g"+jsonobj.configuration.group+"");
baseCustomization.group = jsonobj.configuration.group;
} else {
formProp.user_group = '';
}
configname = tmpconfigname;
baseCustomization.name = formProp.name = tmpconfigname;
formProp.user = jsonobj.configuration.user;
formProp.group = jsonobj.configuration.group;
FormProperties( true );
UpdateVqrFields(true);
columnsObj = jsonobj.cols ? jsonobj.cols : [];
columnsObj.forEach(function(col) {
Object.assign(col, { type: "column", id: LibJavascript.AlfaKeyGen(10) })
var idx = LibJavascript.Array.indexOf(vqrfields,col,function(elArray) {
return elArray.alias==col.field;
});
if( idx >= 0) Object.assign(col, { f_type: vqrfields[idx].type })
});
columnsList.UpdateList(columnsObj);
rowsObj = jsonobj.rows ? jsonobj.rows : [];
rowsObj.forEach(function(row) {
Object.assign(row, { type: "row", id: LibJavascript.AlfaKeyGen(10) })
var idx = LibJavascript.Array.indexOf(vqrfields,row,function(elArray) {
return elArray.alias==row.field;
});
if( idx >= 0) Object.assign(row, { f_type: vqrfields[idx].type })
});
rowsList.UpdateList(rowsObj);
measuresObj = jsonobj.measures ? jsonobj.measures : [];
measuresObj.forEach(function(measure) {
Object.assign(measure, { type: "measure", id: LibJavascript.AlfaKeyGen(10) })
var idx = LibJavascript.Array.indexOf(vqrfields,measure,function(elArray) {
return elArray.alias==measure.field;
});
if( idx >= 0) Object.assign(measure, { f_type: vqrfields[idx].type })
});
measuresList.UpdateList(measuresObj);
odimensionsObj = jsonobj.odimensions ? jsonobj.odimensions : [];
odimensionsObj.forEach(function(odimensions) {
Object.assign(odimensions, { type: "odimension", id: LibJavascript.AlfaKeyGen(10) })
var idx = LibJavascript.Array.indexOf(vqrfields,odimensions,function(elArray) {
return elArray.alias==odimensions.field;
});
if( idx >= 0) Object.assign(odimensions, { f_type: vqrfields[idx].type })
});
odimensionsList.UpdateList(odimensionsObj);
omeasuresObj = jsonobj.omeasures ? jsonobj.omeasures : [];
omeasuresObj.forEach(function(omeasure) {
Object.assign(omeasure, { type: "omeasure", id: LibJavascript.AlfaKeyGen(10) })
var idx = LibJavascript.Array.indexOf(vqrfields,omeasure,function(elArray) {
return elArray.alias==omeasure.field;
});
if( idx >= 0) Object.assign(omeasure, { f_type: vqrfields[idx].type })
});
omeasuresList.UpdateList(omeasuresObj);
ManageFlagImages();
if (jsonobj.actions){
for (i=0; i<jsonobj.actions.length; i++){
addAction(jsonobj.actions[i],true);
}
}
if (jsonobj.linkedConfs){
for (i=0; i<jsonobj.linkedConfs.length; i++){
addNewLinkedConf(jsonobj.linkedConfs[i],true);
}
}
// arrayFilters;
};
// --------- EXPORT ----------- //
/**
* Ottiene JDEF e aggiunge Versione e Tool
*/
function getJDEF(){
var getJDef = save2("getJDEF");
let toolType = tool;
let versionTool = formProp.version;
let newJDefStringify = {
tool: toolType,
version : versionTool,
def : getJDef,
name : configname
}
return newJDefStringify;
}