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