123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644 |
- // Licensed Materials - Property of IBM
- //
- // IBM Cognos Products: pps
- //
- // (C) Copyright IBM Corp. 2005, 2019
- //
- // US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- var bResultStillLoading = true;
- var xtabHeight = "50%";
- var chartHeight = "50%";
- var loadedFrames = new Array();
- var initializedFrames = new Array();
- var NUM_FRAME_INITIALIZE_RETRIES = 3;
- var FRAME_INTIALIZE_RETRY_TIMEOUT = 50;
- var initializeFrameCtr = 0;
- var lastInitializeFrameCtr;
- var frameRows;
- //synchronization functions
- function registerFrameLoaded( name ) {
- loadedFrames[name] = true;
- initializedFrames[name] = false;
- initAllFrames();
- }
- function deregisterFrame( name ) {
-
- var isSplit = getGlobal("isSplitView");
- if (name == "DimTree") {
- getDimTreeFrame().cleanupDimTree();
- }
- if (!isSplit && name == "Data") {
- if (getGlobal("isChart"))
- getChartFrame().clearFlyouts();
- else
- getXtabFrame().clearFlyouts();
- }
-
- if (isSplit && name == "Crosstab") {
- getXtabFrame().clearFlyouts();
- }
-
- if (isSplit && name == "Chart") {
- getChartFrame().clearFlyouts();
- }
-
- loadedFrames[name] = false;
- initializedFrames[name] = false;
- }
- function isFrameStillLoading( name ) {return (loadedFrames[name] == null); };
- function isToolbarStillLoading() { return (loadedFrames["Toolbar"] == null); };
- function isXtabStillLoading() {
- if (getGlobal("isSplitView")) {
- if (self.Data.Crosstab)
- return (!loadedFrames["Crosstab"]);
- else
- return (!loadedFrames["Chart"]);
- } else {
- return (!loadedFrames["Data"]);
- }
- }
- function XtabUnload(name) { loadedFrames[name] = null; };
- function isResultStillLoading() { return bResultStillLoading; };
- function ResultFinished() { bResultStillLoading = false; };
- function ResultUnload() { bResultStillLoading = true; };
- function ToolbarUnload() { (loadedFrames["Toolbar"] = null); };
- function TopFSUnload() { globalsLoaded = false; };
- function initAllFrames() {
- // Check to make sure that all the frames that exist are loaded bfore initializing them
- if (getGlobal("isSplitView")) {
- if ( (self.Data.Crosstab || self.Data.Chart) && //Make sure that we have at least a crosstab or a chart frame.
- (!self.Data.Crosstab || loadedFrames["Crosstab"]) &&
- (!self.Data.Chart || loadedFrames["Chart"]) &&
- loadedFrames["DimTree"] && loadedFrames["Toolbar"] && loadedFrames["TreeToolBar"]
- && (!isActionPaneOpen() || loadedFrames["ActionPane"])) {
- performInits();
- }
- } else {
-
- if ( loadedFrames["Data"] && loadedFrames["DimTree"] && loadedFrames["Toolbar"] &&
- loadedFrames["TreeToolBar"] && (!isActionPaneOpen() || loadedFrames["ActionPane"])) {
- performInits();
- }
- }
- }
- function performInits() {
- //Perform each frames loading here.
- //We load each frame on a separate javascript thread to ensure that the content
- //of the frame is properly initialized by the browser for that frame.
- //We then return.
- var isSplit = getGlobal("isSplitView");
- if (!initializedFrames["Toolbar"]) {
- callInitFunction(self.Toolbar, "InitializeToolbar(" + (initializeFrameCtr == NUM_FRAME_INITIALIZE_RETRIES) + ");");
- } else if (!initializedFrames["TreeToolBar"]) {
- callInitFunction(self.TreeToolBar, "initDimToolbar();");
- } else if (!isSplit && self.Data && !initializedFrames["Data"]) {
- callInitFunction(self.Data, "initialize();");
- } else if (isSplit && self.Data.Chart && !initializedFrames["Chart"]) {
- callInitFunction(self.Data.Chart, "initialize();");
- } else if (isSplit && self.Data.Crosstab && !initializedFrames["Crosstab"]) {
- callInitFunction(self.Data.Crosstab, "initialize();");
- } else if (!initializedFrames["DimTree"]) {
- callInitFunction(self.DimTree, "initDimtree();");
- } else if (isActionPaneOpen() && !initializedFrames["ActionPane"]) {
- //call initialize if the action pane contains the error redirect, normal behaviour otherwise
- if (self.ActionPane.ppesRedirectPage) {
- callInitFunction(self.ActionPane, "initialize();");
- }
- else {
- callInitFunction(self.ActionPane, "commonActionPaneInit();init();topparent.tweakActionPaneSize();");
- }
- }
- }
- function allFramesInitialized() {
-
- if (getGlobal("isSplitView"))
- return (initializedFrames["Toolbar"] && initializedFrames["TreeToolBar"] && initializedFrames["DimTree"] &&
- (!self.Data.Chart || initializedFrames["Chart"]) &&
- (!self.Data.Crosstab || initializedFrames["Crosstab"]) &&
- (!isActionPaneOpen() || initializedFrames["ActionPane"]));
- else
- return (initializedFrames["Toolbar"] && initializedFrames["TreeToolBar"] && initializedFrames["DimTree"] &&
- (!self.Data || initializedFrames["Data"]) && (!isActionPaneOpen() || initializedFrames["ActionPane"]));
- }
- function callInitFunction(frame,func) {
- lastInitializeFrameCtr = initializeFrameCtr;
- frame.setTimeout("document.body.style.display = '';" + func + "topparent.setFrameInitialized(window.name);", 1);
- }
- function setFrameInitialized(name) {
- if (initializeFrameCtr == lastInitializeFrameCtr) {
- initializedFrames[name] = true;
- initializeFrameCtr = 0;
- //Initialize next frame
- performInits();
- } else { //Frame signaled that it had not been properly loaded yet,
- //so give the browser a few cycles, to properly initialize its data.
- setTimeout("performInits();",FRAME_INTIALIZE_RETRY_TIMEOUT);
- }
- }
- function notifyFrameNotYetLoaded() {
- initializeFrameCtr++;
- }
- //query functions
- function getXtabFrame()
- {
- if (getGlobal("isSplitView")) {
- return self.Data.Crosstab;
- }
- else
- return self.Data;
- }
- function getChartFrame()
- {
- if (getGlobal("isSplitView")) {
- return self.Data.Chart;
- }
- else if (getGlobal("isChart"))
- return self.Data;
- }
- function getActionFrame()
- {
- return self.ActionPane;
- }
- function getToolbarFrame()
- {
- return self.Toolbar;
- }
- function getDimTreeFrame()
- {
- return self.DimTree;
- }
- function getConfigFrame() {
-
- return self.configurationVariablesFrame;
- }
- function getDimCacheFrame()
- {
- return self.DimCacheResult;
- }
- function getMainFrameset()
- {
- return document.getElementById("main");
- }
- function getTreeMessageFrame()
- {
- return self.TreeMessagePane;
- }
- function getDimTreeToolbarFrame()
- {
- return self.TreeToolBar;
- }
- //resize event handlers
- function xtabResize(event)
- {
- var eventM = new eventManager(event);
- if (isActionPaneOpen() || isChartPaneOpen())
- return true;
- eventM.cancelBubble();
- }
- function chartResize(event)
- {
- var eventM = new eventManager(event);
- if (isChartPaneOpen())
- return true;
- if (getGlobal("isSplitView") && self.Data.document.getElementById("dataArea"))
- self.Data.document.getElementById("dataArea").rows = "0%,100%";
-
- eventM.cancelBubble();
- }
- function actPaneResize(event)
- {
- var eventM = new eventManager(event);
- if (isActionPaneOpen())
- return true;
- maintainToolBarSize();
-
- eventM.cancelBubble();
- }
- function dimtreetoolBarResize(event)
- {
- var eventM = new eventManager(event);
- eventM.cancelBubble();
- }
- function toolBarResize(event)
- {
- var eventM = new eventManager(event);
- maintainToolBarSize();
- eventM.cancelBubble();
- }
- function maintainToolBarSize() {
- if (!getGlobal("displayDataOnly")) {
- var rightFrameset = document.getElementById("rightFrameset");
- rightFrameset.rows = rightFrameset.rows.substr(0,rightFrameset.rows.lastIndexOf(",")) + ",27";
- }
- }
- //frame resizing/closing
- function closeActionPane() {
- if (isXtabStillLoading()) {
- setTimeout("closeActionPane()", 50);
- return;
- }
- if (getActionFrame().cleanup)
- getActionFrame().cleanup();
- clearActionPane();
- }
- function clearActionPane() {
- var xtabFrame = getXtabFrame().document;
- if ( typeof xtabFrame.fhidden != "undefined" &&
- typeof xtabFrame.fhidden.ACTPANE != "undefined" &&
- typeof xtabFrame.fhidden.ACTPANE.value != "undefined" )
- {
- xtabFrame.fhidden.ACTPANE.value = 0;
- }
- if (isChartPaneOpen())
- {
- var chartFrame = getChartFrame().document;
- if ( typeof chartFrame.fhidden != "undefined" &&
- typeof chartFrame.fhidden.ACTPANE != "undefined" &&
- typeof chartFrame.fhidden.ACTPANE.value != "undefined" )
- {
- chartFrame.fhidden.ACTPANE.value = 0;
- }
- }
- closeActionFrame();
- }
- function closeActionFrame() {
-
- if (nn7) {
- if (getGlobal("displayDataOnly")) {
- document.getElementById("rightFrameset").rows = "*,1,0";
- setTimeout('document.getElementById("rightFrameset").rows = "*,0,0"', 5);
- }
- else {
- document.getElementById("rightFrameset").rows = "*,1,27";
- setTimeout('document.getElementById("rightFrameset").rows = "*,0,27"', 5);
- }
-
- if (getGlobal("isSplitView") && isChartPaneOpen()) {
- frameRows = self.Data.document.getElementById("dataArea").rows;
- self.Data.document.getElementById("dataArea").rows="49%,51%";
- setTimeout('self.Data.document.getElementById("dataArea").rows=frameRows', 5);
- }
- } else {
- if (getGlobal("displayDataOnly"))
- document.getElementById("rightFrameset").rows = "*,0,0";
- else
- document.getElementById("rightFrameset").rows = "*,0,27";
- }
- getToolbarFrame().clearToggleButton();
- }
- function openActionPane()
- {
- var xtabFrame = getXtabFrame().document;
- if (actionPaneHasValue(xtabFrame))
- {
- if (getGlobal("displayDataOnly"))
- document.getElementById("rightFrameset").rows = "*,225,0";
- else
- document.getElementById("rightFrameset").rows = "*,225,27";
- //Netscape 7 sometimes doesent refresh its presentational information
- //The Action Pane is there, but it is invisible, so we simply add and a last node
- //And therefore force the browser to handle the presentation.
- getActionFrame().scrollTo(0,0);
- }
- }
- function actionPaneHasValue(xtabFrame) {
- return ((typeof xtabFrame.fhidden != "undefined") &&
- (typeof xtabFrame.fhidden.ACTPANE != "undefined") &&
- (typeof xtabFrame.fhidden.ACTPANE.value != "undefined"));
- }
- function setActionPaneHeight(actionPaneHeight) {
- if (getGlobal("displayDataOnly"))
- document.getElementById("rightFrameset").rows = "*," + actionPaneHeight + ",0";
- else
- document.getElementById("rightFrameset").rows = "*," + actionPaneHeight + ",27";
- }
- function tweakActionPaneSize() {
- if (nn7) {
- var rightFrameSet = document.getElementById("rightFrameset");
- var oldRows = rightFrameSet.rows;
- var rows = rightFrameSet.rows.split(",");
- rows[1] = parseInt(rows[1]) + 1;
- var newRows = rows[0];
- for (var i = 1; i < rows.length; i++)
- newRows += "," + rows[i];
- document.getElementById("rightFrameset").rows = newRows;
- window.setTimeout("document.getElementById('rightFrameset').rows = \"" + oldRows + "\"", 10);
- }
- }
- function openTreeMessageFrame()
- {
- document.getElementById("leftFrameset").rows = "*,185,27";
- getTreeMessageFrame().document.body.appendChild(getTreeMessageFrame().document.createTextNode(" "));
- }
- function closeTreeMessageFrame()
- {
- document.getElementById("leftFrameset").rows = "*,0,27";
- }
- function openTreeToolbarFrame()
- {
- document.getElementById("leftFrameset").rows = "*,0,27";
- setCookie("DimTreeToolbarVisible","True",(10*365),getGlobal("cookieSecure"));
- dimTreeToolbarOpen = true;
- }
- function closeTreeToolbarFrame()
- {
- //Do not allow for Netscape 7
- if (!nn7) {
- document.getElementById("leftFrameset").rows = "*,0,0";
- if (getCookie("DimTreeToolbarVisible"))
- deleteCookie("DimTreeToolbarVisible");
- dimTreeToolbarOpen = false;
- }
- }
- function openTreeFrame()
- {
- getMainFrameset().cols = parentTopframeCols;
- treeVisible = true;
- if (getCookie("DimTreeVisible"))
- deleteCookie("DimTreeVisible");
- if (getXtabFrame().isSplitDisplay() )
- getChartFrame().setToggleTreeIconOpen();
- else
- getXtabFrame().setToggleTreeIconOpen();
- //Netscape 7 sometimes doesent refresh its presentational information
- //The tree frame is there, but the browser doesen't show it.
- //So we use a trick.
- if (nn7) {
- var dimtree = getDimTreeFrame().document;
- var textNode = dimtree.createTextNode(" ");
- dimtree.body.appendChild(textNode);
- dimtree.body.removeChild(textNode);
- }
- }
- function closeTreeFrame()
- {
- parentTopframeCols = getMainFrameset().cols;
- getMainFrameset().cols = "0,*";
- treeVisible = false;
- setCookie("DimTreeVisible","False",(10*365),getGlobal("cookieSecure"));
- if (getXtabFrame().isSplitDisplay() )
- getChartFrame().setToggleTreeIconClosed();
- else
- getXtabFrame().setToggleTreeIconClosed();
- }
- function isActionPaneOpen() {
- if (!getXtabFrame())
- return false;
- var xtab = getXtabFrame().document;
- if (xtab.fhidden && xtab.fhidden.ACTPANE && xtab.fhidden.ACTPANE.value != 0)
- return true;
- return false;
- }
- function closeChartPane() {
- if (getGlobal("isSplitView") && self.Data.document.getElementById("dataArea")) {
- self.Data.document.getElementById("dataArea").rows = "0%,100%";
- var bod = Chart.document.body;
- bod.innerHTML = "";
- }
- }
- function openChartPane() {
- if (getGlobal("isSplitView") && self.Data.document.getElementById("dataArea"))
- if (chartHeight.toString().indexOf("%") >= 0)
- self.Data.document.getElementById("dataArea").rows = chartHeight + ',' + xtabHeight;
- else
- self.Data.document.getElementById("dataArea").rows = chartHeight + 'px,' + xtabHeight + 'px';
- }
- function isChartPaneOpen() {
- if (!self.Data.document.getElementById("dataArea"))
- return false;
- var rows = self.Data.document.getElementById("dataArea").rows;
- if (rows.indexOf(",") >= 0)
- return true;
- return false;
- }
- function getXtabFrameOffsetLeft() {
- var cols = getMainFrameset().cols;
-
- var offsetLeft = 0;
- var offset = 0;
-
- do {
-
- offset = parseInt(cols);
- if (offset)
- offsetLeft += offset;
- cols = cols.substr(cols.indexOf(',') + 1);
-
- } while (cols.indexOf(',') >= 0);
-
- return offsetLeft;
- }
- function executeCrossFrameFunction( funcname, excludeFrame, passDocument)
- {
- var targetFrames = new Array();
-
- if (getGlobal("isSplitView")) {
- if (excludeFrame != "Crosstab" && getXtabFrame())
- targetFrames[targetFrames.length++] = getXtabFrame();
- if (excludeFrame != "Chart" && isChartPaneOpen())
- targetFrames[targetFrames.length++] = getChartFrame();
- }
- else {
- if (excludeFrame != "Data" && getXtabFrame())
- targetFrames[targetFrames.length++] = getXtabFrame();
- }
- if (excludeFrame != "Toolbar" && getToolbarFrame())
- targetFrames[targetFrames.length++] = getToolbarFrame();
- if (excludeFrame != "ActionPane" && getActionFrame())
- targetFrames[targetFrames.length++] = getActionFrame();
- if (excludeFrame != "DimTree" && getDimTreeFrame())
- targetFrames[targetFrames.length++] = getDimTreeFrame();
- for (var i = 0; i < targetFrames.length; i++)
- {
- var f = targetFrames[i];
- if (f[funcname])
- {
- var funcref = f[funcname];
- if (passDocument)
- funcref.call(null, f.document);
- else
- funcref.call();
- }
- }
- }
- if (typeof document.createDocumentFragment == "undefined")
- {
- document._createDocumentFragment = function() {
- var ele = document.createElement("html");
- return ele;
- }
- }
- else
- document._createDocumentFragment = document.createDocumentFragment;
- function getDocumentFragmentDocument(docFrag)
- {
- if (!docFrag.document)
- return docFrag;
- else
- return docFrag.document;
- }
- function getGlobal(name)
- {
- if( !globalsLoaded )
- {
- setTimeout("getGlobal(" + name + ")", 20);
- return;
- }
- return eval("self." + name);
- }
- function setGlobal(name, value)
- {
- if(!globalsLoaded)
- {
- setTimeout("setGlobal(" + name + "," + value + ")", 20);
- return;
- }
- eval("self." + name + "= value");
- }
- function gotoLocation(loc, isRTS) {
- var doc = getXtabFrame().document;
- var form = doc.createElement("FORM");
-
- form.method = "POST";
- form.target = getGlobal("PPESTopTarget");
-
-
- if (loc.indexOf("?") != -1) {
- form.action = loc.substr(0,loc.indexOf("?"));
- loc = loc.substr(loc.indexOf("?") + 1);
- //split on & and create a hidden element for each entry
- var parms = loc.split('&');
-
- for (var i = 0; i < parms.length; i++) {
- var input = doc.createElement("INPUT");
- input.type = "hidden";
- input.name = parms[i].substr(0,parms[i].indexOf('='));
- input.value = unescape(parms[i].substr(parms[i].indexOf('=') + 1));
-
- form.appendChild(input);
- }
- if (isRTS) {
- // pass the current state to the "ppcancel" form
- var lkgs = doc.createElement("INPUT");
- lkgs.type = "hidden";
- lkgs.name = "LKGS";
- lkgs.value = doc.fhidden.LKGS.value;
- form.appendChild(lkgs);
- }
- }
- else if (loc == "javascript:window.close()") {
- window.close();
- }
- else if (loc.search("/cps4/portlets/common/close.html") != -1) {
- window.close();
- }
- else {
- form.action = location.pathname;
- }
-
- //Submit the form
- doc.body.appendChild(form);
- form.submit();
- }
- function setWasRedirected(wasRedirected) {
- self.configurationVariablesFrame.document.configform.wasredirected.value = wasRedirected;
- }
- function wasRedirected() {
- return (self.configurationVariablesFrame.document.configform.wasredirected.value == "1");
- }
|