summaryrefslogtreecommitdiff
path: root/app/Validator
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2017-11-09 11:17:07 -0800
committerFrederic Guillot <fred@kanboard.net>2017-11-09 11:17:07 -0800
commita12e159de06b2a09c9e6cfd6cab47392c7b7f3f6 (patch)
tree7f99975283f6b04c98d167cc89a02219b6e5e07a /app/Validator
parentd8e88582f776842ad510f0a42e4705d672c0c277 (diff)
Check if the start date is before due date
Diffstat (limited to 'app/Validator')
-rw-r--r--app/Validator/TaskValidator.php68
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