xref: /plugin/bez/ctl/thread.php (revision e8827d732aaeeee6f7b703c5654f86ca97056383)
1fe5d6d1eSSzymon Olewniczak<?php
28a638198SSzymon Olewniczak/** @var action_plugin_bez_default $this */
3fe5d6d1eSSzymon Olewniczak
4fe5d6d1eSSzymon Olewniczakuse \dokuwiki\plugin\bez;
5fe5d6d1eSSzymon Olewniczak
6fe5d6d1eSSzymon Olewniczakif ($this->get_param('id') == '') {
78a638198SSzymon Olewniczak    header('Location: ' . $this->url('threads'));
8fe5d6d1eSSzymon Olewniczak}
9fe5d6d1eSSzymon Olewniczak
108a638198SSzymon 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);
138a638198SSzymon Olewniczak$this->tpl->set('thread_comments', $this->model->thread_commentFactory->get_from_thread($thread));
14*e8827d73SSzymon Olewniczak$this->tpl->set('tasks', $this->model->taskFactory->get_from_thread($thread));
15*e8827d73SSzymon Olewniczak$this->tpl->set('task_programs',  $this->model->task_programFactory->get_all());
168a638198SSzymon Olewniczak
178a638198SSzymon Olewniczak
188a638198SSzymon Olewniczakif ($this->get_param('action') == 'commcause_add') {
198a638198SSzymon Olewniczak
208a638198SSzymon Olewniczak    /** @var bez\mdl\Thread_comment $thread_comment */
218a638198SSzymon Olewniczak    $thread_comment = $this->model->thread_commentFactory->create_object(array('thread' => $thread));
228a638198SSzymon Olewniczak    $this->model->thread_commentFactory->initial_save($thread_comment, $_POST);
238a638198SSzymon Olewniczak
248a638198SSzymon Olewniczak    $anchor = 'k'.$thread_comment->id;
258a638198SSzymon Olewniczak    $redirect = true;
268a638198SSzymon Olewniczak
278a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'subscribe') {
288a638198SSzymon Olewniczak
298a638198SSzymon Olewniczak    $thread->set_participant_flags($this->model->user_nick, array('subscribent'));
308a638198SSzymon Olewniczak    $redirect = true;
318a638198SSzymon Olewniczak
328a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'unsubscribe') {
338a638198SSzymon Olewniczak
348a638198SSzymon Olewniczak    $thread->remove_participant_flags($this->model->user_nick, array('subscribent'));
358a638198SSzymon Olewniczak    $this->add_notification($this->getLang('unsubscribed_com'));
368a638198SSzymon Olewniczak    $redirect = true;
378a638198SSzymon Olewniczak
388a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'invite') {
398a638198SSzymon Olewniczak    $client = $_POST['client'];
408a638198SSzymon Olewniczak
41*e8827d73SSzymon Olewniczak    $thread->invite($client);
42*e8827d73SSzymon Olewniczak
438a638198SSzymon Olewniczak    $this->add_notification($this->model->userFactory->get_user_email($client), $this->getLang('invitation_has_been_send'));
448a638198SSzymon Olewniczak
458a638198SSzymon Olewniczak    $redirect = true;
468a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'commcause_delete') {
478a638198SSzymon Olewniczak    /** @var bez\mdl\Thread_comment $thread_comment */
488a638198SSzymon Olewniczak    $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread));
498a638198SSzymon Olewniczak    $this->model->thread_commentFactory->delete($thread_comment);
508a638198SSzymon Olewniczak
518a638198SSzymon Olewniczak    $redirect = true;
528a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'commcause_edit') {
538a638198SSzymon Olewniczak    /** @var bez\mdl\Thread_comment $thread_comment */
548a638198SSzymon Olewniczak    $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread));
558a638198SSzymon Olewniczak
568a638198SSzymon Olewniczak    if(count($_POST) === 0) {
578a638198SSzymon Olewniczak        $this->tpl->set_values($thread_comment->get_assoc());
588a638198SSzymon Olewniczak    } else {
598a638198SSzymon Olewniczak        $this->model->thread_commentFactory->update_save($thread_comment, $_POST);
608a638198SSzymon Olewniczak
618a638198SSzymon Olewniczak        $anchor   = 'k' . $thread_comment->id;
628a638198SSzymon Olewniczak        $redirect = true;
638a638198SSzymon Olewniczak    }
64*e8827d73SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_add') {
65*e8827d73SSzymon Olewniczak
66*e8827d73SSzymon Olewniczak    $defaults = array('thread' => $thread);
67*e8827d73SSzymon Olewniczak
68*e8827d73SSzymon Olewniczak    if ($this->get_param('kid') != '') {
69*e8827d73SSzymon Olewniczak        $thread_comment = $this->model->thread_commentFactory->get_one($this->get_param('kid'), array('thread' => $thread));
70*e8827d73SSzymon Olewniczak        $defaults['thread_comment'] = $thread_comment;
71*e8827d73SSzymon Olewniczak    }
728a638198SSzymon Olewniczak    /** @var bez\mdl\Task $task */
73*e8827d73SSzymon Olewniczak    $task = $this->model->taskFactory->create_object($defaults);
748a638198SSzymon Olewniczak    $this->tpl->set('task', $task);
758a638198SSzymon Olewniczak
768a638198SSzymon Olewniczak    //save
778a638198SSzymon Olewniczak    if (count($_POST) > 0) {
788a638198SSzymon Olewniczak        $this->model->taskFactory->initial_save($task, $_POST);
798a638198SSzymon Olewniczak
808a638198SSzymon Olewniczak        $anchor   = 'z' . $task->id;
818a638198SSzymon Olewniczak        $redirect = true;
828a638198SSzymon Olewniczak    }
838a638198SSzymon Olewniczak} elseif ($this->get_param('action') == 'task_edit') {
848a638198SSzymon Olewniczak    /** @var bez\mdl\Task $task */
858a638198SSzymon Olewniczak    $task = $this->model->taskFactory->get_one($this->get_param('tid'), array('thread' => $thread));
868a638198SSzymon Olewniczak    $this->tpl->set('task', $task);
878a638198SSzymon Olewniczak
888a638198SSzymon Olewniczak    //save
898a638198SSzymon Olewniczak    if (count($_POST) === 0) {
908a638198SSzymon Olewniczak        $this->tpl->set_values($task->get_assoc());
918a638198SSzymon Olewniczak    } else {
928a638198SSzymon Olewniczak        $this->model->taskFactory->update_save($task, $_POST);
938a638198SSzymon Olewniczak
948a638198SSzymon Olewniczak        $anchor   = 'z' . $task->id;
958a638198SSzymon Olewniczak        $redirect = true;
968a638198SSzymon Olewniczak    }
978a638198SSzymon Olewniczak}
988a638198SSzymon Olewniczak
998a638198SSzymon Olewniczakif (isset($redirect) && $redirect == true) {
1008a638198SSzymon Olewniczak    if (isset($anchor)) {
1018a638198SSzymon Olewniczak        $anchor = '#'.$anchor;
1028a638198SSzymon Olewniczak    } else {
1038a638198SSzymon Olewniczak        $anchor = '';
1048a638198SSzymon Olewniczak    }
1058a638198SSzymon Olewniczak    header('Location: ' . $this->url('thread', 'id', $thread->id) . $anchor);
1068a638198SSzymon Olewniczak}
1078a638198SSzymon Olewniczak
108fe5d6d1eSSzymon Olewniczak
109fe5d6d1eSSzymon Olewniczak
110fe5d6d1eSSzymon Olewniczak//    $template['tid'] = isset($nparams['tid']) ? $nparams['tid'] : '-1';
111fe5d6d1eSSzymon Olewniczak//    $template['kid'] = isset($nparams['kid']) ? $nparams['kid'] : '-1';
112fe5d6d1eSSzymon Olewniczak//    $template['state'] = isset($nparams['state']) ? $nparams['state'] : '-1';
113fe5d6d1eSSzymon Olewniczak//    $template['action'] = isset($nparams['action']) ? $nparams['action'] : '-default';
114fe5d6d1eSSzymon Olewniczak
1157fbf4c39SSzymon Olewniczak//    $template['issue'] = $issue;
1167fbf4c39SSzymon Olewniczak//    $template['commcauses'] = $this->model->commcauses->get_all(
1177fbf4c39SSzymon Olewniczak//        array('issue' => $issue_id)
1187fbf4c39SSzymon Olewniczak//    );
1197fbf4c39SSzymon Olewniczak//
1207fbf4c39SSzymon Olewniczak//    $template['commcause'] = $this->model->commcauses->
1217fbf4c39SSzymon Olewniczak//                            create_dummy_object(array('issue' => $issue->id));
1227fbf4c39SSzymon Olewniczak//
1237fbf4c39SSzymon Olewniczak//    $template['corrections'] = $this->model->tasks->get_all(array(
1247fbf4c39SSzymon Olewniczak//        'issue' => $issue_id,
1257fbf4c39SSzymon Olewniczak//        'action' => 0,
1267fbf4c39SSzymon Olewniczak//    ));
1277fbf4c39SSzymon Olewniczak//
1287fbf4c39SSzymon Olewniczak//    $template['commcauses_tasks'] = array();
1297fbf4c39SSzymon Olewniczak//    foreach ($this->model->commcauses->get_causes_ids($issue_id) as $kid) {
1307fbf4c39SSzymon Olewniczak//        $template['commcauses_tasks'][$kid] = $this->model->tasks->get_all(array(
1317fbf4c39SSzymon Olewniczak//            'cause' => $kid,
1327fbf4c39SSzymon Olewniczak//        ));
1337fbf4c39SSzymon Olewniczak//    }
134fe5d6d1eSSzymon Olewniczak
135fe5d6d1eSSzymon Olewniczak
1367fbf4c39SSzymon Olewniczak//    $template['users'] = $this->model->users->get_all();
1377fbf4c39SSzymon Olewniczak//
1387fbf4c39SSzymon Olewniczak//    //remove userts that are subscribents already
1397fbf4c39SSzymon Olewniczak//    $template['users_to_invite'] = array_diff_key($template['users'], $issue->get_subscribents());
140fe5d6d1eSSzymon Olewniczak
141fe5d6d1eSSzymon Olewniczak
1427fbf4c39SSzymon Olewniczak//	$action = '';
1437fbf4c39SSzymon Olewniczak//	if (isset($nparams['action'])) {
1447fbf4c39SSzymon Olewniczak//		$action = $nparams['action'];
1457fbf4c39SSzymon Olewniczak//		$redirect = false;
1467fbf4c39SSzymon Olewniczak//		$anchor = '';
1477fbf4c39SSzymon Olewniczak//
1487fbf4c39SSzymon Olewniczak//		if ($action === 'commcause_add') {
1497fbf4c39SSzymon Olewniczak//
1507fbf4c39SSzymon Olewniczak//            $defaults = array('issue' => (string)$issue_id);
1517fbf4c39SSzymon Olewniczak//            if ($issue->user_is_coordinator()) {
1527fbf4c39SSzymon Olewniczak//                $defaults['type'] = $_POST['type'];
1537fbf4c39SSzymon Olewniczak//            }
1547fbf4c39SSzymon Olewniczak//
1557fbf4c39SSzymon Olewniczak//			$commcause = $this->model->commcauses->create_object($defaults);
1567fbf4c39SSzymon Olewniczak//
1577fbf4c39SSzymon Olewniczak//            $data = array('content' => $_POST['content']);
1587fbf4c39SSzymon Olewniczak//			$commcause->set_data($data);
1597fbf4c39SSzymon Olewniczak//
1607fbf4c39SSzymon Olewniczak//			$id = $this->model->commcauses->save($commcause);
1617fbf4c39SSzymon Olewniczak//
1627fbf4c39SSzymon Olewniczak//			$issue->add_participant($INFO['client']);
1637fbf4c39SSzymon Olewniczak//			$issue->add_subscribent($INFO['client']);
1647fbf4c39SSzymon Olewniczak//
1657fbf4c39SSzymon Olewniczak//			$issue->update_last_activity();
1667fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
1677fbf4c39SSzymon Olewniczak//
1687fbf4c39SSzymon Olewniczak//            $commcause->mail_notify_add($issue);
1697fbf4c39SSzymon Olewniczak//
1707fbf4c39SSzymon Olewniczak//			$anchor = 'k'.$id;
1717fbf4c39SSzymon Olewniczak//			$redirect = true;
1727fbf4c39SSzymon Olewniczak//		} elseif ($action === 'subscribe') {
1737fbf4c39SSzymon Olewniczak//			$issue->add_subscribent($INFO['client']);
1747fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
1757fbf4c39SSzymon Olewniczak//
1767fbf4c39SSzymon Olewniczak//			$redirect = true;
1777fbf4c39SSzymon Olewniczak//		} elseif ($action === 'unsubscribe') {
1787fbf4c39SSzymon Olewniczak//			$issue->remove_subscribent($INFO['client']);
1797fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
1807fbf4c39SSzymon Olewniczak//
1817fbf4c39SSzymon Olewniczak//            $this->add_notification($bezlang['unsubscribed_com']);
1827fbf4c39SSzymon Olewniczak//
1837fbf4c39SSzymon Olewniczak//            $redirect = true;
1847fbf4c39SSzymon Olewniczak//
1857fbf4c39SSzymon Olewniczak//        } elseif ($action === 'invite') {
1867fbf4c39SSzymon Olewniczak//            $client = $_POST['client'];
1877fbf4c39SSzymon Olewniczak//
1887fbf4c39SSzymon Olewniczak//			$state = $issue->add_subscribent($client);
1897fbf4c39SSzymon Olewniczak//            //user wasn't subscribent
1907fbf4c39SSzymon Olewniczak//            if ($state === true) {
1917fbf4c39SSzymon Olewniczak//                $this->model->issues->save($issue);
1927fbf4c39SSzymon Olewniczak//                $issue->mail_notify_invite($client);
1937fbf4c39SSzymon Olewniczak//
1947fbf4c39SSzymon Olewniczak//                $this->add_notification($this->model->users->get_user_email($client), $bezlang['invitation_has_been_send']);
1957fbf4c39SSzymon Olewniczak//
1967fbf4c39SSzymon Olewniczak//                $redirect = true;
1977fbf4c39SSzymon Olewniczak//            }
1987fbf4c39SSzymon Olewniczak//
1997fbf4c39SSzymon Olewniczak//		} elseif ($action === 'commcause_delete') {
2007fbf4c39SSzymon Olewniczak//			$commcause = $this->model->commcauses->get_one($template['kid']);
2017fbf4c39SSzymon Olewniczak//
2027fbf4c39SSzymon Olewniczak//			$this->model->commcauses->delete($commcause);
2037fbf4c39SSzymon Olewniczak//
2047fbf4c39SSzymon Olewniczak//			$issue->update_last_activity();
2057fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
2067fbf4c39SSzymon Olewniczak//
2077fbf4c39SSzymon Olewniczak//			$redirect = true;
2087fbf4c39SSzymon Olewniczak//		} elseif ($action === 'commcause_edit') {
2097fbf4c39SSzymon Olewniczak//			if (count($_POST) === 0) {
2107fbf4c39SSzymon Olewniczak//				$commcause = $this->model->commcauses->get_one($template['kid']);
2117fbf4c39SSzymon Olewniczak//				$template['kid'] = $commcause->id;
2127fbf4c39SSzymon Olewniczak//				$value = $commcause->get_assoc();
2137fbf4c39SSzymon Olewniczak//			} else {
2147fbf4c39SSzymon Olewniczak//				$commcause = $this->model->commcauses->get_one($template['kid']);
2157fbf4c39SSzymon Olewniczak//
2167fbf4c39SSzymon Olewniczak//                $data = array('content' => $_POST['content']);
2177fbf4c39SSzymon Olewniczak//                if ($issue->user_is_coordinator()) {
2187fbf4c39SSzymon Olewniczak//                    $data['type'] = $_POST['type'];
2197fbf4c39SSzymon Olewniczak//                }
2207fbf4c39SSzymon Olewniczak//
2217fbf4c39SSzymon Olewniczak//				$commcause->set_data($data);
2227fbf4c39SSzymon Olewniczak//				$this->model->commcauses->save($commcause);
2237fbf4c39SSzymon Olewniczak//
2247fbf4c39SSzymon Olewniczak//				$issue->update_last_activity();
2257fbf4c39SSzymon Olewniczak//				$this->model->issues->save($issue);
2267fbf4c39SSzymon Olewniczak//
2277fbf4c39SSzymon Olewniczak//				$anchor = 'k'.$commcause->id;
2287fbf4c39SSzymon Olewniczak//				$redirect = true;
2297fbf4c39SSzymon Olewniczak//			}
2307fbf4c39SSzymon Olewniczak//
2317fbf4c39SSzymon Olewniczak//        } elseif ($action === 'commcause_edit_metadata') {
2327fbf4c39SSzymon Olewniczak//            if (count($_POST) === 0) {
2337fbf4c39SSzymon Olewniczak//				$commcause = $this->model->commcauses->get_one($template['kid']);
2347fbf4c39SSzymon Olewniczak//				$template['kid'] = $commcause->id;
2357fbf4c39SSzymon Olewniczak//				$value = $commcause->get_assoc(array('datetime', 'reporter'));
2367fbf4c39SSzymon Olewniczak//                $unix = strtotime($value['datetime']);
2377fbf4c39SSzymon Olewniczak//                $value['date'] = date('Y-m-d', $unix);
2387fbf4c39SSzymon Olewniczak//                $value['time'] = date('H:i:s', $unix);
2397fbf4c39SSzymon Olewniczak//			} else {
2407fbf4c39SSzymon Olewniczak//				$commcause = $this->model->commcauses->get_one($template['kid']);
2417fbf4c39SSzymon Olewniczak//                $_POST['datetime'] = $_POST['date']. ' '.$_POST['time'];
2427fbf4c39SSzymon Olewniczak//				$commcause->set_meta($_POST);
2437fbf4c39SSzymon Olewniczak//				$this->model->commcauses->save($commcause);
2447fbf4c39SSzymon Olewniczak//
2457fbf4c39SSzymon Olewniczak//				$anchor = 'k'.$commcause->id;
2467fbf4c39SSzymon Olewniczak//				$redirect = true;
2477fbf4c39SSzymon Olewniczak//			}
2487fbf4c39SSzymon Olewniczak//		} elseif ($action === 'issue_close') {
2497fbf4c39SSzymon Olewniczak//			$value['opinion'] = $issue->opinion;
2507fbf4c39SSzymon Olewniczak//		} elseif ($action == 'issue_close_confirm') {
2517fbf4c39SSzymon Olewniczak//			$issue->set_state($_POST);
2527fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
2537fbf4c39SSzymon Olewniczak//
2547fbf4c39SSzymon Olewniczak//            $issue->mail_notify_change_state();
2557fbf4c39SSzymon Olewniczak//
2567fbf4c39SSzymon Olewniczak//			$redirect = true;
2577fbf4c39SSzymon Olewniczak//		} elseif ($action === 'reopen') {
2587fbf4c39SSzymon Olewniczak//			$issue->set_state(array('state' => '0'));
2597fbf4c39SSzymon Olewniczak//			$this->model->issues->save($issue);
2607fbf4c39SSzymon Olewniczak//
2617fbf4c39SSzymon Olewniczak//            $issue->mail_notify_change_state();
2627fbf4c39SSzymon Olewniczak//
2637fbf4c39SSzymon Olewniczak//            $redirect = true;
2647fbf4c39SSzymon Olewniczak//        } elseif ($action === 'issue_edit_metadata') {
2657fbf4c39SSzymon Olewniczak//            if (count($_POST) > 0) {
2667fbf4c39SSzymon Olewniczak//
2677fbf4c39SSzymon Olewniczak//                $_POST['last_activity'] = $_POST['last_activity_date']. ' '.$_POST['last_activity_time'];
2687fbf4c39SSzymon Olewniczak//
2697fbf4c39SSzymon Olewniczak//                $issue->set_meta($_POST);
2707fbf4c39SSzymon Olewniczak//                $this->model->issues->save($issue);
2717fbf4c39SSzymon Olewniczak//
2727fbf4c39SSzymon Olewniczak//                $redirect = true;
2737fbf4c39SSzymon Olewniczak//            } else {
2747fbf4c39SSzymon Olewniczak//                $value = $issue->get_assoc();
2757fbf4c39SSzymon Olewniczak//                $value['date'] = date('Y-m-d', (int)$value['date']);
2767fbf4c39SSzymon Olewniczak//                $value['last_mod'] = date('Y-m-d', (int)$value['last_mod']);
2777fbf4c39SSzymon Olewniczak//
2787fbf4c39SSzymon Olewniczak//                $unix = strtotime($value['last_activity']);
2797fbf4c39SSzymon Olewniczak//                $value['last_activity_date'] = date('Y-m-d', $unix);
2807fbf4c39SSzymon Olewniczak//                $value['last_activity_time'] = date('H:i:s', $unix);
2817fbf4c39SSzymon Olewniczak//            }
2827fbf4c39SSzymon Olewniczak// 		} elseif (strpos($action, 'task') === 0) {
2837fbf4c39SSzymon Olewniczak//            $template['task'] = $this->model->tasks->
2847fbf4c39SSzymon Olewniczak//                    create_dummy_object(array('issue' => $issue->id));
2857fbf4c39SSzymon Olewniczak//			$template['users'] = $this->model->users->get_all();
2867fbf4c39SSzymon Olewniczak//			$template['tasktypes'] = $this->model->tasktypes->get_all();
2877fbf4c39SSzymon Olewniczak//
2887fbf4c39SSzymon Olewniczak//			if (count($_POST) > 0) {
2897fbf4c39SSzymon Olewniczak//				if (!isset($_POST['all_day_event'])) {
2907fbf4c39SSzymon Olewniczak//					$_POST['all_day_event'] = '0';
2917fbf4c39SSzymon Olewniczak//				}
2927fbf4c39SSzymon Olewniczak//			}
2937fbf4c39SSzymon Olewniczak//
2947fbf4c39SSzymon Olewniczak//			if ($action === 'task_reopen') {
2957fbf4c39SSzymon Olewniczak//				$task = $this->model->tasks->get_one($nparams['tid']);
2967fbf4c39SSzymon Olewniczak//				$task->set_state(array('state' => '0'));
2977fbf4c39SSzymon Olewniczak//				$this->model->tasks->save($task);
2987fbf4c39SSzymon Olewniczak//
2997fbf4c39SSzymon Olewniczak//				$issue->update_last_activity();
3007fbf4c39SSzymon Olewniczak//				$this->model->issues->save($issue);
3017fbf4c39SSzymon Olewniczak//
3027fbf4c39SSzymon Olewniczak//                $task->mail_notify_subscribents($template['issue'],
3037fbf4c39SSzymon Olewniczak//                        array('action' => $bezlang['mail_task_reopened']));
3047fbf4c39SSzymon Olewniczak//
3057fbf4c39SSzymon Olewniczak//				$redirect = true;
3067fbf4c39SSzymon Olewniczak//				$anchor = 'z'.$task->id;
3077fbf4c39SSzymon Olewniczak//
3087fbf4c39SSzymon Olewniczak//			} elseif ($action === 'task_edit') {
3097fbf4c39SSzymon Olewniczak//				$template['tid'] = $nparams['tid'];
3107fbf4c39SSzymon Olewniczak//
3117fbf4c39SSzymon Olewniczak//				$template['causes'] = $this->model->commcauses->get_all(array(
3127fbf4c39SSzymon Olewniczak//					'issue' => $issue_id,
3137fbf4c39SSzymon Olewniczak//					'type' => array('!=', '0'),
3147fbf4c39SSzymon Olewniczak//				));
3157fbf4c39SSzymon Olewniczak//
3167fbf4c39SSzymon Olewniczak//				$task = $this->model->tasks->get_one($template['tid']);
3177fbf4c39SSzymon Olewniczak//				$value = $task->get_assoc();
3187fbf4c39SSzymon Olewniczak//
3197fbf4c39SSzymon Olewniczak//            } elseif ($action === 'task_change_state') {
3207fbf4c39SSzymon Olewniczak//                $template['tid'] = $nparams['tid'];
3217fbf4c39SSzymon Olewniczak//				$task = $this->model->tasks->get_one($template['tid']);
3227fbf4c39SSzymon Olewniczak//				$value = array('reason' => $task->reason);
3237fbf4c39SSzymon Olewniczak//			} elseif($action === 'task_edit_metadata') {
3247fbf4c39SSzymon Olewniczak//
3257fbf4c39SSzymon Olewniczak//                $task = $this->model->tasks->get_one($template['tid']);
3267fbf4c39SSzymon Olewniczak//
3277fbf4c39SSzymon Olewniczak//                if (count($_POST) > 0) {
3287fbf4c39SSzymon Olewniczak//                    $task->set_meta($_POST);
3297fbf4c39SSzymon Olewniczak//                    $this->model->tasks->save($task);
3307fbf4c39SSzymon Olewniczak//
3317fbf4c39SSzymon Olewniczak//                    header("Location: ?id=bez:issue:id:$issue_id#z".$task->id);
3327fbf4c39SSzymon Olewniczak//                } else {
3337fbf4c39SSzymon Olewniczak//                    $value = $task->get_assoc();
3347fbf4c39SSzymon Olewniczak//                    $value['date'] = date('Y-m-d', (int)$value['date']);
3357fbf4c39SSzymon Olewniczak//                    $value['close_date'] = date('Y-m-d', (int)$value['close_date']);
3367fbf4c39SSzymon Olewniczak//                }
3377fbf4c39SSzymon Olewniczak//            }
3387fbf4c39SSzymon Olewniczak//
3397fbf4c39SSzymon Olewniczak//			if (count($_POST) > 0) {
3407fbf4c39SSzymon Olewniczak//				//ends with
3417fbf4c39SSzymon Olewniczak//				if (substr($action, -strlen('add')) === 'add') {
3427fbf4c39SSzymon Olewniczak//					$defaults = array('issue' => (string)$issue_id);
3437fbf4c39SSzymon Olewniczak//					if ($template['kid'] !== '-1') {
3447fbf4c39SSzymon Olewniczak//						$defaults['cause'] = $template['kid'];
3457fbf4c39SSzymon Olewniczak//					}
3467fbf4c39SSzymon Olewniczak//					$task = $this->model->tasks->create_object($defaults);
3477fbf4c39SSzymon Olewniczak//
3487fbf4c39SSzymon Olewniczak//					$task->set_data($_POST);
3497fbf4c39SSzymon Olewniczak//					$id = $this->model->tasks->save($task);
3507fbf4c39SSzymon Olewniczak//
3517fbf4c39SSzymon Olewniczak//					$issue->add_participant($task->executor);
3527fbf4c39SSzymon Olewniczak//					$issue->add_subscribent($task->executor);
3537fbf4c39SSzymon Olewniczak//
3547fbf4c39SSzymon Olewniczak//					$issue->update_last_activity();
3557fbf4c39SSzymon Olewniczak//					$this->model->issues->save($issue);
3567fbf4c39SSzymon Olewniczak//
3577fbf4c39SSzymon Olewniczak//                    $task->mail_notify_add($issue);
3587fbf4c39SSzymon Olewniczak//
3597fbf4c39SSzymon Olewniczak//					$anchor = 'z'.$id;
3607fbf4c39SSzymon Olewniczak//					$redirect = true;
3617fbf4c39SSzymon Olewniczak//				} elseif ($action === 'task_change_state') {
3627fbf4c39SSzymon Olewniczak//					$task = $this->model->tasks->get_one($template['tid']);
3637fbf4c39SSzymon Olewniczak//
3647fbf4c39SSzymon Olewniczak//                    if (isset($_POST['no_evaluation'])) {
3657fbf4c39SSzymon Olewniczak//                        $_POST['reason'] = '';
3667fbf4c39SSzymon Olewniczak//                    }
3677fbf4c39SSzymon Olewniczak//
3687fbf4c39SSzymon Olewniczak//					$task->set_state(array(
3697fbf4c39SSzymon Olewniczak//								'state' => $nparams['state'],
3707fbf4c39SSzymon Olewniczak//								'reason' => $_POST['reason'])
3717fbf4c39SSzymon Olewniczak//							);
3727fbf4c39SSzymon Olewniczak//					$this->model->tasks->save($task);
3737fbf4c39SSzymon Olewniczak//
3747fbf4c39SSzymon Olewniczak//					$issue->update_last_activity();
3757fbf4c39SSzymon Olewniczak//					$this->model->issues->save($issue);
3767fbf4c39SSzymon Olewniczak//
3777fbf4c39SSzymon Olewniczak//                    $task->mail_notify_subscribents($template['issue'],
3787fbf4c39SSzymon Olewniczak//                        array('action' => $bezlang['mail_task_change_state']));
3797fbf4c39SSzymon Olewniczak//
3807fbf4c39SSzymon Olewniczak//					$anchor = 'z'.$task->id;
3817fbf4c39SSzymon Olewniczak//					$redirect = true;
3827fbf4c39SSzymon Olewniczak//				} elseif ($action === 'task_edit') {
3837fbf4c39SSzymon Olewniczak//					$task = $this->model->tasks->get_one($template['tid']);
3847fbf4c39SSzymon Olewniczak//					$task->set_data($_POST);
3857fbf4c39SSzymon Olewniczak//					$this->model->tasks->save($task);
3867fbf4c39SSzymon Olewniczak//
3877fbf4c39SSzymon Olewniczak//					$issue->add_participant($task->executor);
3887fbf4c39SSzymon Olewniczak//					$issue->add_subscribent($task->executor);
3897fbf4c39SSzymon Olewniczak//
3907fbf4c39SSzymon Olewniczak//					//don't upgrade last activity!!!
3917fbf4c39SSzymon Olewniczak//					$anchor = 'z'.$task->id;
3927fbf4c39SSzymon Olewniczak//					$redirect = true;
3937fbf4c39SSzymon Olewniczak//				}
3947fbf4c39SSzymon Olewniczak//			}
3957fbf4c39SSzymon Olewniczak//		}
3967fbf4c39SSzymon Olewniczak//
3977fbf4c39SSzymon Olewniczak//		if ($redirect) {
3987fbf4c39SSzymon Olewniczak//			if ($anchor !== '') {
3997fbf4c39SSzymon Olewniczak//				$anchor = '#'.$anchor;
4007fbf4c39SSzymon Olewniczak//			}
4017fbf4c39SSzymon Olewniczak//			header("Location: ?id=bez:issue:id:$issue_id$anchor");
4027fbf4c39SSzymon Olewniczak//		}
4037fbf4c39SSzymon Olewniczak//	}
404fe5d6d1eSSzymon Olewniczak
405fe5d6d1eSSzymon Olewniczak
406fe5d6d1eSSzymon Olewniczak//} catch (ValidationException $e) {
407fe5d6d1eSSzymon Olewniczak//	$errors = $e->get_errors();
408fe5d6d1eSSzymon Olewniczak//	$value = $_POST;
409fe5d6d1eSSzymon Olewniczak//} catch (DBException $e) {
410fe5d6d1eSSzymon Olewniczak//	echo nl2br($e);
411fe5d6d1eSSzymon Olewniczak////	header("Location: ?id=bez:issue:id:$issue_id");
412fe5d6d1eSSzymon Olewniczak//}
413fe5d6d1eSSzymon Olewniczak
414fe5d6d1eSSzymon Olewniczak
415