// 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. // // This contains the custom javascript functions supplied by the customer // to be used for PowerPlay Studio Cognos Viewer Toolbar. var PP8CV = new function PP8CognosViewer() { var DSCParamterList = new Array("DSC.CONNECTIONNAME", "DSC.DATASOURCECONNECTIONSEARCHPATH", "DSC.DATASOURCECONNECTIONSTOREID", "DSC.DATASOURCENAME", "DSC.LOCALCUBEPATH", "DSC.MODELSEARCHPATH", "DSC.MODELSTOREID", "DSC.MODELNAMESPACEID", "DSC.NAMESPACE", "DSC.PACKAGESEARCHPATH", "DSC.PACKAGESTOREID", "DSC.READCACHESIZE", "DSC.SIGNONNAME"); var ParametersForPWR = new Array("CRNOBJB64", "CRNOBJWP", "CRNOBJTYPE", "CRNRN", "DC"); var ParametersForPWQ = new Array("CRNOBJB64", "CRNOBJWP", "CRNOBJTYPE", "CX"); var ParamatersNeccessaryForCurrentState = new Array( "LA", "LO", "FC", "DM", "SW", "Z", "PP_SMODE", "LS", "CU", "FO", "DP", "w2", "ENCODING", "ui.crnp", "ui.crnfrm", "ui.backURL", "ppes_routingsg", "CMAS", "CMRS"); this.promptsButton = function(viewer) { var paramNames = new Array(); paramNames = paramNames.concat(ParametersForPWR); paramNames = paramNames.concat(ParamatersNeccessaryForCurrentState); paramNames = paramNames.concat(DSCParamterList); paramNames = paramNames.concat(getDimensionListParameters(viewer)); var params = getParametersFromViewer(paramNames,viewer); params["b_action"] = "powerPlayService"; params["ui.backURL"] = createURLForCurrentState(viewer); params["ui.action"] = "run"; params["ui.crnp"] = "true"; params["ui.crnfrm"] = "PDF"; params["crnobj"] = viewer.envParams["ui.object"]; params["PWVB"] = createURLForCurrentState(viewer); createAndSubmitForm(params); } this.drillButton = function(viewer) { var paramNames = new Array(); paramNames = paramNames.concat(ParametersForPWQ); paramNames = paramNames.concat(DSCParamterList); paramNames[paramNames.length] = "PROTECT"; var params = getParametersFromViewer(paramNames,viewer); params["b_action"] = "powerPlayService"; params["RA"] = "4"; //Drill through. createAndSubmitForm(params, "_blank"); } this.saveButton = function(viewer) { var paramNames = new Array(); paramNames = paramNames.concat(ParametersForPWR); paramNames = paramNames.concat(ParamatersNeccessaryForCurrentState); paramNames = paramNames.concat(DSCParamterList); paramNames = paramNames.concat(getDimensionListParameters(viewer)); var params = getParametersFromViewer(paramNames,viewer); params["b_action"] = "powerPlayService"; params["ZZ"] = "S"; params["CO"] = "RU:1"; createAndSubmitForm(params); } this.saveAsButton = function(viewer) { var paramNames = new Array(); paramNames = paramNames.concat(ParametersForPWR); paramNames = paramNames.concat(ParamatersNeccessaryForCurrentState); paramNames = paramNames.concat(DSCParamterList); paramNames = paramNames.concat(getDimensionListParameters(viewer)); paramNames[paramNames.length] = "PROMPT_PAGE_INVOKED"; var params = getParametersFromViewer(paramNames,viewer); params["b_action"] = "powerPlayService"; params["PP_BACK"] = viewer.envParams["ui.backURL"]; params["ZZ"] = "J"; params["CO"] = "RU:0"; createAndSubmitForm(params); } this.ppStudioButton = function(viewer) { var paramNames = new Array(); paramNames = paramNames.concat(ParametersForPWQ); paramNames = paramNames.concat(ParamatersNeccessaryForCurrentState); paramNames = paramNames.concat(DSCParamterList); paramNames = paramNames.concat(getDimensionListParameters(viewer)); paramNames[paramNames.length] = "PROTECT"; var params = getParametersFromViewer(paramNames,viewer); params["b_action"] = "powerPlayService"; params["ui.backURL"] = createURLForCurrentState(viewer); //If we don't have an FC and DM, we need to create some for PPStudio //Add the dimension parameters. if (!params["FC"] || !params["DM"]) { var sFC = ""; for (param in viewer.envParams) { if (param.match(/^D\d+$/)) { //Match on D0 --> D sFC += param.substr(1); // Dim# sFC += "\t"; sFC += viewer.envParams[param]; // value sFC += "\t"; } } params["FC"] = sFC; } createAndSubmitForm(params); } function getDimensionListParameters(viewer) { var paramNames = new Array(); paramNames[paramNames.length] = "ND"; //Add the dimension parameters. var dimensionParmName = "D0"; var dimensionCtr = 0; while (viewer.envParams[dimensionParmName]) { paramNames[paramNames.length] = dimensionParmName; paramNames[paramNames.length] = (dimensionParmName + "L"); paramNames[paramNames.length] = (dimensionParmName + "I"); paramNames[paramNames.length] = (dimensionParmName + "_CL"); dimensionCtr++; dimensionParmName = "D" + dimensionCtr; } return paramNames; } function getParametersFromViewer(paramNames,viewer) { var params = new Array(); for (var i = 0; i < paramNames.length; i++) { if (viewer.envParams[paramNames[i]]) params[paramNames[i]] = viewer.envParams[paramNames[i]]; } return params; } function createURLForCurrentState(viewer) { var paramNames = new Array(); paramNames = paramNames.concat(ParametersForPWR); paramNames = paramNames.concat(ParamatersNeccessaryForCurrentState); paramNames = paramNames.concat(DSCParamterList); paramNames = paramNames.concat(getDimensionListParameters(viewer)); paramNames = paramNames.concat(new Array("ui.object","UI.OBJECT")); var params = getParametersFromViewer(paramNames,viewer); //It's possible that the viewer was invoked from a prompt page //In this case, the PP_BACK is the real backURL. if (viewer.envParams["PP_BACK"]) { params["ui.backURL"] = viewer.envParams["PP_BACK"]; } params["b_action"] = "powerPlayService"; params["ui.action"] = "run"; return createURL(params, viewer); } function createURL(params, viewer) { //Get the Gateway URL currently in the browser var URL = location.pathname; if (URL.indexOf("?") != -1) URL = URL.substr(0,URL.indexOf("?")); URL += "?"; var first = true; for (var i in params) { if (!first) URL += "&"; first = false; URL += i; URL += "="; URL += encodeURIComponent(params[i]); } return URL; } function createAndSubmitForm(params, target) { var form = document.createElement("FORM"); form.action = getFormWarpRequest().action; form.method = "post"; if (target) form.target = target; for (var i in params) { var input = document.createElement("INPUT"); input.type = "hidden"; input.name = i; input.value = params[i]; form.appendChild(input); } document.body.appendChild(form); form.submit(); } }