xref: /plugin/bez/ctl/task.php (revision 04f149d41a7c6906705e80eaa0bcf17c6364c10e)
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
13*04f149d4SSzymon Olewniczak    if ($task->issue == '') {
14*04f149d4SSzymon Olewniczak        //remove userts that are subscribents already
15*04f149d4SSzymon Olewniczak        $template['users_to_invite'] = array_diff_key($this->model->users->get_all(), $task->get_subscribents());
16*04f149d4SSzymon Olewniczak    }
17*04f149d4SSzymon Olewniczak
18aa89e6f8SSzymon Olewniczak
19f2c81100SSzymon Olewniczak    if ($task->cause !== NULL && $task->cause !== '') {
20f2c81100SSzymon Olewniczak        $template['commcause'] = $this->model->commcauses->get_one($task->cause);
21f2c81100SSzymon Olewniczak    }
22aa89e6f8SSzymon Olewniczak
23f2c81100SSzymon Olewniczak    if ($task->issue !== NULL && $task->issue !== '') {
24f2c81100SSzymon Olewniczak        $template['issue'] = $this->model->issues->get_one($task->issue);
25f2c81100SSzymon Olewniczak    }
26f2c81100SSzymon Olewniczak
27f2c81100SSzymon Olewniczak
28f2c81100SSzymon Olewniczak    if ($template['action'] === 'task_change_state') {
29f2c81100SSzymon Olewniczak        if (count($_POST) > 0) {
30ef159648SSzymon Olewniczak            if (isset($_POST['no_evaluation'])) {
31ef159648SSzymon Olewniczak                $_POST['reason'] = '';
32ef159648SSzymon Olewniczak            }
33ef159648SSzymon Olewniczak
34aa89e6f8SSzymon Olewniczak            $task->set_state(array(
35aa89e6f8SSzymon Olewniczak                        'state' => $nparams['state'],
36aa89e6f8SSzymon Olewniczak                        'reason' => $_POST['reason'])
37aa89e6f8SSzymon Olewniczak                    );
38aa89e6f8SSzymon Olewniczak            $this->model->tasks->save($task);
39aa89e6f8SSzymon Olewniczak
40f2c81100SSzymon Olewniczak            if (isset($template['issue'])) {
41f2c81100SSzymon Olewniczak                $template['issue']->update_last_activity();
42f2c81100SSzymon Olewniczak                $this->model->issues->save($template['issue']);
43f2c81100SSzymon Olewniczak            }
44aa89e6f8SSzymon Olewniczak
45*04f149d4SSzymon Olewniczak            $task->mail_notify_subscribents($template['issue'],
46*04f149d4SSzymon Olewniczak                        array('action' => $bezlang['mail_task_change_state']));
47*04f149d4SSzymon Olewniczak
48aa89e6f8SSzymon Olewniczak            $redirect = true;
49f2c81100SSzymon Olewniczak        } else {
50f2c81100SSzymon Olewniczak            $value = $task->get_assoc();
51f2c81100SSzymon Olewniczak        }
52f2c81100SSzymon Olewniczak    } elseif ($template['action'] === 'task_reopen') {
53f2c81100SSzymon Olewniczak        $task->set_state(array('state' => '0'));
54f2c81100SSzymon Olewniczak        $this->model->tasks->save($task);
55f2c81100SSzymon Olewniczak
56f2c81100SSzymon Olewniczak        if (isset($template['issue'])) {
57f2c81100SSzymon Olewniczak            $template['issue']->update_last_activity();
58f2c81100SSzymon Olewniczak            $this->model->issues->save($template['issue']);
59aa89e6f8SSzymon Olewniczak        }
60aa89e6f8SSzymon Olewniczak
61*04f149d4SSzymon Olewniczak        $task->mail_notify_subscribents($template['issue'],
628c9d5139SSzymon Olewniczak                        array('action' => $bezlang['mail_task_reopened']));
638c9d5139SSzymon Olewniczak
64*04f149d4SSzymon Olewniczak
65f2c81100SSzymon Olewniczak        $redirect = true;
66f2c81100SSzymon Olewniczak    } elseif($template['action'] === 'task_edit') {
67f2c81100SSzymon Olewniczak
68f2c81100SSzymon Olewniczak        $template['users'] = $this->model->users->get_all();
69f2c81100SSzymon Olewniczak        $template['tasktypes'] = $this->model->tasktypes->get_all();
70f2c81100SSzymon Olewniczak
71f2c81100SSzymon Olewniczak        if (isset($template['issue'])) {
72f2c81100SSzymon Olewniczak            $template['causes'] = $this->model->commcauses->get_all(array(
73f2c81100SSzymon Olewniczak                'issue' => $template['issue']->id,
74f2c81100SSzymon Olewniczak                'type' => array('!=', '0'),
75f2c81100SSzymon Olewniczak            ));
76aa89e6f8SSzymon Olewniczak        }
77aa89e6f8SSzymon Olewniczak
78f2c81100SSzymon Olewniczak        if (count($_POST) > 0) {
79f2c81100SSzymon Olewniczak            //checkboxes
80f2c81100SSzymon Olewniczak            if (!isset($_POST['all_day_event'])) {
81f2c81100SSzymon Olewniczak                $_POST['all_day_event'] = '0';
82f2c81100SSzymon Olewniczak            }
83f2c81100SSzymon Olewniczak            $task->set_data($_POST);
84f2c81100SSzymon Olewniczak            //for reason
856271e095SSzymon Olewniczak            //$task->set_state($_POST);
86f2c81100SSzymon Olewniczak
87f2c81100SSzymon Olewniczak            $this->model->tasks->save($task);
88f2c81100SSzymon Olewniczak
89*04f149d4SSzymon Olewniczak            $redirect = true;
90f2c81100SSzymon Olewniczak        } else {
91f2c81100SSzymon Olewniczak            $value = $task->get_assoc();
92f2c81100SSzymon Olewniczak        }
93c45b82bdSSzymon Olewniczak
94*04f149d4SSzymon Olewniczak    } elseif ($template['action'] === 'subscribe') {
95*04f149d4SSzymon Olewniczak			$task->add_subscribent($INFO['client']);
96*04f149d4SSzymon Olewniczak			$this->model->tasks->save($task);
97*04f149d4SSzymon Olewniczak
98*04f149d4SSzymon Olewniczak            header("Location: ?id=bez:task:tid:".$task->id);
99*04f149d4SSzymon Olewniczak
100*04f149d4SSzymon Olewniczak    } elseif ($template['action'] === 'unsubscribe') {
101*04f149d4SSzymon Olewniczak			$task->remove_subscribent($INFO['client']);
102*04f149d4SSzymon Olewniczak			$this->model->tasks->save($task);
103*04f149d4SSzymon Olewniczak
104*04f149d4SSzymon Olewniczak            $this->add_notification($bezlang['unsubscribed_task_com']);
105*04f149d4SSzymon Olewniczak
106*04f149d4SSzymon Olewniczak            $redirect = true;
107*04f149d4SSzymon Olewniczak
108*04f149d4SSzymon Olewniczak    } elseif ($template['action'] === 'invite') {
109*04f149d4SSzymon Olewniczak            $client = $_POST['client'];
110*04f149d4SSzymon Olewniczak
111*04f149d4SSzymon Olewniczak			$state = $task->add_subscribent($client);
112*04f149d4SSzymon Olewniczak            //user wasn't subscribent
113*04f149d4SSzymon Olewniczak            if ($state === true) {
114*04f149d4SSzymon Olewniczak                $this->model->tasks->save($task);
115*04f149d4SSzymon Olewniczak                $task->mail_notify_invite($client);
116*04f149d4SSzymon Olewniczak
117*04f149d4SSzymon Olewniczak                $this->add_notification($this->model->users->get_user_email($client), $bezlang['invitation_has_been_send']);
118*04f149d4SSzymon Olewniczak
119*04f149d4SSzymon Olewniczak                $redirect = true;
120*04f149d4SSzymon Olewniczak            }
121*04f149d4SSzymon Olewniczak
122c45b82bdSSzymon Olewniczak    } elseif($template['action'] === 'task_edit_metadata') {
123c45b82bdSSzymon Olewniczak        $template['users'] = $this->model->users->get_all();
124c45b82bdSSzymon Olewniczak
125c45b82bdSSzymon Olewniczak        if (count($_POST) > 0) {
126c45b82bdSSzymon Olewniczak            $task->set_meta($_POST);
127c45b82bdSSzymon Olewniczak            $this->model->tasks->save($task);
128c45b82bdSSzymon Olewniczak
129*04f149d4SSzymon Olewniczak            $redirect = true;
130c45b82bdSSzymon Olewniczak        } else {
131c45b82bdSSzymon Olewniczak            $value = $task->get_assoc();
132c45b82bdSSzymon Olewniczak            $value['date'] = date('Y-m-d', (int)$value['date']);
133c45b82bdSSzymon Olewniczak            $value['close_date'] = date('Y-m-d', (int)$value['close_date']);
134c45b82bdSSzymon Olewniczak        }
135f2c81100SSzymon Olewniczak    }
136f2c81100SSzymon Olewniczak
137f2c81100SSzymon Olewniczak    if ($redirect) {
138f2c81100SSzymon Olewniczak        header("Location: ?id=bez:task:tid:".$template['tid']);
139aa89e6f8SSzymon Olewniczak    }
1406271e095SSzymon Olewniczak} catch (ValidationException $e) {
1416271e095SSzymon Olewniczak	$errors = $e->get_errors();
1426271e095SSzymon Olewniczak	$value = $_POST;
14319440e21SSzymon Olewniczak} catch (DBException $e) {
14419440e21SSzymon Olewniczak    echo nl2br($e);
145aa89e6f8SSzymon Olewniczak}
146aa89e6f8SSzymon Olewniczak
147