<%-- * Licensed Materials - Property of IBM * * 5724-U18 * * (C) COPYRIGHT IBM CORP. 2006,2014 All Rights Reserved. * * US Government Users Restricted Rights - Use, duplication or * disclosure restricted by GSA ADP Schedule Contract with * IBM Corp. --%> <%@ page contentType="text/html;charset=UTF-8" session="true" import="java.util.Vector,java.util.*,psdi.webclient.system.runtime.WebClientRuntime, psdi.webclient.system.runtime.WebClientConstants,psdi.util.MXSession,psdi.server.MXServer,java.util.StringTokenizer, com.ibm.tivoli.maximo.report.birt.logging.ReportLogger,com.ibm.tivoli.maximo.report.birt.logging.ReportLoggerFactory,psdi.util.logging.MXLoggerFactory,psdi.util.logging.MXLogger"%> <% MXLogger myLogger = MXLoggerFactory.getLogger("maximo.report.directprint"); response.setHeader("Cache-Control","no-cache"); //HTTP 1.1 response.setHeader("Pragma","no-cache"); //HTTP 1.0 response.setDateHeader ("Expires", 0); // Proxy request MXSession mxsession= (MXSession)request.getSession().getAttribute("MXSession"); if (!mxsession.isConnected()) { //Do something which will show error on the page like redirect to login String url = WebClientRuntime.getMaximoRequestContextURL(request)+"/ui/login"; response.sendRedirect(url); return; } String ibmdirectprintkey=(String) request.getParameter("ibmdirectprintkey"); myLogger.debug("printjobspooler.jsp ibmdirectprintkey="+ibmdirectprintkey+" SessionId="+request.getSession().getId()); if(ibmdirectprintkey==null) ibmdirectprintkey=""; String doclinkSessionParam= "doclinks"+ibmdirectprintkey; Vector printabledocs = (Vector)session.getAttribute("doclinks"+ibmdirectprintkey); myLogger.debug("printjobspooler.jsp printabledocs"+printabledocs+" SessionId="+request.getSession().getId()); Hashtable msDocs = new Hashtable(); String message = (String)session.getAttribute("printmessage"+ibmdirectprintkey); String errmessage = (String)session.getAttribute("printerrmsg"+ibmdirectprintkey); String rptype = (String)session.getAttribute("reportprinttype"+ibmdirectprintkey); String twopasspdf = (String)session.getAttribute("twopasspdf"+ibmdirectprintkey); String printdebug = (String)session.getAttribute("printdebug"+ibmdirectprintkey); String printwait = (String)session.getAttribute("printwait"+ibmdirectprintkey); String securedattachment= (String)session.getAttribute("securedattachment"+ibmdirectprintkey); String waitAfterMsDoc = (String)session.getAttribute("waitAfterMsDoc"+ibmdirectprintkey); //String baseurl=(String)session.getAttribute("baseurl"); String baseUrl=(String) request.getParameter("baseUrl"); if(baseUrl==null) baseUrl=""; else { String baseUrlDefault=WebClientRuntime.getMaximoBaseURL(request); if(!baseUrl.equalsIgnoreCase(baseUrlDefault)) { String baseUrlNoPort=baseUrl.replace(":80",""); baseUrlNoPort=baseUrlNoPort.replace(":443",""); if(!baseUrlNoPort.equalsIgnoreCase(baseUrlDefault)) { boolean needBaseUrls=false; String baseUrls=MXServer.getMXServer().getProperty("mxe.report.birt.proxyurlredirect"); if(baseUrls==null || baseUrls.isEmpty()) needBaseUrls=true; else { boolean foundMatch=false; StringTokenizer st=new StringTokenizer(baseUrls,","); while(st.hasMoreTokens()) { String nextUrl=st.nextToken().trim(); if(baseUrl.equalsIgnoreCase(nextUrl)) { foundMatch=true; break; } } if(!foundMatch) needBaseUrls=true; } if(needBaseUrls) { ReportLogger reportLogger = ReportLoggerFactory.getLogger("maximo.report.birt"); String errmsg="A proxy server has been detected which modifies the url. "+ "Contact the system administrator to add "+baseUrl+" to the property mxe.report.birt.proxyurlredirect. "+ "You can have multiple values separated by commas."; reportLogger.error(errmsg); response.getWriter().write(errmsg); return; } } } } String tokenurlPart= (String)session.getAttribute("tokenurlPart"+ibmdirectprintkey); String tokenurl= baseUrl+request.getContextPath()+tokenurlPart; //session.removeAttribute("doclinks"); //session.removeAttribute("printmessage"+ibmdirectprintkey); //session.removeAttribute("reporttype"+ibmdirectprintkey); //session.removeAttribute("printerrmsg"+ibmdirectprintkey); //session.removeAttribute("twopasspdf"+ibmdirectprintkey); //session.removeAttribute("printdebug"+ibmdirectprintkey); //session.removeAttribute("printwait"+ibmdirectprintkey); //session.removeAttribute("securedattachment"+ibmdirectprintkey); //session.removeAttribute("waitAfterMsDoc"+ibmdirectprintkey); String appletBase = "../applets"; boolean activeXDocs = false; int noOfIframes=5; //System.out.println ("File Size "+ printabledocs.size()); String maximourl = ""; String proxyHost = WebClientRuntime.getWebClientProperty("proxy_hostname"); String proxyPort = WebClientRuntime.getWebClientProperty("proxy_port"); if (proxyHost != null && ! proxyHost.trim().equals("") ) { if (proxyPort != null) { if (proxyPort.trim().equals("443") || proxyPort.trim().equals("80")|| proxyPort.trim().equals("")) proxyPort = ""; else proxyPort = ":"+proxyPort; } maximourl = request.getScheme()+"://"+proxyHost.trim()+proxyPort.trim(); } //System.out.println ("URL "+ maximourl); int paramCount = printabledocs.size(); %>
<%=message%>







