1e8827d73SSzymon Olewniczak<?php 2e8827d73SSzymon Olewniczak 3e8827d73SSzymon Olewniczaknamespace dokuwiki\plugin\bez\mdl; 4e8827d73SSzymon Olewniczak 5e8827d73SSzymon Olewniczakclass Task_commentFactory extends Factory { 6e8827d73SSzymon Olewniczak 7e8827d73SSzymon Olewniczak public function get_from_task(Task $task) { 8e8827d73SSzymon Olewniczak return $this->get_all(array('task_id' => $task->id), $orderby='', $desc=true, array('task' => $task)); 9e8827d73SSzymon Olewniczak } 10e8827d73SSzymon Olewniczak 11e8827d73SSzymon Olewniczak /** 12e8827d73SSzymon Olewniczak * @param Thread_comment $thread_comment 13e8827d73SSzymon Olewniczak * @param $data 14e8827d73SSzymon Olewniczak * @throws \Exception 15e8827d73SSzymon Olewniczak */ 16e8827d73SSzymon Olewniczak public function initial_save(Entity $task_comment, $data) { 17e8827d73SSzymon Olewniczak try { 18e8827d73SSzymon Olewniczak $this->beginTransaction(); 19e8827d73SSzymon Olewniczak 20e8827d73SSzymon Olewniczak //if empty content and task_do, do not save the comment 21e8827d73SSzymon Olewniczak if ($data['fn'] == 'comment_add' || $data['content'] != '') { 22*53df74e7SSzymon Olewniczak parent::initial_save($task_comment, $data); 23e8827d73SSzymon Olewniczak $task_comment->task->set_participant_flags($task_comment->author, array('subscribent', 'commentator')); 24e8827d73SSzymon Olewniczak } 25e8827d73SSzymon Olewniczak 26e8827d73SSzymon Olewniczak if ($data['fn'] == 'task_do') { 27e8827d73SSzymon Olewniczak $task_comment->task->set_state('done'); 28e8827d73SSzymon Olewniczak } elseif ($data['fn'] == 'task_reopen') { 29e8827d73SSzymon Olewniczak $task_comment->task->set_state('opened'); 30e8827d73SSzymon Olewniczak } 31e8827d73SSzymon Olewniczak 32*53df74e7SSzymon Olewniczak if ($task_comment->task->thread_id != '') { 33e8827d73SSzymon Olewniczak $task_comment->task->thread->update_last_activity(); 34*53df74e7SSzymon Olewniczak } 35e8827d73SSzymon Olewniczak 36e8827d73SSzymon Olewniczak $this->commitTransaction(); 37e8827d73SSzymon Olewniczak } catch(Exception $exception) { 38e8827d73SSzymon Olewniczak $this->rollbackTransaction(); 39e8827d73SSzymon Olewniczak } 40e8827d73SSzymon Olewniczak 41e8827d73SSzymon Olewniczak $task_comment->mail_notify_add(); 42e8827d73SSzymon Olewniczak } 43e8827d73SSzymon Olewniczak 44e8827d73SSzymon Olewniczak public function update_save(Entity $task_comment, $data) { 45e8827d73SSzymon Olewniczak try { 46e8827d73SSzymon Olewniczak $this->beginTransaction(); 47*53df74e7SSzymon Olewniczak parent::update_save($task_comment, $data); 48e8827d73SSzymon Olewniczak 49e8827d73SSzymon Olewniczak $task_comment->task->update_last_activity(); 50e8827d73SSzymon Olewniczak 51e8827d73SSzymon Olewniczak $this->commitTransaction(); 52e8827d73SSzymon Olewniczak } catch(Exception $exception) { 53e8827d73SSzymon Olewniczak $this->rollbackTransaction(); 54e8827d73SSzymon Olewniczak } 55e8827d73SSzymon Olewniczak } 56e8827d73SSzymon Olewniczak 57e8827d73SSzymon Olewniczak public function delete(Entity $obj) { 58e8827d73SSzymon Olewniczak try { 59e8827d73SSzymon Olewniczak $this->beginTransaction(); 60e8827d73SSzymon Olewniczak 61e8827d73SSzymon Olewniczak parent::delete($obj); 62e8827d73SSzymon Olewniczak $obj->task->update_last_activity(); 63e8827d73SSzymon Olewniczak 64e8827d73SSzymon Olewniczak $this->commitTransaction(); 65e8827d73SSzymon Olewniczak } catch(Exception $exception) { 66e8827d73SSzymon Olewniczak $this->rollbackTransaction(); 67e8827d73SSzymon Olewniczak } 68e8827d73SSzymon Olewniczak } 69e8827d73SSzymon Olewniczak}