OXIESEC PANEL
- Current Dir:
/
/
home
/
cubot
/
docroot
/
showcase
/
js
/
ws
Server IP: 139.59.38.164
Upload:
Create Dir:
Name
Size
Modified
Perms
📁
..
-
12/31/2022 06:53:36 AM
rwxr-xr-x
📄
.filter_template.js.swp
20 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
.ws.core.js.swp
20 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
chartPrefs.js
14.4 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
compute.js
6.11 KB
08/14/2022 11:05:25 AM
rw-r--r--
📄
display.js
13.24 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
dtree.js
14.88 KB
08/14/2022 11:05:25 AM
rw-r--r--
📁
files
-
08/14/2022 11:05:24 AM
rwxr-xr-x
📄
filterClass.js
5.17 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
filter_template.js
87.03 KB
08/14/2022 11:05:25 AM
rw-r--r--
📄
filter_template.js_17Feb2020
85.47 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
filter_template.js_19jan18
81.31 KB
08/14/2022 11:05:25 AM
rw-r--r--
📄
ws.app.js
22.03 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
ws.core.js
46.33 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
ws.ext.js
34.42 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
ws.ext.js_09dec2019
33.16 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
ws.ext.js_10dec2019
32.45 KB
08/14/2022 11:05:25 AM
rw-r--r--
📄
ws.ext.js_28Aug2019
23.55 KB
08/14/2022 11:05:25 AM
rw-r--r--
📄
ws.lib.js
35.14 KB
08/14/2022 11:05:25 AM
rw-r--r--
📄
ws.lib.js_19jan18
30.59 KB
08/14/2022 11:05:24 AM
rw-r--r--
📄
wsAll.js
143.54 KB
08/14/2022 11:05:24 AM
rw-r--r--
Editing: ws.core.js
Close
var rdNS="http://www.robustdesigns.com/services/cubotsvc"; var reportDataCache={}; /* Report Data Cache */ var reportPropertiesCache = {}; var reportMetaDataCache={}; /* Report List Cache */ var reportMetaDataCacheOriginal={}; /*Original Cache*/ var itemListCache=""; /*measure and dimension cache */ var Uaccessstr="", userId="", userName="", userLanguage="English" ; var userLoginFilter="",PERMANENT_FILTERS=""; var ERROR=0, WARNING=1, INFO=2, MAX=3; var DEBUG_LEVEL=ERROR; var RDCACHE=true; //Report data cache var RLCACHE=true; //Report list cache var ILCACHE=true; //Item list cache var ONEGRAPH=false; //One graph at a time var G_RecordLimit=30; /* *All the browsers does not support getElementsByTagNameNS function. So this function takes care of getElementsByTagNameNS or getElementsByTagName need to be called. *First we are checking if getElementsByTagNameNS can be used for this browser or not, then we are proceeding. */ function get_ElementsByTagNameNS(nameSpace, doc, tag){ if(doc == null || doc.length < 1) return ""; if(doc.getElementsByTagNameNS) x=doc.getElementsByTagNameNS(nameSpace, tag); else x=doc.getElementsByTagName("n:"+tag); return x; } /* * Function to return a random string. Used to append in the url to set new request every time */ function rand() { var chars = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz"; var string_length = 8; var randomstring = ''; for (var i=0; i<string_length; i++) { var rnum = Math.floor(Math.random() * chars.length); randomstring += chars.substring(rnum,rnum+1); } return randomstring; } /* * Function to make XML proper */ function xmlEscape(xmlstr){ // int invalid_char[] = {'\"', '&', '\'', '<', '>', -80, -36, -23}; // char replace_char[][8] = {""", "&", "'", "<", ">", "°", "Ü", "é"}; if(xmlstr) return xmlstr.replace(new RegExp("&", 'g'), "&").replace(new RegExp("\"", 'g'), """).replace(new RegExp("'", 'g'),"'").replace(new RegExp("<", 'g'),"<").replace(new RegExp(">", 'g'),">"); else return xmlstr; } function decodeXML(xmlstr){ if(xmlstr) return xmlstr.replace(new RegExp(" ", 'g'), " ").replace(new RegExp("&", 'g'), "&").replace(new RegExp(""", 'g'), "\"").replace(new RegExp("'", 'g'),"'").replace(new RegExp("<", 'g'),"<").replace(new RegExp(">", 'g'),">").replace(new RegExp("%", 'g'), "%"); else return xmlstr; } /* * Function used to calculate time between two calls. *Ussage: var watch= new stopWatch(); //sets stTime * watch.stop(); //Sets the endTime * Now you can use watch.stTime and watch.endTime variable for start time and end time. */ function stopWatch(){ this.stTime=(new Date()).getTime(); this.endTime=0; this.start=function(){ this.stTime=(new Date()).getTime(); } this.stop=function(){ this.endTime=(new Date()).getTime(); } } /* * Prepares the cache of report data. We are using this cache if user changes any graph type. No need to call again to get the report data. */ function fillReportDataCache(id, value){ if(!RDCACHE) return; var col_values=new Array(value.length); for(var i=0; i<value.length; i++){ col_values[i]=new Array(value[i].length); col_values[i]=value[i].slice(0); } reportDataCache[id]={data:col_values}; } /* * Returns the report data from cache */ function returnReportData(id){ var value=reportDataCache[id].data; var col_values=new Array(value.length); for(var i=0; i<value.length; i++){ col_values[i]=new Array(value[i].length); col_values[i]=value[i].slice(0); } return col_values; } /* * Returns report metadata from the cache */ function returnReportMetaData(id){ var value=reportMetaDataCache[id].meta; var col_values=new Array(); col_values=value.slice(0); return col_values; } /* * Returns report metadata from the cache */ function returnReportMetaDataList(){ var col_values=new Array(); var i=0; for (key in reportMetaDataCache) { if (reportMetaDataCache.hasOwnProperty(key)) { col_values[i++]=reportMetaDataCache[key].meta; } } return col_values; } /* * Prepares cache for report meta data */ function fillReportMetaDataCache(id, value){ if(!RLCACHE) return; if(id=='null'){ for(var i=0; i<value.length; i++){ reportMetaDataCache[value[i][0]]={meta:value[i].slice(0)}; } } else { reportMetaDataCache[id]={meta:value[0]}; } } function fillReportMetaDataCacheOriginal(id, value){ if(!RLCACHE) return; if(id=='null'){ for(var i=0; i<value.length; i++){ reportMetaDataCacheOriginal[value[i][0]]={meta:value[i].slice(0)}; } } else { reportMetaDataCacheOriginal[id]={meta:value[0]}; } } function getRequestedData(URL, postData, isPost, isAsync){ var xmlhttp; try{ if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); } else if(window.ActiveXObject){ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); if(! xmlhttp){ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } } } catch(e){ alert("Your browser does not permit the use of all of this application's features!"); window.status = "Error: AJAX Not Supported."; return (false); } if(!xmlhttp){ alert("Your browser does not permit the use of all of this application's features!"); return (false); } if(isPost){ xmlhttp.open("POST", URL, isAsync); xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=UTF-8"); } else{ xmlhttp.open("GET", URL, isAsync); postData="null"; } xmlhttp.send(postData); return xmlhttp.responseText; } /* * Ajax call to execute the URL and returns response data. * URL: The url you want to execute * postData: Data you want to send it in post * isPost: true if POST else false if operation is GET * isAsync: Decides if this operation should be asynchronous. */ function getRequestedXML(URL, postData, isPost, isAsync){ URL+="/"+rand(); var xmlhttp; try{ if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); } else if(window.ActiveXObject){ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); if(! xmlhttp){ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } } } catch(e){ alert("Your browser does not permit the use of all of this application's features!"); window.status = "Error: AJAX Not Supported."; return (false); } if(!xmlhttp){ alert("Your browser does not permit the use of all of this application's features!"); return (false); } if(isPost){ xmlhttp.open("POST", URL, isAsync); xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=UTF-8"); } else{ xmlhttp.open("GET", URL, isAsync); postData="null"; } xmlhttp.send(postData); return xmlhttp.responseXML; } /* * Synchronous call to get report data. */ function getReportData(authToken, gid, topX){ if(reportDataCache[gid]){ return returnReportData(gid); } var URL = "/axis2/rx/cubotsvc/getReportData/"+ authToken +"/"+gid+"/topx="+(topX||-1); var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "DATA"); var NumRow=x.length, colList=""; if(NumRow<1) check_session_status(xmlDoc); col_values=new Array(NumRow); for (i=0;i<NumRow;i++) { colList=get_ElementsByTagNameNS(rdNS, x[i], "COL"); NumCol=colList.length; col_values[i]=new Array(NumCol); for(j=0; j<NumCol; j++){ if(colList[j].childNodes[0]){ col_values[i][j]=colList[j].childNodes[0].nodeValue; } else{ col_values[i][j]=''; } } } fillReportDataCache(gid, col_values); return col_values; } /* * Asynchronous call to get report data from webservice call * authToken: unique id for this user seession * gid: Saved graph id. CUBOT uses saved graph id to extract data. * refresh: If refresh==1 then dont fetch the data from cache, get new webservice call to get new data * callback: call back function pointer . (Used showreport function) * context: reportContext class object . ( object stores gtype, height, width, moduleId, divId) * once we got the data from web services. We are calling callback function with report context object. */ function getReportDataAsync(authToken, gid, refresh, callback, context, topX){ if(!refresh && reportDataCache[gid] && (reportDataCache[gid].data.length>1)){ callback(returnReportData(gid), gid, context); //showReport(gid, gtype, height, width, moduleId, divId, returnReportData(gid)){ return false; } console.log((new Date()).getTime()+" : Start getting report Data "+ gid); var watch= new stopWatch(); var URL = "/axis2/rx/cubotsvc/getReportData/"+ authToken +"/"+gid+"/topx="+(topX||-1)+"/"+rand(); $.ajax({async:true, url:URL, success: function (result){ watch.stop(); console.log((new Date()).getTime()+" : End getting report Data "+ gid); writeLog(MAX, authToken, new logContext("Service", "GetReportData", gid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); console.log((new Date()).getTime()+" : Start parsing report data from XML to Javascript array "+ gid); var xmlDoc=result; var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "DATA"); var NumRow=x.length, colList=""; if(NumRow<1) check_session_status(xmlDoc); col_values=new Array(NumRow); for (i=0;i<NumRow;i++) { colList=get_ElementsByTagNameNS(rdNS, x[i], "COL"); NumCol=colList.length; col_values[i]=new Array(NumCol); for(j=0; j<NumCol; j++){ if(colList[j].childNodes[0]){ col_values[i][j]=colList[j].childNodes[0].nodeValue; } else{ col_values[i][j]=''; } } } console.log((new Date()).getTime()+" : End parsing report data from XML to Javascript array "+gid); console.log((new Date()).getTime()+" : Start fill report cache "+gid); fillReportDataCache(gid, col_values); console.log((new Date()).getTime()+" : End fill report cache "+gid); callback(col_values, gid, context); }, failure: function (result){ watch.stop(); writeLog(ERROR, authToken, new logContext("Service", "GetReportData", gid, "ERROR","PERFORMANCE", '', watch.stTime, watch.endTime)); } }); } function getDimensionSortOrder(authToken, dimensionId){ var URL = "/axis2/rx/cubotsvc/getSortOrder/"+authToken+"/"+dimensionId; var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "Data"); var col_values = new Object(); for(var i=0; i<x.length; i++){ col_values[getTagValue(x[i], "Value")] = Number(getTagValue(x[i], "Position")); } return col_values; } /* * Function to check if any AUTH error for the session. And call the SessionExpire.html in case of AUTH error */ function check_session_status(MainTag){ var tagArray=get_ElementsByTagNameNS(rdNS, MainTag, "status"); if(tagArray.length >0 && tagArray[0].childNodes[0].nodeValue == "CUBOT-AUTH-ERROR"){ var current_addr=window.top.location.href.split("?"); /*var current_addr=document.URL.split("?"); var dbName=getFromURL('db'); if(current_addr[1]&& current_addr[1].indexOf("db=")>=0){ $("#relogin").dialog({ title:"Relogn", height:300, width: 300, modal: true, resizable: true, autoResize: false, autoOpen: false, position:['center','center'] }); var htmlstr='<table align="center" cellpadding="0" cellspacing="0" border="0"><tbody><tr><td class="name">User Name</td><td><input type="textbox" id="userName"></td></tr><tr><td class="name">Password</td><td><input type="password" id="password"></td></tr><tr><td colspan=2 align=right><button class="loginButton" onclick="reloginCubot(\''+dbName+'\');" tabindex="3">Login</button></td></tr></tbody></table>'; $("#relogin").html(htmlstr).dialog("open"); } else */ if(current_addr[1]){ window.top.location.href="SessionExpire.html?"+current_addr[1]; } else{ window.top.location.href="SessionExpire.html"; } } } function reloginCubot(dbName){ var userName=$("#userName").value(); var Password=$("#password").value(); var session=loginCubot(dbName, userName, Password); var exdate=new Date(); exdate.setDate(exdate.getDate() + 2); document.cookie="RXSESSION="+session+"; expires="+exdate.toUTCString(); sessionid=session; //$("#relogin").dialog("close"); } /* * Function to get the tag values with proper checking. */ function getTagValue(MainTag, SubTag){ var val=""; var tagArray=get_ElementsByTagNameNS(rdNS, MainTag, SubTag); if(tagArray.length < 1){ check_session_status(MainTag); return ""; } if(tagArray[0].childNodes[0]){ for(var i=0; i<tagArray[0].childNodes.length; i++) //Firefox contains only 4096 char for one node.Divides huge data into multiple childNodes. val+=tagArray[0].childNodes[i].nodeValue; if(val != "NO-DATA-FOUND") return val; else return ''; } else{ return ''; } } /* *Function to get report metadata */ function getReportMetaData(authToken, gid){ if(reportMetaDataCache[gid]) return returnReportMetaData(gid); if(gid == "null" && (jQuery.isEmptyObject(reportMetaDataCache) == false)) return returnReportMetaDataList(); var watch= new stopWatch(); var URL = "/axis2/rx/cubotsvc/getReportList/"+ authToken +"/"+gid; var RptListTags = new Array( "Id", "ParentId", "Owner", "Title" , "Description", "CreateDate", "LastAccessDate", "GenerationTimeInSec", "SubTitle", "NRows", "NCols", "ReportType", "ReportLayout", "Dimensions", "Measures", "MeasuresFormat", "ReportPermission", "MinMaxLevels" , "SystemTitle", "DimMetaData", "ReportSortColumn", "ReportTopn", "DimensionIds", "MeasureIds", "DimensionFilters", "MeasureFilters", "Refresh", "Instance"); var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "Report"); watch.stop(); var NumRow=x.length; var col_values=new Array(); if(getTagValue(x[0], 'Id') == ''){ writeLog( ERROR, authToken, new logContext("Service", "GetReportList", gid, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); check_session_status(xmlDoc); return ""; } else{ writeLog(MAX, authToken, new logContext("Service", "GetReportList", gid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (var i=0; i<NumRow; i++) { col_values[i]=new Array(RptListTags.length); for(var j=0; j<RptListTags.length; j++){ col_values[i][j]=getTagValue(x[i], RptListTags[j]); } } } fillReportMetaDataCache(gid, col_values); fillReportMetaDataCacheOriginal(gid, col_values); reportMetaDataCacheOriginal = JSON.parse(JSON.stringify(reportMetaDataCacheOriginal)); //reportMetaDataCacheOriginal = JSON.parse(JSON.stringify(reportMetaDataCache)); if(gid != 'null') return col_values[0]; else return col_values; } /* * Function used to content related operation. * getContent: Get content from user_content table * putContent: put content into user_content table * deleteContent: Remove content from user_content table * deleteContentWithChild: Delete parent content with childs.Used in case of DashCollection or dashboard deletion */ function doContentOperation(type, authToken, contentid, itemid, content){ var watch= new stopWatch(); var URL="", xmlDoc="", x="", postData="", Value=""; if(type == 1) operation="getContent"; else if(type == 2) operation="putContent"; else if(type == 3) operation="deleteContent"; else if(type == 4) operation="deleteContentWithChild"; else operation="getContent"; URL = "/axis2/rx/cubotsvc/doContentOperation"; postData='<doContentOperation><sessionId>'+authToken+'</sessionId><Operation>'+operation+'</Operation><contentId>'+itemid+'</contentId><contentType>'+contentid+'</contentType><content>'+xmlEscape(content)+'</content><signature>'+rand()+'</signature></doContentOperation>'; postData = postData.replace(/%/g, "%%"); if(type == 2) xmlDoc=getRequestedXML(URL, postData, 1, false); /* Arun Change */ else xmlDoc=getRequestedXML(URL, postData, 1, false); x=get_ElementsByTagNameNS(rdNS, xmlDoc, "doContentOperationResponse"); watch.stop(); Value=getTagValue(x[0], operation); if(Value == '') writeLog(ERROR, authToken, new logContext("Service", operation, contentid, "ERROR","NO DATA FOUND", '', watch.stTime, watch.endTime)); else writeLog(MAX, authToken, new logContext("Service", operation, contentid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); return Value; } /* * This function calls doContentOperation function with appropreate parameters to get contents. */ function getContentData(authToken, contentid, itemid){ return doContentOperation(1, authToken, contentid, itemid, null); } /* * This function calls doContentOperation function with appropreate parameters to put contents. */ function putContentData(authToken, contentid, itemid, content){ return doContentOperation(2, authToken, contentid, itemid, content); } /* * This function calls doContentOperation function with appropreate parameters to delete contents. */ function removeContentData(authToken, contentid, itemid){ return doContentOperation(3, authToken, contentid, itemid, null); } /* * Class used to ease write Log call */ function logContext(Type , Subtyp , MetaData , Result , ErrStack , browser, StartTs , EndTs){ this.Type=Type; this.Subtyp=Subtyp; this.MetaData=MetaData; this.Result=Result; this.ErrStack=ErrStack; this.browser=(navigator.appName+':'+navigator.appVersion+':'+navigator.platform).replace(new RegExp('/', 'g'),'_'); this.StartTs=StartTs; this.EndTs=EndTs; } /* * Write information into log. This call will write into 'cubot_service.log' */ function writeLog(logLevel, authToken, logContext ){ if(DEBUG_LEVEL>= logLevel && false){ //Disabled Log var URL = "/axis2/rx/cubotsvc/writeLog/"+ authToken +"/"+ logContext.Type +"/"+ logContext.Subtyp +"/"+ logContext.MetaData +"/"+ logContext.Result +"/"+ logContext.ErrStack +"/"+ logContext.browser + "/" + logContext.StartTs +"/"+ logContext.EndTs+"/"+rand(); //$.ajax({async:true, url:URL, timeout:2000, success: function (){}}); $.ajax({async:true, url:URL}); } } /* *Function to get user access *Returns: *Userid:ceo *AppAccess:Analyze:Print Report:Export Report:View Details:Targets:Create Measures:Disable Session Timeout:Dashboard:Alerts *AdminRoles:ETL.. *UserRoles:common:customer:product */ function getUserAccess(authToken){ var watch= new stopWatch(); var URL = "/axis2/rx/cubotsvc/userManagement"; var postData='<userManagement><sessionId>'+ authToken +'</sessionId><Operation>GetUserAccess</Operation><tagvaluepair>userid=thisuser</tagvaluepair><signature>'+rand()+'</signature></userManagement>'; var xmlDoc=getRequestedXML(URL, postData, 1, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "GetUserAccess"); watch.stop(); var uid=getFromURL('uid'); if(getTagValue(x[0], 'Userid') == ''){ writeLog( ERROR, authToken, new logContext("Service", "GetUserAccess", uid, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); return false; } else{ writeLog(MAX, authToken, new logContext("Service", "GetUserAccess", uid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); Uaccessstr=getTagValue(x[0], 'AppAccess'); return true; } } /* * Function to get all user properties */ function getUserProperties(authToken){ var watch= new stopWatch(); var URL = "/axis2/rx/cubotsvc/userManagement"; var postData='<userManagement><sessionId>'+ authToken +'</sessionId><Operation>GetUserProperties</Operation><tagvaluepair>userid=thisuser</tagvaluepair><signature>'+rand()+'</signature></userManagement>'; var xmlDoc=getRequestedXML(URL, postData, 1, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "GetUserProperties"); watch.stop(); var uid=getFromURL('uid'); if(getTagValue(x[0], 'UserId') == ''){ writeLog( ERROR, authToken, new logContext("Service", "GetUserProperties", uid, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); return false; } else{ writeLog(MAX, authToken, new logContext("Service", "GetUserProperties", uid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); userId = getTagValue(x[0], 'UserId'); userName = getTagValue(x[0], 'UserName'); userLanguage = getTagValue(x[0], 'Language'); return true; } } /* * Get report list. It returns the report metadata. */ function getUserList(authToken){ var watch= new stopWatch(); var uid=getFromURL('uid'); var URL = "/axis2/rx/cubotsvc/userManagement"; var postData='<userManagement><sessionId>'+ authToken +'</sessionId><Operation>GetUserProperties</Operation><tagvaluepair>null</tagvaluepair><signature>'+rand()+'</signature></userManagement>'; var UserListTags = new Array("UserId", "UserName", "EmailId"); var xmlDoc=getRequestedXML(URL, postData, 1, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "GetUserProperties"); watch.stop(); var NumRow=x.length; var col_values=new Array(); if(getTagValue(x[0], 'UserId') == ''){ writeLog( ERROR, authToken, new logContext("Service", "GetUserProperties", uid, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); } else{ writeLog(MAX, authToken, new logContext("Service", "GetUserProperties", uid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (var i=0; i<NumRow; i++) { col_values[i]=new Array(UserListTags.length); for(var j=0; j<UserListTags.length; j++){ col_values[i][j]=getTagValue(x[i], UserListTags[j]); } } } return col_values; } /* * Get group properties */ function getGroupList(authToken){ var watch= new stopWatch(); var uid=getFromURL('uid'); var URL = "/axis2/rx/cubotsvc/userManagement"; var postData='<userManagement><sessionId>'+ authToken +'</sessionId><Operation>GetGroupProperties</Operation><tagvaluepair>null</tagvaluepair><signature>'+rand()+'</signature></userManagement>'; var GroupListTags = new Array("GroupName", "Description"); var xmlDoc=getRequestedXML(URL, postData, 1, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "GetGroupProperties"); watch.stop(); var NumRow=x.length; var col_values=new Array(); if(getTagValue(x[0], 'GroupName') == ''){ writeLog( ERROR, authToken, new logContext("Service", "GetGroupProperties", uid, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); } else{ writeLog(MAX, authToken, new logContext("Service", "GetGroupProperties", uid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (var i=0; i<NumRow; i++) { col_values[i]=new Array(GroupListTags.length); for(var j=0; j<GroupListTags.length; j++){ col_values[i][j]=getTagValue(x[i], GroupListTags[j]); } } } return col_values; } /* * Function to share|unshare the objects(Page, dashboard) * objId: object id to add or remove * objType: Object type(D or P) to add or remove * objAccess: Access string like "Users=cfo;Groups=Group1" * addRmove: Add or Remove * shareObject('f260441eadd84a52b6RX12345',100747, 'P','Users=cfo;Groups=Group1','Add'); */ function shareObject(authToken, objId, objType, objAccess, addRemove){ var watch= new stopWatch(); var URL = "/axis2/rx/cubotsvc/doShareObject/"+authToken+"/"+addRemove+"/"+objId +"/"+objType+"/"+ objAccess; var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "doShareObjectResponse"); watch.stop(); if(getTagValue(x[0], "CUBOT_STATUS") == '') writeLog(ERROR, authToken, new logContext("Service", "doShareObject", objType, "ERROR","NO DATA FOUND", '', watch.stTime, watch.endTime)); else writeLog(MAX, authToken, new logContext("Service", "doShareObject", objType, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); } /* *Function to get list of shared objects *objType:D for dashboard, P for page *toMeOrByMe:1 shared object list , 3 for list of dashboards and pages shared by me. */ function getSharedList(authToken, objType, toMeOrByMe){ var watch= new stopWatch(); var uid=getFromURL('uid'), sharedListTags=""; var URL = "/axis2/rx/cubotsvc/getSharedObject/"+authToken+"/"+objType+"/"+toMeOrByMe; var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "Object"); watch.stop(); var NumRow=x.length; var col_values=new Array(); if(toMeOrByMe == 1) sharedListTags=new Array("Id", "ObjectType", "SharedBy"); else sharedListTags=new Array("Id", "ObjectType", "SharedTo"); if(getTagValue(x[0], sharedListTags[0]) == ''){ writeLog( ERROR, authToken, new logContext("Service", "getSharedObject", uid, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); } else{ writeLog(MAX, authToken, new logContext("Service", "getSharedObject", uid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (var i=0; i<NumRow; i++) { col_values[i]=new Array(sharedListTags.length); for(var j=0; j<sharedListTags.length; j++){ col_values[i][j]=getTagValue(x[i], sharedListTags[j]); } } } if(toMeOrByMe == 1){ var sharedItems = new Array(); for(var i=0; i<col_values.length; i++){ if(col_values[i][2] != userId) sharedItems.push(col_values[i]); } col_values = sharedItems; } return col_values; } /* *Function to get shared dashboard or page content *objType:D or P */ function getSharedContent(authToken, objType){ var watch= new stopWatch(); var uid=getFromURL('uid'), tag="Content"; var URL = "/axis2/rx/cubotsvc/getSharedObject/"+authToken+"/"+objType+"/2"; var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "Object"); watch.stop(); var NumRow=x.length; var col_values=new Array(); if(getTagValue(x[0], tag) == ''){ writeLog( ERROR, authToken, new logContext("Service", "getSharedObject", uid, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); } else{ writeLog(MAX, authToken, new logContext("Service", "getSharedObject", uid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (var i=0; i<NumRow; i++) { col_values.push(getTagValue(x[i], tag)); } } return col_values; } /* *Function to get shared dashboard or page content *objType:D or P */ function getOneSharedContent(authToken, objId, objType){ var watch= new stopWatch(); var uid=getFromURL('uid'); var URL = "/axis2/rx/cubotsvc/getSharedObjectContent/"+authToken+"/"+objId+"/"+objType; var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "getSharedObjectContentResponse"); watch.stop(); var NumRow=x.length; var col_values=new Array(); if(getTagValue(x[0], 'Content') == ''){ writeLog( ERROR, authToken, new logContext("Service", "getSharedObjectContent", uid, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); } else{ writeLog(MAX, authToken, new logContext("Service", "getSharedObjectContent", uid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); return getTagValue(x[0], 'Content'); } return ""; } /* * Function to return a unique number every time. * Used to assign id to Page, report, Dashboard.. */ function getUniqueNumber(authToken){ var watch= new stopWatch(); var uid=getFromURL('uid'); var URL = "/axis2/rx/cubotsvc/getUniqueNumber/"+authToken; var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "getUniqueNumberResponse"); watch.stop(); if(getTagValue(x[0], 'ID') == ''){ writeLog( ERROR, authToken, new logContext("Service", "getUniqueNumberResponse", uid, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); } else{ writeLog(MAX, authToken, new logContext("Service", "getUniqueNumberResponse", uid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); return getTagValue(x[0], 'ID'); } return -1; } /* * Function for user login */ function loginCubot(dbName, userName, Password){ var watch= new stopWatch(); var URL = '/axis2/rx/cubotsvc/loginCubot/'+dbName+'//' + userName + '/' + Password; var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "loginCubotResponse"); watch.stop(); if(getTagValue(x[0], 'sessionId') == 'CUBOT-AUTH-ERROR'){ //writeLog(ERROR, authToken, new logContext("Service", "loginCubot", userName, "ERROR", 'CUBOT-AUTH-ERROR', '', watch.stTime, watch.endTime)); } else{ writeLog(MAX, getTagValue(x[0], 'sessionId'), new logContext("Service", "loginCubot", userName, "SUCCESS", "PERFORMANCE", '', watch.stTime, watch.endTime)); return getTagValue(x[0], 'sessionId'); } return -1; } /* * Function for user logout */ function logoutCubot(authToken){ var URL = '/axis2/rx/cubotsvc/logoutCubot/' + authToken; getRequestedXML(URL, null, 0, false); } /* *Function to get item list(Measures and Dimensions) */ function getMetaData(authToken){ if(ILCACHE==true && itemListCache.length>0) return itemListCache; var watch= new stopWatch(); var URL = "/axis2/rx/cubotsvc/getMetaData/"+ authToken; 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" ); var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "METADATAROW"); watch.stop(); var col_values=new Array(); if(getTagValue(x[0], 'Id') == ''){ writeLog( ERROR, authToken, new logContext("Service", "getMetaData", '', "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); check_session_status(xmlDoc); return ""; } else{ writeLog(MAX, authToken, new logContext("Service", "getMetaData", '', "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (var i=0; i<x.length; i++) { col_values[i]=new Array(ItemListTags.length); for(var j=0; j<ItemListTags.length; j++){ col_values[i][j]=decodeXML(getTagValue(x[i], ItemListTags[j])); } } } if(ILCACHE==true) itemListCache=col_values; return col_values; } /* * Function used to Note related operation. */ function doAnnotation(type, authToken, ReportId, NoteId, Note){ var watch= new stopWatch(); var URL="", xmlDoc="", x="", postData="", Value=""; var noteTags = new Array( "Date", "PostedBy", "NoteId", "Note" ); var col_values=new Array(); if(type == 1) operation="viewNotes"; else if(type == 2) operation="postNote"; else if(type == 3) operation="deleteNote"; else if(type == 4) operation="deleteNoteWithChild"; else operation="viewNotes"; URL = "/axis2/rx/cubotsvc/doAnnotation"; postData="<doAnnotation><sessionId>"+authToken+"</sessionId><Operation>"+operation+"</Operation><ReportId>"+ReportId+"</ReportId><NoteId>"+NoteId+"</NoteId><Note>"+xmlEscape(Note)+"</Note><signature>"+rand()+"</signature></doAnnotation>"; if(type == 2) xmlDoc=getRequestedXML(URL, postData, 1, true); else xmlDoc=getRequestedXML(URL, postData, 1, false); if(type == 1) x=get_ElementsByTagNameNS(rdNS, xmlDoc, "viewNotes"); else x=get_ElementsByTagNameNS(rdNS, xmlDoc, "doAnnotationResponse"); watch.stop(); Value=getTagValue(x[0], noteTags[0]); if(Value == ''){ writeLog(ERROR, authToken, new logContext("Service", operation, ReportId, "ERROR","NO DATA FOUND", '', watch.stTime, watch.endTime)); } else{ writeLog(MAX, authToken, new logContext("Service", operation, ReportId, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (var i=0; i<x.length; i++) { col_values[i]=new Array(noteTags.length); for(var j=0; j<noteTags.length; j++){ col_values[i][j]=getTagValue(x[i], noteTags[j]); } } return col_values; } return Value; } /* * This function calls doAnnotation function with appropreate parameters to get notes. */ function getNotes(authToken, ReportId, NoteId){ return doAnnotation(1, authToken, ReportId, NoteId, null); } /* * This function calls doAnnotation function with appropreate parameters to put notes. */ function putNote(authToken, ReportId, NoteId, Note){ return doAnnotation(2, authToken, ReportId, NoteId, Note); } /* * This function calls doAnnotation function with appropreate parameters to delete notes. */ function removeNote(authToken, ReportId, NoteId){ return doAnnotation(3, authToken, ReportId, NoteId, null); } /* * createResultset function with async post method. */ function getData(resultSet){ var watch= new stopWatch(); var URL='/axis2/rx/cubotsvc/createResultSet/' + rand(); var postData='<createResultSet><sessionId>'+resultSet.authToken+'</sessionId><dimensionIds>'+resultSet.dimensionList+'</dimensionIds><measureIds>'+resultSet.measureList+'</measureIds><dimensionFilters>'+xmlEscape(resultSet.dimensionFilterList)+'</dimensionFilters><measureFilters>'+resultSet.measureFilterList+'</measureFilters><instanceId>'+resultSet.uiInstance+'</instanceId><DataInstanceId>'+resultSet.params+'</DataInstanceId><signature>'+rand()+'</signature></createResultSet>'; var xmlhttp; try{ if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); } else if(window.ActiveXObject){ xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); if(! xmlhttp){ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } } } catch(e){ alert("Your browser does not permit the use of all of this application's features!"); window.status = "Error: AJAX Not Supported."; return (false); } if(!xmlhttp){ alert("Your browser does not permit the use of all of this application's features!"); return (false); } xmlhttp.open("POST", URL, true); xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=UTF-8"); xmlhttp.send(postData); xmlhttp.onreadystatechange = function (){ if((xmlhttp.readyState == 4) && (xmlhttp.status == 200)){ var xmlDoc=xmlhttp.responseXML; var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "DATA"); var NumRow=x.length, colList=""; if(NumRow<1) check_session_status(xmlDoc); watch.stop(); if(x.length<1){ //writeLog(ERROR, resultSet.authToken, new logContext("Service", "createResultSet", '', "ERROR","PERFORMANCE", '', watch.stTime, watch.endTime)); check_session_status(xmlDoc); return ""; } else{ //writeLog(MAX, resultSet.authToken, new logContext("Service", "createResultSet", '', "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); col_values=new Array(NumRow); for (i=0;i<NumRow;i++) { colList=get_ElementsByTagNameNS(rdNS, x[i], "COL"); NumCol=colList.length; col_values[i]=new Array(NumCol); for(j=0; j<NumCol; j++){ if(colList[j].childNodes[0]){ col_values[i][j]=colList[j].childNodes[0].nodeValue; } else{ col_values[i][j]=''; } } } resultSet.callback(col_values, resultSet.context); } } } } /* * Function to create report by passing dimensions, dimension filter, measures and measure filter * */ function getDataGet(resultSet) { //authToken, measureCollection, dimensionCollection, dimensionFilters, sessionFilter, callback, context var watch= new stopWatch(); var URL = '/axis2/rx/cubotsvc/createResultSet/' + resultSet.authToken + '/' + resultSet.dimensionList + '/' + resultSet.measureList + '/' + resultSet.dimensionFilterList + '/'+ resultSet.measureFilterList + '/default' + '/' + rand(); $.ajax({async:resultSet.isAsync, url:URL, success: function (result){ watch.stop(); writeLog(MAX, resultSet.authToken, new logContext("Service", "createResultSet", '', "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); var xmlDoc=result; var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "DATA"); var NumRow=x.length, colList=""; if(NumRow<1) check_session_status(xmlDoc); col_values=new Array(NumRow); for (i=0;i<NumRow;i++) { colList=get_ElementsByTagNameNS(rdNS, x[i], "COL"); NumCol=colList.length; col_values[i]=new Array(NumCol); for(j=0; j<NumCol; j++){ if(colList[j].childNodes[0]){ col_values[i][j]=colList[j].childNodes[0].nodeValue; } else{ col_values[i][j]=''; } } } resultSet.callback(col_values, resultSet.context); delete col_values; }, failure: function (result){ watch.stop(); writeLog(ERROR, resultSet.authToken, new logContext("Service", "createResultSet", '', "ERROR","PERFORMANCE", '', watch.stTime, watch.endTime)); } }); } function getPermanentFilters(auth_token){ if(PERMANENT_FILTERS) return PERMANENT_FILTERS; var url = '/axis2/rx/cubotsvc/doFilterOperation'; var postData = '<doFilterOperation><sessionId>'+auth_token+'</sessionId><Operation>getFilterList</Operation><signature>'+rand()+'</signature></doFilterOperation>'; var response = getRequestedXML(url,postData,1,false); var xmlstr = new XMLSerializer().serializeToString(response) xmlstr = xmlstr.replace(/<(\/?)([^:>\s]*:)?([^>]+)>/g, "<$1$3>"); var xmlDOM = new DOMParser().parseFromString(xmlstr, 'text/xml'); var obj = convertXmlToJson(xmlDOM); var filterList = []; if(obj.doFilterOperationResponse.FilterList){ if(Array.isArray(obj.doFilterOperationResponse.FilterList)) filterList = obj.doFilterOperationResponse.FilterList; else{ var resultList = new Array(); if(typeof(obj.doFilterOperationResponse.FilterList) == 'object') resultList.push(obj.doFilterOperationResponse.FilterList); filterList = resultList; } }else{ filterList = []; } for(var i=0;i<filterList.length;i++){ filterList[i].isPermanentFilter = true; if(filterList[i].FilterType == 'Default'){ userLoginFilter = new Object(); userLoginFilter.FilterItemId = filterList[i].FilterItemId; userLoginFilter.FilterValues = filterList[i].FilterValues; } } PERMANENT_FILTERS = filterList; return filterList; } /* * Function to get filter values * dimensionId: Item id created in CUBOT(840 for country) * numRecordRange: 0-10 or 10-20 (Scale type call) * dimSqlWhere: gecntry='AFFRICA' */ function getFilterValues(authToken, dimensionId, numRecordRange, dimSqlWhere){ var watch= new stopWatch(); var URL = "/axis2/rx/cubotsvc/getFilterValues"; var postData="<getFilterValues><sessionId>"+authToken + "</sessionId><dimensionId>" + dimensionId + "</dimensionId><offset>" + numRecordRange + "</offset><dimWhereClause>" + dimSqlWhere +"</dimWhereClause><signature>" + rand() + "</signature></getFilterValues>"; var xmlDoc=getRequestedXML(URL, postData, 1, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "FILTERVALUES"); watch.stop(); var col_values=new Array(); if(x.length<1){ writeLog( ERROR, authToken, new logContext("Service", "getFilterValues", '', "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); check_session_status(xmlDoc); return ""; } else{ writeLog(MAX, authToken, new logContext("Service", "getFilterValues", '', "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); var colList=get_ElementsByTagNameNS(rdNS, x[0], "value"); for(var i=0; i<colList.length; i++){ if(colList[i].childNodes[0]) col_values[i]=colList[i].childNodes[0].nodeValue; } } return col_values; } function getFilterValuesAsync(authToken, dimensionId, numRecordRange, dimSqlWhere, callback){ var watch= new stopWatch(); var URL = "/axis2/rx/cubotsvc/getFilterValues/"+rand(); var postData="<getFilterValues><sessionId>"+authToken + "</sessionId><dimensionId>" + dimensionId + "</dimensionId><offset>" + numRecordRange + "</offset><dimWhereClause>" + dimSqlWhere +"</dimWhereClause><signature>" + rand() + "</signature></getFilterValues>"; var xmlhttp = new XMLHttpRequest();; xmlhttp.open("POST", URL, true); xmlhttp.setRequestHeader("Content-Type", "text/xml; charset=UTF-8"); xmlhttp.send(postData); xmlhttp.onreadystatechange = function (){ if((xmlhttp.readyState == 4) && (xmlhttp.status == 200)){ var xmlDoc = xmlhttp.responseXML; var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "FILTERVALUES"); var NumRow=x.length, colList=""; if(NumRow<1) check_session_status(xmlDoc); else{ col_values=new Array(NumRow); var colList=get_ElementsByTagNameNS(rdNS, x[0], "value"); for(var i=0; i<colList.length; i++){ if(colList[i].childNodes[0]) col_values[i]=colList[i].childNodes[0].nodeValue; } callback(col_values, dimensionId); } } } } /* * Function to get dimension hierarchy * dimensionId: Dimension item id created in CUBOT(840 for country) * selectionSeq : Selected dimension ids in report (110:120) * returns array of dimension ids */ function getNextDimInHierarchy(authToken, dimensionId, selectionSeq){ var watch= new stopWatch(); var URL = "/axis2/rx/cubotsvc/getNextDimInHierarchy/" + authToken + "/" + dimensionId + "/" + selectionSeq ; var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "DimensionInHierarchy"); watch.stop(); var col_values=new Array(); writeLog(MAX, authToken, new logContext("Service", "getFilterValues", '', "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (var i=0; i<x.length; i++) { col_values[i]=getTagValue(x[i], "Dimension"); } return col_values; } /* * doReportOperation * -------------------- */ function doReportOperation(authToken, type, resultSet){ var watch= new stopWatch(); var URL="", xmlDoc="", x="", postData="", Value=""; if(type == "SAVE") operation="saveReport"; else if(type == "DELETE") operation="deleteReport"; else if(type == "DELETE_FROM_TRASH") operation="deleteReportFromTrash"; else if(type == "RESTORE_FROM_TRASH") operation="restoreReportFromTrash"; else operation="saveReport"; URL = "/axis2/rx/cubotsvc/doReportOperation"; postData='<doReportOperation><sessionId>'+authToken+'</sessionId><Operation>'+operation+'</Operation><reportId>'+resultSet.graphId+'</reportId><dimensionIds>'+resultSet.dimensionIds+'</dimensionIds><measureIds>'+resultSet.measureIds+'</measureIds><dimensionFilters>'+resultSet.dimensionFilters+'</dimensionFilters><measureFilters>'+resultSet.measureFilters+'</measureFilters><instanceId>'+resultSet.instance+'</instanceId><tagvaluepair>'+resultSet.tagValuePair+'</tagvaluepair><signature>'+rand()+'</signature></doReportOperation>'; if(type == 1) xmlDoc=getRequestedXML(URL, postData, 1, true); else xmlDoc=getRequestedXML(URL, postData, 1, false); x=get_ElementsByTagNameNS(rdNS, xmlDoc, "doReportOperationResponse"); watch.stop(); Value=getTagValue(x[0], operation); if(Value == '') writeLog(ERROR, authToken, new logContext("Service", operation, resultSet.graphId, "ERROR","NO DATA FOUND", '', watch.stTime, watch.endTime)); else writeLog(MAX, authToken, new logContext("Service", operation, resultSet.graphId, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); return Value; } function getGraphProperties(authToken, gid){ if(reportPropertiesCache[gid]) return reportPropertiesCache[gid]; var watch= new stopWatch(); var URL = '/axis2/rx/cubotsvc/getGraphProperties/' + authToken + '/' + gid; var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "Data"); watch.stop(); var NumRow=x.length; var col_values=new Array(NumRow); if( NumRow < 1){ writeLog( ERROR, authToken, new logContext("Service", "GetReportList", gid, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); check_session_status(xmlDoc); return ""; } else{ writeLog(MAX, authToken, new logContext("Service", "GetReportList", gid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (i=0;i<NumRow;i++) { col_values[i] = new Array(2); col_values[i][0]=getTagValue(x[i], "Name"); col_values[i][1]=getTagValue(x[i], "Value"); } reportPropertiesCache[gid] = col_values; return col_values; } } /* Report Permission */ function getReportPermissions(authToken, gid){ var watch= new stopWatch(); var URL = '/axis2/rx/cubotsvc/getReportPermission/' + authToken + '/' + gid; var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "Data"); watch.stop(); var NumRow=x.length; var col_values=new Array(NumRow); if( NumRow < 1){ writeLog( ERROR, authToken, new logContext("Service", "GetReportPermissionList", gid, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); check_session_status(xmlDoc); return ""; } else{ writeLog(MAX, authToken, new logContext("Service", "GetReportPermissionList", gid, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (i=0;i<NumRow;i++) { col_values[i] = new Array(2); col_values[i][0]=getTagValue(x[i], "User"); col_values[i][1]=getTagValue(x[i], "IsGroup"); col_values[i][2]=getTagValue(x[i], "Access"); } return col_values; } } /* * Function to get application list */ function getAppList(authToken, appId){ var watch= new stopWatch(); var URL = "/axis2/rx/cubotsvc/getAppList/" + authToken + "/" + appId; var AppListTags = new Array( "ApplId", "Application", "URL"); var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "Data"); watch.stop(); var NumRow=x.length; var col_values=new Array(); if(getTagValue(x[0], 'ApplId') == ''){ writeLog( ERROR, authToken, new logContext("Service", "getAppList", appId, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); check_session_status(xmlDoc); return ""; } else{ writeLog(MAX, authToken, new logContext("Service", "getAppList", appId, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (var i=0; i<NumRow; i++) { col_values[i]=new Array(AppListTags.length); for(var j=0; j<AppListTags.length; j++){ col_values[i][j]=getTagValue(x[i], AppListTags[j]); } } } return col_values; } /* * Function to get user/global settings for cubot */ function getUserSettings(authToken, paramId){ var watch= new stopWatch(); var URL = "/axis2/rx/cubotsvc/getUserSettings/" + authToken + "/" + paramId; var ParamsListTags = new Array( "ParamId", "ParamName", "ParamValue"); var xmlDoc=getRequestedXML(URL, null, 0, false); var x=get_ElementsByTagNameNS(rdNS, xmlDoc, "Data"); watch.stop(); var NumRow=x.length; var col_values=new Array(); if(getTagValue(x[0], 'ParamId') == ''){ writeLog( ERROR, authToken, new logContext("Service", "getUserSettings", paramId, "ERROR",'NO DATA FOUND', '', watch.stTime, watch.endTime)); check_session_status(xmlDoc); return ""; } else{ writeLog(MAX, authToken, new logContext("Service", "getUserSettings", paramId, "SUCCESS","PERFORMANCE", '', watch.stTime, watch.endTime)); for (var i=0; i<NumRow; i++) { col_values[i]=new Array(ParamsListTags.length); for(var j=0; j<ParamsListTags.length; j++){ col_values[i][j]=getTagValue(x[i], ParamsListTags[j]); } } } return col_values; }