From b202c83423e998a30dee92afec2b0810b671b4da Mon Sep 17 00:00:00 2001 From: rpiazzi Date: Fri, 23 Sep 2011 15:07:35 +0000 Subject: Comprehensive changes due to reorganization of user interface. JavaScripts added for styling reasons, then added the same layout as with the start page, then added different layout handling for the cases of an error happened within the IFrame (e.g. when online CCS is called) or outside. Also added the possibility to visualize the page differently when the whole application is called from within an IFrame of an external application (see also other jsp's). git-svn-id: https://joinup.ec.europa.eu/svn/pdf-as/trunk@819 7b5415b0-85f9-ee4d-85bd-d5d0c3b42d1c --- pdf-as-web/src/main/webapp/jsp/error.jsp | 396 ++++++++++++++++++++++++------- 1 file changed, 316 insertions(+), 80 deletions(-) (limited to 'pdf-as-web/src/main/webapp/jsp/error.jsp') diff --git a/pdf-as-web/src/main/webapp/jsp/error.jsp b/pdf-as-web/src/main/webapp/jsp/error.jsp index fc7ff1b..b70b169 100644 --- a/pdf-as-web/src/main/webapp/jsp/error.jsp +++ b/pdf-as-web/src/main/webapp/jsp/error.jsp @@ -9,101 +9,337 @@ <%@ page import="org.apache.commons.httpclient.NameValuePair" %> <%@ page import="at.gv.egiz.pdfas.web.helper.SignServletHelper" %> <%@ page import="org.apache.commons.lang.StringEscapeUtils" %> +<%@page import="at.gv.egiz.pdfas.web.FormFields"%> <%@ page import="java.io.*" %> +<%@ page import="at.gv.egiz.pdfas.web.i18n.LocaleParamFilter" %> +<%@ page import="java.util.Locale" %> +<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%> + <%@ include file="language.jsp" %> +<% + + +%> + + <% + + //Check if application is started within an iframe from an extern application + boolean startedFromIFrame = false; + String extern = (String)session.getAttribute("extern"); + if (extern!=null) { + if (extern.equals("yes")) { + startedFromIFrame = true; + } + } + // + + String language = (String)session.getAttribute(SessionAttributes.LANGUAGE); + String height = (String)session.getAttribute(SignServlet.HEIGHT_SIGN_DIV); + + boolean german = true; + + if (language!=null) { + if (language.equals("de")) {%> + + <% } else { + german = false; %> + + <% } + } + else { %> + + <% } %> + <fmt:message key="error.title"/> - - - + + <% + //Check if error happened within IFrame (e.g. if Online-BKU was called) + String iframe = (String)session.getAttribute(SignServlet.ERROR_WITHIN_IFRAME); + + boolean withiniframe = false; + if (iframe!=null) { + if (iframe.equals("yes")) { + withiniframe = true; + } + } + %> + + <% + //If not within IFrame and the whole application also was not started within an IFrame + //we have to set the buergerkarte page as template + if ((!withiniframe) && (!startedFromIFrame)) { + if (german) { %> + + <% } else { %> + + <% } %> + <% } %> + + + + + + + <% + //If the whole application started from an IFrame there could be an external stylesheet + if (!startedFromIFrame) { %> + + + <% } else { %> + + <% } %> + + + <% - PdfAsException pe; - if (exception != null && exception instanceof PdfAsException) - { - pe = (PdfAsException)exception; - SignServlet.prepareDispatchToErrorPage(pe, request); - } else { - pe = (PdfAsException)request.getAttribute("PresentableException"); - } + String redirect = null; + PdfAsException pe=null; + boolean paramInvok = false; + boolean rb = false; + boolean isExternalInvocation = false; + String cause=""; + String error=""; + + if (exception != null && exception instanceof PdfAsException) + { + pe = (PdfAsException)exception; + SignServlet.prepareDispatchToErrorPage(pe, request); + } else { + pe = (PdfAsException)request.getAttribute("PresentableException"); + } - String error = request.getParameter("error"); - boolean paramInvok = false; - if (error == null) { - error = (request.getAttribute("error") == null ? "" : request.getAttribute("error").toString()); - } else { - paramInvok = true; - } - String cause = request.getParameter("cause"); - if (cause == null) { - cause = (request.getAttribute("cause") == null ? "" : request.getAttribute("cause").toString()); - } else { - paramInvok = true; - } - boolean rb = Boolean.TRUE.equals((Boolean) request.getAttribute("resourcebundle")); - Object sessionInfo = session.getAttribute(SessionAttributes.ATTRIBUTE_SESSION_INFORMATION); + error = (String)request.getParameter("error"); + if (error == null) { + error = (request.getAttribute("error") == null ? "" : request.getAttribute("error").toString()); + } else { + paramInvok = true; + } + + cause = (String)request.getParameter("cause"); + if (cause == null) { + cause = (request.getAttribute("cause") == null ? "" : request.getAttribute("cause").toString()); + } else { + paramInvok = true; + } + + rb = Boolean.TRUE.equals((Boolean) request.getAttribute("resourcebundle")); + Object sessionInfo = session.getAttribute(SessionAttributes.ATTRIBUTE_SESSION_INFORMATION); + + + if (sessionInfo != null) { + if (sessionInfo instanceof SignSessionInformation) { + SignSessionInformation si = (SignSessionInformation) sessionInfo; + isExternalInvocation = (si != null && si.exappinf != null); + if (isExternalInvocation) { + String urlParams = EncodingUtil.formUrlEncode(new NameValuePair[] {new NameValuePair("error", error), new NameValuePair("cause", cause) },"ISO8859_1"); + if (si.exappinf.invoke_error_url == null) { + // prevent circular redirect + si.exappinf = null; + String redirectUrl = response.encodeRedirectURL(request.getContextPath() + "/jsp/error.jsp" +"?" + urlParams); + session.setAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL,redirectUrl); + } else { + String errorUrl = null; + if(si.exappinf.invoke_error_url.contains("?")) { + errorUrl = si.exappinf.invoke_error_url + "&" + urlParams; + } else { + errorUrl = si.exappinf.invoke_error_url + "?" + urlParams; + } + session.setAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL,errorUrl); + } + String redirectHelper =response.encodeRedirectURL(request.getContextPath() +"/jsp/redirect_to_parent.jsp"); + response.sendRedirect(redirectHelper); + } + } + } + - boolean isExternalInvocation = false; - if (sessionInfo != null) { - if (sessionInfo instanceof SignSessionInformation) { - SignSessionInformation si = (SignSessionInformation) sessionInfo; - isExternalInvocation = (si != null && si.exappinf != null); - if (isExternalInvocation) { - String urlParams = EncodingUtil.formUrlEncode(new NameValuePair[] { new NameValuePair("error", error), new NameValuePair("cause", cause) }, "ISO8859_1"); - if (si.exappinf.invoke_error_url == null) { - // prevent circular redirect - si.exappinf = null; - String redirectUrl = response.encodeRedirectURL(request.getContextPath() + "/jsp/error.jsp" + "?" + urlParams); - session.setAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL, redirectUrl); - } else { - String errorUrl = si.exappinf.invoke_error_url + "?" + urlParams; - session.setAttribute(SessionAttributes.PARENT_WEBAPP_REDIRECT_URL, errorUrl); - } - String redirectHelper = response.encodeRedirectURL(request.getContextPath() + "/jsp/redirect_to_parent.jsp"); - SignServletHelper.disableBrowserCacheForResponse(response); - response.sendRedirect(redirectHelper); - } - } - } + boolean testMode = request.getContextPath().startsWith("/test-"); -%> - - -

-

-
- <% if (rb) { %> - - <% } else { out.write(StringEscapeUtils.escapeHtml(error)); } %> -
-
: - <% if (rb) { %> - - <% } else { out.write(StringEscapeUtils.escapeHtml(cause)); } %> -
- <% if (!isExternalInvocation && !paramInvok) { %> -
- - <% } // end if %> -
-		<%
-		  if (pe != null) {
-		    StringWriter sw = new StringWriter();
-		    PrintWriter pw = new PrintWriter(sw);
-		    pe.printStackTrace(pw);
-		    sw.close();
-		    pw.close();
-		    out.print(StringEscapeUtils.escapeHtml(sw.toString()));
-		  }
+	%>
+		<% 
+		//If application not started within an iframe
+		if (!startedFromIFrame) { %>
+			<% 
+			//If error didn't happen within IFrame (e.g. when online bku is called)
+			//The whole site has to be shown
+			if (!withiniframe) {  %>
+				
+				

+ <% + if (testMode) { + %> + + <% } else { %> + + <% } // end if %> +

+ +
+ +
+
+
+ +
+
+ +
+ Handy +
+ +
+ " alt="Signatur mit Handy" disabled="disabled"/> +
+
+
+
+ + + <%} + //Just the error decription has to be shown + else { %> + +
+ <% if (rb) { %> + + <% } else { out.write(StringEscapeUtils.escapeHtml(error)); } %> +
+
+
: + <% if (rb) { %> + + <% } else { out.write(StringEscapeUtils.escapeHtml(cause)); } %> +
+
+ <% if (!isExternalInvocation && !paramInvok) { %> + + <% } // end if %> +
+					<%
+					 if (pe != null) {
+						StringWriter sw = new StringWriter();
+						PrintWriter pw = new PrintWriter(sw);
+						pe.printStackTrace(pw);
+						sw.close();
+						pw.close();
+						out.print(StringEscapeUtils.escapeHtml(sw.toString()));
+					 }
+					%>
+					
+ + + <% } + } + //If application called from an IFrame the background is different + else { %> + +

