r2068 - in trunk: wao-persistence/src/main/java/fr/ifremer/wao wao-persistence/src/test/java/fr/ifremer/wao wao-web/src/main/java/fr/ifremer/wao/web wao-web/src/main/resources/i18n
Author: bleny Date: 2014-06-19 15:28:17 +0200 (Thu, 19 Jun 2014) New Revision: 2068 Url: http://forge.codelutin.com/projects/wao/repository/revisions/2068 Log: fixes #5276, prevent formatting month when a date is given Added: trunk/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java =================================================================== --- trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java 2014-06-19 10:37:22 UTC (rev 2067) +++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/WaoUtils.java 2014-06-19 13:28:17 UTC (rev 2068) @@ -109,6 +109,9 @@ public static Date parseMonth(Locale locale, String monthYear) throws ParseException { String pattern = I18n.l(locale, "wao.month.parser"); + if (monthYear.length() != pattern.length()) { + throw new ParseException(monthYear, 0); + } DateFormat dateFormat = new SimpleDateFormat(pattern); return dateFormat.parse(monthYear); } Added: trunk/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java =================================================================== --- trunk/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java (rev 0) +++ trunk/wao-persistence/src/test/java/fr/ifremer/wao/WaoUtilsTest.java 2014-06-19 13:28:17 UTC (rev 2068) @@ -0,0 +1,34 @@ +package fr.ifremer.wao; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; +import org.junit.Assert; +import org.junit.Test; + +import java.text.ParseException; +import java.util.Locale; + +public class WaoUtilsTest { + + private static final Log log = LogFactory.getLog(WaoUtilsTest.class); + + @Test + public void testParseMonth() { + + try { + WaoUtils.parseMonth(Locale.FRANCE, "12/2014"); + } catch (ParseException e) { + Assert.fail(); + } + + try { + WaoUtils.parseMonth(Locale.FRANCE, "01/12/2014"); + Assert.fail(); + } catch (ParseException e) { + if (log.isDebugEnabled()) { + log.debug("exception raised", e); + } + } + + } +} \ No newline at end of file Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java 2014-06-19 10:37:22 UTC (rev 2067) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java 2014-06-19 13:28:17 UTC (rev 2068) @@ -21,15 +21,15 @@ * #L% */ -import java.util.Date; - -import org.apache.commons.lang3.time.DateUtils; -import org.nuiton.util.pagination.PaginationResult; - import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.entity.ObsProgram; import fr.ifremer.wao.services.AuthenticatedWaoUser; +import fr.ifremer.wao.web.action.obsmer.SamplingPlanAction; +import org.apache.commons.lang3.time.DateUtils; +import org.nuiton.util.pagination.PaginationResult; +import java.util.Date; + public class WaoJspActionSupport extends WaoActionSupport { private static final long serialVersionUID = 1L; @@ -66,6 +66,19 @@ return getText(enumeration.getClass().getSimpleName() + "." + enumeration.name()); } + @Override + public String getText(String aTextName, String defaultValue) { + String text = super.getText(aTextName, defaultValue); + if ("invalid.fieldvalue.filter.periodFrom".equals(aTextName)) { + if (this instanceof SamplingPlanAction) { + text = getText("wao.ui.invalidMonthFormat"); + } else { + text = getText("wao.ui.invalidDateFormat"); + } + } + return text; + } + public String formatMonth(Date date) { return date == null ? "" : WaoUtils.formatMonth(getLocale(), date); } Modified: trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties =================================================================== --- trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-06-19 10:37:22 UTC (rev 2067) +++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-06-19 13:28:17 UTC (rev 2068) @@ -415,7 +415,9 @@ wao.ui.indicator.useRightDecimalSymbol=Use '.' for non-round values wao.ui.indicators.coefficientsSum=Coefficients sum wao.ui.indicators.title=Providers quality indicators +wao.ui.invalidDateFormat=Expected format is yyyy-mm-dd wao.ui.invalidLogin=Invalid identifier +wao.ui.invalidMonthFormat=Expected format is yyyy-mm wao.ui.layout.userDescription=You are %s of company %s (%s) wao.ui.message.chooseProfile=Choose your profile \: wao.ui.misc.METIER=METIER Modified: trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties =================================================================== --- trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-06-19 10:37:22 UTC (rev 2067) +++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-06-19 13:28:17 UTC (rev 2068) @@ -415,7 +415,9 @@ wao.ui.indicator.useRightDecimalSymbol=Attention à bien utiliser ',' et non '.' pour les décimales wao.ui.indicators.coefficientsSum=Total coefficient wao.ui.indicators.title=Indicateurs qualités prestataires +wao.ui.invalidDateFormat=Le format attendu est jj/mm/aaaa wao.ui.invalidLogin=Identifiant invalide +wao.ui.invalidMonthFormat=Le format attendu est mm/aaaa wao.ui.layout.userDescription=Vous êtes %s de la société %s (%s) wao.ui.message.chooseProfile=Choisissez dans la liste votre profil de connexion \: wao.ui.misc.METIER=MÉTIER
participants (1)
-
bleny@users.forge.codelutin.com