Author: tchemit Date: 2012-05-24 11:11:22 +0200 (Thu, 24 May 2012) New Revision: 3377 Url: http://chorem.org/repositories/revision/pollen/3377 Log: fixes #563: Allow simple date in choice list Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/DateConverter.java trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/DateConverter.java =================================================================== --- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/DateConverter.java 2012-05-18 14:50:18 UTC (rev 3376) +++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/DateConverter.java 2012-05-24 09:11:22 UTC (rev 3377) @@ -28,7 +28,6 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.struts2.util.StrutsTypeConverter; -import org.nuiton.i18n.I18n; import org.nuiton.util.DateUtil; import java.text.ParseException; @@ -36,20 +35,23 @@ import java.util.Locale; import java.util.Map; +import static org.nuiton.i18n.I18n.l_; + /** * Created: 18/04/12 * * @author fdesbois <desbois@codelutin.com> + * @since 1.3 */ public class DateConverter extends StrutsTypeConverter { - + private static final Log log = LogFactory.getLog(DateConverter.class); @Override public Date convertFromString(Map context, String[] values, Class toClass) { String value = values[0]; Date result = convertFromString(value); - return result; + return result; } @Override @@ -58,29 +60,42 @@ String result = convertToString(date); return result; } - + public static String convertToString(Date date) { - String result = DateUtil.formatDate(date, getDatePattern()); + String result = DateUtil.formatDate(date, getDateTimePattern()); return result; } public static Date convertFromString(String value) { Date result = null; if (StringUtils.isNotBlank(value)) { + // try first with a date-time pattern try { - result = DateUtil.parseDate(value, getDatePattern()); + result = DateUtil.parseDate(value, getDateTimePattern()); } catch (ParseException e) { - if (log.isErrorEnabled()) { - log.error("Error parsing date '" + value + "'", e); + + // fall-back, try with a date pattern + try { + result = DateUtil.parseDate(value, getDatePattern()); + } catch (ParseException e1) { + if (log.isErrorEnabled()) { + log.error("Error parsing date '" + value + "'", e1); + } } } } return result; } + private static String getDateTimePattern() { + Locale locale = ActionContext.getContext().getLocale(); + String result = l_(locale, "pollen.common.dateTimePattern"); + return result; + } + private static String getDatePattern() { Locale locale = ActionContext.getContext().getLocale(); - String result = I18n.l_(locale, "pollen.common.datePattern"); + String result = l_(locale, "pollen.common.datePattern"); return result; } } Modified: trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties =================================================================== --- trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties 2012-05-18 14:50:18 UTC (rev 3376) +++ trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties 2012-05-24 09:11:22 UTC (rev 3377) @@ -66,8 +66,9 @@ pollen.common.commentText=Comment pollen.common.comments=Comments about this poll pollen.common.csvImport=CSV import -pollen.common.datePattern=MM/dd/yyyy HH\:mm +pollen.common.datePattern=MM/dd/yyyy pollen.common.datePickerPattern=mm/dd/yy +pollen.common.dateTimePattern=MM/dd/yyyy HH\:mm pollen.common.description=Description pollen.common.displayType-group=Results by groups pollen.common.displayType-normal=Results @@ -147,7 +148,7 @@ pollen.error.choice.empty=%s mandatory pollen.error.comment.name.empty=Comment name mandatory pollen.error.comment.text.empty=Comment text mandatory -pollen.error.date.format=Begin date does not match pattern 12/31/2000 12\:59 +pollen.error.date.format=Date does not match pattern MM/dd/yyyy [hh:mm] (example 12/31/2000 12\:59) pollen.error.email.invalid=The email doesn't have the good format pollen.error.email.required=You must provide an email pollen.error.favoriteList.already.used=List name already used Modified: trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties =================================================================== --- trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties 2012-05-18 14:50:18 UTC (rev 3376) +++ trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties 2012-05-24 09:11:22 UTC (rev 3377) @@ -66,8 +66,9 @@ pollen.common.commentText=Commentaire pollen.common.comments=Commentaire à propos du sondage pollen.common.csvImport=Import CSV -pollen.common.datePattern=dd/MM/yyyy HH\:mm +pollen.common.datePattern=dd/MM/yyyy pollen.common.datePickerPattern=dd/mm/yy +pollen.common.dateTimePattern=dd/MM/yyyy HH\:mm pollen.common.description=Description pollen.common.displayType-group=Résultats par groupes pollen.common.displayType-normal=Résultats @@ -145,7 +146,7 @@ pollen.error.choice.empty=%s obligatoire pollen.error.comment.name.empty=Nom du commentaire obligatoire pollen.error.comment.text.empty=Texte du commentaire obligatoire -pollen.error.date.format=La date doit être au format 31/12/2000 23\:59 +pollen.error.date.format=La date doit être au format jj/MM/aaaa [hh:mm] (exemple 31/12/2000 23\:59) pollen.error.email.invalid=Email non valide pollen.error.email.required=Email obligatoire pollen.error.favoriteList.already.used=Nom de liste déjà utilisé
participants (1)
-
tchemit@users.chorem.org