1de02284cSSzymon Olewniczak<?php 2de02284cSSzymon Olewniczak 3de02284cSSzymon Olewniczakuse \dokuwiki\plugin\bez; 4de02284cSSzymon Olewniczak 5de02284cSSzymon Olewniczakif ($this->model->acl->get_level() < BEZ_AUTH_USER) { 6de02284cSSzymon Olewniczak throw new bez\meta\PermissionDeniedException(); 7de02284cSSzymon Olewniczak} 8de02284cSSzymon Olewniczak 9de02284cSSzymon Olewniczak 10*7fbf4c39SSzymon Olewniczak$thread_id = $this->get_param('id'); 11*7fbf4c39SSzymon Olewniczakif ($thread_id != '') { 12de02284cSSzymon Olewniczak /** @var \dokuwiki\plugin\bez\mdl\Thread $thread */ 13de02284cSSzymon Olewniczak $thread = $this->model->threadFactory->get_one($thread_id); 14*7fbf4c39SSzymon Olewniczak $this->tpl->set('thread', $thread); 15de02284cSSzymon Olewniczak} 16de02284cSSzymon Olewniczak//else { 17de02284cSSzymon Olewniczak //$template['thread'] = $this->model->issues->create_dummy_object(); 18de02284cSSzymon Olewniczak //$template['priority'] = 'None'; 19de02284cSSzymon Olewniczak//} 20de02284cSSzymon Olewniczak 21de02284cSSzymon Olewniczak//$action = ''; 22de02284cSSzymon Olewniczak//if (isset($nparams['action'])) { 23de02284cSSzymon Olewniczak// $action = $nparams['action']; 24de02284cSSzymon Olewniczak//} 25de02284cSSzymon Olewniczak 26fe5d6d1eSSzymon Olewniczak//try { 27fe5d6d1eSSzymon Olewniczakif ($this->get_param('action') == 'edit') { 28de02284cSSzymon Olewniczak if (!isset($thread)) { 29de02284cSSzymon Olewniczak throw new Exception('there is now row with given id'); 30de02284cSSzymon Olewniczak } 31de02284cSSzymon Olewniczak //$template['form_action'] = 'update'; 32de02284cSSzymon Olewniczak //$value = $thread->get_assoc(); 33de02284cSSzymon Olewniczak $this->tpl->set_values($thread->get_assoc()); 34fe5d6d1eSSzymon Olewniczak} elseif ($this->get_param('action') == 'update') { 35de02284cSSzymon Olewniczak //$template['form_action'] = 'update'; 36de02284cSSzymon Olewniczak 37*7fbf4c39SSzymon Olewniczak// $prev_coordiantor = $thread->coordinator; 38de02284cSSzymon Olewniczak 39*7fbf4c39SSzymon Olewniczak //$thread->set_data($_POST); 40*7fbf4c39SSzymon Olewniczak $this->model->threadFactory->update_save($thread, $_POST); 41de02284cSSzymon Olewniczak 42*7fbf4c39SSzymon Olewniczak 43*7fbf4c39SSzymon Olewniczak// $thread->add_participant($thread->coordinator); 44de02284cSSzymon Olewniczak 45de02284cSSzymon Olewniczak //save to get ID!!! 46*7fbf4c39SSzymon Olewniczak// $this->model->threadFactory->save($thread); 47*7fbf4c39SSzymon Olewniczak// 48*7fbf4c39SSzymon Olewniczak// if ($thread->coordinator !== '-proposal' && 49*7fbf4c39SSzymon Olewniczak// $INFO['client'] !== $thread->coordinator && 50*7fbf4c39SSzymon Olewniczak// $thread->coordinator != $prev_coordiantor) { 51*7fbf4c39SSzymon Olewniczak// //coordinator becomes subscribent automaticly 52*7fbf4c39SSzymon Olewniczak// $thread->add_subscribent($thread->coordinator); 53*7fbf4c39SSzymon Olewniczak// $this->model->threadFactory->save($thread); 54*7fbf4c39SSzymon Olewniczak// 55*7fbf4c39SSzymon Olewniczak// $thread->mail_inform_coordinator(); 56*7fbf4c39SSzymon Olewniczak// } 57de02284cSSzymon Olewniczak 58de02284cSSzymon Olewniczak header('Location: ?id='.$this->id('thread', 'id', $thread->id)); 59fe5d6d1eSSzymon Olewniczak} elseif ($this->get_param('action') == 'add') { 60de02284cSSzymon Olewniczak //$template['form_action'] = 'add'; 61de02284cSSzymon Olewniczak 62de02284cSSzymon Olewniczak $defaults = array(); 63de02284cSSzymon Olewniczak if ($this->model->acl->get_level() >= BEZ_AUTH_LEADER) { 64de02284cSSzymon Olewniczak $defaults['coordinator'] = $_POST['coordinator']; 65de02284cSSzymon Olewniczak } 66*7fbf4c39SSzymon Olewniczak unset($_POST['coordinator']); 67de02284cSSzymon Olewniczak $thread = $this->model->threadFactory->create_object($defaults); 68de02284cSSzymon Olewniczak 69*7fbf4c39SSzymon Olewniczak// $data = array( 70*7fbf4c39SSzymon Olewniczak//// 'type' => $_POST['type'], 71*7fbf4c39SSzymon Olewniczak// 'title' => $_POST['title'], 72*7fbf4c39SSzymon Olewniczak// 'content' => $_POST['content'] 73*7fbf4c39SSzymon Olewniczak// ); 74*7fbf4c39SSzymon Olewniczak //$thread->set_data($data); 75*7fbf4c39SSzymon Olewniczak $this->model->threadFactory->initial_save($thread, $_POST); 76de02284cSSzymon Olewniczak 77de02284cSSzymon Olewniczak// if ($thread->coordinator !== '-proposal' && 78de02284cSSzymon Olewniczak// $INFO['client'] !== $thread->coordinator) { 79de02284cSSzymon Olewniczak// //coordinator becomes subscribent automaticly 80de02284cSSzymon Olewniczak// $thread->add_subscribent($issue->coordinator); 81de02284cSSzymon Olewniczak// $this->model->issues->save($thread); 82de02284cSSzymon Olewniczak// 83de02284cSSzymon Olewniczak// $thread->mail_inform_coordinator(); 84de02284cSSzymon Olewniczak// } 85de02284cSSzymon Olewniczak 86de02284cSSzymon Olewniczak 87de02284cSSzymon Olewniczak header('Location: ?id='.$this->id('thread', 'id', $thread->id)); 88de02284cSSzymon Olewniczak 89de02284cSSzymon Olewniczak} 90de02284cSSzymon Olewniczak// else { 91de02284cSSzymon Olewniczak// $template['form_action'] = 'add'; 92de02284cSSzymon Olewniczak// } 93de02284cSSzymon Olewniczak 94fe5d6d1eSSzymon Olewniczak//} catch (bez\meta\ValidationException $e) { 95fe5d6d1eSSzymon Olewniczak// $errors = $e->get_errors(); 96fe5d6d1eSSzymon Olewniczak// $value = $_POST; 97fe5d6d1eSSzymon Olewniczak//} 98de02284cSSzymon Olewniczak 99de02284cSSzymon Olewniczak//$template['issuetypes'] = $this->model->issuetypes->get_all(); 100de02284cSSzymon Olewniczak$this->tpl->set('labels', $this->model->labelFactory->get_all());