Repository: tapestry-5 Updated Branches: refs/heads/master 589ff43b1 -> 42e550da4
TAP5-841: don't try to interpret date strings when formatting/parsing Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/42e550da Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/42e550da Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/42e550da Branch: refs/heads/master Commit: 42e550da492a26b7685ebfe1f8604d9e0b3e00b2 Parents: 589ff43 Author: Jochen Kemnade <[email protected]> Authored: Wed Mar 29 14:46:17 2017 +0200 Committer: Jochen Kemnade <[email protected]> Committed: Wed Mar 29 14:46:17 2017 +0200 ---------------------------------------------------------------------- .../coffeescript/META-INF/modules/t5/core/datefield.coffee | 8 ++++---- .../org/apache/tapestry5/corelib/components/DateField.java | 9 ++++----- 2 files changed, 8 insertions(+), 9 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/42e550da/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/datefield.coffee ---------------------------------------------------------------------- diff --git a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/datefield.coffee b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/datefield.coffee index 0c0aa6d..3b79d70 100644 --- a/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/datefield.coffee +++ b/tapestry-core/src/main/coffeescript/META-INF/modules/t5/core/datefield.coffee @@ -113,9 +113,9 @@ define ["./dom", "./events", "./messages", "./ajax", "underscore", "./datepicker if reply.result @clearFieldError() + [year, month, day] = reply.result.split '-' - date = new Date() - date.setTime reply.result + date = new Date year, month-1, day @datePicker.setDate date if reply.error @@ -154,10 +154,10 @@ define ["./dom", "./events", "./messages", "./ajax", "underscore", "./datepicker @field.addClass "ajax-wait" - + normalizedFormat = "#{date.getFullYear()}-#{date.getMonth()+1}-#{date.getDate()}" ajax (@container.attr "data-format-url"), data: - input: date.getTime() + input: normalizedFormat failure: (response, message) => @field.removeClass "ajax-wait" @fieldError message http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/42e550da/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/DateField.java ---------------------------------------------------------------------- diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/DateField.java b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/DateField.java index 0e23ba2..1f6de5e 100644 --- a/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/DateField.java +++ b/tapestry-core/src/main/java/org/apache/tapestry5/corelib/components/DateField.java @@ -190,7 +190,7 @@ public class DateField extends AbstractField { Date date = format.parse(input); - response.put(RESULT, date.getTime()); + response.put(RESULT, new SimpleDateFormat("yyyy-MM-dd").format(date)); } catch (ParseException ex) { response.put(ERROR, ex.getMessage()); @@ -203,17 +203,16 @@ public class DateField extends AbstractField * Ajax event handler, used after the client-side popup completes. The client sends the date, formatted as * milliseconds since the epoch, to the server, which reformats it according to the server side format and returns * the result. + * @throws ParseException */ JSONObject onFormat(@RequestParameter(INPUT_PARAMETER) - String input) + String input) throws ParseException { JSONObject response = new JSONObject(); try { - long millis = Long.parseLong(input); - - Date date = new Date(millis); + Date date = new SimpleDateFormat("yyyy-MM-dd").parse(input); response.put(RESULT, format.format(date)); } catch (NumberFormatException ex)
