1aa89e6f8SSzymon Olewniczak<?php 253df74e7SSzymon Olewniczak/** @var action_plugin_bez $this */ 3aa89e6f8SSzymon Olewniczak 4e8827d73SSzymon Olewniczakuse \dokuwiki\plugin\bez; 5aa89e6f8SSzymon Olewniczak 6a0cd8c78SSzymon Olewniczakif ($this->model->get_level() < BEZ_AUTH_USER) { 753df74e7SSzymon Olewniczak throw new bez\meta\PermissionDeniedException(); 853df74e7SSzymon Olewniczak} 953df74e7SSzymon Olewniczak 10e8827d73SSzymon Olewniczakif ($this->get_param('tid') == '') { 11e8827d73SSzymon Olewniczak header('Location: ' . $this->url('tasks')); 1204f149d4SSzymon Olewniczak} 1304f149d4SSzymon Olewniczak 14e8827d73SSzymon Olewniczak/** @var bez\mdl\Task $task */ 15e8827d73SSzymon Olewniczak$task = $this->model->taskFactory->get_one($this->get_param('tid')); 16e8827d73SSzymon Olewniczak$this->tpl->set('task', $task); 17e8827d73SSzymon Olewniczak$this->tpl->set('task_comments', $this->model->task_commentFactory->get_from_task($task)); 18*7753af14SSzymon Olewniczak$this->tpl->set('task_programs', $this->model->task_programFactory->get_all([], 'name')); 19aa89e6f8SSzymon Olewniczak 20e8827d73SSzymon Olewniczakif ($this->get_param('action') == 'comment_add') { 21aa89e6f8SSzymon Olewniczak 22e8827d73SSzymon Olewniczak /** @var bez\mdl\Thread_comment $thread_comment */ 23e8827d73SSzymon Olewniczak $task_comment = $this->model->task_commentFactory->create_object(array('task' => $task)); 24e8827d73SSzymon Olewniczak $this->model->task_commentFactory->initial_save($task_comment, $_POST); 25f2c81100SSzymon Olewniczak 2653df74e7SSzymon Olewniczak $anchor = 'zk'.$task_comment->id; 2704f149d4SSzymon Olewniczak $redirect = true; 2804f149d4SSzymon Olewniczak 29e8827d73SSzymon Olewniczak} elseif ($this->get_param('action') == 'subscribe') { 30e8827d73SSzymon Olewniczak 31e8827d73SSzymon Olewniczak $task->set_participant_flags($this->model->user_nick, array('subscribent')); 32e8827d73SSzymon Olewniczak $redirect = true; 33e8827d73SSzymon Olewniczak 34e8827d73SSzymon Olewniczak} elseif ($this->get_param('action') == 'unsubscribe') { 35e8827d73SSzymon Olewniczak 36e8827d73SSzymon Olewniczak $task->remove_participant_flags($this->model->user_nick, array('subscribent')); 37e8827d73SSzymon Olewniczak 3814a1f0a4SSzymon Olewniczak $this->add_notification($this->getLang('task_unsubscribed_com')); 39e8827d73SSzymon Olewniczak $redirect = true; 40e8827d73SSzymon Olewniczak 41e8827d73SSzymon Olewniczak} elseif ($this->get_param('action') == 'invite') { 4204f149d4SSzymon Olewniczak $client = $_POST['client']; 4304f149d4SSzymon Olewniczak 44e8827d73SSzymon Olewniczak $task->invite($client); 45e8827d73SSzymon Olewniczak $this->add_notification($this->model->userFactory->get_user_email($client), $this->getLang('invitation_has_been_send')); 4604f149d4SSzymon Olewniczak 4704f149d4SSzymon Olewniczak $redirect = true; 48b331b892SSzymon Olewniczak} elseif ($this->get_param('action') == 'participant_remove') { 49b331b892SSzymon Olewniczak $user_id = $this->get_param('user_id'); 50b331b892SSzymon Olewniczak $task->remove_participant($user_id); 51b331b892SSzymon Olewniczak 52b331b892SSzymon Olewniczak $name = $this->model->userFactory->get_user_full_name($user_id); 53b331b892SSzymon Olewniczak $notif = sprintf($this->getLang('participant_removed'), $name); 54b331b892SSzymon Olewniczak $this->add_notification($notif); 55b331b892SSzymon Olewniczak 56b331b892SSzymon Olewniczak $redirect = true; 57e8827d73SSzymon Olewniczak} elseif ($this->get_param('action') == 'comment_delete') { 58e8827d73SSzymon Olewniczak /** @var bez\mdl\Task_comment $task_comment */ 59e8827d73SSzymon Olewniczak $task_comment = $this->model->task_commentFactory->get_one($this->get_param('zkid'), array('task' => $task)); 60e8827d73SSzymon Olewniczak $this->model->task_commentFactory->delete($task_comment); 61c45b82bdSSzymon Olewniczak 6204f149d4SSzymon Olewniczak $redirect = true; 63e8827d73SSzymon Olewniczak} elseif ($this->get_param('action') == 'comment_edit') { 64e8827d73SSzymon Olewniczak /** @var bez\mdl\Task_comment $task_comment */ 65e8827d73SSzymon Olewniczak $task_comment = $this->model->task_commentFactory->get_one($this->get_param('zkid'), array('thread' => $thread)); 66e8827d73SSzymon Olewniczak 67e8827d73SSzymon Olewniczak if(count($_POST) === 0) { 68e8827d73SSzymon Olewniczak $this->tpl->set_values($task_comment->get_assoc()); 69c45b82bdSSzymon Olewniczak } else { 70e8827d73SSzymon Olewniczak $this->model->task_commentFactory->update_save($task_comment, $_POST); 71e8827d73SSzymon Olewniczak 72e8827d73SSzymon Olewniczak $anchor = 'zk' . $task_comment->id; 73e8827d73SSzymon Olewniczak $redirect = true; 74e8827d73SSzymon Olewniczak } 75e8827d73SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_edit') { 76e8827d73SSzymon Olewniczak //save 77e8827d73SSzymon Olewniczak if (count($_POST) === 0) { 78e8827d73SSzymon Olewniczak $this->tpl->set_values($task->get_assoc()); 79e8827d73SSzymon Olewniczak } else { 80e8827d73SSzymon Olewniczak $this->model->taskFactory->update_save($task, $_POST); 81e8827d73SSzymon Olewniczak $redirect = true; 82c45b82bdSSzymon Olewniczak } 836f380773SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_delete') { 846f380773SSzymon Olewniczak $this->model->taskFactory->delete($task); 856f380773SSzymon Olewniczak if ($task->thread_id != '') { 866f380773SSzymon Olewniczak header('Location: ' . $this->url('thread', 'id', $task->thread_id)); 876f380773SSzymon Olewniczak } else { 886f380773SSzymon Olewniczak header("Location: " . $this->url('tasks')); 896f380773SSzymon Olewniczak } 90a5de966aSSzymon Olewniczak} elseif ($this->get_param('action') == 'pin') { 91a5de966aSSzymon Olewniczak $thread_id = $_POST['thread_id']; 92a5de966aSSzymon Olewniczak $task->pin($thread_id); 93a5de966aSSzymon Olewniczak $redirect = true; 94a5de966aSSzymon Olewniczak} elseif ($this->get_param('action') == 'unpin') { 95a5de966aSSzymon Olewniczak $task->unpin(); 96a5de966aSSzymon Olewniczak $redirect = true; 97f2c81100SSzymon Olewniczak} 98f2c81100SSzymon Olewniczak 99a5de966aSSzymon Olewniczak 100e8827d73SSzymon Olewniczakif (isset($redirect) && $redirect == true) { 101e8827d73SSzymon Olewniczak if (isset($anchor)) { 102e8827d73SSzymon Olewniczak $anchor = '#'.$anchor; 103e8827d73SSzymon Olewniczak } else { 104e8827d73SSzymon Olewniczak $anchor = ''; 105aa89e6f8SSzymon Olewniczak } 106e8827d73SSzymon Olewniczak header("Location: " . $this->url('task', 'tid', $task->id) . $anchor); 107aa89e6f8SSzymon Olewniczak}