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)

Reply via email to