xref: /plugin/bez/ctl/thread_report.php (revision 7fbf4c3966fc9b63e77e3ef6f091279dbce0d34f)
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());