Author: tchemit Date: 2012-06-19 16:53:41 +0200 (Tue, 19 Jun 2012) New Revision: 3531 Url: http://chorem.org/repositories/revision/pollen/3531 Log: fix poll choices validation Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/AbstractPollForm.java trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/createPoll_choices.jsp trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/pollForm.jsp Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/AbstractPollForm.java =================================================================== --- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/AbstractPollForm.java 2012-06-19 14:09:37 UTC (rev 3530) +++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/poll/AbstractPollForm.java 2012-06-19 14:53:41 UTC (rev 3531) @@ -822,7 +822,6 @@ protected void validateDateChoices() { - String choicePrefix = getChoiceFieldPrefix(ChoiceType.DATE); Set<String> choiceNames = Sets.newHashSet(); @@ -831,30 +830,34 @@ Integer choiceIndex = entry.getKey(); PollDateChoice choice = (PollDateChoice) entry.getValue(); String choiceErrorField = choicePrefix + choiceIndex + ".name"; - String choiceName = choice.getName(); - if (StringUtils.isBlank(choiceName)) { + if (StringUtils.isBlank(choice.getName())) { // no name addInformationsError( choiceErrorField, _("pollen.error.poll.dateChoice.required")); continue; } - if (choiceNames.contains(choiceName)) { - // duplicated names + if (choice.getDate() == null) { + + // format error addInformationsError( choiceErrorField, - _("pollen.error.poll.dateChoice.already.used")); + _("pollen.error.poll.dateChoice.badDateFormat")); continue; } - if (choice.getDate() == null) { - // format error + // date is valid + // use now the date.toString() as value to ensure unicity + String choiceValue = choice.getDate().toString(); + + if (choiceNames.contains(choiceValue)) { + // duplicated names addInformationsError( choiceErrorField, - _("pollen.error.poll.dateChoice.badDateFormat")); - + _("pollen.error.poll.dateChoice.already.used")); + continue; } - choiceNames.add(choiceName); + choiceNames.add(choiceValue); } } @@ -912,7 +915,6 @@ continue; } } - } protected void validateOptions() { @@ -1172,7 +1174,6 @@ fieldNamePrefix, _("pollen.error.poll.personToList.weight.not.valid")); } - } protected boolean validateEndDate(Date begin, Date end) { @@ -1181,6 +1182,17 @@ && end.before(begin); } + public Object getDateChoiceValue(PollDateChoice choice) { + Date date = choice.getDate(); + Object result; + if (date == null) { + result = choice.getName(); + } else { + result = date; + } + return result; + } + @Override public void addFieldError(String fieldName, String errorMessage) { super.addFieldError(fieldName, errorMessage); @@ -1799,8 +1811,8 @@ Map<Integer, T> result2 = Maps.newTreeMap(); for (Integer choiceOrder : choicesOrder.keySet()) { - Integer choiceNumber = choicesOrder.get(choiceOrder); - T choice = result.get(choiceNumber ); + Integer choiceNumber = choicesOrder.get(choiceOrder); + T choice = result.get(choiceNumber); if (choice != null) { result2.put(choiceOrder, choice); } Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/createPoll_choices.jsp =================================================================== --- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/createPoll_choices.jsp 2012-06-19 14:09:37 UTC (rev 3530) +++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/createPoll_choices.jsp 2012-06-19 14:53:41 UTC (rev 3531) @@ -104,7 +104,7 @@ <sj:datepicker id='%{#prefix}.name' key="%{#prefix}.name" label="" changeMonth="true" changeYear="true" labelSeparator="" theme="simple" timepicker="true" - value="%{#choice.name}" + value="%{getDateChoiceValue(#choice)}" displayFormat="%{getText('pollen.common.datePickerPattern')}"/> </div> <div class="fright"> Modified: trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/pollForm.jsp =================================================================== --- trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/pollForm.jsp 2012-06-19 14:09:37 UTC (rev 3530) +++ trunk/pollen-ui-struts2/src/main/webapp/WEB-INF/jsp/poll/pollForm.jsp 2012-06-19 14:53:41 UTC (rev 3531) @@ -357,7 +357,7 @@ console.info('Moved ' + container + ' -- ' + choiceNumber); reorder(container); } - }).disableSelection(); + }); }); }); </script>