xref: /plugin/bez/ctl/task.php (revision 8c9d5139dfb491d4d76393f5da7d48e831694539)
1aa89e6f8SSzymon Olewniczak<?php
2aa89e6f8SSzymon Olewniczak
3aa89e6f8SSzymon Olewniczakif (!isset($nparams['tid'])) {
4aa89e6f8SSzymon Olewniczak    header('Location: ?id=bez:tasks');
5aa89e6f8SSzymon Olewniczak}
6aa89e6f8SSzymon Olewniczak$template['tid'] = $nparams['tid'];
7f2c81100SSzymon Olewniczak$template['action'] = isset($nparams['action']) ? $nparams['action'] : '-default';
8f2c81100SSzymon Olewniczak$template['state'] = isset($nparams['state']) ? $nparams['state'] : '-1';
9aa89e6f8SSzymon Olewniczaktry {
10aa89e6f8SSzymon Olewniczak    $task = $this->model->tasks->get_one($template['tid']);
11aa89e6f8SSzymon Olewniczak    $template['task'] = $task;
12aa89e6f8SSzymon Olewniczak
13aa89e6f8SSzymon Olewniczak
14f2c81100SSzymon Olewniczak    if ($task->cause !== NULL && $task->cause !== '') {
15f2c81100SSzymon Olewniczak        $template['commcause'] = $this->model->commcauses->get_one($task->cause);
16f2c81100SSzymon Olewniczak    }
17aa89e6f8SSzymon Olewniczak
18f2c81100SSzymon Olewniczak    if ($task->issue !== NULL && $task->issue !== '') {
19f2c81100SSzymon Olewniczak        $template['issue'] = $this->model->issues->get_one($task->issue);
20f2c81100SSzymon Olewniczak    }
21f2c81100SSzymon Olewniczak
22f2c81100SSzymon Olewniczak
23f2c81100SSzymon Olewniczak    if ($template['action'] === 'task_change_state') {
24f2c81100SSzymon Olewniczak        if (count($_POST) > 0) {
25aa89e6f8SSzymon Olewniczak            $task->set_state(array(
26aa89e6f8SSzymon Olewniczak                        'state' => $nparams['state'],
27aa89e6f8SSzymon Olewniczak                        'reason' => $_POST['reason'])
28aa89e6f8SSzymon Olewniczak                    );
29aa89e6f8SSzymon Olewniczak            $this->model->tasks->save($task);
30aa89e6f8SSzymon Olewniczak
31f2c81100SSzymon Olewniczak            if (isset($template['issue'])) {
32f2c81100SSzymon Olewniczak                $template['issue']->update_last_activity();
33f2c81100SSzymon Olewniczak                $this->model->issues->save($template['issue']);
34f2c81100SSzymon Olewniczak            }
35aa89e6f8SSzymon Olewniczak
36aa89e6f8SSzymon Olewniczak            $redirect = true;
37f2c81100SSzymon Olewniczak        } else {
38f2c81100SSzymon Olewniczak            $value = $task->get_assoc();
39f2c81100SSzymon Olewniczak        }
40f2c81100SSzymon Olewniczak    } elseif ($template['action'] === 'task_reopen') {
41f2c81100SSzymon Olewniczak        $task->set_state(array('state' => '0'));
42f2c81100SSzymon Olewniczak        $this->model->tasks->save($task);
43f2c81100SSzymon Olewniczak
44f2c81100SSzymon Olewniczak        if (isset($template['issue'])) {
45f2c81100SSzymon Olewniczak            $template['issue']->update_last_activity();
46f2c81100SSzymon Olewniczak            $this->model->issues->save($template['issue']);
47aa89e6f8SSzymon Olewniczak        }
48aa89e6f8SSzymon Olewniczak
49*8c9d5139SSzymon Olewniczak        $notify_users = array();
50*8c9d5139SSzymon Olewniczak        if ($task->reporter !== $this->model->user_nick) {
51*8c9d5139SSzymon Olewniczak            //prevent duplicates
52*8c9d5139SSzymon Olewniczak            $notify_users[$task->reporter] = $task->reporter;
53*8c9d5139SSzymon Olewniczak        }
54*8c9d5139SSzymon Olewniczak        if ($task->executor !== $this->model->user_nick) {
55*8c9d5139SSzymon Olewniczak            //prevent duplicates
56*8c9d5139SSzymon Olewniczak            $notify_users[$task->executor] = $task->executor;
57*8c9d5139SSzymon Olewniczak        }
58*8c9d5139SSzymon Olewniczak
59*8c9d5139SSzymon Olewniczak        $task->mail_notify_add($template['issue'], $notify_users,
60*8c9d5139SSzymon Olewniczak                                array('action' => $bezlang['mail_task_reopened']));
61*8c9d5139SSzymon Olewniczak
62f2c81100SSzymon Olewniczak        $redirect = true;
63f2c81100SSzymon Olewniczak    } elseif($template['action'] === 'task_edit') {
64f2c81100SSzymon Olewniczak        $template['auth_level'] = $task->get_level();
65f2c81100SSzymon Olewniczak
66f2c81100SSzymon Olewniczak        $template['users'] = $this->model->users->get_all();
67f2c81100SSzymon Olewniczak        $template['tasktypes'] = $this->model->tasktypes->get_all();
68f2c81100SSzymon Olewniczak
69f2c81100SSzymon Olewniczak        if (isset($template['issue'])) {
70f2c81100SSzymon Olewniczak            $template['causes'] = $this->model->commcauses->get_all(array(
71f2c81100SSzymon Olewniczak                'issue' => $template['issue']->id,
72f2c81100SSzymon Olewniczak                'type' => array('!=', '0'),
73f2c81100SSzymon Olewniczak            ));
74aa89e6f8SSzymon Olewniczak        }
75aa89e6f8SSzymon Olewniczak
76f2c81100SSzymon Olewniczak        if (count($_POST) > 0) {
77f2c81100SSzymon Olewniczak            //checkboxes
78f2c81100SSzymon Olewniczak            if (!isset($_POST['all_day_event'])) {
79f2c81100SSzymon Olewniczak                $_POST['all_day_event'] = '0';
80f2c81100SSzymon Olewniczak            }
81f2c81100SSzymon Olewniczak            $task->set_data($_POST);
82f2c81100SSzymon Olewniczak            //for reason
83f2c81100SSzymon Olewniczak            $task->set_state($_POST);
84f2c81100SSzymon Olewniczak
85f2c81100SSzymon Olewniczak            $this->model->tasks->save($task);
86f2c81100SSzymon Olewniczak                //~ $bezcache = new Bezcache();
87f2c81100SSzymon Olewniczak                //~ $bezcache->task_toupdate($task->id);
88f2c81100SSzymon Olewniczak
89f2c81100SSzymon Olewniczak            header("Location: ?id=bez:task:tid:".$task->id);
90f2c81100SSzymon Olewniczak        } else {
91f2c81100SSzymon Olewniczak            $value = $task->get_assoc();
92f2c81100SSzymon Olewniczak        }
93f2c81100SSzymon Olewniczak    }
94f2c81100SSzymon Olewniczak
95f2c81100SSzymon Olewniczak    if ($redirect) {
96f2c81100SSzymon Olewniczak        header("Location: ?id=bez:task:tid:".$template['tid']);
97aa89e6f8SSzymon Olewniczak    }
98aa89e6f8SSzymon Olewniczak
9919440e21SSzymon Olewniczak} catch (DBException $e) {
10019440e21SSzymon Olewniczak    echo nl2br($e);
101aa89e6f8SSzymon Olewniczak}
102aa89e6f8SSzymon Olewniczak
103