OXIESEC PANEL
- Current Dir:
/
/
home
/
cubot
/
docroot
/
showcase
/
js
/
app
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
12/31/2022 06:53:36 AM
rwxr-xr-x
📁
.svn
-
08/14/2022 11:05:11 AM
rwxr-xr-x
📄
chartPrefs.js
14.32 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
compute.js
6.11 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
filterClass.js
4.91 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
filter_template.js
72.65 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
ws.app.js
18.87 KB
08/14/2022 11:05:11 AM
rw-r--r--
📄
ws.lib.js
24.63 KB
08/14/2022 11:05:11 AM
rw-r--r--
Editing: ws.app.js
Close
/******************************** Dimension and Measure operations STARTS from Here************************* */ /* * Class to organise dimension, measure and targets */ function MetadataCollection() { this.dimensionTree = new Array(); this.measureTree = new Array(); this.myMeasureTree = new Array(); this.targetTree = new Array(); this.getItemNameById=getItemNameById; this.getItemById=getItemById; } //Function to return item name function getItemNameById(passedID){ var itemTree=null; if(passedID<10000){ itemTree=this.dimensionTree; } else if(passedID>10000 && passedID<20000){ itemTree=this.measureTree; } else if(passedID>20000 && passedID<50000){ itemTree=this.myMeasureTree; } else{ itemTree=this.targetTree; } for(var i=0; i<itemTree.length; i++){ if(itemTree[i].Id == passedID){ return itemTree[i].Name; } for(var j=0; j<itemTree[i].items.length; j++){ if(itemTree[i].items[j].Id == passedID){ return itemTree[i].items[j].Name; } } } } function getItemById(passedID){ var itemTree=null; if(passedID<10000){ itemTree=this.dimensionTree; } else if(passedID>10000 && passedID<20000){ itemTree=this.measureTree; } else if(passedID>20000 && passedID<50000){ itemTree=this.myMeasureTree; } else{ itemTree=this.targetTree; } for(var i=0; i<itemTree.length; i++){ if(itemTree[i].Id == passedID){ return itemTree[i]; } for(var j=0; itemTree[i].items && j<itemTree[i].items.length; j++){ if(itemTree[i].items[j].Id == passedID){ return itemTree[i].items[j]; } } } return itemTree; } /* * Class to organise items * One object will contain details for one item * Object will have number of item objects if it is a group item * items: this will be array of child item objects */ function createItem(itemRecordArray){ this.Group = itemRecordArray[0]; this.ParentId = itemRecordArray[1]; this.Id = itemRecordArray[2]; this.Name = itemRecordArray[3]; this.Table = itemRecordArray[4]; this.Column = itemRecordArray[5]; this.AggFunction = itemRecordArray[6]; this.WhereClause1 = itemRecordArray[7]; this.WhereClause2 = itemRecordArray[8]; this.WhereClause3 = itemRecordArray[9]; this.IsFloorTgt = itemRecordArray[10]; this.TimeColumn = itemRecordArray[11]; this.Description = itemRecordArray[12]; this.GroupParentId = itemRecordArray[13]; this.HavingClause = itemRecordArray[14]; this.Attributes = itemRecordArray[15]; this.Format = itemRecordArray[16]; this.DataType = itemRecordArray[17]; this.DataSubType = itemRecordArray[18]; this.DataPrefix = itemRecordArray[19]; this.DataSuffix = itemRecordArray[20]; this.JoinTable = itemRecordArray[21]; this.MinimumValue = itemRecordArray[22]; this.MaximumValue = itemRecordArray[23]; this.items; } //var ItemListTags = new Array( "Group", "ParentId", "Id", "Name", "Table", "Column", "AggFunction", "WhereClause1", "WhereClause2", "WhereClause3", "IsFloorTgt", "TimeColumn", "Description", "GroupParentId", "HavingClause", "Attributes", "Format", "DataType", "DataSubType", "DataPrefix", "DataSuffix", "JoinTable", "MinimumValue", "MaximumValue" ); function createItemList(sessionid){ var MetaDataArray = getMetaData(sessionid); //getMetaData will return a 2D array var metaDataCollection = new MetadataCollection(); if(MetaDataArray.length<2) return metaDataCollection; /* Create my measure group as we will not get any entry for my measure */ metaDataCollection.myMeasureTree.push(new createItem(MetaDataArray[0])); metaDataCollection.myMeasureTree[0].Group = "DisplayF"; metaDataCollection.myMeasureTree[0].ParentId = 20000; metaDataCollection.myMeasureTree[0].Id = 20000; metaDataCollection.myMeasureTree[0].Name = "My Measures"; metaDataCollection.myMeasureTree[0].items = new Array(); for(var i=0; i<MetaDataArray.length; i++){ if(MetaDataArray[i][2] == 0 || MetaDataArray[i][2] == 10000 || MetaDataArray[i][2] == 50000) continue; if(MetaDataArray[i][1] == 0){ // If parent id =0 then treat as a dimension group metaDataCollection.dimensionTree.push(new createItem(MetaDataArray[i])); metaDataCollection.dimensionTree[metaDataCollection.dimensionTree.length-1].items = new Array(); } else if(MetaDataArray[i][1] == 10000 && MetaDataArray[i][2]<20000) { // If parent id =10000 and id < 20000 then treat as a measure group metaDataCollection.measureTree.push(new createItem(MetaDataArray[i])); metaDataCollection.measureTree[metaDataCollection.measureTree.length-1].items = new Array(); } else if(MetaDataArray[i][2]<10000){ // If id <10000 then treat as a dimension and add to groups item metaDataCollection.dimensionTree[metaDataCollection.dimensionTree.length-1].items.push(new createItem(MetaDataArray[i])); } else if(MetaDataArray[i][2]<20000){ // If id <20000 then treat as a my measure and add to groups item metaDataCollection.measureTree[metaDataCollection.measureTree.length-1].items.push(new createItem(MetaDataArray[i])); } else if(MetaDataArray[i][2]<50000){ // If id <50000 then treat as a measure and add to groups item metaDataCollection.myMeasureTree[metaDataCollection.myMeasureTree.length-1].items.push(new createItem(MetaDataArray[i])); } else if(MetaDataArray[i][2]>50000){ // If id >50000 then treat as a target and add to groups item metaDataCollection.targetTree.push(new createItem(MetaDataArray[i])); } } return metaDataCollection; } /* * Class created to send details to createResultSet request */ function resultSet(){ this.authToken; this.isAsync = false; // true : Run this in Asynchronous ; false : Run this in synchronous (Wait till request completes) this.dimensionList; this.measureList; this.dimensionFilterList; this.measureFilterList; this.callback; this.context; } function canApplyForecast(ReportObj){ var ptr=0; for(var i=0; ReportObj.dimmeta && i<ReportObj.dimmeta.length; i++){ ptr=1; if(ReportObj.dimmeta[i] != "year" && ReportObj.dimmeta[i] != "month" && ReportObj.dimmeta[i] != "quarter"){ return false; } } if(ptr) return true; else return false; } function createReport(authToken, isAsync, callback, reportObj){ var newResultSet= new resultSet(); newResultSet.authToken = authToken; newResultSet.isAsync = isAsync; // true : Run this in Asynchronous ; false : Run this in synchronous (Wait till request completes) newResultSet.dimensionList = reportObj.getdimensionIds().join(':'); newResultSet.measureList = reportObj.getmeasureIds().join(':'); newResultSet.dimensionFilterList = reportObj.getdimensionFilters().join(':'); newResultSet.measureFilterList = reportObj.getmeasureFilters().join(':'); var params=""; var topx=parseFloat(reportObj.gettopn()); if(topx>0) params="topx="+topx+";"; /*else params="topx="+G_RecordLimit; // Declared in ws.core.js */ var forecast=reportObj.getPropsValue("forecast"); if(forecast>10000 && canApplyForecast(reportObj)) params+="forecast="+forecast+";"; //params+="sort="+reportObj.getmeasures()[0]+" (Down);"; newResultSet.params=params; newResultSet.callback = callback; newResultSet.context = reportObj; getData(newResultSet); } function initReportObj(ReportObj){ ReportObj.setgtype(""); ReportObj.settitle("New Report"); ReportObj.setwidth(getMwidth()*.8); ReportObj.setheight(getMheight()*.3); ReportObj.setdimensions(new Array()); ReportObj.setmeasures(new Array()); ReportObj.setformats(new Array()); ReportObj.setminmax(new Array()); ReportObj.setlayout("Normal"); ReportObj.setdimmeta(new Array()); ReportObj.settopn("-1"); ReportObj.setsystitle("Title"); /*Required for Table Chart*/ ReportObj.setsubtitle(""); ReportObj.setdimensionIds(new Array()); ReportObj.setmeasureIds(new Array()); ReportObj.setdimensionFilters(new Array()); ReportObj.setmeasureFilters(new Array()); ReportObj.setparentId(100000); ReportObj.setdescription(""); ReportObj.setnote(""); ReportObj.setrefresh(""); ReportObj.setgraphId(""); ReportObj.setinstance(""); ReportObj.setproperties(""); ReportObj.setReportPermission(""); ReportObj.dispObj=new displayOptions(); ReportObj.filterList = new reportFilterList(); return ReportObj; } function getReportObjByReportMeta(authToken, reportMetaData, displayObject, ReportObj){ ReportObj.setgtype(encodeFormat(reportMetaData.ReportType)); ReportObj.settitle(reportMetaData.Title); ReportObj.setwidth(getMwidth()*.8); ReportObj.setheight(getMheight()*.3); ReportObj.setdimensions(reportMetaData.Dimensions.split(':')); ReportObj.setmeasures(reportMetaData.Measures.split(':')); ReportObj.setformats(reportMetaData.MeasuresFormat.split(':')); ReportObj.setminmax(reportMetaData.MinMaxLevels.split(':')); ReportObj.setlayout(reportMetaData.ReportLayout); ReportObj.setdimmeta(reportMetaData.DimMetaData.split(':')); ReportObj.settopn(parseInt(reportMetaData.ReportTopn)); ReportObj.setsystitle(reportMetaData.SystemTitle); /*Required for Table Chart*/ ReportObj.setsubtitle(reportMetaData.SubTitle); ReportObj.setdimensionIds(reportMetaData.DimensionIds.split(':')); ReportObj.setmeasureIds(reportMetaData.MeasureIds.split(':')); ReportObj.setdimensionFilters(reportMetaData.DimensionFilters); ReportObj.setmeasureFilters(reportMetaData.MeasureFilters); ReportObj.setparentId(reportMetaData.ParentId); ReportObj.setdescription(reportMetaData.Description); ReportObj.setnote(reportMetaData.note); ReportObj.setrefresh(reportMetaData.Refresh); ReportObj.setgraphId(reportMetaData.Id); ReportObj.setinstance(reportMetaData.Instance); ReportObj.setproperties(getGraphProperties(authToken, reportMetaData.Id)); ReportObj.setReportPermission(getReportPermissions(authToken, reportMetaData.Id)); ReportObj.graphId = reportMetaData.Id; ReportObj.dispObj=displayObject; return ReportObj; } function populateReportFromID(authToken, reportMetaData, callback, displayObject, ReportObj){ getReportObjByReportMeta(authToken, reportMetaData, displayObject, ReportObj); createReport(authToken, false, callback, ReportObj); } /******************************** Dimension and Measure operations completed***************************/ /************************** Report List Part STARTS From Here *****************************************/ function CubotReport(reportMetadataArray){ this.Id=reportMetadataArray[0]; this.ParentId=reportMetadataArray[1]; this.Owner=reportMetadataArray[2]; this.Title=reportMetadataArray[3]; this.Description=reportMetadataArray[4]; this.CreateDate=reportMetadataArray[5]; this.LastAccessDate=reportMetadataArray[6]; this.GenerationTimeInSec=reportMetadataArray[7]; this.SubTitle=reportMetadataArray[8]; this.NRows=reportMetadataArray[9]; this.NCols=reportMetadataArray[10]; this.ReportType=reportMetadataArray[11]; this.ReportLayout=reportMetadataArray[12]; this.Dimensions=reportMetadataArray[13]; this.Measures=reportMetadataArray[14]; this.MeasuresFormat=reportMetadataArray[15]; this.ReportPermission=reportMetadataArray[16]; this.MinMaxLevels=reportMetadataArray[17]; this.SystemTitle=reportMetadataArray[18]; this.DimMetaData=reportMetadataArray[19]; this.ReportSortColumn=reportMetadataArray[20]; this.ReportTopn=reportMetadataArray[21]; this.DimensionIds=reportMetadataArray[22]; this.MeasureIds=reportMetadataArray[23]; this.DimensionFilters=reportMetadataArray[24]; this.MeasureFilters=reportMetadataArray[25]; this.Refresh=reportMetadataArray[26]; this.Instance=reportMetadataArray[27]; this.reports; } function CubotReportCollection(){ this.PersonalReports=new Array(); this.SharedReports=new Array(); this.addReportToList = addReportToList; this.getReportById = getReportById; } function addReportToCollection(reportCollection, newReportObj){ for(var i=0; i<reportCollection.length; i++){ if(reportCollection[i].Id == newReportObj.ParentId){ reportCollection[i].reports.push(newReportObj); return true; } } return false; } function addReportToList(newReportObj, reportType ){ if(reportType == "Personal"){ if(!addReportToCollection(this.PersonalReports, newReportObj)){ if(!addReportToCollection(this.SharedReports, newReportObj)){ newReportObj.reports= new Array(); this.PersonalReports.push(newReportObj); } } } else{ if(!addReportToCollection(this.SharedReports, newReportObj)){ if(!addReportToCollection(this.PersonalReports, newReportObj)){ newReportObj.reports= new Array(); this.PersonalReports.push(newReportObj); } } } } function getReportFromCollection(reportCollection, reportId){ for(var i=0; i<reportCollection.length; i++){ if(reportCollection[i].ReportType != 'Folder' && reportCollection[i].Id == reportId){ return reportCollection[i]; } for(var j=0; j<reportCollection[i].reports.length; j++){ if(reportCollection[i].reports[j].Id == reportId){ return reportCollection[i].reports[j]; } } } return ""; } function getReportById(reportId, reportType){ var reportObj = ""; if(reportType == "Personal"){ reportObj = getReportFromCollection(this.PersonalReports, reportId); if(reportObj.length <= 0) reportObj = getReportFromCollection(this.SharedReports, reportId); } else{ reportObj = getReportFromCollection(this.SharedReports, reportId); if(reportObj.length <= 0) reportObj = getReportFromCollection(this.PersonalReports, reportId); } return reportObj; } function createReportList(authToken, userId){ var reportCollection = new CubotReportCollection(); var reportListArray = getReportMetaData(authToken, "null"); var newReport=""; for(var i=0; i<reportListArray.length; i++){ newReport = new CubotReport(reportListArray[i]); if(reportListArray[i][11]=='Folder'){ newReport.reports = new Array(); if(reportListArray[i][2] == userId) reportCollection.PersonalReports.push(newReport); else reportCollection.SharedReports.push(newReport); } else{ if(reportListArray[i][2] == userId){ reportCollection.addReportToList(newReport, "Personal"); } else{ reportCollection.addReportToList(newReport, "Shared"); } } } return reportCollection; } function refreshDimMeasNames(ReportObj, metaDataCollection){ ReportObj.dimensions = new Array(); ReportObj.dimmeta = new Array(); var item=""; for(var i=0; i<ReportObj.dimensionIds.length; i++){ item=metaDataCollection.getItemById(ReportObj.dimensionIds[i]); ReportObj.dimensions.push(item.Name); ReportObj.dimmeta.push(item.Column); } ReportObj.measures= new Array(); for(var i=0; i<ReportObj.measureIds.length; i++){ ReportObj.measures.push(metaDataCollection.getItemNameById(ReportObj.measureIds[i])); } } function saveReport_unused(authToken, ReportObject){ var resultSet={}; var tagValuePair = ""; var operation = "SAVE"; var propsArray=""; var props=""; var permissionArray = ""; var viewby=""; var editby=""; tagValuePair = tagValuePair+"parentid="+ReportObject.getparentId()+";"; tagValuePair = tagValuePair+"name="+ReportObject.gettitle()+";"; if(ReportObject.getgtype()!="Folder") tagValuePair = tagValuePair+"reporttype=R;"; else tagValuePair = tagValuePair+"reporttype=F;"; tagValuePair = tagValuePair+"description="+ReportObject.getdescription()+";"; tagValuePair = tagValuePair+"refreshfreq="+ReportObject.getrefresh()+";"; /* Properties */ propsArray=ReportObject.getproperties(); for(var i=0;i<propsArray.length;i++){ props=props+propsArray[i][0]+"@"+propsArray[i][1]; if(i<propsArray.length-1) props=props+":" } tagValuePair = tagValuePair+"properties="+props+";"; /* Permission */ permissionArray=ReportObject.getReportPermission(); for(var i=0;i<permissionArray.length;i++){ if(permissionArray[i][2]!=3){ // 3 means Edit viewby = viewby+permissionArray[i][0]+":"; } else{ editby = editby+permissionArray[i][0]+":"; } } if(viewby.length>0) tagValuePair=tagValuePair+"viewby="+viewby.substring(0, viewby.length - 1)+";"; if(editby.length>0) tagValuePair=tagValuePair+"editby="+editby.substring(0, editby.length - 1)+";"; resultSet.graphId = ReportObject.getgraphId(); //Pass graph Id as "" if you wish to save as new resultSet.dimensionIds = ReportObject.getdimensionIds(); resultSet.measureIds = ReportObject.getmeasureIds(); resultSet.dimensionFilters = ReportObject.getdimensionFilters(); resultSet.measureFilters = ReportObject.getmeasureFilters(); resultSet.instance = ReportObject.getinstance(); resultSet.tagValuePair = tagValuePair; doReportOperation(authToken, operation, resultSet); } function saveReport(authToken, ReportObject){ var resultSet={}; var tagValuePair = ""; var operation = "SAVE"; var propsArray=""; var props=""; var permissionArray = ""; var viewby=""; var editby=""; tagValuePair = tagValuePair+"parentid="+ReportObject.getparentId()+";"; tagValuePair = tagValuePair+"name="+ReportObject.gettitle()+";"; if(ReportObject.getgtype()!="Folder") tagValuePair = tagValuePair+"reporttype=R;"; else tagValuePair = tagValuePair+"reporttype=F;"; tagValuePair = tagValuePair+"description="+ReportObject.getdescription()+";"; tagValuePair = tagValuePair+"refreshfreq="+ReportObject.getrefresh()+";"; /* Properties */ propsArray=ReportObject.getproperties(); for(var i=0;i<propsArray.length;i++){ props=props+propsArray[i][0]+"@"+propsArray[i][1]; if(i<propsArray.length-1) props=props+":"; } tagValuePair = tagValuePair+"properties="+props+";"; /* Permission */ permissionArray=ReportObject.getReportPermission(); for(var i=0;i<permissionArray.length;i++){ if(permissionArray[i][2]!=3){ // 3 means Edit viewby = viewby+permissionArray[i][0]+":"; console.log("A"+permissionArray[i][0]+"-"+permissionArray[i][2]+"B"); } else{ editby = editby+permissionArray[i][0]+":"; } } if(viewby.length>0) tagValuePair=tagValuePair+"viewby="+viewby.substring(0, viewby.length - 1)+";"; if(editby.length>0) tagValuePair=tagValuePair+"editby="+editby.substring(0, editby.length - 1)+";"; resultSet.graphId = ReportObject.getgraphId(); resultSet.dimensionIds = ReportObject.getdimensionIds().join(':'); resultSet.measureIds = ReportObject.getmeasureIds().join(':'); resultSet.dimensionFilters = ReportObject.getdimensionFilters().join(':'); resultSet.measureFilters = ReportObject.getmeasureFilters().join(':'); resultSet.instance = ReportObject.getinstance(); resultSet.tagValuePair = tagValuePair; return doReportOperation(authToken, operation, resultSet); } /* * Delete a report * */ function deleteReport(authToken, ReportObject){ var resultSet={}; var operation = "DELETE"; resultSet.graphId = ReportObject.getgraphId(); doReportOperation(authToken, operation, resultSet); } /* * Delete a report from trash * */ function deleteReportFromTrash(authToken, ReportObject){ var resultSet={}; var operation = "DELETE_FROM_TRASH"; /* * if graph id is blank then delete all report from trash * if pass a graph id then delete selected graphid data and metadata. * */ resultSet.graphId = ReportObject.getgraphId(); doReportOperation(authToken, operation, resultSet); } /* * Restore a report from trash * */ function restoreReportFromTrash(authToken, ReportObject){ var resultSet={}; var operation = "RESTORE_FROM_TRASH"; resultSet.graphId = ReportObject.getgraphId(); doReportOperation(authToken, operation, resultSet); }