xref: /plugin/bez/ctl/task.php (revision 19440e21319165aa878257648b2a4f0ff41928f1)
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
49f2c81100SSzymon Olewniczak        $redirect = true;
50f2c81100SSzymon Olewniczak    } elseif($template['action'] === 'task_edit') {
51f2c81100SSzymon Olewniczak        $template['auth_level'] = $task->get_level();
52f2c81100SSzymon Olewniczak
53f2c81100SSzymon Olewniczak        $template['users'] = $this->model->users->get_all();
54f2c81100SSzymon Olewniczak        $template['tasktypes'] = $this->model->tasktypes->get_all();
55f2c81100SSzymon Olewniczak
56f2c81100SSzymon Olewniczak        if (isset($template['issue'])) {
57f2c81100SSzymon Olewniczak            $template['causes'] = $this->model->commcauses->get_all(array(
58f2c81100SSzymon Olewniczak                'issue' => $template['issue']->id,
59f2c81100SSzymon Olewniczak                'type' => array('!=', '0'),
60f2c81100SSzymon Olewniczak            ));
61aa89e6f8SSzymon Olewniczak        }
62aa89e6f8SSzymon Olewniczak
63f2c81100SSzymon Olewniczak        if (count($_POST) > 0) {
64f2c81100SSzymon Olewniczak            //checkboxes
65f2c81100SSzymon Olewniczak            if (!isset($_POST['all_day_event'])) {
66f2c81100SSzymon Olewniczak                $_POST['all_day_event'] = '0';
67f2c81100SSzymon Olewniczak            }
68f2c81100SSzymon Olewniczak            $task->set_data($_POST);
69f2c81100SSzymon Olewniczak            //for reason
70f2c81100SSzymon Olewniczak            $task->set_state($_POST);
71f2c81100SSzymon Olewniczak
72f2c81100SSzymon Olewniczak            $this->model->tasks->save($task);
73f2c81100SSzymon Olewniczak                //~ $bezcache = new Bezcache();
74f2c81100SSzymon Olewniczak                //~ $bezcache->task_toupdate($task->id);
75f2c81100SSzymon Olewniczak
76f2c81100SSzymon Olewniczak            header("Location: ?id=bez:task:tid:".$task->id);
77f2c81100SSzymon Olewniczak        } else {
78f2c81100SSzymon Olewniczak            $value = $task->get_assoc();
79f2c81100SSzymon Olewniczak        }
80f2c81100SSzymon Olewniczak    }
81f2c81100SSzymon Olewniczak
82f2c81100SSzymon Olewniczak    if ($redirect) {
83f2c81100SSzymon Olewniczak        header("Location: ?id=bez:task:tid:".$template['tid']);
84aa89e6f8SSzymon Olewniczak    }
85aa89e6f8SSzymon Olewniczak
86*19440e21SSzymon Olewniczak} catch (DBException $e) {
87*19440e21SSzymon Olewniczak    echo nl2br($e);
88aa89e6f8SSzymon Olewniczak}
89aa89e6f8SSzymon Olewniczak
90