diff options
Diffstat (limited to 'app/Validator/TaskValidator.php')
-rw-r--r-- | app/Validator/TaskValidator.php | 69 |
1 files changed, 35 insertions, 34 deletions
diff --git a/app/Validator/TaskValidator.php b/app/Validator/TaskValidator.php index f82e7374..3fc70317 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); } /** @@ -81,7 +98,6 @@ class TaskValidator extends BaseValidator public function validateBulkCreation(array $values) { $rules = array( - new Validators\Required('project_id', t('The project is required')), new Validators\Required('tasks', t('Field required')), new Validators\Required('column_id', t('Field required')), new Validators\Required('swimlane_id', t('Field required')), @@ -134,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); } /** @@ -155,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); } /** @@ -185,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 |