xref: /plugin/bez/ctl/thread.php (revision 8a6381983135ed7de69b33e64aa0c1b16dbf69b0)
1fe5d6d1eSSzymon Olewniczak<?php
2*8a638198SSzymon Olewniczak/** @var action_plugin_bez_default $this */
3fe5d6d1eSSzymon Olewniczak
4fe5d6d1eSSzymon Olewniczakuse \dokuwiki\plugin\bez;
5fe5d6d1eSSzymon Olewniczak
6fe5d6d1eSSzymon Olewniczakif ($this->get_param('id') == '') {
7*8a638198SSzymon Olewniczak    header('Location: ' . $this->url('threads'));
8fe5d6d1eSSzymon Olewniczak}
9fe5d6d1eSSzymon Olewniczak
10*8a638198SSzymon Olewniczak/** @var bez\mdl\Thread $thread */
11fe5d6d1eSSzymon Olewniczak$thread = $this->model->threadFactory->get_one($this->get_param('id'));
127fbf4c39SSzymon Olewniczak$this->tpl->set('thread', $thread);
137fbf4c39SSzymon Olewniczak$this->tpl->set('corrections', array());
14*8a638198SSzymon Olewniczak$this->tpl->set('thread_comments', $this->model->thread_commentFactory->get_from_thread($thread));
15*8a638198SSzymon Olewniczak$this->tpl->set('corrections', $this->model->taskFactory->get_all(array('thread_id' => $thread->id,
16*8a638198SSzymon Olewniczak                                                                      'type' => 'correction')));
17*8a638198SSzymon Olewniczak
18*8a638198SSzymon Olewniczak
19*8a638198SSzymon Olewniczakif ($this->get_param('action') == 'commcause_add') {
20*8a638198SSzymon Olewniczak
21*8a638198SSzymon Olewniczak    /** @var bez\mdl\Thread_comment $thread_comment */
22*8a638198SSzymon Olewniczak    $thread_comment = $this->model->thread_commentFactory->create_object(array('thread' => $thread));
23*8a638198SSzymon Olewniczak    $this->model->thread_commentFactory->initial_save($thread_comment, $_POST);
24*8a638198SSzymon Olewniczak
25*8a638198SSzymon Olewniczak    $anchor = 'k'.$thread_comment->id;
26*8a638198SSzymon Olewniczak    $redirect = true;
27*8a638198SSzymon Olewniczak
28*8a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'subscribe') {
29*8a638198SSzymon Olewniczak
30*8a638198SSzymon Olewniczak    $thread->set_participant_flags($this->model->user_nick, array('subscribent'));
31*8a638198SSzymon Olewniczak    $redirect = true;
32*8a638198SSzymon Olewniczak
33*8a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'unsubscribe') {
34*8a638198SSzymon Olewniczak
35*8a638198SSzymon Olewniczak    $thread->remove_participant_flags($this->model->user_nick, array('subscribent'));
36*8a638198SSzymon Olewniczak    $this->add_notification($this->getLang('unsubscribed_com'));
37*8a638198SSzymon Olewniczak    $redirect = true;
38*8a638198SSzymon Olewniczak
39*8a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'invite') {
40*8a638198SSzymon Olewniczak    $client = $_POST['client'];
41*8a638198SSzymon Olewniczak
42*8a638198SSzymon Olewniczak    $thread->set_participant_flags($client, array('subscribent'));
43*8a638198SSzymon Olewniczak    $thread->mail_notify_invite($client);
44*8a638198SSzymon Olewniczak    $this->add_notification($this->model->userFactory->get_user_email($client), $this->getLang('invitation_has_been_send'));
45*8a638198SSzymon Olewniczak
46*8a638198SSzymon Olewniczak    $redirect = true;
47*8a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'commcause_delete') {
48*8a638198SSzymon Olewniczak    /** @var bez\mdl\Thread_comment $thread_comment */
49*8a638198SSzymon Olewniczak    $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread));
50*8a638198SSzymon Olewniczak    $this->model->thread_commentFactory->delete($thread_comment);
51*8a638198SSzymon Olewniczak
52*8a638198SSzymon Olewniczak    $redirect = true;
53*8a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'commcause_edit') {
54*8a638198SSzymon Olewniczak    /** @var bez\mdl\Thread_comment $thread_comment */
55*8a638198SSzymon Olewniczak    $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread));
56*8a638198SSzymon Olewniczak
57*8a638198SSzymon Olewniczak    if(count($_POST) === 0) {
58*8a638198SSzymon Olewniczak        $this->tpl->set_values($thread_comment->get_assoc());
59*8a638198SSzymon Olewniczak    } else {
60*8a638198SSzymon Olewniczak        $this->model->thread_commentFactory->update_save($thread_comment, $_POST);
61*8a638198SSzymon Olewniczak
62*8a638198SSzymon Olewniczak        $anchor   = 'k' . $thread_comment->id;
63*8a638198SSzymon Olewniczak        $redirect = true;
64*8a638198SSzymon Olewniczak    }
65*8a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_correction_add') {
66*8a638198SSzymon Olewniczak    /** @var bez\mdl\Task $task */
67*8a638198SSzymon Olewniczak    $task = $this->model->taskFactory->create_object(array('thread' => $thread));
68*8a638198SSzymon Olewniczak    $this->tpl->set('task', $task);
69*8a638198SSzymon Olewniczak
70*8a638198SSzymon Olewniczak    //save
71*8a638198SSzymon Olewniczak    if (count($_POST) > 0) {
72*8a638198SSzymon Olewniczak        $this->model->taskFactory->initial_save($task, $_POST);
73*8a638198SSzymon Olewniczak
74*8a638198SSzymon Olewniczak        $anchor   = 'z' . $task->id;
75*8a638198SSzymon Olewniczak        $redirect = true;
76*8a638198SSzymon Olewniczak    }
77*8a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_edit') {
78*8a638198SSzymon Olewniczak    /** @var bez\mdl\Task $task */
79*8a638198SSzymon Olewniczak    $task = $this->model->taskFactory->get_one($this->get_param('tid'), array('thread' => $thread));
80*8a638198SSzymon Olewniczak    $this->tpl->set('task', $task);
81*8a638198SSzymon Olewniczak
82*8a638198SSzymon Olewniczak    //save
83*8a638198SSzymon Olewniczak    if (count($_POST) === 0) {
84*8a638198SSzymon Olewniczak        $this->tpl->set_values($task->get_assoc());
85*8a638198SSzymon Olewniczak    } else {
86*8a638198SSzymon Olewniczak        $this->model->taskFactory->update_save($task, $_POST);
87*8a638198SSzymon Olewniczak
88*8a638198SSzymon Olewniczak        $anchor   = 'z' . $task->id;
89*8a638198SSzymon Olewniczak        $redirect = true;
90*8a638198SSzymon Olewniczak    }
91*8a638198SSzymon Olewniczak}
92*8a638198SSzymon Olewniczak
93*8a638198SSzymon Olewniczakif (isset($redirect) && $redirect == true) {
94*8a638198SSzymon Olewniczak    if (isset($anchor)) {
95*8a638198SSzymon Olewniczak        $anchor = '#'.$anchor;
96*8a638198SSzymon Olewniczak    } else {
97*8a638198SSzymon Olewniczak        $anchor = '';
98*8a638198SSzymon Olewniczak    }
99*8a638198SSzymon Olewniczak    header('Location: ' . $this->url('thread', 'id', $thread->id) . $anchor);
100*8a638198SSzymon Olewniczak}
101*8a638198SSzymon Olewniczak
102fe5d6d1eSSzymon Olewniczak
103fe5d6d1eSSzymon Olewniczak
104fe5d6d1eSSzymon Olewniczak//    $template['tid'] = isset($nparams['tid']) ? $nparams['tid'] : '-1';
105fe5d6d1eSSzymon Olewniczak//    $template['kid'] = isset($nparams['kid']) ? $nparams['kid'] : '-1';
106fe5d6d1eSSzymon Olewniczak//    $template['state'] = isset($nparams['state']) ? $nparams['state'] : '-1';
107fe5d6d1eSSzymon Olewniczak//    $template['action'] = isset($nparams['action']) ? $nparams['action'] : '-default';
108fe5d6d1eSSzymon Olewniczak
1097fbf4c39SSzymon Olewniczak//    $template['issue'] = $issue;
1107fbf4c39SSzymon Olewniczak//    $template['commcauses'] = $this->model->commcauses->get_all(
1117fbf4c39SSzymon Olewniczak//        array('issue' => $issue_id)
1127fbf4c39SSzymon Olewniczak//    );
1137fbf4c39SSzymon Olewniczak//
1147fbf4c39SSzymon Olewniczak//    $template['commcause'] = $this->model->commcauses->
1157fbf4c39SSzymon Olewniczak//                            create_dummy_object(array('issue' => $issue->id));
1167fbf4c39SSzymon Olewniczak//
1177fbf4c39SSzymon Olewniczak//    $template['corrections'] = $this->model->tasks->get_all(array(
1187fbf4c39SSzymon Olewniczak//        'issue' => $issue_id,
1197fbf4c39SSzymon Olewniczak//        'action' => 0,
1207fbf4c39SSzymon Olewniczak//    ));
1217fbf4c39SSzymon Olewniczak//
1227fbf4c39SSzymon Olewniczak//    $template['commcauses_tasks'] = array();
1237fbf4c39SSzymon Olewniczak//    foreach ($this->model->commcauses->get_causes_ids($issue_id) as $kid) {
1247fbf4c39SSzymon Olewniczak//        $template['commcauses_tasks'][$kid] = $this->model->tasks->get_all(array(
1257fbf4c39SSzymon Olewniczak//            'cause' => $kid,
1267fbf4c39SSzymon Olewniczak//        ));
1277fbf4c39SSzymon Olewniczak//    }
128fe5d6d1eSSzymon Olewniczak
129fe5d6d1eSSzymon Olewniczak
1307fbf4c39SSzymon Olewniczak//    $template['users'] = $this->model->users->get_all();
1317fbf4c39SSzymon Olewniczak//
1327fbf4c39SSzymon Olewniczak//    //remove userts that are subscribents already
1337fbf4c39SSzymon Olewniczak//    $template['users_to_invite'] = array_diff_key($template['users'], $issue->get_subscribents());
134fe5d6d1eSSzymon Olewniczak
135fe5d6d1eSSzymon Olewniczak
1367fbf4c39SSzymon Olewniczak//	$action = '';
1377fbf4c39SSzymon Olewniczak//	if (isset($nparams['action'])) {
1387fbf4c39SSzymon Olewniczak//		$action = $nparams['action'];
1397fbf4c39SSzymon Olewniczak//		$redirect = false;
1407fbf4c39SSzymon Olewniczak//		$anchor = '';
1417fbf4c39SSzymon Olewniczak//
1427fbf4c39SSzymon Olewniczak//		if ($action === 'commcause_add') {
1437fbf4c39SSzymon Olewniczak//
1447fbf4c39SSzymon Olewniczak//            $defaults = array('issue' => (string)$issue_id);
1457fbf4c39SSzymon Olewniczak//            if ($issue->user_is_coordinator()) {
1467fbf4c39SSzymon Olewniczak//                $defaults['type'] = $_POST['type'];
1477fbf4c39SSzymon Olewniczak//            }
1487fbf4c39SSzymon Olewniczak//
1497fbf4c39SSzymon Olewniczak//			$commcause = $this->model->commcauses->create_object($defaults);
1507fbf4c39SSzymon Olewniczak//
1517fbf4c39SSzymon Olewniczak//            $data = array('content' => $_POST['content']);
1527fbf4c39SSzymon Olewniczak//			$commcause->set_data($data);
1537fbf4c39SSzymon Olewniczak//
1547fbf4c39SSzymon Olewniczak//			$id = $this->model->commcauses->save($commcause);
1557fbf4c39SSzymon Olewniczak//
1567fbf4c39SSzymon Olewniczak//			$issue->add_participant($INFO['client']);
1577fbf4c39SSzymon Olewniczak//			$issue->add_subscribent($INFO['client']);
1587fbf4c39SSzymon Olewniczak//
1597fbf4c39SSzymon Olewniczak//			$issue->update_last_activity();
1607fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
1617fbf4c39SSzymon Olewniczak//
1627fbf4c39SSzymon Olewniczak//            $commcause->mail_notify_add($issue);
1637fbf4c39SSzymon Olewniczak//
1647fbf4c39SSzymon Olewniczak//			$anchor = 'k'.$id;
1657fbf4c39SSzymon Olewniczak//			$redirect = true;
1667fbf4c39SSzymon Olewniczak//		} elseif ($action === 'subscribe') {
1677fbf4c39SSzymon Olewniczak//			$issue->add_subscribent($INFO['client']);
1687fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
1697fbf4c39SSzymon Olewniczak//
1707fbf4c39SSzymon Olewniczak//			$redirect = true;
1717fbf4c39SSzymon Olewniczak//		} elseif ($action === 'unsubscribe') {
1727fbf4c39SSzymon Olewniczak//			$issue->remove_subscribent($INFO['client']);
1737fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
1747fbf4c39SSzymon Olewniczak//
1757fbf4c39SSzymon Olewniczak//            $this->add_notification($bezlang['unsubscribed_com']);
1767fbf4c39SSzymon Olewniczak//
1777fbf4c39SSzymon Olewniczak//            $redirect = true;
1787fbf4c39SSzymon Olewniczak//
1797fbf4c39SSzymon Olewniczak//        } elseif ($action === 'invite') {
1807fbf4c39SSzymon Olewniczak//            $client = $_POST['client'];
1817fbf4c39SSzymon Olewniczak//
1827fbf4c39SSzymon Olewniczak//			$state = $issue->add_subscribent($client);
1837fbf4c39SSzymon Olewniczak//            //user wasn't subscribent
1847fbf4c39SSzymon Olewniczak//            if ($state === true) {
1857fbf4c39SSzymon Olewniczak//                $this->model->issues->save($issue);
1867fbf4c39SSzymon Olewniczak//                $issue->mail_notify_invite($client);
1877fbf4c39SSzymon Olewniczak//
1887fbf4c39SSzymon Olewniczak//                $this->add_notification($this->model->users->get_user_email($client), $bezlang['invitation_has_been_send']);
1897fbf4c39SSzymon Olewniczak//
1907fbf4c39SSzymon Olewniczak//                $redirect = true;
1917fbf4c39SSzymon Olewniczak//            }
1927fbf4c39SSzymon Olewniczak//
1937fbf4c39SSzymon Olewniczak//		} elseif ($action === 'commcause_delete') {
1947fbf4c39SSzymon Olewniczak//			$commcause = $this->model->commcauses->get_one($template['kid']);
1957fbf4c39SSzymon Olewniczak//
1967fbf4c39SSzymon Olewniczak//			$this->model->commcauses->delete($commcause);
1977fbf4c39SSzymon Olewniczak//
1987fbf4c39SSzymon Olewniczak//			$issue->update_last_activity();
1997fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
2007fbf4c39SSzymon Olewniczak//
2017fbf4c39SSzymon Olewniczak//			$redirect = true;
2027fbf4c39SSzymon Olewniczak//		} elseif ($action === 'commcause_edit') {
2037fbf4c39SSzymon Olewniczak//			if (count($_POST) === 0) {
2047fbf4c39SSzymon Olewniczak//				$commcause = $this->model->commcauses->get_one($template['kid']);
2057fbf4c39SSzymon Olewniczak//				$template['kid'] = $commcause->id;
2067fbf4c39SSzymon Olewniczak//				$value = $commcause->get_assoc();
2077fbf4c39SSzymon Olewniczak//			} else {
2087fbf4c39SSzymon Olewniczak//				$commcause = $this->model->commcauses->get_one($template['kid']);
2097fbf4c39SSzymon Olewniczak//
2107fbf4c39SSzymon Olewniczak//                $data = array('content' => $_POST['content']);
2117fbf4c39SSzymon Olewniczak//                if ($issue->user_is_coordinator()) {
2127fbf4c39SSzymon Olewniczak//                    $data['type'] = $_POST['type'];
2137fbf4c39SSzymon Olewniczak//                }
2147fbf4c39SSzymon Olewniczak//
2157fbf4c39SSzymon Olewniczak//				$commcause->set_data($data);
2167fbf4c39SSzymon Olewniczak//				$this->model->commcauses->save($commcause);
2177fbf4c39SSzymon Olewniczak//
2187fbf4c39SSzymon Olewniczak//				$issue->update_last_activity();
2197fbf4c39SSzymon Olewniczak//				$this->model->issues->save($issue);
2207fbf4c39SSzymon Olewniczak//
2217fbf4c39SSzymon Olewniczak//				$anchor = 'k'.$commcause->id;
2227fbf4c39SSzymon Olewniczak//				$redirect = true;
2237fbf4c39SSzymon Olewniczak//			}
2247fbf4c39SSzymon Olewniczak//
2257fbf4c39SSzymon Olewniczak//        } elseif ($action === 'commcause_edit_metadata') {
2267fbf4c39SSzymon Olewniczak//            if (count($_POST) === 0) {
2277fbf4c39SSzymon Olewniczak//				$commcause = $this->model->commcauses->get_one($template['kid']);
2287fbf4c39SSzymon Olewniczak//				$template['kid'] = $commcause->id;
2297fbf4c39SSzymon Olewniczak//				$value = $commcause->get_assoc(array('datetime', 'reporter'));
2307fbf4c39SSzymon Olewniczak//                $unix = strtotime($value['datetime']);
2317fbf4c39SSzymon Olewniczak//                $value['date'] = date('Y-m-d', $unix);
2327fbf4c39SSzymon Olewniczak//                $value['time'] = date('H:i:s', $unix);
2337fbf4c39SSzymon Olewniczak//			} else {
2347fbf4c39SSzymon Olewniczak//				$commcause = $this->model->commcauses->get_one($template['kid']);
2357fbf4c39SSzymon Olewniczak//                $_POST['datetime'] = $_POST['date']. ' '.$_POST['time'];
2367fbf4c39SSzymon Olewniczak//				$commcause->set_meta($_POST);
2377fbf4c39SSzymon Olewniczak//				$this->model->commcauses->save($commcause);
2387fbf4c39SSzymon Olewniczak//
2397fbf4c39SSzymon Olewniczak//				$anchor = 'k'.$commcause->id;
2407fbf4c39SSzymon Olewniczak//				$redirect = true;
2417fbf4c39SSzymon Olewniczak//			}
2427fbf4c39SSzymon Olewniczak//		} elseif ($action === 'issue_close') {
2437fbf4c39SSzymon Olewniczak//			$value['opinion'] = $issue->opinion;
2447fbf4c39SSzymon Olewniczak//		} elseif ($action == 'issue_close_confirm') {
2457fbf4c39SSzymon Olewniczak//			$issue->set_state($_POST);
2467fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
2477fbf4c39SSzymon Olewniczak//
2487fbf4c39SSzymon Olewniczak//            $issue->mail_notify_change_state();
2497fbf4c39SSzymon Olewniczak//
2507fbf4c39SSzymon Olewniczak//			$redirect = true;
2517fbf4c39SSzymon Olewniczak//		} elseif ($action === 'reopen') {
2527fbf4c39SSzymon Olewniczak//			$issue->set_state(array('state' => '0'));
2537fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
2547fbf4c39SSzymon Olewniczak//
2557fbf4c39SSzymon Olewniczak//            $issue->mail_notify_change_state();
2567fbf4c39SSzymon Olewniczak//
2577fbf4c39SSzymon Olewniczak//            $redirect = true;
2587fbf4c39SSzymon Olewniczak//        } elseif ($action === 'issue_edit_metadata') {
2597fbf4c39SSzymon Olewniczak//            if (count($_POST) > 0) {
2607fbf4c39SSzymon Olewniczak//
2617fbf4c39SSzymon Olewniczak//                $_POST['last_activity'] = $_POST['last_activity_date']. ' '.$_POST['last_activity_time'];
2627fbf4c39SSzymon Olewniczak//
2637fbf4c39SSzymon Olewniczak//                $issue->set_meta($_POST);
2647fbf4c39SSzymon Olewniczak//                $this->model->issues->save($issue);
2657fbf4c39SSzymon Olewniczak//
2667fbf4c39SSzymon Olewniczak//                $redirect = true;
2677fbf4c39SSzymon Olewniczak//            } else {
2687fbf4c39SSzymon Olewniczak//                $value = $issue->get_assoc();
2697fbf4c39SSzymon Olewniczak//                $value['date'] = date('Y-m-d', (int)$value['date']);
2707fbf4c39SSzymon Olewniczak//                $value['last_mod'] = date('Y-m-d', (int)$value['last_mod']);
2717fbf4c39SSzymon Olewniczak//
2727fbf4c39SSzymon Olewniczak//                $unix = strtotime($value['last_activity']);
2737fbf4c39SSzymon Olewniczak//                $value['last_activity_date'] = date('Y-m-d', $unix);
2747fbf4c39SSzymon Olewniczak//                $value['last_activity_time'] = date('H:i:s', $unix);
2757fbf4c39SSzymon Olewniczak//            }
2767fbf4c39SSzymon Olewniczak// 		} elseif (strpos($action, 'task') === 0) {
2777fbf4c39SSzymon Olewniczak//            $template['task'] = $this->model->tasks->
2787fbf4c39SSzymon Olewniczak//                    create_dummy_object(array('issue' => $issue->id));
2797fbf4c39SSzymon Olewniczak//			$template['users'] = $this->model->users->get_all();
2807fbf4c39SSzymon Olewniczak//			$template['tasktypes'] = $this->model->tasktypes->get_all();
2817fbf4c39SSzymon Olewniczak//
2827fbf4c39SSzymon Olewniczak//			if (count($_POST) > 0) {
2837fbf4c39SSzymon Olewniczak//				if (!isset($_POST['all_day_event'])) {
2847fbf4c39SSzymon Olewniczak//					$_POST['all_day_event'] = '0';
2857fbf4c39SSzymon Olewniczak//				}
2867fbf4c39SSzymon Olewniczak//			}
2877fbf4c39SSzymon Olewniczak//
2887fbf4c39SSzymon Olewniczak//			if ($action === 'task_reopen') {
2897fbf4c39SSzymon Olewniczak//				$task = $this->model->tasks->get_one($nparams['tid']);
2907fbf4c39SSzymon Olewniczak//				$task->set_state(array('state' => '0'));
2917fbf4c39SSzymon Olewniczak//				$this->model->tasks->save($task);
2927fbf4c39SSzymon Olewniczak//
2937fbf4c39SSzymon Olewniczak//				$issue->update_last_activity();
2947fbf4c39SSzymon Olewniczak//				$this->model->issues->save($issue);
2957fbf4c39SSzymon Olewniczak//
2967fbf4c39SSzymon Olewniczak//                $task->mail_notify_subscribents($template['issue'],
2977fbf4c39SSzymon Olewniczak//                        array('action' => $bezlang['mail_task_reopened']));
2987fbf4c39SSzymon Olewniczak//
2997fbf4c39SSzymon Olewniczak//				$redirect = true;
3007fbf4c39SSzymon Olewniczak//				$anchor = 'z'.$task->id;
3017fbf4c39SSzymon Olewniczak//
3027fbf4c39SSzymon Olewniczak//			} elseif ($action === 'task_edit') {
3037fbf4c39SSzymon Olewniczak//				$template['tid'] = $nparams['tid'];
3047fbf4c39SSzymon Olewniczak//
3057fbf4c39SSzymon Olewniczak//				$template['causes'] = $this->model->commcauses->get_all(array(
3067fbf4c39SSzymon Olewniczak//					'issue' => $issue_id,
3077fbf4c39SSzymon Olewniczak//					'type' => array('!=', '0'),
3087fbf4c39SSzymon Olewniczak//				));
3097fbf4c39SSzymon Olewniczak//
3107fbf4c39SSzymon Olewniczak//				$task = $this->model->tasks->get_one($template['tid']);
3117fbf4c39SSzymon Olewniczak//				$value = $task->get_assoc();
3127fbf4c39SSzymon Olewniczak//
3137fbf4c39SSzymon Olewniczak//            } elseif ($action === 'task_change_state') {
3147fbf4c39SSzymon Olewniczak//                $template['tid'] = $nparams['tid'];
3157fbf4c39SSzymon Olewniczak//				$task = $this->model->tasks->get_one($template['tid']);
3167fbf4c39SSzymon Olewniczak//				$value = array('reason' => $task->reason);
3177fbf4c39SSzymon Olewniczak//			} elseif($action === 'task_edit_metadata') {
3187fbf4c39SSzymon Olewniczak//
3197fbf4c39SSzymon Olewniczak//                $task = $this->model->tasks->get_one($template['tid']);
3207fbf4c39SSzymon Olewniczak//
3217fbf4c39SSzymon Olewniczak//                if (count($_POST) > 0) {
3227fbf4c39SSzymon Olewniczak//                    $task->set_meta($_POST);
3237fbf4c39SSzymon Olewniczak//                    $this->model->tasks->save($task);
3247fbf4c39SSzymon Olewniczak//
3257fbf4c39SSzymon Olewniczak//                    header("Location: ?id=bez:issue:id:$issue_id#z".$task->id);
3267fbf4c39SSzymon Olewniczak//                } else {
3277fbf4c39SSzymon Olewniczak//                    $value = $task->get_assoc();
3287fbf4c39SSzymon Olewniczak//                    $value['date'] = date('Y-m-d', (int)$value['date']);
3297fbf4c39SSzymon Olewniczak//                    $value['close_date'] = date('Y-m-d', (int)$value['close_date']);
3307fbf4c39SSzymon Olewniczak//                }
3317fbf4c39SSzymon Olewniczak//            }
3327fbf4c39SSzymon Olewniczak//
3337fbf4c39SSzymon Olewniczak//			if (count($_POST) > 0) {
3347fbf4c39SSzymon Olewniczak//				//ends with
3357fbf4c39SSzymon Olewniczak//				if (substr($action, -strlen('add')) === 'add') {
3367fbf4c39SSzymon Olewniczak//					$defaults = array('issue' => (string)$issue_id);
3377fbf4c39SSzymon Olewniczak//					if ($template['kid'] !== '-1') {
3387fbf4c39SSzymon Olewniczak//						$defaults['cause'] = $template['kid'];
3397fbf4c39SSzymon Olewniczak//					}
3407fbf4c39SSzymon Olewniczak//					$task = $this->model->tasks->create_object($defaults);
3417fbf4c39SSzymon Olewniczak//
3427fbf4c39SSzymon Olewniczak//					$task->set_data($_POST);
3437fbf4c39SSzymon Olewniczak//					$id = $this->model->tasks->save($task);
3447fbf4c39SSzymon Olewniczak//
3457fbf4c39SSzymon Olewniczak//					$issue->add_participant($task->executor);
3467fbf4c39SSzymon Olewniczak//					$issue->add_subscribent($task->executor);
3477fbf4c39SSzymon Olewniczak//
3487fbf4c39SSzymon Olewniczak//					$issue->update_last_activity();
3497fbf4c39SSzymon Olewniczak//					$this->model->issues->save($issue);
3507fbf4c39SSzymon Olewniczak//
3517fbf4c39SSzymon Olewniczak//                    $task->mail_notify_add($issue);
3527fbf4c39SSzymon Olewniczak//
3537fbf4c39SSzymon Olewniczak//					$anchor = 'z'.$id;
3547fbf4c39SSzymon Olewniczak//					$redirect = true;
3557fbf4c39SSzymon Olewniczak//				} elseif ($action === 'task_change_state') {
3567fbf4c39SSzymon Olewniczak//					$task = $this->model->tasks->get_one($template['tid']);
3577fbf4c39SSzymon Olewniczak//
3587fbf4c39SSzymon Olewniczak//                    if (isset($_POST['no_evaluation'])) {
3597fbf4c39SSzymon Olewniczak//                        $_POST['reason'] = '';
3607fbf4c39SSzymon Olewniczak//                    }
3617fbf4c39SSzymon Olewniczak//
3627fbf4c39SSzymon Olewniczak//					$task->set_state(array(
3637fbf4c39SSzymon Olewniczak//								'state' => $nparams['state'],
3647fbf4c39SSzymon Olewniczak//								'reason' => $_POST['reason'])
3657fbf4c39SSzymon Olewniczak//							);
3667fbf4c39SSzymon Olewniczak//					$this->model->tasks->save($task);
3677fbf4c39SSzymon Olewniczak//
3687fbf4c39SSzymon Olewniczak//					$issue->update_last_activity();
3697fbf4c39SSzymon Olewniczak//					$this->model->issues->save($issue);
3707fbf4c39SSzymon Olewniczak//
3717fbf4c39SSzymon Olewniczak//                    $task->mail_notify_subscribents($template['issue'],
3727fbf4c39SSzymon Olewniczak//                        array('action' => $bezlang['mail_task_change_state']));
3737fbf4c39SSzymon Olewniczak//
3747fbf4c39SSzymon Olewniczak//					$anchor = 'z'.$task->id;
3757fbf4c39SSzymon Olewniczak//					$redirect = true;
3767fbf4c39SSzymon Olewniczak//				} elseif ($action === 'task_edit') {
3777fbf4c39SSzymon Olewniczak//					$task = $this->model->tasks->get_one($template['tid']);
3787fbf4c39SSzymon Olewniczak//					$task->set_data($_POST);
3797fbf4c39SSzymon Olewniczak//					$this->model->tasks->save($task);
3807fbf4c39SSzymon Olewniczak//
3817fbf4c39SSzymon Olewniczak//					$issue->add_participant($task->executor);
3827fbf4c39SSzymon Olewniczak//					$issue->add_subscribent($task->executor);
3837fbf4c39SSzymon Olewniczak//
3847fbf4c39SSzymon Olewniczak//					//don't upgrade last activity!!!
3857fbf4c39SSzymon Olewniczak//					$anchor = 'z'.$task->id;
3867fbf4c39SSzymon Olewniczak//					$redirect = true;
3877fbf4c39SSzymon Olewniczak//				}
3887fbf4c39SSzymon Olewniczak//			}
3897fbf4c39SSzymon Olewniczak//		}
3907fbf4c39SSzymon Olewniczak//
3917fbf4c39SSzymon Olewniczak//		if ($redirect) {
3927fbf4c39SSzymon Olewniczak//			if ($anchor !== '') {
3937fbf4c39SSzymon Olewniczak//				$anchor = '#'.$anchor;
3947fbf4c39SSzymon Olewniczak//			}
3957fbf4c39SSzymon Olewniczak//			header("Location: ?id=bez:issue:id:$issue_id$anchor");
3967fbf4c39SSzymon Olewniczak//		}
3977fbf4c39SSzymon Olewniczak//	}
398fe5d6d1eSSzymon Olewniczak
399fe5d6d1eSSzymon Olewniczak
400fe5d6d1eSSzymon Olewniczak//} catch (ValidationException $e) {
401fe5d6d1eSSzymon Olewniczak//	$errors = $e->get_errors();
402fe5d6d1eSSzymon Olewniczak//	$value = $_POST;
403fe5d6d1eSSzymon Olewniczak//} catch (DBException $e) {
404fe5d6d1eSSzymon Olewniczak//	echo nl2br($e);
405fe5d6d1eSSzymon Olewniczak////	header("Location: ?id=bez:issue:id:$issue_id");
406fe5d6d1eSSzymon Olewniczak//}
407fe5d6d1eSSzymon Olewniczak
408fe5d6d1eSSzymon Olewniczak
409