xref: /plugin/bez/ctl/task.php (revision f2c81100fea44d21a0a4b15304beb7e2baf91080)
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'];
7*f2c81100SSzymon Olewniczak$template['action'] = isset($nparams['action']) ? $nparams['action'] : '-default';
8*f2c81100SSzymon 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
14*f2c81100SSzymon Olewniczak    if ($task->cause !== NULL && $task->cause !== '') {
15*f2c81100SSzymon Olewniczak        $template['commcause'] = $this->model->commcauses->get_one($task->cause);
16*f2c81100SSzymon Olewniczak    }
17aa89e6f8SSzymon Olewniczak
18*f2c81100SSzymon Olewniczak    if ($task->issue !== NULL && $task->issue !== '') {
19*f2c81100SSzymon Olewniczak        $template['issue'] = $this->model->issues->get_one($task->issue);
20*f2c81100SSzymon Olewniczak    }
21*f2c81100SSzymon Olewniczak
22*f2c81100SSzymon Olewniczak
23*f2c81100SSzymon Olewniczak    if ($template['action'] === 'task_change_state') {
24*f2c81100SSzymon 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
31*f2c81100SSzymon Olewniczak            if (isset($template['issue'])) {
32*f2c81100SSzymon Olewniczak                $template['issue']->update_last_activity();
33*f2c81100SSzymon Olewniczak                $this->model->issues->save($template['issue']);
34*f2c81100SSzymon Olewniczak            }
35aa89e6f8SSzymon Olewniczak
36aa89e6f8SSzymon Olewniczak            $redirect = true;
37*f2c81100SSzymon Olewniczak        } else {
38*f2c81100SSzymon Olewniczak            $value = $task->get_assoc();
39*f2c81100SSzymon Olewniczak        }
40*f2c81100SSzymon Olewniczak    } elseif ($template['action'] === 'task_reopen') {
41*f2c81100SSzymon Olewniczak        $task->set_state(array('state' => '0'));
42*f2c81100SSzymon Olewniczak        $this->model->tasks->save($task);
43*f2c81100SSzymon Olewniczak
44*f2c81100SSzymon Olewniczak        if (isset($template['issue'])) {
45*f2c81100SSzymon Olewniczak            $template['issue']->update_last_activity();
46*f2c81100SSzymon Olewniczak            $this->model->issues->save($template['issue']);
47aa89e6f8SSzymon Olewniczak        }
48aa89e6f8SSzymon Olewniczak
49*f2c81100SSzymon Olewniczak        $redirect = true;
50*f2c81100SSzymon Olewniczak    } elseif($template['action'] === 'task_edit') {
51*f2c81100SSzymon Olewniczak        $template['auth_level'] = $task->get_level();
52*f2c81100SSzymon Olewniczak
53*f2c81100SSzymon Olewniczak        $template['users'] = $this->model->users->get_all();
54*f2c81100SSzymon Olewniczak        $template['tasktypes'] = $this->model->tasktypes->get_all();
55*f2c81100SSzymon Olewniczak
56*f2c81100SSzymon Olewniczak        if (isset($template['issue'])) {
57*f2c81100SSzymon Olewniczak            $template['causes'] = $this->model->commcauses->get_all(array(
58*f2c81100SSzymon Olewniczak                'issue' => $template['issue']->id,
59*f2c81100SSzymon Olewniczak                'type' => array('!=', '0'),
60*f2c81100SSzymon Olewniczak            ));
61aa89e6f8SSzymon Olewniczak        }
62aa89e6f8SSzymon Olewniczak
63*f2c81100SSzymon Olewniczak        if (count($_POST) > 0) {
64*f2c81100SSzymon Olewniczak            //checkboxes
65*f2c81100SSzymon Olewniczak            if (!isset($_POST['all_day_event'])) {
66*f2c81100SSzymon Olewniczak                $_POST['all_day_event'] = '0';
67*f2c81100SSzymon Olewniczak            }
68*f2c81100SSzymon Olewniczak            $task->set_data($_POST);
69*f2c81100SSzymon Olewniczak            //for reason
70*f2c81100SSzymon Olewniczak            $task->set_state($_POST);
71*f2c81100SSzymon Olewniczak
72*f2c81100SSzymon Olewniczak            $this->model->tasks->save($task);
73*f2c81100SSzymon Olewniczak                //~ $bezcache = new Bezcache();
74*f2c81100SSzymon Olewniczak                //~ $bezcache->task_toupdate($task->id);
75*f2c81100SSzymon Olewniczak
76*f2c81100SSzymon Olewniczak            header("Location: ?id=bez:task:tid:".$task->id);
77*f2c81100SSzymon Olewniczak        } else {
78*f2c81100SSzymon Olewniczak            $value = $task->get_assoc();
79*f2c81100SSzymon Olewniczak        }
80*f2c81100SSzymon Olewniczak    }
81*f2c81100SSzymon Olewniczak
82*f2c81100SSzymon Olewniczak    if ($redirect) {
83*f2c81100SSzymon Olewniczak        header("Location: ?id=bez:task:tid:".$template['tid']);
84aa89e6f8SSzymon Olewniczak    }
85aa89e6f8SSzymon Olewniczak
86aa89e6f8SSzymon Olewniczak} catch (Exception $e) {
87*f2c81100SSzymon Olewniczak    echo $e;
88*f2c81100SSzymon Olewniczak//    header('Location: ?id=bez:tasks');
89aa89e6f8SSzymon Olewniczak}
90aa89e6f8SSzymon Olewniczak
91