diff options
author | Frederic Guillot <fred@kanboard.net> | 2017-11-09 11:17:07 -0800 |
---|---|---|
committer | Frederic Guillot <fred@kanboard.net> | 2017-11-09 11:17:07 -0800 |
commit | a12e159de06b2a09c9e6cfd6cab47392c7b7f3f6 (patch) | |
tree | 7f99975283f6b04c98d167cc89a02219b6e5e07a /app/Validator | |
parent | d8e88582f776842ad510f0a42e4705d672c0c277 (diff) |
Check if the start date is before due date
Diffstat (limited to 'app/Validator')
-rw-r--r-- | app/Validator/TaskValidator.php | 68 |
1 files changed, 35 insertions, 33 deletions
diff --git a/app/Validator/TaskValidator.php b/app/Validator/TaskValidator.php index fced763a..21f1abde 100644 --- a/app/Validator/TaskValidator.php +++ b/app/Validator/TaskValidator.php @@ -49,6 +49,20 @@ class TaskValidator extends BaseValidator ); } + public function validateStartAndDueDate(array $values) + { + if (!empty($values['date_started']) && !empty($values['date_due'])) { + $startDate = $this->dateParser->getTimestamp($values['date_started']); + $endDate = $this->dateParser->getTimestamp($values['date_due']); + + if ($startDate > $endDate) { + return array(false, array('date_started' => array(t('The start date is greater than the end date')))); + } + } + + return array(true, array()); + } + /** * Validate task creation * @@ -64,11 +78,14 @@ class TaskValidator extends BaseValidator ); $v = new Validator($values, array_merge($rules, $this->commonValidationRules())); + $result = $v->execute(); + $errors = $v->getErrors(); - return array( - $v->execute(), - $v->getErrors() - ); + if ($result) { + list($result, $errors) = $this->validateStartAndDueDate($values); + } + + return array($result, $errors); } /** @@ -133,11 +150,14 @@ class TaskValidator extends BaseValidator ); $v = new Validator($values, array_merge($rules, $this->commonValidationRules())); + $result = $v->execute(); + $errors = $v->getErrors(); - return array( - $v->execute(), - $v->getErrors() - ); + if ($result) { + list($result, $errors) = $this->validateStartAndDueDate($values); + } + + return array($result, $errors); } /** @@ -154,11 +174,14 @@ class TaskValidator extends BaseValidator ); $v = new Validator($values, array_merge($rules, $this->commonValidationRules())); + $result = $v->execute(); + $errors = $v->getErrors(); - return array( - $v->execute(), - $v->getErrors() - ); + if ($result) { + list($result, $errors) = $this->validateStartAndDueDate($values); + } + + return array($result, $errors); } /** @@ -184,27 +207,6 @@ class TaskValidator extends BaseValidator } /** - * Validate time tracking modification (form) - * - * @access public - * @param array $values Form values - * @return array $valid, $errors [0] = Success or not, [1] = List of errors - */ - public function validateTimeModification(array $values) - { - $rules = array( - new Validators\Required('id', t('The id is required')), - ); - - $v = new Validator($values, array_merge($rules, $this->commonValidationRules())); - - return array( - $v->execute(), - $v->getErrors() - ); - } - - /** * Validate task email creation * * @access public |