diff --git a/include/class.dynamic_forms.php b/include/class.dynamic_forms.php index 520447dc2078922758e6481fe3903ca64d5e0c19..479e94736fd3c59e263e0ab017ad968837e94589 100644 --- a/include/class.dynamic_forms.php +++ b/include/class.dynamic_forms.php @@ -1104,6 +1104,8 @@ class DynamicFormEntry extends VerySimpleModel { * Parameters: * $filter - (callback) function to receive each field and return * boolean true if the field's errors are significant + * $options - options to pass to form and fields. + * */ function isValid($filter=false, $options=array()) { diff --git a/include/class.task.php b/include/class.task.php index bae276155174c8d33f15986c4960ad0fb3bc1061..867d9151c24eb10c6f0b9410021763c860d876f0 100644 --- a/include/class.task.php +++ b/include/class.task.php @@ -437,6 +437,7 @@ class Task extends TaskModel implements RestrictedAccess, Threadable { function setStatus($status, $comments='') { global $thisstaff; + $ecb = null; switch($status) { case 'open': if ($this->isOpen()) @@ -444,6 +445,10 @@ class Task extends TaskModel implements RestrictedAccess, Threadable { $this->reopen(); $this->closed = null; + + $ecb = function ($t) { + $t->logEvent('reopened', false, null, 'closed'); + }; break; case 'closed': if ($this->isClosed()) @@ -451,6 +456,9 @@ class Task extends TaskModel implements RestrictedAccess, Threadable { $this->close(); $this->closed = SqlFunction::NOW(); + $ecb = function($t) { + $t->logEvent('closed'); + }; break; default: return false; @@ -459,6 +467,9 @@ class Task extends TaskModel implements RestrictedAccess, Threadable { if (!$this->save(true)) return false; + // Log events via callback + if ($ecb) $ecb($this); + if ($comments) { $errors = array(); $this->postNote(array( @@ -528,8 +539,7 @@ class Task extends TaskModel implements RestrictedAccess, Threadable { if ($thisstaff && $thisstaff->getId() == $assignee->getId()) $evd['claim'] = true; else - $evd['staff'] = $assignee; - + $evd['staff'] = array($assignee->getId(), $assignee->getName()); } } elseif ($assignee instanceof Team) { if ($this->getTeamId() == $assignee->getId()) {