" height="0" width="0" id="SilentPrint"> "> <% int docCount = -1; for (int i=0;i < paramCount;i++) { String tokenNeeded=""; String doc = (String)printabledocs.elementAt(i); if(doc.indexOf("/reportattacheddocsservlet?") > -1) tokenNeeded="_tokenNeeded"; /* following code is not used. It might hurt in some cases. if (doc.startsWith("\\\\")) { doc = "file:"+doc.replaceAll("\\\\", "/"); doc = doc.replace("//", "/"); } else if (! doc.startsWith("http")) { doc = baseUrl + doc; } */ if(!(doc.toUpperCase().endsWith(".DOC") || doc.toUpperCase().endsWith(".XLS") || doc.toUpperCase().endsWith(".PPT") || doc.toUpperCase().endsWith(".DOCX") || doc.toUpperCase().endsWith(".XLSX") || doc.toUpperCase().endsWith(".PPTX") )) { docCount += 1; if (doc.toUpperCase().indexOf(".PDF") > -1) { if (twopasspdf.equals("1")) { if(doc.indexOf("/servlet/secureprovider") < 0) doc =request.getContextPath()+"/reportattacheddocsservlet?doaction=3&url="+doc; } else { if(doc.indexOf("/servlet/secureprovider") < 0 ) doc =request.getContextPath()+"/servlet/SilentPrintServlet?doaction=1&url="+doc; } } //System.out.println("File "+ doc); %> <% } else if (rptype != null && rptype.equals("PAD")) { activeXDocs = true; %> <% } } %> "> "> <% docCount = -1; for (int i=0;i < paramCount;i++) { String tokenNeeded=""; String doc = (String)printabledocs.elementAt(i); if(doc.indexOf("/reportattacheddocsservlet?") > -1) tokenNeeded="_tokenNeeded"; /* following code is not used. It might hurt in some cases. if (doc.startsWith("\\\\")) { doc = "file:"+doc.replaceAll("\\\\", "/"); doc = doc.replace("//", "/"); } else if (! doc.startsWith("http")) { doc = baseUrl + doc; } */ if(!(doc.toUpperCase().endsWith(".DOC") || doc.toUpperCase().endsWith(".XLS") || doc.toUpperCase().endsWith(".PPT") || doc.toUpperCase().endsWith(".DOCX") || doc.toUpperCase().endsWith(".XLSX") || doc.toUpperCase().endsWith(".PPTX") )) { docCount += 1; if (doc.toUpperCase().indexOf(".PDF") > -1) { if (twopasspdf.equals("1")) { if(doc.indexOf("/servlet/secureprovider") < 0) doc =request.getContextPath()+"/reportattacheddocsservlet?doaction=3&url="+doc; } else { if(doc.indexOf("/servlet/secureprovider") < 0 ) doc =request.getContextPath()+"/servlet/SilentPrintServlet?doaction=1&url="+doc; } } //System.out.println("File "+ doc); %> <% } else if (rptype != null && rptype.equals("PAD")) { activeXDocs = true; %> <% } } %> <% for (int il=0;il < paramCount;il++) { String doc1 = (String)printabledocs.elementAt(il); if (doc1.startsWith("\\\\")) { doc1 = "file:"+doc1.replaceAll("\\\\", "/"); doc1 = doc1.replace("//", "/"); } /* else if (! doc1.startsWith("http")) { doc1 = baseUrl + doc1; } */ if(activeXDocs && (doc1.toUpperCase().endsWith("DOC") || doc1.toUpperCase().endsWith("XLS") || doc1.toUpperCase().endsWith("PPT") || doc1.toUpperCase().endsWith("DOCX") || doc1.toUpperCase().endsWith("XLSX") || doc1.toUpperCase().endsWith("PPTX") ) && (!msDocs.containsKey(doc1))) { msDocs.put(doc1,Integer.toString(il)); } } %> <% for (int pdfLoop=1;pdfLoop <= noOfIframes;pdfLoop++) { %> <% } %> <% if (activeXDocs) { %> <% } // endifactivex %>