From c2351208c0e522ea76ded2050777872d4026436f Mon Sep 17 00:00:00 2001 From: lkassianik Date: Tue, 26 May 2015 09:55:59 -0700 Subject: [PATCH] String inputs should be validated and replaced by "today" values. Summary: Ref T8060, String inputs should be validated and replaced by "today" values. Test Plan: Open Calendar advanced search, enter "tea time" in date input control, open datepicker, "today" should be selected. Reviewers: epriestley, #blessed_reviewers Reviewed By: epriestley, #blessed_reviewers Subscribers: Korvin, epriestley Maniphest Tasks: T8060 Differential Revision: https://secure.phabricator.com/D13018 --- webroot/rsrc/js/core/behavior-fancy-datepicker.js | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/webroot/rsrc/js/core/behavior-fancy-datepicker.js b/webroot/rsrc/js/core/behavior-fancy-datepicker.js index c4b335aefd..d00f6cc77f 100644 --- a/webroot/rsrc/js/core/behavior-fancy-datepicker.js +++ b/webroot/rsrc/js/core/behavior-fancy-datepicker.js @@ -64,7 +64,9 @@ JX.behavior('fancy-datepicker', function() { JX.DOM.remove(picker); picker = null; JX.DOM.alterClass(root, 'picker-open', false); - e.kill(); + if (e) { + e.kill(); + } root = null; }; @@ -167,6 +169,11 @@ JX.behavior('fancy-datepicker', function() { if (isNaN(written_date.getTime())) { return new Date(); } else { + //year 01 should be 2001, not 1901 + if (written_date.getYear() < 70) { + value_y += 2000; + written_date = new Date(value_y, value_m-1, value_d); + } return written_date; } } @@ -254,6 +261,11 @@ JX.behavior('fancy-datepicker', function() { return; } + var valid_date = getValidDate(); + value_y = valid_date.getYear() + 1900; + value_m = valid_date.getMonth() + 1; + value_d = valid_date.getDate(); + var p = data.value.split(':'); switch (p[0]) { case 'm':