1fe5d6d1eSSzymon Olewniczak<?php 253df74e7SSzymon Olewniczak/** @var action_plugin_bez $this */ 3fe5d6d1eSSzymon Olewniczak 4fe5d6d1eSSzymon Olewniczakuse \dokuwiki\plugin\bez; 5fe5d6d1eSSzymon Olewniczak 6a0cd8c78SSzymon Olewniczakif ($this->model->get_level() < BEZ_AUTH_USER) { 753df74e7SSzymon Olewniczak throw new bez\meta\PermissionDeniedException(); 853df74e7SSzymon Olewniczak} 953df74e7SSzymon Olewniczak 10fe5d6d1eSSzymon Olewniczakif ($this->get_param('id') == '') { 118a638198SSzymon Olewniczak header('Location: ' . $this->url('threads')); 12fe5d6d1eSSzymon Olewniczak} 13fe5d6d1eSSzymon Olewniczak 148a638198SSzymon Olewniczak/** @var bez\mdl\Thread $thread */ 15fe5d6d1eSSzymon Olewniczak$thread = $this->model->threadFactory->get_one($this->get_param('id')); 1653df74e7SSzymon Olewniczak 1753df74e7SSzymon Olewniczakif ($thread->acl_of('id') < BEZ_PERMISSION_VIEW) { 1853df74e7SSzymon Olewniczak throw new bez\meta\PermissionDeniedException(); 1953df74e7SSzymon Olewniczak} 2053df74e7SSzymon Olewniczak 217fbf4c39SSzymon Olewniczak$this->tpl->set('thread', $thread); 22*f7519ef1SSzymon Olewniczakif ($thread->type == 'project') { 23*f7519ef1SSzymon Olewniczak $this->tpl->set('lang_suffix', '_project'); 24*f7519ef1SSzymon Olewniczak} 258a638198SSzymon Olewniczak$this->tpl->set('thread_comments', $this->model->thread_commentFactory->get_from_thread($thread)); 26e8827d73SSzymon Olewniczak$this->tpl->set('tasks', $this->model->taskFactory->get_from_thread($thread)); 27e8827d73SSzymon Olewniczak$this->tpl->set('task_programs', $this->model->task_programFactory->get_all()); 288a638198SSzymon Olewniczak 29a0cd8c78SSzymon Olewniczak/** @var bez\mdl\Thread_comment $thread_comment */ 30a0cd8c78SSzymon Olewniczak$thread_comment = $this->model->thread_commentFactory->create_object(array('thread' => $thread)); 31a0cd8c78SSzymon Olewniczak$this->tpl->set('thread_comment', $thread_comment); 328a638198SSzymon Olewniczak 338a638198SSzymon Olewniczakif ($this->get_param('action') == 'commcause_add') { 348a638198SSzymon Olewniczak 358a638198SSzymon Olewniczak $this->model->thread_commentFactory->initial_save($thread_comment, $_POST); 368a638198SSzymon Olewniczak 378a638198SSzymon Olewniczak $anchor = 'k'.$thread_comment->id; 388a638198SSzymon Olewniczak $redirect = true; 398a638198SSzymon Olewniczak 408a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'subscribe') { 418a638198SSzymon Olewniczak 428a638198SSzymon Olewniczak $thread->set_participant_flags($this->model->user_nick, array('subscribent')); 438a638198SSzymon Olewniczak $redirect = true; 448a638198SSzymon Olewniczak 458a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'unsubscribe') { 468a638198SSzymon Olewniczak 478a638198SSzymon Olewniczak $thread->remove_participant_flags($this->model->user_nick, array('subscribent')); 488a638198SSzymon Olewniczak $this->add_notification($this->getLang('unsubscribed_com')); 498a638198SSzymon Olewniczak $redirect = true; 508a638198SSzymon Olewniczak 518a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'invite') { 528a638198SSzymon Olewniczak $client = $_POST['client']; 538a638198SSzymon Olewniczak 54e8827d73SSzymon Olewniczak $thread->invite($client); 55e8827d73SSzymon Olewniczak 568a638198SSzymon Olewniczak $this->add_notification($this->model->userFactory->get_user_email($client), $this->getLang('invitation_has_been_send')); 578a638198SSzymon Olewniczak 588a638198SSzymon Olewniczak $redirect = true; 598a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'commcause_delete') { 608a638198SSzymon Olewniczak /** @var bez\mdl\Thread_comment $thread_comment */ 618a638198SSzymon Olewniczak $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread)); 628a638198SSzymon Olewniczak $this->model->thread_commentFactory->delete($thread_comment); 638a638198SSzymon Olewniczak 648a638198SSzymon Olewniczak $redirect = true; 658a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'commcause_edit') { 668a638198SSzymon Olewniczak /** @var bez\mdl\Thread_comment $thread_comment */ 678a638198SSzymon Olewniczak $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread)); 688a638198SSzymon Olewniczak 698a638198SSzymon Olewniczak if(count($_POST) === 0) { 708a638198SSzymon Olewniczak $this->tpl->set_values($thread_comment->get_assoc()); 718a638198SSzymon Olewniczak } else { 728a638198SSzymon Olewniczak $this->model->thread_commentFactory->update_save($thread_comment, $_POST); 738a638198SSzymon Olewniczak 748a638198SSzymon Olewniczak $anchor = 'k' . $thread_comment->id; 758a638198SSzymon Olewniczak $redirect = true; 768a638198SSzymon Olewniczak } 77e8827d73SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_add') { 78e8827d73SSzymon Olewniczak 79e8827d73SSzymon Olewniczak $defaults = array('thread' => $thread); 80e8827d73SSzymon Olewniczak 81e8827d73SSzymon Olewniczak if ($this->get_param('kid') != '') { 82e8827d73SSzymon Olewniczak $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread)); 83e8827d73SSzymon Olewniczak $defaults['thread_comment'] = $thread_comment; 84e8827d73SSzymon Olewniczak } 858a638198SSzymon Olewniczak /** @var bez\mdl\Task $task */ 86e8827d73SSzymon Olewniczak $task = $this->model->taskFactory->create_object($defaults); 878a638198SSzymon Olewniczak $this->tpl->set('task', $task); 888a638198SSzymon Olewniczak 898a638198SSzymon Olewniczak //save 908a638198SSzymon Olewniczak if (count($_POST) > 0) { 918a638198SSzymon Olewniczak $this->model->taskFactory->initial_save($task, $_POST); 928a638198SSzymon Olewniczak 938a638198SSzymon Olewniczak $anchor = 'z' . $task->id; 948a638198SSzymon Olewniczak $redirect = true; 958a638198SSzymon Olewniczak } 968a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_edit') { 978a638198SSzymon Olewniczak /** @var bez\mdl\Task $task */ 988a638198SSzymon Olewniczak $task = $this->model->taskFactory->get_one($this->get_param('tid'), array('thread' => $thread)); 998a638198SSzymon Olewniczak $this->tpl->set('task', $task); 1008a638198SSzymon Olewniczak 1018a638198SSzymon Olewniczak //save 1028a638198SSzymon Olewniczak if (count($_POST) === 0) { 1038a638198SSzymon Olewniczak $this->tpl->set_values($task->get_assoc()); 1048a638198SSzymon Olewniczak } else { 1058a638198SSzymon Olewniczak $this->model->taskFactory->update_save($task, $_POST); 1068a638198SSzymon Olewniczak 1078a638198SSzymon Olewniczak $anchor = 'z' . $task->id; 1088a638198SSzymon Olewniczak $redirect = true; 1098a638198SSzymon Olewniczak } 1108a638198SSzymon Olewniczak} 1118a638198SSzymon Olewniczak 1128a638198SSzymon Olewniczakif (isset($redirect) && $redirect == true) { 1138a638198SSzymon Olewniczak if (isset($anchor)) { 1148a638198SSzymon Olewniczak $anchor = '#'.$anchor; 1158a638198SSzymon Olewniczak } else { 1168a638198SSzymon Olewniczak $anchor = ''; 1178a638198SSzymon Olewniczak } 1188a638198SSzymon Olewniczak header('Location: ' . $this->url('thread', 'id', $thread->id) . $anchor); 1198a638198SSzymon Olewniczak} 120