Author: tchemit Date: 2012-04-03 14:15:20 +0200 (Tue, 03 Apr 2012) New Revision: 477 Url: http://forge.codelutin.com/repositories/revision/echobase/477 Log: fixes #1077: Am?\195?\169liorer le message d'erreur lors d'un import ?\195?\169chou?\195?\169 Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/csvImportResult.jsp Modified: trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java =================================================================== --- trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java 2012-04-03 11:37:06 UTC (rev 476) +++ trunk/echobase-ui/src/main/java/fr/ifremer/echobase/ui/actions/dbeditor/ImportTable.java 2012-04-03 12:15:20 UTC (rev 477) @@ -23,10 +23,10 @@ */ package fr.ifremer.echobase.ui.actions.dbeditor; -import com.google.common.base.Throwables; import com.opensymphony.xwork2.interceptor.annotations.InputConfig; import fr.ifremer.echobase.csv.CsvImportResult; import fr.ifremer.echobase.services.ImportService; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -63,6 +63,8 @@ /** CSV import result */ private CsvImportResult result; + private Exception error; + public CsvImportResult getResult() { return result; } @@ -100,6 +102,20 @@ this.createIfNotFound = createIfNotFound; } + public Exception getError() { + return error; + } + + public String getErrorStack() { + + String errorStack = null; + if (error != null) { + + errorStack = ExceptionUtils.getStackTrace(error); + } + return errorStack; + } + @Override public String input() throws Exception { load(); @@ -108,7 +124,6 @@ @Override @InputConfig(methodName = "input") - // to call input method on validation error to initialize dbeditor page public String execute() throws Exception { ImportService importService = newService(ImportService.class); @@ -121,11 +136,17 @@ getEchoBaseSession().getEchoBaseUser()); } catch (Exception eee) { - String message = "Failed to import datas : "; - log.error(message, eee); - addActionError(message + Throwables.getRootCause(eee).getMessage()); - return ERROR; + result = CsvImportResult.newResult(entityType, + importFileFileName, + false); + error = eee; + + addActionError(_("echobase.info.import.failed")); + + if (log.isErrorEnabled()) { + log.error("Error while import ", eee); + } } return SUCCESS; Modified: trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml =================================================================== --- trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2012-04-03 11:37:06 UTC (rev 476) +++ trunk/echobase-ui/src/main/resources/config/struts-dbeditor.xml 2012-04-03 12:15:20 UTC (rev 477) @@ -78,7 +78,7 @@ <interceptor-ref name="prepareParamsStackLoggued"/> <result>/WEB-INF/jsp/dbeditor/csvImportResult.jsp</result> <result name="input">/WEB-INF/jsp/dbeditor/dbeditor.jsp</result> - <result name="error">/WEB-INF/jsp/dbeditor/dbeditor.jsp</result> + <!--<result name="error">/WEB-INF/jsp/dbeditor/dbeditor.jsp</result>--> </action> <!-- Export a selected entity type to a csv file --> Modified: trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/csvImportResult.jsp =================================================================== --- trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/csvImportResult.jsp 2012-04-03 11:37:06 UTC (rev 476) +++ trunk/echobase-ui/src/main/webapp/WEB-INF/jsp/dbeditor/csvImportResult.jsp 2012-04-03 12:15:20 UTC (rev 477) @@ -25,24 +25,40 @@ <%@ taglib prefix="s" uri="/struts-tags" %> <title><s:text name="echobase.title.dbEditor"/></title> -<h2> - <s:text name="echobase.info.dbeditor.propertyDiffsResult"/> -</h2> +<fieldset> + <legend><s:text name="echobase.info.dbeditor.propertyDiffsResult"/></legend> -<fieldset> <s:label key="result.entityType" label="%{getText('echobase.common.entityType')}"/> <s:label key="result.importFileName" label="%{getText('echobase.label.importFile')}"/> - <s:label key="result.numberCreated" - label="%{getText('echobase.label.numberOfCreatedEntities')}"/> + <s:if test="hasActionErrors()"> + <s:label key="error.message" labelSeparator="" + label="%{getText('echobase.common.importError')}"/> + <%--div class="cleanBoth"> + <s:text name="echobase.common.importError"/> + <strong> + <s:property value="error.message"/> + </strong> + </div--%> + <pre id="errorStack"> + <code> + <s:property value="errorStack"/> + </code> + </pre> + </s:if> + <s:else> - <s:label key="result.numberUpdated" - label="%{getText('echobase.label.numberOfUpdatedEntities')}"/> + <s:label key="result.numberCreated" + label="%{getText('echobase.label.numberOfCreatedEntities')}"/> + + <s:label key="result.numberUpdated" + label="%{getText('echobase.label.numberOfUpdatedEntities')}"/> + </s:else> + </fieldset> - <s:a namespace="/dbeditor" action="dbeditor"> <s:param name="entityType" value="%{result.entityType}"/> <s:text name="echobase.action.return"/>