diff --git a/navalplanner-webapp/src/main/java/org/navalplanner/web/error/PageForErrorOnEvent.java b/navalplanner-webapp/src/main/java/org/navalplanner/web/error/PageForErrorOnEvent.java new file mode 100644 index 000000000..91c042e33 --- /dev/null +++ b/navalplanner-webapp/src/main/java/org/navalplanner/web/error/PageForErrorOnEvent.java @@ -0,0 +1,48 @@ +package org.navalplanner.web.error; + +import javax.servlet.http.HttpServletRequest; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.zkoss.zk.ui.Component; +import org.zkoss.zk.ui.Executions; +import org.zkoss.zk.ui.util.GenericForwardComposer; + +public class PageForErrorOnEvent extends GenericForwardComposer { + + private static final Log LOG = LogFactory.getLog(PageForErrorOnEvent.class); + + private Component modalWindow; + + @Override + public void doAfterCompose(Component comp) throws Exception { + super.doAfterCompose(comp); + logError(); + modalWindow = comp; + + } + + private void logError() { + Throwable exception = (Throwable) Executions.getCurrent().getAttribute( + "javax.servlet.error.exception"); + String errorMessage = (String) Executions.getCurrent().getAttribute( + "javax.servlet.error.message"); + LOG.error(errorMessage, exception); + } + + public void onClick$continueWorking() { + modalWindow.detach(); + } + + public void onClick$reload() { + Executions.sendRedirect(null); + } + + public void onClick$quitSession() { + HttpServletRequest nativeRequest = (HttpServletRequest) Executions + .getCurrent().getNativeRequest(); + nativeRequest.getSession().invalidate(); + Executions.sendRedirect("/"); + } + +} diff --git a/navalplanner-webapp/src/main/webapp/WEB-INF/web.xml b/navalplanner-webapp/src/main/webapp/WEB-INF/web.xml index 65d2b36ba..2bcaec1ac 100644 --- a/navalplanner-webapp/src/main/webapp/WEB-INF/web.xml +++ b/navalplanner-webapp/src/main/webapp/WEB-INF/web.xml @@ -1,91 +1,103 @@ - helloworld + helloworld - - - contextConfigLocation - classpath*:/navalplanner-business-spring-config.xml classpath:/navalplanner-webapp-spring-config.xml classpath*:/navalplanner-override-spring-config.xml - + + + contextConfigLocation + classpath*:/navalplanner-business-spring-config.xml classpath:/navalplanner-webapp-spring-config.xml classpath*:/navalplanner-override-spring-config.xml + - - - - - dspLoader - org.zkoss.web.servlet.dsp.InterpreterServlet - - - dspLoader - *.dsp - - + + + + + dspLoader + org.zkoss.web.servlet.dsp.InterpreterServlet + + + dspLoader + *.dsp + + - - - - Used to cleanup when a session is destroyed - ZK Session Cleaner - org.zkoss.zk.ui.http.HttpSessionListener - - - + + + + Used to cleanup when a session is destroyed + ZK Session Cleaner + org.zkoss.zk.ui.http.HttpSessionListener + - - - org.springframework.web.context.ContextLoaderListener - + - - org.springframework.web.context.request.RequestContextListener - - - - - - ZK loader for ZUML pages - zkLoader - org.zkoss.zk.ui.http.DHtmlLayoutServlet - - - update-uri - /zkau - - 1 - - - zkLoader - *.zul - - - zkLoader - *.zhtml - - - The asynchronous update engine for ZK - auEngine - org.zkoss.zk.au.http.DHtmlUpdateServlet - - - auEngine - /zkau/* - - + + org.springframework.web.context.ContextLoaderListener + + + + + org.springframework.web.context.request.RequestContextListener + + + + + + ZK loader for ZUML pages + zkLoader + org.zkoss.zk.ui.http.DHtmlLayoutServlet + + + update-uri + /zkau + + 1 + + + zkLoader + *.zul + + + zkLoader + *.zhtml + + + The asynchronous update engine for ZK + auEngine + org.zkoss.zk.au.http.DHtmlUpdateServlet + + + auEngine + /zkau/* + + + + + + + + /planner/main.zul + + + + + java.lang.Throwable + /common/error.zul + - - /planner/main.zul - diff --git a/navalplanner-webapp/src/main/webapp/WEB-INF/zk.xml b/navalplanner-webapp/src/main/webapp/WEB-INF/zk.xml index 7bf738822..d0ed26c16 100644 --- a/navalplanner-webapp/src/main/webapp/WEB-INF/zk.xml +++ b/navalplanner-webapp/src/main/webapp/WEB-INF/zk.xml @@ -1,5 +1,11 @@ - - - + + + + + java.lang.Throwable + + /common/event_error.zul + + diff --git a/navalplanner-webapp/src/main/webapp/common/error.jsp b/navalplanner-webapp/src/main/webapp/common/error.jsp new file mode 100644 index 000000000..a3ba92060 --- /dev/null +++ b/navalplanner-webapp/src/main/webapp/common/error.jsp @@ -0,0 +1,12 @@ +<%@ page language="java" contentType="text/html; charset=UTF-8" + pageEncoding="UTF-8"%> + + + + +Insert title here + + + + + \ No newline at end of file diff --git a/navalplanner-webapp/src/main/webapp/common/error.zul b/navalplanner-webapp/src/main/webapp/common/error.zul new file mode 100644 index 000000000..f2dec80ff --- /dev/null +++ b/navalplanner-webapp/src/main/webapp/common/error.zul @@ -0,0 +1,14 @@ + + + Erro ${requestScope['javax.servlet.error.status_code']} + + + Prodúxose un erro na execución: + "${requestScope['javax.servlet.error.message']}". O erro + gardouse e procurarase arreglalo no menor tempo posible. + + + + + \ No newline at end of file diff --git a/navalplanner-webapp/src/main/webapp/common/event_error.zul b/navalplanner-webapp/src/main/webapp/common/event_error.zul new file mode 100644 index 000000000..2e9b46a5f --- /dev/null +++ b/navalplanner-webapp/src/main/webapp/common/event_error.zul @@ -0,0 +1,14 @@ + + + Prodúxose un erro na execución: + "${requestScope['javax.servlet.error.message']}". O erro + gardouse e procurarase arreglalo no menor tempo posible. + + + + +