// 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. // This forms the javascript functions used for the PDF Export Options pane of // PowerPlay Studio. // The functions handle any minor browser differences. var COOKIE_PAGE_ORIENTATION = "PageOrientation"; var COOKIE_PAGE_SIZE = "PageSize"; var COOKIE_FRAME_BORDER = "FrameBorder"; var COOKIE_LAYER_DIMENSION = "PDFLayerDimension"; var COOKIE_ADV_OPTS = "PDFOPTS"; var isNSBrowser = navigator.appName.indexOf("Netscape")>=0; if( navigator.appVersion == "" ) isNSBrowser = false; var isNSMac = isNSBrowser && navigator.platform.indexOf("Mac") >= 0; var currentTab = 1; function setRadioValue(radio, value) { radio[0].checked = (value == 0); radio[1].checked = (value == 1); radio[2].checked = (value == 2); } function getAdvanceOpts() { var opts = ""; var wordWrap = document.pdfForm.wordWrap.checked; if (wordWrap) wordWrap = "1"; else wordWrap = "0"; opts += wordWrap; var statusBar = document.pdfForm.statusLine.checked; if (statusBar) statusBar = "1"; else statusBar = "0"; opts += statusBar; var splitViewOnePage = document.pdfForm.PageSplitOnePageCheck.checked; if (splitViewOnePage) splitViewOnePage = "1"; else splitViewOnePage = "0"; opts += splitViewOnePage; var xtabRowPaginationType = getRadioValue(document.pdfForm.PageXtabRows); opts += xtabRowPaginationType; var custNum = document.pdfForm.PageXtabNumRowsCheck.checked; if (custNum) custNum = "1"; else custNum = "0"; opts += custNum; var nestGroup = document.pdfForm.PageXtabNestGroupRowsCheck.checked; if (nestGroup) nestGroup = "1"; else nestGroup = "0"; opts += nestGroup; var xtabNumRowItems = document.pdfForm.PageXtabNumRows.value; opts += "(" + xtabNumRowItems + ")"; var xtabColPaginationType = getRadioValue(document.pdfForm.PageXtabCols); opts += xtabColPaginationType; custNum = document.pdfForm.PageXtabNumColsCheck.checked; if (custNum) custNum = "1"; else custNum = "0"; opts += custNum; nestGroup = document.pdfForm.PageXtabNestGroupColsCheck.checked; if (nestGroup) nestGroup = "1"; else nestGroup = "0"; opts += nestGroup; var xtabNumColItems = document.pdfForm.PageXtabNumCols.value; opts += "(" + xtabNumColItems + ")"; var ChartPaginationType = getRadioValue(document.pdfForm.PageChartCategories); opts += ChartPaginationType; var chartNumItems = document.pdfForm.PageChartNumCategories.value; opts += "(" + chartNumItems + ")"; var NestedRowPaginationType = getRadioValue(document.pdfForm.PageNestedRows); opts += NestedRowPaginationType; var NestedNumRows = document.pdfForm.PageNestedNumRows.value; opts += "(" + NestedNumRows + ")"; var NestedColPaginationType = getRadioValue(document.pdfForm.PageNestedCols); opts += NestedColPaginationType; var NestedNumCols = document.pdfForm.PageNestedNumCols.value; opts += "(" + NestedNumCols + ")"; return opts; } function setAdvancedOpts(opts) { var pos = 0; var wordWrap = (opts.substr(pos++,1) == "1"); var statusBar = (opts.substr(pos++,1) == "1"); var splitOnePage = (opts.substr(pos++,1) == "1"); var xtabRows = parseInt(opts.substr(pos++,1)); var xtabRowsCustNum = (opts.substr(pos++,1) == "1"); var xtabRowsNestGroup = (opts.substr(pos++,1) == "1"); var numLen = opts.substr(pos + 1).indexOf(")"); var xtabNumRows = parseInt(opts.substr(pos + 1,numLen)); pos += numLen + 2; var xtabCols = parseInt(opts.substr(pos++,1)); var xtabColsCustNum = (opts.substr(pos++,1) == "1"); var xtabColsNestGroup = (opts.substr(pos++,1) == "1"); var numLen = opts.substr(pos + 1).indexOf(")"); var xtabNumCols = parseInt(opts.substr(pos + 1,numLen)); pos += numLen + 2; var chartPageType = parseInt(opts.substr(pos++,1)); var numLen = opts.substr(pos + 1).indexOf(")"); var chartNumItems = parseInt(opts.substr(pos + 1,numLen)); pos += numLen + 2; var nestedRows = parseInt(opts.substr(pos++,1)); var numLen = opts.substr(pos + 1).indexOf(")"); var nestedNumRows = parseInt(opts.substr(pos + 1,numLen)); pos += numLen + 2; var nestedCols = parseInt(opts.substr(pos++,1)); var numLen = opts.substr(pos + 1).indexOf(")"); var nestedNumCols = parseInt(opts.substr(pos + 1,numLen)); pos += numLen + 2; document.pdfForm.wordWrap.checked = wordWrap; document.pdfForm.statusLine.checked = statusBar; document.pdfForm.PageSplitOnePageCheck.checked = splitOnePage; setRadioValue(document.pdfForm.PageXtabRows,xtabRows); document.pdfForm.PageXtabNumRowsCheck.checked = xtabRowsCustNum; document.pdfForm.PageXtabNestGroupRowsCheck.checked = xtabRowsNestGroup; document.pdfForm.PageXtabNumRows.value = xtabNumRows; setRadioValue(document.pdfForm.PageXtabCols,xtabCols); document.pdfForm.PageXtabNumColsCheck.checked = xtabColsCustNum; document.pdfForm.PageXtabNestGroupColsCheck.checked = xtabColsNestGroup; document.pdfForm.PageXtabNumCols.value = xtabNumCols; if (allowChartPagination) setRadioValue(document.pdfForm.PageChartCategories,chartPageType); else setRadioValue(document.pdfForm.PageChartCategories,1); document.pdfForm.PageChartNumCategories.value = chartNumItems; setRadioValue(document.pdfForm.PageNestedRows,nestedRows); document.pdfForm.PageNestedNumRows.value = nestedNumRows; setRadioValue(document.pdfForm.PageNestedCols,nestedCols); document.pdfForm.PageNestedNumCols.value = nestedNumCols; } function init() { if (window.name == "ActionPane") { topparent.openActionPane(); topparent.setActionPaneHeight("290"); } if(document.cookie.length == 0 || getCookie(COOKIE_PAGE_ORIENTATION) == undefined) { setDefaultSettings(); } else { //get value from cookies var orientation = getCookie(COOKIE_PAGE_ORIENTATION); var pageFormat = getCookie(COOKIE_PAGE_SIZE); var border = getCookie(COOKIE_FRAME_BORDER); var layerDimension = getCookie(COOKIE_LAYER_DIMENSION); //display values if(orientation == "portrait") { document.pdfForm.radio_1[0].checked=true; } else { document.pdfForm.radio_1[1].checked=true; } document.pdfForm.pageFormats.value=pageFormat; document.pdfForm.pageFormats.selectedIndex=pageFormat; //display frame border values to screen if(border == "false") document.pdfForm.frameBorder.checked=false; else document.pdfForm.frameBorder.checked=true; if (layerDimension == "true") { if (window.name == "ActionPane") //Only for new UI document.pdfForm.pdfLayersSelect.disabled = false; document.pdfForm.pdfLayersCheck.checked = true; } else { if (window.name == "ActionPane") //Only for new UI document.pdfForm.pdfLayersSelect.disabled = true; document.pdfForm.pdfLayersCheck.checked = false; } if (getCookie(COOKIE_ADV_OPTS) != undefined) { setAdvancedOpts(getCookie(COOKIE_ADV_OPTS)); } else { if(document.pdfForm.wordWrap) document.pdfForm.wordWrap.checked = (wordwrap == 1); if(document.pdfForm.statusLine) document.pdfForm.statusLine.checked = (statusline == 1); if(document.pdfForm.PageSplitOnePageCheck) document.pdfForm.PageSplitOnePageCheck.checked = (splitViewOnePage == 1); if(document.pdfForm.PageXtabRows) setRadioValue(document.pdfForm.PageXtabRows,xtabPageRow); if(document.pdfForm.PageXtabNumRowsCheck) document.pdfForm.PageXtabNumRowsCheck.checked = (xtabRowBreakNumItems == 1); if(document.pdfForm.PageXtabNestGroupRowsCheck) document.pdfForm.PageXtabNestGroupRowsCheck.checked = (xtabRowBreakNestGroup == 1); if(document.pdfForm.PageXtabNumRows) document.pdfForm.PageXtabNumRows.value = xtabPageRowNum; if(document.pdfForm.PageXtabCols) setRadioValue(document.pdfForm.PageXtabCols,xtabPageCol); if(document.pdfForm.PageXtabNumColsCheck) document.pdfForm.PageXtabNumColsCheck.checked = (xtabColBreakNumItems == 1); if(document.pdfForm.PageXtabNestGroupColsCheck) document.pdfForm.PageXtabNestGroupColsCheck.checked = (xtabColBreakNestGroup == 1); if(document.pdfForm.PageXtabNumCols) document.pdfForm.PageXtabNumCols.value = xtabPageColNum; if(document.pdfForm.PageChartCategories) { if (allowChartPagination) setRadioValue(document.pdfForm.PageChartCategories,chartPage); else setRadioValue(document.pdfForm.PageChartCategories,1); } if(document.pdfForm.PageChartNumCategories) document.pdfForm.PageChartNumCategories.value = xtabPageColNum; if(document.pdfForm.PageNestedRows) setRadioValue(document.pdfForm.PageNestedRows,nestedPageRow); if(document.pdfForm.PageNestedNumRows) document.pdfForm.PageNestedNumRows.value = nestedPageRowNum; if(document.pdfForm.PageNestedCols) setRadioValue(document.pdfForm.PageNestedCols,nestedPageCol); if(document.pdfForm.PageNestedNumCols) document.pdfForm.PageNestedNumCols.value = nestedPageColNum; } } } function switchTab(event) { var eventM = new eventManager(event); eventM.cancelBubble(); var newTab = eventM.getSrc(); var newTabNo = newTab.getAttribute("number"); switchToTab(newTabNo); } function switchToTab(newTabNo) { if (currentTab != newTabNo) { var newTab = document.getElementById("tab" + newTabNo); var oldTab = document.getElementById("tab" + currentTab); oldTab.className = "ActionPaneTab"; newTab.className = "ActionPaneSelectedTab"; var oldTabBody = document.getElementById("tab_body" + currentTab); oldTabBody.className = "ActionPaneTabBody"; var newTabBody = document.getElementById("tab_body" + newTabNo); newTabBody.className = "ActionPaneSelectedTabBody"; currentTab = newTabNo; } } function changePaginationType(event) { var eventM = new eventManager(event); eventM.cancelBubble(); select = eventM.getSrc(); for (var i = 1; i <= 4; i++) { var theId = "PaginateOptionsContainer" + i; if ((select.selectedIndex + 1) == i) document.getElementById(theId).className = "ActionPaneSelectedTabBody"; else document.getElementById(theId).className = "ActionPaneTabBody"; } } function setDefaultSettings(){ //change values on screen if(displayFrameBorder == 1) document.pdfForm.frameBorder.checked=true; else document.pdfForm.frameBorder.checked=false; if(paperOrientation == 1) //landscape { document.pdfForm.radio_1[1].checked=true; } else { document.pdfForm.radio_1[0].checked=true; } document.pdfForm.pageFormats.value=paperSize; document.pdfForm.pageFormats.selectedIndex=paperSize; if (document.pdfForm.pdfLayersCheck) { if ( pdfLayersChecked == 1) { document.pdfForm.pdfLayersCheck.checked = true; if (window.name == "ActionPane") //Only for new UI document.pdfForm.pdfLayersSelect.disabled = false; } else { document.pdfForm.pdfLayersCheck.checked = false; document.pdfForm.pdfLayersSelect.selectedIndex = 0; if (window.name == "ActionPane") //Only for new UI document.pdfForm.pdfLayersSelect.disabled = true; } } if (document.pdfForm.wordWrap) { if (wordwrap == 1) document.pdfForm.wordWrap.checked = true; else document.pdfForm.wordWrap.checked = false; } if (document.pdfForm.statusLine) { if (statusline == 1) document.pdfForm.statusLine.checked = true; else document.pdfForm.statusLine.checked = false; } if (document.pdfForm.PageSplitOnePageCheck) { if (splitViewOnePage == 1) document.pdfForm.PageSplitOnePageCheck.checked = true; else document.pdfForm.PageSplitOnePageCheck.checked = false; } if (document.pdfForm.PageXtabRows) { setRadioValue(document.pdfForm.PageXtabRows,xtabPageRow); } if (document.pdfForm.PageXtabNumRowsCheck) { if (xtabRowBreakNumItems == 1) document.pdfForm.PageXtabNumRowsCheck.checked = true; else document.pdfForm.PageXtabNumRowsCheck.checked = false; } if (document.pdfForm.PageXtabNestGroupRowsCheck) { if (xtabRowBreakNestGroup == 1) document.pdfForm.PageXtabNestGroupRowsCheck.checked = true; else document.pdfForm.PageXtabNestGroupRowsCheck.checked = false; } if (document.pdfForm.PageXtabNumRows) { document.pdfForm.PageXtabNumRows.value = xtabPageRowNum; } if (document.pdfForm.PageXtabCols) { setRadioValue(document.pdfForm.PageXtabCols,xtabPageCol); } if (document.pdfForm.PageXtabNumColsCheck) { if (xtabColBreakNumItems == 1) document.pdfForm.PageXtabNumColsCheck.checked = true; else document.pdfForm.PageXtabNumColsCheck.checked =false; } if (document.pdfForm.PageXtabNestGroupColsCheck) { if (xtabColBreakNestGroup == 1) document.pdfForm.PageXtabNestGroupColsCheck.checked = true; else document.pdfForm.PageXtabNestGroupColsCheck.checked = false; } if (document.pdfForm.PageXtabNumCols) { document.pdfForm.PageXtabNumCols.value = xtabPageColNum; } if (document.pdfForm.PageChartCategories) { if (allowChartPagination) setRadioValue(document.pdfForm.PageChartCategories,chartPage); else setRadioValue(document.pdfForm.PageChartCategories,1); } if (document.pdfForm.PageChartNumCategories) { document.pdfForm.PageChartNumCategories.value = chartPageNum; } if (document.pdfForm.PageNestedRows) { setRadioValue(document.pdfForm.PageNestedRows,nestedPageRow); } if (document.pdfForm.PageNestedNumRows) { document.pdfForm.PageNestedNumRows.value = nestedPageRowNum; } if (document.pdfForm.PageNestedCols) { setRadioValue(document.pdfForm.PageNestedCols,nestedPageCol); } if (document.pdfForm.PageNestedNumCols) { document.pdfForm.PageNestedNumCols.value = nestedPageColNum; } return; } function submitReset() { setDefaultSettings(); } function submitExportIcon(winFX) { //get value from cookies var orientation = getCookie(COOKIE_PAGE_ORIENTATION); var pageFormat = getCookie(COOKIE_PAGE_SIZE); var frameBorder = getCookie(COOKIE_FRAME_BORDER); if(orientation == "portrait") orientation=0; //portrait else orientation=1; //landscape if(frameBorder == "true") frameBorder = 1; else frameBorder = 0; var command = 'GE:"' + orientation + frameBorder + pageFormat + '"'; if (getCookie(COOKIE_ADV_OPTS) != undefined) { command += "\t-1\t"; var opts = getCookie(COOKIE_ADV_OPTS); var pos = 0; var wordWrap = (opts.substr(pos++,1) == "1"); var statusBar = (opts.substr(pos++,1) == "1"); var splitOnePage = (opts.substr(pos++,1) == "1"); var xtabRows = parseInt(opts.substr(pos++,1)); var xtabRowsCustNum = (opts.substr(pos++,1) == "1"); var xtabRowsNestGroup = (opts.substr(pos++,1) == "1"); var numLen = opts.substr(pos + 1).indexOf(")"); var xtabNumRows = parseInt(opts.substr(pos + 1,numLen)); pos += numLen + 2; var xtabCols = parseInt(opts.substr(pos++,1)); var xtabColsCustNum = (opts.substr(pos++,1) == "1"); var xtabColsNestGroup = (opts.substr(pos++,1) == "1"); var numLen = opts.substr(pos + 1).indexOf(")"); var xtabNumCols = parseInt(opts.substr(pos + 1,numLen)); pos += numLen + 2; var chartPageType = parseInt(opts.substr(pos++,1)); var numLen = opts.substr(pos + 1).indexOf(")"); var chartNumItems = parseInt(opts.substr(pos + 1,numLen)); pos += numLen + 2; var nestedRows = parseInt(opts.substr(pos++,1)); var numLen = opts.substr(pos + 1).indexOf(")"); var nestedNumRows = parseInt(opts.substr(pos + 1,numLen)); pos += numLen + 2; var nestedCols = parseInt(opts.substr(pos++,1)); var numLen = opts.substr(pos + 1).indexOf(")"); var nestedNumCols = parseInt(opts.substr(pos + 1,numLen)); pos += numLen + 2; if (wordWrap == "false") wordWrap = 0; else wordWrap = 1; if (statusBar == "false") statusBar = 0; else statusBar = 1; if (splitOnePage == "false") splitOnePage = 0; else splitOnePage = 1; if (xtabRowsCustNum == "false") xtabRowsCustNum = 0; else xtabRowsCustNum = 1; if (xtabRowsNestGroup == "false") xtabRowsNestGroup = 0; else xtabRowsNestGroup = 1; if (xtabColsCustNum == "false") xtabColsCustNum = 0; else xtabColsCustNum = 1; if (xtabColsNestGroup == "false") xtabColsNestGroup = 0; else xtabColsNestGroup = 1; command += '"' + wordWrap + statusBar + splitOnePage + '"'; command += "\t" + '"' + xtabRows + xtabRowsCustNum + xtabRowsNestGroup + ":" + xtabNumRows + '"'; command += "\t" + '"' + xtabCols + xtabColsCustNum + xtabColsNestGroup + ":" + xtabNumCols + '"'; command += "\t" + '"' + chartPageType + "10:" + chartNumItems + '"'; command += "\t" + '"' + nestedRows + "10:" + nestedNumRows + '"'; command += "\t" + '"' + nestedCols + "10:" + nestedNumCols + '"'; } winFX.doit(command); return; } function verifyRowChecks(num) { if (!document.pdfForm.PageXtabNumRowsCheck.checked && !document.pdfForm.PageXtabNestGroupRowsCheck.checked) { if (num == 0) document.pdfForm.PageXtabNumRowsCheck.checked = true; else document.pdfForm.PageXtabNestGroupRowsCheck.checked = true; } } function verifyColChecks(num) { if (!document.pdfForm.PageXtabNumColsCheck.checked && !document.pdfForm.PageXtabNestGroupColsCheck.checked) { if (num == 0) document.pdfForm.PageXtabNumColsCheck.checked = true; else document.pdfForm.PageXtabNestGroupColsCheck.checked = true; } } function submitExportDialog() { var command = Apply(command, false); command = 'GE:' + command; //set targets var target = eval(pdfTarget); var fh = target.document.fhidden; var gparent = target.getGrandParentofFXWindow(); if (gparent.name == "undefined" || gparent.name == "") gparent.name = "PPESTargetFrame"; fh.target = gparent.name; FTok=false; if ( !target._fhchanged ) { target._fhchanged = true; target._fhtarget = fh.target; target._fhaction = fh.action; target._fhRA = fh.RA.value; } // Clear existing MIME type fh.action = fh.action.replace(/\?MIME=.CSV|\?MIME=.XLSX|\?MIME=.XLS|\?MIME=.PDF/gi, ''); fh.action += "?MIME=.PDF"; target.doit(command); return; } function submitApply() { var command = Apply(command, true); command = 'GA:' + command; var target = eval(pdfTarget); target.doit(command); } function setRadioValue(radio, value) { radio[0].checked = (value == 0); radio[1].checked = (value == 1); radio[2].checked = (value == 2); } function getRadioValue(radio) { var value = 0; if (radio[1].checked) value = 1; else if (radio[2].checked) value = 2; return value; } function Apply(command, setCookies) { var cookieSecure = getCookieSecure(); var orientation = document.pdfForm.radio_1[0].checked; if(orientation != undefined) { if(orientation == true) { if (setCookies) setCookie(COOKIE_PAGE_ORIENTATION,"portrait",undefined,cookieSecure); orientation = 0; } else { if (setCookies) setCookie(COOKIE_PAGE_ORIENTATION,"landscape",undefined,cookieSecure); orientation = 1; } } var pageFormat = document.pdfForm.pageFormats.value; if(pageFormat == null) pageFormat = document.pdfForm.pageFormats.selectedIndex; if (setCookies) setCookie(COOKIE_PAGE_SIZE,pageFormat,undefined,cookieSecure); var frameBorder = document.pdfForm.frameBorder.checked; if (setCookies) setCookie(COOKIE_FRAME_BORDER,frameBorder,undefined,cookieSecure); if(frameBorder) frameBorder = 1; else frameBorder = 0; if (setCookies) if (document.pdfForm.pdfLayersCheck.checked) { setCookie(COOKIE_LAYER_DIMENSION,"true",undefined,cookieSecure); } else { setCookie(COOKIE_LAYER_DIMENSION,"false",undefined,cookieSecure); } var command = '"'+ orientation + frameBorder + pageFormat +'"'; if (document.pdfForm.pdfLayersCheck.checked) command += "\t" + document.pdfForm.pdfLayersSelect.selectedIndex; else command += "\t-1"; if (document.pdfForm.PageXtabRows) { //Enhanced UI, we have more options to send if (setCookies) setCookie(COOKIE_ADV_OPTS,getAdvanceOpts(),undefined,cookieSecure); var wordWrap = document.pdfForm.wordWrap.checked; if (wordWrap) wordWrap = 1; else wordWrap = 0; var statusBar = document.pdfForm.statusLine.checked; if (statusBar) statusBar = 1; else statusBar = 0; var splitViewOnePage = document.pdfForm.PageSplitOnePageCheck.checked; if (splitViewOnePage) splitViewOnePage = 1; else splitViewOnePage = 0; command += "\t" + '"' + wordWrap + statusBar + splitViewOnePage + '"'; var xtabRowPaginationType = getRadioValue(document.pdfForm.PageXtabRows); var custNum = document.pdfForm.PageXtabNumRowsCheck.checked; if (custNum) custNum = 1; else custNum = 0; var nestGroup = document.pdfForm.PageXtabNestGroupRowsCheck.checked; if (nestGroup) nestGroup = 1; else nestGroup = 0; var xtabNumRowItems = document.pdfForm.PageXtabNumRows.value; command += "\t" + '"' + xtabRowPaginationType + custNum + nestGroup + ":" + xtabNumRowItems + '"'; var xtabColPaginationType = getRadioValue(document.pdfForm.PageXtabCols); custNum = document.pdfForm.PageXtabNumColsCheck.checked; if (custNum) custNum = 1; else custNum = 0; nestGroup = document.pdfForm.PageXtabNestGroupColsCheck.checked; if (nestGroup) nestGroup = 1; else nestGroup = 0; var xtabNumColItems = document.pdfForm.PageXtabNumCols.value; command += "\t" + '"' + xtabColPaginationType + custNum + nestGroup + ":" + xtabNumColItems + '"'; var ChartPaginationType = getRadioValue(document.pdfForm.PageChartCategories); var chartNumItems = document.pdfForm.PageChartNumCategories.value; command += "\t" + '"' + ChartPaginationType + "10:" + chartNumItems + '"'; var NestedRowPaginationType = getRadioValue(document.pdfForm.PageNestedRows); var NestedNumRows = document.pdfForm.PageNestedNumRows.value; command += "\t" + '"' + NestedRowPaginationType + "10:" + NestedNumRows + '"'; var NestedColPaginationType = getRadioValue(document.pdfForm.PageNestedCols); var NestedNumCols = document.pdfForm.PageNestedNumCols.value; command += "\t" + '"' + NestedColPaginationType + "10:" + NestedNumCols + '"'; } return command; } function onPdfLayersCheckClick() { var select = document.getElementById("pdfLayersSelect"); select.disabled = !(document.getElementById("pdfLayersCheck").checked); } function getCookieSecure() { if (window.name == "ActionPane") { //Only for new UI return topparent.getGlobal("cookieSecure"); } else { if(cookieSecure == 1) { return true; } else { return false; } } }