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