From d81fb20df66fd77e41f0f7d573e60b856b1e9f8a Mon Sep 17 00:00:00 2001 From: Frederic Guillot Date: Tue, 24 Jan 2017 20:04:58 -0500 Subject: Fix wrong datetime formatting when task form shows validation errors --- ChangeLog | 4 ++++ app/Core/DateParser.php | 6 ++---- app/Validator/TaskValidator.php | 2 +- tests/units/Core/DateParserTest.php | 3 --- 4 files changed, 7 insertions(+), 8 deletions(-) diff --git a/ChangeLog b/ChangeLog index 37c6c918..6787b8cf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -12,6 +12,10 @@ Regressions: * Stay on the same page when a task is closed * Wrong URL in modal to move task to another project +Bug fixes: + +* Fix wrong datetime formatting when task form shows validation errors + Version 1.0.37 (Jan 14, 2017) ----------------------------- diff --git a/app/Core/DateParser.php b/app/Core/DateParser.php index b9aa9230..5d3be644 100644 --- a/app/Core/DateParser.php +++ b/app/Core/DateParser.php @@ -292,11 +292,9 @@ class DateParser extends Base { foreach ($fields as $field) { if (! empty($values[$field])) { - if (! ctype_digit($values[$field])) { - $values[$field] = strtotime($values[$field]); + if (ctype_digit($values[$field])) { + $values[$field] = date($format, $values[$field]); } - - $values[$field] = date($format, $values[$field]); } else { $values[$field] = ''; } diff --git a/app/Validator/TaskValidator.php b/app/Validator/TaskValidator.php index e3b0eded..e824dc05 100644 --- a/app/Validator/TaskValidator.php +++ b/app/Validator/TaskValidator.php @@ -42,7 +42,7 @@ class TaskValidator extends BaseValidator new Validators\MaxLength('title', t('The maximum length is %d characters', 200), 200), new Validators\MaxLength('reference', t('The maximum length is %d characters', 50), 50), new Validators\Date('date_due', t('Invalid date'), $this->dateParser->getParserFormats()), - new Validators\Date('date_started', t('Invalid date'), $this->dateParser->getParserFormats()), + new Validators\Date('date_started', t('Invalid date'), array($this->dateParser->getUserDateTimeFormat())), new Validators\Numeric('time_spent', t('This value must be numeric')), new Validators\Numeric('time_estimated', t('This value must be numeric')), ); diff --git a/tests/units/Core/DateParserTest.php b/tests/units/Core/DateParserTest.php index 1cf98bd3..43ba4bcd 100644 --- a/tests/units/Core/DateParserTest.php +++ b/tests/units/Core/DateParserTest.php @@ -204,9 +204,6 @@ class DateParserTest extends Base $this->assertEquals(array('date' => '06/02/2016'), $dateParser->format($values, array('date'), 'd/m/Y')); $this->assertEquals(array('date' => '02/06/2016 7:30 pm'), $dateParser->format($values, array('date'), 'm/d/Y g:i a')); - - $values['date'] = '2016-02-06'; - $this->assertEquals(array('date' => '06/02/2016'), $dateParser->format($values, array('date'), 'd/m/Y')); } public function testConvert() -- cgit v1.2.3