123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363 |
- // Licensed Materials - Property of IBM
- //
- // IBM Cognos Products: pps
- //
- // (C) Copyright IBM Corp. 2005, 2017
- //
- // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- var rootCommands = new Array();
- rootCommands["DRILL"] = 'D';
- rootCommands["EDGE"] = 'E';
- rootCommands["PAGE"] = 'P';
- var optionCommands = new Array();
- optionCommands["REPLACE"] = 'R';
- optionCommands["CATEGORY"] = 'C';
- optionCommands["GROUP"] = 'G';
- optionCommands["NEST"] = 'N';
- function processDoubleClick(event)
- {
- if (!topparent.allFramesInitialized())
- return;
- var eventM = new eventManager(event);
- eventM.cancelBubble();
- var obj = bubbleToDoubleClickSensitiveObject(eventM.getSrc());
- if (obj == null)
- return;
- var cmd = "";
- var id = obj.id;
- var row = parseRowId(obj.id);
- var col = parseColId(obj.id);
- var rowLabel = document.getElementById(row + "-" + (parseInt(numRowLevels) - 1));
- var colLabel = document.getElementById((parseInt(numColLevels) - 1) + "-" + col);
- var bBothSummaries = false;
- var bDoRowLabel = false;
- var bDoColLabel = false;
- if (rowLabel && colLabel)
- {
- bBothSummaries = rowLabel.summary == "true" && colLabel.summary == "true" && (rowLabel.getAttribute("level") > 0 || colLabel.getAttribute("level") > 0);
- }
-
- if (rowLabel)
- bDoRowLabel = rowLabel.summary != "true" || bBothSummaries;
-
- if (colLabel)
- bDoColLabel = colLabel.summary != "true" || bBothSummaries;
- if (bDoRowLabel)
- {
- cmd += getDrillLinkCommand(rowLabel);
- }
-
- if (bDoColLabel)
- {
- cmd += getDrillLinkCommand(colLabel);
- }
- if (cmd != "")
- {
- var cmd1 = '';
- var cmd2 = '';
- var beginMarker = "DG:";
- var endMarker = ");";
- var begin = cmd.indexOf(beginMarker);
- if (begin >= 0)
- cmd = cmd.substr(begin);
- var end = cmd.indexOf(endMarker) - 1;
- if (end >= 0)
- {
- cmd1 = cmd.substr(0, end);
- cmd = cmd.substr(end);
- }
- begin = cmd.indexOf(beginMarker);
- if (begin >= 0)
- {
- cmd = cmd.substr(begin);
- cmd2 = cmd.substr(0, cmd.indexOf(endMarker) - 1) ;
- }
- cmd = decodeURI(cmd1);
- if (cmd2 != '')
- cmd += '\t\t' + decodeURI(cmd2);
- cmd = cmd.toString().replace(/\\t/g, '\t');
- if (cmd != '')
- doit(cmd);
- }
- }
- function bubbleToDoubleClickSensitiveObject (obj)
- {
- if (!obj)
- return null;
- var target = obj;
- if (!obj.getAttribute || !obj.getAttribute("type") || obj.getAttribute("type") != "d")
- target = bubbleToDoubleClickSensitiveObject( obj.parentElement );
- return target;
- }
- function getDrillLinkCommand (obj)
- {
- var drillLink;
- if (obj.tagName == "A" && obj.onclick != null && obj.onclick.toString().indexOf("DG:") >= 0)
- return obj.onclick;
- if ( obj.hasChildNodes() )
- {
- var children = obj.childNodes;
- for (var i=0; i < children.length; i++)
- {
- var child = children[i];
- if (child.tagName == "A" && child.onclick != null && child.onclick.toString().indexOf("DG:") >= 0)
- return child.onclick;
-
- if (child.hasChildNodes())
- drillLink = getDrillLinkCommand(child);
- if (drillLink)
- break;
- }
- }
-
- return drillLink;
- }
- function doColumnReplaceCommand (code, level) {
- var dndManager = topparent.getGlobal("dndManager");
- var catInfo = new DragInfo (dndManager.getData());
- var cmd = doPreUnhideCommand();
- cmd += rootCommands["EDGE"] + optionCommands["REPLACE"] + ':';
- cmd += 'C';
- cmd += level; //target level
- cmd += '\tD';
- cmd += catInfo['dim'];
- cmd += '\t';
- cmd += catInfo['ppds_id'];
- cmd += ',';
- cmd += catInfo['dim'];
- cmd += ';';
- cmd += catInfo['code'];
- doCommand(cmd);
- }
- function doColumnNestCommand (code, level, dimIdx) {
- var dndManager = topparent.getGlobal("dndManager");
- var catInfo = new DragInfo (dndManager.getData());
- var cmd = doPreUnhideCommand();
- cmd += rootCommands["EDGE"] + optionCommands["NEST"] + ':';
- cmd += 'C';
- cmd += level; //target level
- cmd += '\tD';
- cmd += catInfo['dim'];
- cmd += '\t';
- cmd += catInfo['level'];
- if ( catInfo['dim'] != dimIdx ) // nesting a different dimension...
- {
- cmd += '\t\t';
- cmd += rootCommands["DRILL"] + optionCommands["GROUP"] + ':';
- cmd += 'C';
- cmd += parseInt(level) + 1;
- cmd += '\t';
- cmd += catInfo['ppds_id'];
- cmd += ',';
- cmd += catInfo['dim'];
- cmd += ';';
- cmd += catInfo['code'];
- }
- doCommand(cmd);
- }
- function doRowReplaceCommand (code, level) {
- var dndManager = topparent.getGlobal("dndManager");
- var catInfo = new DragInfo (dndManager.getData());
- var cmd = doPreUnhideCommand();
- cmd += rootCommands["EDGE"] + optionCommands["REPLACE"] + ':';
- cmd += 'R';
- cmd += level; //target level
- cmd += '\tD';
- cmd += catInfo['dim'];
- cmd += '\t';
- cmd += catInfo['ppds_id'];
- cmd += ',';
- cmd += catInfo['dim'];
- cmd += ';';
- cmd += catInfo['code'];
- doCommand(cmd);
- }
- function doRowNestCommand (code, level, dimIdx) {
- var dndManager = topparent.getGlobal("dndManager");
- var catInfo = new DragInfo (dndManager.getData());
- var cmd = doPreUnhideCommand();
- cmd += rootCommands["EDGE"] + optionCommands["NEST"] + ':';
- cmd += 'R';
- cmd += level;
- cmd += '\tD';
- cmd += catInfo['dim'];
- cmd += '\t';
- cmd += catInfo['level'];
- if ( catInfo['dim'] != dimIdx ) // nesting a different dimension...
- {
- cmd += '\t\t';
- cmd += rootCommands["DRILL"] + optionCommands["GROUP"] + ':';
- cmd += 'R';
- cmd += parseInt(level) + 1;
- cmd += '\t';
- cmd += catInfo['ppds_id'];
- cmd += ',';
- cmd += catInfo['dim'];
- cmd += ';';
- cmd += catInfo['code'];
- }
- doCommand(cmd);
- }
- function doReplaceMeasureCommand (measureNo) {
- var dndManager = topparent.getGlobal("dndManager");
- var catInfo = new DragInfo (dndManager.getData());
- var cmd = rootCommands["DRILL"] + optionCommands["CATEGORY"] + ':';
- cmd += catInfo['ppds_id'];
- cmd += ',';
- cmd += catInfo['dim'];
- cmd += ';';
- cmd += catInfo['code'];
- if (measureNo > 1) {
- cmd += "\t" + (parseInt(catInfo['dim']) + measureNo - 1);
- }
- doCommand(cmd);
- }
- function doPreUnhideCommand () {
- var dndManager = topparent.getGlobal("dndManager");
- var catInfo = new DragInfo (dndManager.getData());
- var cmd = "";
-
- if (topparent.getGlobal("gDimensionInfo")[catInfo['dim']].isMeasureDimension) { //unhide it so we are sure it will be visible
- cmd = "MS:0\t" + constructOperandId(catInfo['ppds_id'],catInfo['dim'],catInfo['code']) + "\t\t";
- }
- return cmd;
- }
- function replaceApos(txt) {
- var res="";
- for (var i=0; i<txt.length; i++) {
- if (txt.charAt(i) == '\'')
- res += "\\'";
- else
- res += txt.charAt(i);
- }
- return res;
- }
- function DragInfo (info) {
- if (!info)
- return;
- var idx = info.indexOf(":");
- if (idx != -1)
- info = info.substring(idx+1);
- var idx = info.indexOf("<@>");
- if (idx != -1)
- info = info.substring(0,idx);
- var arr = info.split('@');
- for (var i = 0; i < arr.length; i+=2)
- {
- var cmd = "this.";
- cmd += arr[i];
- cmd += " = '";
- cmd += replaceApos(arr[i+1]);
- cmd += "'";
- eval (cmd);
- }
- }
- function doPageDown (event, row, col) {
- var cmd = buildPageCommand(row, col);
- doCommand(cmd);
- var mgr = new eventManager(event);
- mgr.cancelBubble();
- }
- function doPageRight (event, row, col) {
- var cmd = buildPageCommand(row, col);
- doCommand(cmd);
- var mgr = new eventManager(event);
- mgr.cancelBubble();
- }
- function doPageUp (event, row, col) {
- var cmd = buildPageCommand(row, col);
- doCommand(cmd);
- var mgr = new eventManager(event);
- mgr.cancelBubble();
- }
- function doPageLeft (event, row, col) {
- var cmd = buildPageCommand(row, col);
- doCommand(cmd);
- var mgr = new eventManager(event);
- mgr.cancelBubble();
- }
- function buildPageCommand(row, col) {
- var cmd = rootCommands["PAGE"] + optionCommands["GROUP"] + ':';
- if (parseInt(row))
- cmd += row;
- else
- cmd += '0';
-
- cmd += '\t';
- if (parseInt(col))
- cmd += col;
- else
- cmd += '0';
- return cmd;
- }
- function doCommand (cmd) {
- doit(cmd);
- }
- function filterDim(args) {
- var code = args[3];
- var dimIdx = args[6];
- var ppds_id = args[7];
- var codeSep = topparent.getGlobal("codeSeparator");
- var idx = code.lastIndexOf(codeSep);
- if (idx != -1)
- code = code.substring(idx+1,code.length);
- var idx = ppds_id.lastIndexOf(codeSep);
- if (idx != -1)
- ppds_id = ppds_id.substr(idx+1,ppds_id.length);
- var cmd = "DC:"+ppds_id+","+dimIdx+";"+code;
- doCommand(cmd);
- }
|