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