diff options
author | Frédéric Guillot <fred@kanboard.net> | 2014-08-15 17:23:41 -0700 |
---|---|---|
committer | Frédéric Guillot <fred@kanboard.net> | 2014-08-15 17:23:41 -0700 |
commit | 9eeded33f68872515954a2fc177fcb47a9273ae9 (patch) | |
tree | f3ef9507e087ca6bf3ce624232da240a8689b051 /app/Model/SubTask.php | |
parent | c539bdc8ab746c5afd48cf87de057dc38d50adac (diff) |
Add email notifications
Diffstat (limited to 'app/Model/SubTask.php')
-rw-r--r-- | app/Model/SubTask.php | 44 |
1 files changed, 41 insertions, 3 deletions
diff --git a/app/Model/SubTask.php b/app/Model/SubTask.php index 21ccdaac..c7bab44b 100644 --- a/app/Model/SubTask.php +++ b/app/Model/SubTask.php @@ -42,6 +42,14 @@ class SubTask extends Base const STATUS_TODO = 0; /** + * Events + * + * @var string + */ + const EVENT_UPDATE = 'subtask.update'; + const EVENT_CREATE = 'subtask.create'; + + /** * Get available status * * @access public @@ -88,10 +96,27 @@ class SubTask extends Base * * @access public * @param integer $subtask_id Subtask id + * @param bool $more Fetch more data * @return array */ - public function getById($subtask_id) + public function getById($subtask_id, $more = false) { + if ($more) { + + $subtask = $this->db->table(self::TABLE) + ->eq(self::TABLE.'.id', $subtask_id) + ->columns(self::TABLE.'.*', User::TABLE.'.username', User::TABLE.'.name') + ->join(User::TABLE, 'id', 'user_id') + ->findOne(); + + if ($subtask) { + $status = $this->getStatusList(); + $subtask['status_name'] = $status[$subtask['status']]; + } + + return $subtask; + } + return $this->db->table(self::TABLE)->eq('id', $subtask_id)->findOne(); } @@ -116,7 +141,14 @@ class SubTask extends Base $values['time_spent'] = 0; } - return $this->db->table(self::TABLE)->save($values); + $result = $this->db->table(self::TABLE)->save($values); + + if ($result) { + $values['id'] = $this->db->getConnection()->getLastId(); + $this->event->trigger(self::EVENT_CREATE, $values); + } + + return $result; } /** @@ -136,7 +168,13 @@ class SubTask extends Base $values['time_spent'] = 0; } - return $this->db->table(self::TABLE)->eq('id', $values['id'])->save($values); + $result = $this->db->table(self::TABLE)->eq('id', $values['id'])->save($values); + + if ($result) { + $this->event->trigger(self::EVENT_UPDATE, $values); + } + + return $result; } /** |