/****************************************************************
** Licensed Materials - Property of IBM
**
** IBM Cognos Products: drill
**
** (C) Copyright IBM Corp. 2001, 2013
**
** US Government Users Restricted Rights - Use, duplication or
** disclosure restricted by GSA ADP Schedule Contract with
** IBM Corp.
*****************************************************************/
// Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
// Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
var newMetadataObjects = null;
var allMetadataObjects = new Array();
var metadataTree = null;
var newWin = null;
var activeNodeFetches = new Array();
var metadataErrors = new Array();
var metadataTreeTracking = "";
function setupMetadataTree(locale)
{
if (metadataTree == null)
{
cfgSet("doMetadataTree",true);
if (cfgGet("BROWSER")=="moz")
{
document.getElementById("metadataTreeContainer").addEventListener("mouseup", function(e) {if(e.target.toString().indexOf("XULElement") > -1){e.cancelBubble = true;return false;}}, true);
document.getElementById("metadataTreeContainer").addEventListener("dragover", function(e) {e.preventBubble();}, true);
document.getElementById("metadataTreeContainer").addEventListener("dragdrop", function(e) {e.preventBubble();}, true);
}
var metadataTreeNode = document.getElementById("metadataTreeContainer");
if (typeof bidi != "undefined")
metadataTree = new CTree (metadataTreeNode, "", false, false, "metadataTree", null, null, null, null, bidi);
else
metadataTree = new CTree (metadataTreeNode, "", false, false, "metadataTree");
metadataTree.setItemTabIndex(0);
metadataTree.setLabel(PMT_DMT_DRILL_METADATA_TREE_LABEL);
metadataTree.setLoadOnTheFlyFunction(loadFunc);
metadataTree.setContextMenu(treeContextMenuFunc);
metadataTree.setAllowSelectionToggle(true);
metadataTree.setRecursiveSelect(false);
if(cfgGet("activeTree"))
metadataTree.setSingleClickFunc(treeFocus);
else
metadataTree.setSingleClickFunc(null);
metadataTree.setHideOuterTable(true);
}
if (locale != null){
metadataTree.setLocale(locale);
}
}
function doMetadataTree(browser, locale)
{
setupMetadataTree(locale);
if (metadataTree.getHasBeenDrawn() == false)
{
metadataTree.removeLoading(metadataTree.getRootNode());
metadataTree.drawAll();
metadataTree.checkData();
}
}
function getMetadataRequestString(model, startAtPath, depth, contextNodeRef)
{
var cl="";
var pl="";
var pv="";
var rsp="";
// extract contentLocale and productLocale from the cookie
var cookieValues = document.cookie.split(";");
for (var i = 0; i < cookieValues.length; i++)
{
if (cookieValues[i].match(/^\s*CRN=/i))
{
var aLocales = decodeURIComponent(decodeURIComponent(cookieValues[i].split("=")[1])).split("&");
for (var j = 0; j < aLocales.length; j++)
{
if (aLocales[j].match(/^contentLocale=/i))
cl = aLocales[j].split("=")[1];
if (aLocales[j].match(/^productLocale=/i))
pl = aLocales[j].split("=")[1];
}
}
}
if (cl == "") cl = cfgGet("contentLocale");
if (pl == "") pl = cfgGet("productLocale");
var sUrl = "";
if (model) sUrl += "&model=" + model;
if (cl) sUrl += "&cl=" + cl;
if (pl) sUrl += "&pl=" + pl;
if (startAtPath) sUrl += "&startAtPath=" + startAtPath;
if (contextNodeRef) sUrl += "&contextNodeRef=" + encodeURIComponent(contextNodeRef);
if (pv == "") pv = cfgGet("parameterValues");
if (pv) sUrl += "¶meterValues=" + encodeURIComponent(cfgGet("parameterValues"));
if (rsp == "") rsp = cfgGet("RPT_SVC_PARAM");
if (rsp) sUrl += "&rptSvcParam=" + encodeURIComponent(cfgGet("RPT_SVC_PARAM"));
if (depth) sUrl += "&depth=" + depth;
return sUrl;
}
function doMetadataRequest(request)
{
var url = "b_action=xts.run&m=/" + prod_dir + "/metadata.xts" + request;
if (cafContextId != "")
url += "&ui.cafcontextid=" + cafContextId;
if (metadataTreeTracking != "")
url += "&m_tracking=" + metadataTreeTracking;
if (typeof routingServerGroup != "undefined")
{
url += "&ui.routingServerGroup=" + routingServerGroup;
}
// Store each request just in case of timeout or prompting
cfgSet("CURRENT_REQUEST",request);
setDispatcherErrorHandler(errorHandler);
sendDispatcherRequest(url, getMetadataResponse);
}
function promptResponse(parameters, response, conversation, clientContext, tracking)
{
if (response == "Cancel" || response == "Error")
{
if( newWin ) {
newWin.close();
newWin = null;
}
}
else
{
metadataTreeTracking = tracking;
var myXMLParser = null;
var x = cfgGet("parameterValues");
if (x)
{
myXMLParser = new XMLParser(cfgGet("parameterValues"));
}
if( parameters.length > 0 )
{
if (myXMLParser==null)
myXMLParser = new XMLParser(parameters[0]);
else
myXMLParser.appendChild(parameters[0]);
for (var i = 1; i < parameters.length; i++)
{
// we may have to be smarter about this so that parameters don't show up multiple times
myXMLParser.appendChild(parameters[i]);
}
// set the parameter values so that we aren't prompted again
cfgSet("parameterValues", myXMLParser.toString());
// the metadata tree should be in the response
}
// Use the current stored request, just in case there was a login or prompt
var request = cfgGet("CURRENT_REQUEST") + "&metadataTree=" + encodeURIComponent(response);
setTimeout('doMetadataRequest("' + jsencode(request) + '");', 100);
}
}
function getMetadataResponse(response)
{
// testResponseWin(response);
var metadataObjects = response.split(";");
var nodeDepth = 0;
var lastNodeDepth = 0;
if (metadataObjects[0] == "working")
{
var request = "&doWait=1&contextNodeRef=" + jsdecode(metadataObjects[1]) + "&m_tracking=" + jsdecode(metadataObjects[2]) + "¶meterValues=" + encodeURIComponent(cfgGet("parameterValues"));
if (metadataObjects[3] != "")
request = request + "&depth=" + jsdecode(metadataObjects[3]);
setTimeout('doMetadataRequest("' + jsencode(request) + '");', 100);
}
else if (metadataObjects[0] == "prompting")
{
var value = "";
var moLength = metadataObjects.length;
for (var i = 5; i < moLength; i++)
{
if (i < moLength - 1)
{
// make sure the semi-colons we split on above are replaced
value += jsdecode(metadataObjects[i]) + ";";
}
else
{
// the last element does not need a semi-colon appended to it
value += jsdecode(metadataObjects[i]);
}
}
newWin = window.open("","","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=630,height=310");
var frmWarpRequest = newWin.document.createElement("form");
if( cfgGet("BROWSER")=='moz') {
newWin.document.open();
newWin.document.close();
newWin.document.body.appendChild(frmWarpRequest);
frmWarpRequest.action=jsdecode(metadataObjects[1]);
} else {
newWin.document.body.appendChild(frmWarpRequest);
frmWarpRequest.setAttribute("action", jsdecode(metadataObjects[1]));
}
frmWarpRequest.setAttribute("name", "formWarpRequest");
frmWarpRequest.setAttribute("id", "formWarpRequest");
frmWarpRequest.setAttribute("method", "post");
// b_action
frmWarpRequest.appendChild(createInput(newWin, "b_action", "xts.run"));
// m
frmWarpRequest.appendChild(createInput(newWin, "m", "prompting/promptDataSource.xts"));
//
frmWarpRequest.appendChild(createInput(newWin, "callbackFunction", "window.opener.promptResponse"));
// clientContext
frmWarpRequest.appendChild(createInput(newWin, "clientContext", jsdecode(metadataObjects[2])));
// conversation
frmWarpRequest.appendChild(createInput(newWin, "ui.conversation", jsdecode(metadataObjects[3])));
// tracking
frmWarpRequest.appendChild(createInput(newWin, "tracking", jsdecode(metadataObjects[4])));
//
frmWarpRequest.appendChild(createInput(newWin, "releaseConversation", "1"));
if (typeof routingServerGroup != "undefined")
{
frmWarpRequest.appendChild(createInput("routingServerGroup", routingServerGroup));
}
frmWarpRequest.appendChild(createInput(newWin, "htmlFragment", value));
frmWarpRequest.appendChild(createInput(newWin, "newWindow", "1"));
// isEncoded
frmWarpRequest.appendChild(createInput(newWin, "isEncoded", "1"));
frmWarpRequest.submit();
newWin.focus();
}
else
{
if (metadataObjects[0] != "FAULT")
metadataTreeTracking = metadataObjects.shift();
newMetadataObjects = new Array();
var activeNodeName;
for (var i = 0; i < metadataObjects.length; i++)
{
if (metadataObjects[i].length > 0)
{
if (i == 0)
{
if (metadataObjects[0] == "FAULT")
{
if (cfgGet("META_TreeLoadedFirstTime") == "loading")
cfgSet("META_TreeLoadedFirstTime", "failed");
metadataFault(jsdecode(metadataObjects));
metadataTree.childrenReadyForNode(metadataTree.getRootNode());
return false;
}
else if ((response.indexOf("") > -1) && (response.indexOf("") > -1) && (response.indexOf("") > -1))
{
metadataFault(response);
return false;
}
else
{
activeNodeName = jsdecode(convertBack(metadataObjects[i]));
}
}
else if (i == 1)
{
if (cfgGet("META_TreeLoadedFirstTime") == "loading")
{
var metadataModelName = jsdecode(convertBack(metadataObjects[1]));
var metadataModelScreentip = jsdecode(convertBack(metadataObjects[2]));
if (metadataModelScreentip.indexOf("resubmitSingleHierarchy"))
{
metadataModelScreentip = metadataModelScreentip.substring(0,metadataModelScreentip.indexOf("resubmitSingleHierarchy"));
}
metadataTree.getRootNode().setName(metadataModelName);
metadataTree.setRootNodeShowing(true);
if (metadataModelScreentip != "")
metadataTree.getRootNode().setTooltip(metadataModelScreentip);
metadataTree.drawAll();
}
else
continue;
}
else if (i == 2)
{
if (metadataObjects[i].indexOf("resubmitSingleHierarchy") >= 0)
{
var thisNode = activeNodeFetches[activeNodeName][0];
thisNode.hierarchyPath = jsdecode(convertBack(metadataObjects[5]));
thisNode.hierarchyName = jsdecode(convertBack(metadataObjects[4]));
var request = getMetadataRequestString(cfgGet("cmLastModel"), encodeURIComponent(jsdecode(convertBack(metadataObjects[3]))), 2, activeNodeName);
setTimeout('doMetadataRequest("' + jsencode(request) + '");', 100);
return true;
}
continue;
}
else
{
var metaObj = metadataObjects[i].split(",");
var nodeType = jsdecode(metaObj[0]);
var metaArray = new Array();
for (var j = 1; j < metaObj.length; j++)
{
metaArray[j - 1] = jsdecode(metaObj[j]);
}
if (nodeType.indexOf("firstChild") > -1)
{
nodeDepth += 1;
}
var metaNode = createNewMetaObject(metaArray, activeNodeName, nodeDepth);
if( metaNode != null )
{
activeNodeFetches[activeNodeName][nodeDepth] = metaNode;
if (nodeType.indexOf("lastChild") > -1)
{
var theNextChild = null;
if (metadataObjects.length > (i + 1))
{
theNextChild = metadataObjects[i + 1].split(",");
if (theNextChild[0].indexOf("firstChild") > -1)
{
lastNodeDepth += 1;
continue;
}
}
if (lastNodeDepth > 0)
{
if (theNextChild != null && theNextChild.length > 0)
{
var hild = "hild";
var currentDepthThisChild = nodeType.substr(nodeType.lastIndexOf(hild) + hild.length);
var currentDepthNextChild = theNextChild[0].substr(theNextChild[0].lastIndexOf(hild) + hild.length);
var depthDiff = (currentDepthThisChild - currentDepthNextChild);
if (depthDiff > 0)
{
nodeDepth -= depthDiff;
if (nodeDepth < 0)
nodeDepth = 0;
lastNodeDepth -= depthDiff;
if (lastNodeDepth < 0)
lastNodeDepth = 0;
continue;
}
}
nodeDepth -= lastNodeDepth + 1;
lastNodeDepth = 0;
}
else
{
nodeDepth -= 1;
}
}
}
}
}
}
var thisNode = activeNodeFetches[activeNodeName][0];
thisNode.getTree().childrenReadyForNode(thisNode);
delete activeNodeFetches[activeNodeName];
cfgSet("META_TreeLoadedFirstTime", true);
for (var j in newMetadataObjects)
allMetadataObjects[j] = newMetadataObjects[j];
}
return true;
}
function createInput(newWin, inputName, inputValue)
{
var input = newWin.document.createElement("input");
input.setAttribute("name", inputName);
input.setAttribute("type", "hidden");
input.setAttribute("value", inputValue);
return(input);
}
function convertBack(str)
{
// str = str.replace(/&semicolon/g, ";");
// return str.replace(/&comma/g, ",");
str = str.replace(/&semicolon/g, ";");
str = str.replace(/\\>/g, ">");
str = str.replace(/\\") > -1) && (metaFaultObjects.indexOf("") > -1) && (metaFaultObjects.indexOf("") > -1))
{
document.getElementById("metadataTreeContainer").innerHTML = metaFaultObjects;
return;
}
metadataErrors = new Array();
var maDenied = false;
var maTimeout = false;
for (var i = 0; i < metaFaultObjects.length; i++)
{
if (metaFaultObjects[i].indexOf("timeout") > -1)
maTimeout = true;
if (metaFaultObjects[i].indexOf("MA-DEF-0024") > -1)
maDenied = true;
metadataErrors[metadataErrors.length] = convertBack(metaFaultObjects[i]);
}
if (maTimeout==true)
{
metaLogonWindow(self);
}
else
{
cfgRemove("META_TreeLoadedFirstTime");
metaErrorPage(metadataErrors);
}
}
function mdFolder(name, path, ref, parent, description)
{
this.name = name;
this.ref = ref;
this.path = path;
this.parent = parent;
this.description = description;
}
function mdCalculation(name, path, ref, datatype, usage, regularAggregate, semiAggregate, promptType, displayType, sortOnRef, promptCascadeOnRef, promptFilterItemRef, currency, parent, description)
{
this.name = name;
this.ref = ref;
this.path = path;
this.datatype = datatype;
this.usage = usage;
this.regularAggregate = regularAggregate;
this.semiAggregate = semiAggregate;
this.promptType = promptType;
this.displayType = displayType;
this.sortOnRef = sortOnRef;
this.promptCascadeOnRef = promptCascadeOnRef;
this.promptFilterItemRef = promptFilterItemRef;
this.currency = currency;
this.parent = parent;
this.description = description;
}
function mdQueryItem(name, path, ref, datatype, usage, regularAggregate, semiAggregate, promptType, displayType, sortOnRef, promptCascadeOnRef, promptFilterItemRef, currency, parent, description, promptUseItemRef)
{
this.name = name;
this.ref = ref;
this.path = path;
this.datatype = datatype;
this.usage = usage;
this.regularAggregate = regularAggregate;
this.semiAggregate = semiAggregate;
this.promptType = promptType;
this.displayType = displayType;
this.sortOnRef = sortOnRef;
this.promptCascadeOnRef = promptCascadeOnRef;
this.promptFilterItemRef = promptFilterItemRef;
this.promptUseItemRef = promptUseItemRef;
this.currency = currency;
this.parent = parent;
this.description = description;
}
function loadFunc(loadingNode)
{
if (cfgGet("META_TreeLoadedFirstTime") == null)
{
cfgSet("META_TreeLoadedFirstTime", "loading");
activeNodeFetches[loadingNode.getValue()] = new Array(loadingNode);
var req;
var StAt = cfgGet("START_AT");
req = getMetadataRequestString(cfgGet("cmLastModel"), StAt, 2, loadingNode.getValue());
doMetadataRequest(req);
}
else if (cfgGet("META_TreeLoadedFirstTime") != "loading" && cfgGet("META_TreeLoadedFirstTime") != "failed")
{
var iDepth = 2;
if (loadingNode.nodeMetaType == "measureDimension" || loadingNode.nodeMetaType == "measureFolder")
{
iDepth = 3;
}
activeNodeFetches[loadingNode.getValue()] = new Array(loadingNode);
var req = getMetadataRequestString(cfgGet("cmLastModel"), encodeURIComponent(loadingNode.getValue()), iDepth, loadingNode.getValue());
doMetadataRequest(req);
}
}
function onDragStartF(evt)
{
//get the event in a cross-browser fashion
evt = (evt) ? evt : ((event) ? event : null);
//cancel any text selection
clearSelection();
//prevent the event from bubbling to other elements
cancelBub(evt);
var dragRef = evt.srcElement.getAttribute('dragRef');
if (typeof dragRef == "string" && dragRef.length != 0)
{
var uiNode = getUINode(evt);
if (uiNode)
{
//get the tree object
var tree = uiNode.getAttribute('dragTree').toString();
//get tree Node
var node = getTreeNode(tree, dragRef);
if (node.getNodeTypeObject().m_bIsDraggable == true)
{
if (!node.isSelected())
{
if ((evt.ctrlKey == false) && (evt.shiftKey == false))
{
node.getTree().getRootNode().setSelected(false);
}
//select all the children
node.setSelected(true);
//update the parent
node.updateParent();
var label = document.getElementById(tree + node.getTreeRef() + 'label');
label.className = getClassName(node, node.getTree());
if ((evt.ctrlKey == false) && (evt.shiftKey == false))
{
node.getTree().redraw();
}
}
var treeObj = node.getTree();
var selectedNodes = treeObj.getSelectedFolderNodes();
selectedNodes = selectedNodes.concat(treeObj.getSelectedLeafNodes());
var arr = new Array();
for (var i = 0; i < selectedNodes.length; i++)
{
var nodeObj = selectedNodes[i].getNodeTypeObject();
arr[selectedNodes[i].getName()] = getTreeNodeObjectIcon(nodeObj);
}
showDragToolTip(arr, evt);
if (cfgGetAt("ReportType", "crosstab") == true)
dragStartCrosstab();
}
else
{
event.dataTransfer.clearData("Text");
}
}
}
}
function onDragF(evt)
{
var dtt = document.getElementById('dragToolTip');
if (dtt && dtt.style && dtt.style.display == "inline")
{
dtt.style.left = (event.clientX + 20) + "px";
dtt.style.top = event.clientY + "px";
}
}
function onDragEndF(evt)
{
var dtt = document.getElementById('dragToolTip');
if (dtt && dtt.style)
{
dtt.style.display = "none";
}
if (cfgGetAt("ReportType", "crosstab") == true)
dragEndCrosstab();
}
function showDragToolTip(arr, event)
{
var htmlOUT = "";
var dtt = document.getElementById("dragToolTip");
if (dtt && dtt.style && childrenExist)
{
dtt.innerHTML = htmlOUT;
dtt.style.zIndex = 100;
dtt.style.position = "absolute";
dtt.style.left = (event.clientX + 20) + "px";
dtt.style.top = event.clientY + "px";
dtt.style.display = "inline";
}
}
function treeContextMenuFunc(evt)
{
selectNode(evt);
}
function addSelectedDblClick(evt)
{
// addSelected();
}
function getSelectedNode()
{
return processSelectedNode();
}
function processSelectedNode()
{
var allSelectedNodes = metadataTree.getSelectedLeafNodes();
var sSelected = "";
if (allSelectedNodes.length > 0)
{
for (var i = 0; i < allSelectedNodes.length; i++)
{
if (allSelectedNodes[i].getNodeType() == TREE_ITEM)
{
var leafNode = allSelectedNodes[i];
var nodeObject = allMetadataObjects[leafNode.getValue()];
sSelected = nodeObject.ref;
sMetaDataType = leafNode.nodeMetaType;
sParentMetaDataType = leafNode.m_oParentTreeNode.nodeMetaType;
}
}
}
else
{
allSelectedNodes = metadataTree.getSelectedFolderNodes();
if (allSelectedNodes.length > 0) {
var leafNode = allSelectedNodes[0];
var nodeObject = allMetadataObjects[leafNode.getValue()];
sSelected = nodeObject.ref;
sMetaDataType = leafNode.nodeMetaType;
sParentMetaDataType = leafNode.m_oParentTreeNode.nodeMetaType;
}
}
return {"sSelected":sSelected,"sMetaDataType":sMetaDataType,"sParentMetaDataType":sParentMetaDataType};
}
function addSelected(qid, groupType)
{
var reportState = "";
if (getReportFrame())
reportState = getReportFrame().reportState;
if (reportState == "" || reportState == "invalidPackage" || reportState == "noPackage" || reportState == "upgrading" || reportState == "submitted" || reportState == "prompting")
return;
var unfetchedChildren = metadataTree.getSelectedUnfetchedChildren();
if (typeof qid == "undefined")
{
qid = "";
}
if (unfetchedChildren)
waitForFetchingChildren(qid, groupType);
else
processFetchedChildren(qid, groupType);
}
function waitForFetchingChildren(qid, groupType)
{
if (metadataTree.getLoading())
setTimeout("waitForFetchingChildren('" + qid + "', '" + groupType + "')", 100);
else
addSelected(qid, groupType);
}
function processFetchedChildren(qid, groupType)
{
if (typeof qid == "undefined" || qid == null || qid == "null")
qid = "";
var allSelectedLeafNodes = metadataTree.getSelectionOrder();
var sFilterCmd = null;
for (var i = 0; i < allSelectedLeafNodes.length; i++)
{
if (allSelectedLeafNodes[i].getNodeType() == TREE_ITEM)
{
var leafNode = allSelectedLeafNodes[i];
var nodeObject = allMetadataObjects[leafNode.getValue()];
var nodeObjectType = getNodeObjectType(nodeObject);
var nodeType = "XX";
if (nodeObjectType == 'FILTER')
{
var oCC = cfgGet("combinedFilters");
if (oCC)
{
var oF = new CFilter(oCC.generateID(), nodeObject.name, gsFILTER_REFTYPE_MODEL, gsFILTER_MODEL, nodeObject.ref, "none", nodeObject.name, null);
oCC.getCurrentFilterGroup().addPredicate(oF);
oF.setDirty();
sFilterCmd = oCC.getCommand();
continue;
}
else
{
nodeType = "OD";
}
}
else if (nodeObjectType == 'CALCULATION')
nodeType = "MX";
if (nodeObjectType != 'FOLDER' )
cc(nodeType, qid, nodeObject.ref, nodeObject.name, nodeObject.datatype, nodeObject.usage, nodeObject.regularAggregate, nodeObject.semiAggregate, nodeObject.promptType, nodeObject.displayType, nodeObject.sortOnRef, nodeObject.promptCascadeOnRef, nodeObject.promptFilterItemRef, groupType ? groupType : "none");
}
}
if (sFilterCmd)
{
// a filter had been added
var mc = cfgGet("MultiColumnAddCommand");
// remove flag because report will be refresh, so we quit the 'wizard mode' for the combined filters.
dlgGlobalRemoveParm("xxFilterComplexMode");
if (mc)
{
// Columns were added too. Submit the command and refresh the report
// Add filter command to the multi-command string
mc += ";" + sFilterCmd;
cfgSet("MultiColumnAddCommand", mc);
}
else {
// refresh the combined filter dialog
complexFilter();
}
}
endac();
metadataTree.deSelectAll();
}
function getNodeObjectType(leafNode)
{
if (leafNode instanceof mdCalculation)
return "CALCULATION";
else if (leafNode instanceof mdQueryItem)
return "QUERYITEM";
else if (leafNode instanceof mdFolder)
return "FOLDER";
}
function getTreeNodeObjectIcon(leafNode)
{
return leafNode.m_sIconSrc;
}
tntRoot.m_sIconSrc = "../" + images_dir + "/metadatatree/package.gif";
tntRoot.m_sIconOpenSrc = "../" + images_dir + "/metadatatree/package.gif";
tntRoot.m_sIconAltText = PMT_DMT_DRILL_METADATA_TREENODE_PACKAGE;
var tntQueryItem = new CTreeNodeType(TREE_ITEM, false,"../" + images_dir + "/metadatatree/metadata_attribute.gif", "../" + images_dir + "/metadatatree/metadata_attribute.gif");
tntQueryItem.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_ATTRIBUTE);
var tntQueryItemFact = new CTreeNodeType(TREE_ITEM, false,"../" + images_dir + "/metadatatree/query_item_fact.gif", "../" + images_dir + "/metadatatree/query_item_fact.gif");
tntQueryItemFact.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_QUERY_ITEM_FACT);
var tntQueryItemIdentifier = new CTreeNodeType(TREE_ITEM, false,"../" + images_dir + "/metadatatree/query_item_dimension.gif", "../" + images_dir + "/metadatatree/query_item_dimension.gif");
tntQueryItemIdentifier.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_QUERY_ITEM_DIM);
var tntFilter = new CTreeNodeType(TREE_ITEM, false,"../" + images_dir + "/metadatatree/filter.gif", "../" + images_dir + "/metadatatree/filter.gif");
tntFilter.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_FILTER);
var tntCalculationFact = new CTreeNodeType(TREE_ITEM, false,"../" + images_dir + "/metadatatree/calculation_fact.gif", "../" + images_dir + "/metadatatree/calculation_fact.gif");
tntCalculationFact.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_CALC_FACT);
var tntCalculationDimension = new CTreeNodeType(TREE_ITEM, false,"../" + images_dir + "/metadatatree/calculation_dimension.gif", "../" + images_dir + "/metadatatree/calculation_dimension.gif");
tntCalculationDimension.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_CALC_DIM);
var tntCalculationAttribute = new CTreeNodeType(TREE_ITEM, false,"../" + images_dir + "/metadatatree/calculation_attribute.gif", "../" + images_dir + "/metadatatree/calculation_attribute.gif" );
tntCalculationAttribute.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_CALC_ATT);
var tntCalculationConstant = new CTreeNodeType(TREE_ITEM, false,"../" + images_dir + "/metadatatree/calculation_constant.gif", "../" + images_dir + "/metadatatree/calculation_constant.gif");
tntCalculationConstant.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_CALC_CONST);
var tntQuerySubject = new CTreeNodeType(TREE_FOLDER, true, "../" + images_dir + "/metadatatree/query_subject.gif", "../" + images_dir + "/metadatatree/query_subject.gif");
tntQuerySubject.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_QUERY_SUBJECT);
var tntDimension = new CTreeNodeType(TREE_FOLDER, true, "../" + images_dir + "/metadatatree/dimension.gif", "../" + images_dir + "/metadatatree/dimension.gif");
tntDimension.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_DIM);
var tntHierarchy = new CTreeNodeType(TREE_FOLDER, true, "../" + images_dir + "/metadatatree/hierarchy.gif", "../" + images_dir + "/metadatatree/hierarchy.gif");
tntHierarchy.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_HIERARCHY);
var tntLevel = new CTreeNodeType(TREE_ITEM, true, "../" + images_dir + "/metadatatree/level.gif", "../" + images_dir + "/metadatatree/level.gif", PMT_DMT_DRILL_METADATA_TREENODE_LEVEL);
tntLevel.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_LEVEL);
var tntMeasure = new CTreeNodeType(TREE_ITEM, false, "../" + images_dir + "/metadatatree/metadata_measure.gif", "../" + images_dir + "/metadatatree/metadata_measure.gif");
tntMeasure.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_METADATA_MEASURE);
var tntNamespace = new CTreeNodeType(TREE_FOLDER, true, "../" + images_dir + "/metadatatree/namespace.gif", "../" + images_dir + "/metadatatree/namespace.gif");
tntNamespace.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_NAMSEPACE);
var tntFolder_2 = new CTreeNodeType(TREE_FOLDER, true, "../" + images_dir + "/metadatatree/folder_open.gif", "../" + images_dir + "/metadatatree/folder_open.gif");
tntFolder_2.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_FOLDER);
var tntMeasureDimension = new CTreeNodeType(TREE_FOLDER, true, "../" + images_dir + "/metadatatree/measure_dimension.gif", "../" + images_dir + "/metadatatree/measure_dimension.gif");
tntMeasureDimension.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_MEASURE_DIMM);
var tntRollupMeasure = new CTreeNodeType(TREE_ITEM, true, "../" + images_dir + "/metadatatree/rollup_measure.gif", "../" + images_dir + "/metadatatree/rollup_measure.gif");
tntRollupMeasure.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_MEASURE_ROLLUP);
var tntNamedSet = new CTreeNodeType(TREE_ITEM, false, "../" + images_dir + "/metadatatree/named_set.gif", "../" + images_dir + "/metadatatree/named_set.gif");
tntNamedSet.setAltText(PMT_DMT_DRILL_METADATA_TREENODE_NAMED_SET);
tntQueryItem.m_bIsDraggable = false;
tntQueryItemFact.m_bIsDraggable = false;
tntQueryItemIdentifier.m_bIsDraggable = false;
tntFilter.m_bIsDraggable = false;
tntCalculationFact.m_bIsDraggable = false;
tntCalculationDimension.m_bIsDraggable = false;
tntCalculationAttribute.m_bIsDraggable = false;
tntCalculationConstant.m_bIsDraggable = false;
tntQuerySubject.m_bIsDraggable = false;
tntDimension.m_bIsDraggable = false;
tntHierarchy.m_bIsDraggable = false;
tntLevel.m_bIsDraggable = false;
tntLevel.setRecursiveSelect(false);
tntLevel.m_nodeTypeName = "level";
tntMeasure.m_bIsDraggable = false;
tntNamespace.m_bIsDraggable = false;
tntFolder_2.m_bIsDraggable = false;
tntMeasureDimension.m_bIsDraggable = false;
tntRollupMeasure.m_bIsDraggable = false;
tntRollupMeasure.setRecursiveSelect(false);
tntNamedSet.m_bIsDraggable = false;
function fetchMetadataFunctionList()
{
var req = "";
var cl = "";
// extract contentLocale from the cookie
var cookieValues = document.cookie.split(";");
for (var i = 0; i < cookieValues.length; i++)
{
if (cookieValues[i].match(/^\s*CRN=/i))
{
var aLocales = decodeURIComponent(decodeURIComponent(cookieValues[i].split("=")[1])).split("&");
for (var j = 0; j < aLocales.length; j++)
{
if (aLocales[j].match(/^contentLocale=/i))
cl = aLocales[j].split("=")[1];
break;
}
}
if (cl != "")
break;
}
if (cl == "")
cl = cfgGet("contentLocale");
if (cl)
req += "&cl=" + cl;
req += "&model=" + cfgGet("cmLastModel");
var url = "b_action=xts.run&m=/" + qs_dir + "/functionList.xts" + req;
if (cafContextId != "")
url += "&ui.cafcontextid=" + cafContextId;
sendDispatcherRequest(url, metadataFunctionListResponse);
}
function metadataFunctionListResponse(response)
{
response = response.split(";");
for (var i = 0; i < response.length; i++)
{
if (response[i].length > 0)
cfgSetAt("CalcFns", cfgSize("CalcFns"), response[i]);
}
var newFnToRun = cfgGet("postFetchFunctionToRun");
if (cfgSize("postFetchParameter") > 0)
{
var newFnParam = "";
for (var pfpCounter = 0; pfpCounter < cfgSize("postFetchParameter"); pfpCounter++)
{
if(newFnParam != "")
newFnParam =+ ",";
newFnParam += "'" + cfgGetAt("postFetchParameter", pfpCounter) + "'";
}
newFnToRun(eval(newFnParam));
}
else
newFnToRun();
cfgRemove("postFetchFunctionToRun");
cfgRemove("postFetchParameter");
}
function errorHandler(errorStoppedAt, e)
{
// alert("errorHandler broke at: [" + errorStoppedAt + "]\nwith message: [" + e.message + "]\nin file: [" + e.fileName + "]\nat line: [" + e.lineNumber + "]");
}
// Following functions used in metadataTree.js
function jsdecode(str)
{
if (typeof str == "undefined" || str == "")
{
return "";
}
if (typeof str != "string")
{
return str;
}
return str.replace(/\\'/g, "'").replace(/\\"/g, '"').replace(/\\>/g, ">").replace(/\\