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