xref: /plugin/bez/ctl/task.php (revision ef159648ef3ff6e0d9504925f53e30d9aa2bbff5)
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) {
25*ef159648SSzymon Olewniczak            if (isset($_POST['no_evaluation'])) {
26*ef159648SSzymon Olewniczak                $_POST['reason'] = '';
27*ef159648SSzymon Olewniczak            }
28*ef159648SSzymon Olewniczak
29aa89e6f8SSzymon Olewniczak            $task->set_state(array(
30aa89e6f8SSzymon Olewniczak                        'state' => $nparams['state'],
31aa89e6f8SSzymon Olewniczak                        'reason' => $_POST['reason'])
32aa89e6f8SSzymon Olewniczak                    );
33aa89e6f8SSzymon Olewniczak            $this->model->tasks->save($task);
34aa89e6f8SSzymon Olewniczak
35f2c81100SSzymon Olewniczak            if (isset($template['issue'])) {
36f2c81100SSzymon Olewniczak                $template['issue']->update_last_activity();
37f2c81100SSzymon Olewniczak                $this->model->issues->save($template['issue']);
38f2c81100SSzymon Olewniczak            }
39aa89e6f8SSzymon Olewniczak
40aa89e6f8SSzymon Olewniczak            $redirect = true;
41f2c81100SSzymon Olewniczak        } else {
42f2c81100SSzymon Olewniczak            $value = $task->get_assoc();
43f2c81100SSzymon Olewniczak        }
44f2c81100SSzymon Olewniczak    } elseif ($template['action'] === 'task_reopen') {
45f2c81100SSzymon Olewniczak        $task->set_state(array('state' => '0'));
46f2c81100SSzymon Olewniczak        $this->model->tasks->save($task);
47f2c81100SSzymon Olewniczak
48f2c81100SSzymon Olewniczak        if (isset($template['issue'])) {
49f2c81100SSzymon Olewniczak            $template['issue']->update_last_activity();
50f2c81100SSzymon Olewniczak            $this->model->issues->save($template['issue']);
51aa89e6f8SSzymon Olewniczak        }
52aa89e6f8SSzymon Olewniczak
538c9d5139SSzymon Olewniczak        $notify_users = array();
548c9d5139SSzymon Olewniczak        if ($task->reporter !== $this->model->user_nick) {
558c9d5139SSzymon Olewniczak            //prevent duplicates
568c9d5139SSzymon Olewniczak            $notify_users[$task->reporter] = $task->reporter;
578c9d5139SSzymon Olewniczak        }
588c9d5139SSzymon Olewniczak        if ($task->executor !== $this->model->user_nick) {
598c9d5139SSzymon Olewniczak            //prevent duplicates
608c9d5139SSzymon Olewniczak            $notify_users[$task->executor] = $task->executor;
618c9d5139SSzymon Olewniczak        }
628c9d5139SSzymon Olewniczak
638c9d5139SSzymon Olewniczak        $task->mail_notify_add($template['issue'], $notify_users,
648c9d5139SSzymon Olewniczak                                array('action' => $bezlang['mail_task_reopened']));
658c9d5139SSzymon Olewniczak
66f2c81100SSzymon Olewniczak        $redirect = true;
67f2c81100SSzymon Olewniczak    } elseif($template['action'] === 'task_edit') {
68f2c81100SSzymon Olewniczak        $template['auth_level'] = $task->get_level();
69f2c81100SSzymon Olewniczak
70f2c81100SSzymon Olewniczak        $template['users'] = $this->model->users->get_all();
71f2c81100SSzymon Olewniczak        $template['tasktypes'] = $this->model->tasktypes->get_all();
72f2c81100SSzymon Olewniczak
73f2c81100SSzymon Olewniczak        if (isset($template['issue'])) {
74f2c81100SSzymon Olewniczak            $template['causes'] = $this->model->commcauses->get_all(array(
75f2c81100SSzymon Olewniczak                'issue' => $template['issue']->id,
76f2c81100SSzymon Olewniczak                'type' => array('!=', '0'),
77f2c81100SSzymon Olewniczak            ));
78aa89e6f8SSzymon Olewniczak        }
79aa89e6f8SSzymon Olewniczak
80f2c81100SSzymon Olewniczak        if (count($_POST) > 0) {
81f2c81100SSzymon Olewniczak            //checkboxes
82f2c81100SSzymon Olewniczak            if (!isset($_POST['all_day_event'])) {
83f2c81100SSzymon Olewniczak                $_POST['all_day_event'] = '0';
84f2c81100SSzymon Olewniczak            }
85f2c81100SSzymon Olewniczak            $task->set_data($_POST);
86f2c81100SSzymon Olewniczak            //for reason
87f2c81100SSzymon Olewniczak            $task->set_state($_POST);
88f2c81100SSzymon Olewniczak
89f2c81100SSzymon Olewniczak            $this->model->tasks->save($task);
90f2c81100SSzymon Olewniczak                //~ $bezcache = new Bezcache();
91f2c81100SSzymon Olewniczak                //~ $bezcache->task_toupdate($task->id);
92f2c81100SSzymon Olewniczak
93f2c81100SSzymon Olewniczak            header("Location: ?id=bez:task:tid:".$task->id);
94f2c81100SSzymon Olewniczak        } else {
95f2c81100SSzymon Olewniczak            $value = $task->get_assoc();
96f2c81100SSzymon Olewniczak        }
97f2c81100SSzymon Olewniczak    }
98f2c81100SSzymon Olewniczak
99f2c81100SSzymon Olewniczak    if ($redirect) {
100f2c81100SSzymon Olewniczak        header("Location: ?id=bez:task:tid:".$template['tid']);
101aa89e6f8SSzymon Olewniczak    }
102aa89e6f8SSzymon Olewniczak
10319440e21SSzymon Olewniczak} catch (DBException $e) {
10419440e21SSzymon Olewniczak    echo nl2br($e);
105aa89e6f8SSzymon Olewniczak}
106aa89e6f8SSzymon Olewniczak
107