+ <% + if (testMode) { + %> + + <% } else { %> + + <% } // end if %> +

+
+ +
+
+ +
+ Handy +
+ +
+ " alt="Signatur mit Handy" disabled="disabled"/> +
+
+
+
+ + <% } + + session.setAttribute(SignServlet.SUBMITFORM_SIGNATURE_MODE_KEY, null); + session.setAttribute(SignServlet.SUBMITFORM_SOURCE_KEY, null); + session.setAttribute(SignServlet.SUBMITFORM_SIGNATURE_TYPE_KEY, null); + session.setAttribute(SignServlet.SUBMITFORM_PDFA_KEY, null); + session.setAttribute(SignServlet.SUBMITFORM_NOTE_KEY, null); + session.setAttribute(SignServlet.SUBMITFORM_FREETEXT_KEY, null); + session.setAttribute(SignServlet.SUBMITFORM_SIGNATURE_DEVICE_KEY, null); + session.setAttribute(SignServlet.SUBMITFORM_FILE_KEY, null); + session.setAttribute(SignServlet.SUBMITFORM_FILENAME_KEY, null); + session.setAttribute(SessionAttributes.ATTRIBUTE_SESSION_INFORMATION, null); + session.setAttribute(SignServlet.SUBMITFORM_PREVIEW, null); + session.setAttribute(SignServlet.ERROR_WITHIN_IFRAME, null); %> -
- - -- cgit v1.2.3