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 13aa89e6f8SSzymon Olewniczak 14f2c81100SSzymon Olewniczak if ($task->cause !== NULL && $task->cause !== '') { 15f2c81100SSzymon Olewniczak $template['commcause'] = $this->model->commcauses->get_one($task->cause); 16f2c81100SSzymon Olewniczak } 17aa89e6f8SSzymon Olewniczak 18f2c81100SSzymon Olewniczak if ($task->issue !== NULL && $task->issue !== '') { 19f2c81100SSzymon Olewniczak $template['issue'] = $this->model->issues->get_one($task->issue); 20f2c81100SSzymon Olewniczak } 21f2c81100SSzymon Olewniczak 22f2c81100SSzymon Olewniczak 23f2c81100SSzymon Olewniczak if ($template['action'] === 'task_change_state') { 24f2c81100SSzymon Olewniczak if (count($_POST) > 0) { 25aa89e6f8SSzymon Olewniczak $task->set_state(array( 26aa89e6f8SSzymon Olewniczak 'state' => $nparams['state'], 27aa89e6f8SSzymon Olewniczak 'reason' => $_POST['reason']) 28aa89e6f8SSzymon Olewniczak ); 29aa89e6f8SSzymon Olewniczak $this->model->tasks->save($task); 30aa89e6f8SSzymon Olewniczak 31f2c81100SSzymon Olewniczak if (isset($template['issue'])) { 32f2c81100SSzymon Olewniczak $template['issue']->update_last_activity(); 33f2c81100SSzymon Olewniczak $this->model->issues->save($template['issue']); 34f2c81100SSzymon Olewniczak } 35aa89e6f8SSzymon Olewniczak 36aa89e6f8SSzymon Olewniczak $redirect = true; 37f2c81100SSzymon Olewniczak } else { 38f2c81100SSzymon Olewniczak $value = $task->get_assoc(); 39f2c81100SSzymon Olewniczak } 40f2c81100SSzymon Olewniczak } elseif ($template['action'] === 'task_reopen') { 41f2c81100SSzymon Olewniczak $task->set_state(array('state' => '0')); 42f2c81100SSzymon Olewniczak $this->model->tasks->save($task); 43f2c81100SSzymon Olewniczak 44f2c81100SSzymon Olewniczak if (isset($template['issue'])) { 45f2c81100SSzymon Olewniczak $template['issue']->update_last_activity(); 46f2c81100SSzymon Olewniczak $this->model->issues->save($template['issue']); 47aa89e6f8SSzymon Olewniczak } 48aa89e6f8SSzymon Olewniczak 49*8c9d5139SSzymon Olewniczak $notify_users = array(); 50*8c9d5139SSzymon Olewniczak if ($task->reporter !== $this->model->user_nick) { 51*8c9d5139SSzymon Olewniczak //prevent duplicates 52*8c9d5139SSzymon Olewniczak $notify_users[$task->reporter] = $task->reporter; 53*8c9d5139SSzymon Olewniczak } 54*8c9d5139SSzymon Olewniczak if ($task->executor !== $this->model->user_nick) { 55*8c9d5139SSzymon Olewniczak //prevent duplicates 56*8c9d5139SSzymon Olewniczak $notify_users[$task->executor] = $task->executor; 57*8c9d5139SSzymon Olewniczak } 58*8c9d5139SSzymon Olewniczak 59*8c9d5139SSzymon Olewniczak $task->mail_notify_add($template['issue'], $notify_users, 60*8c9d5139SSzymon Olewniczak array('action' => $bezlang['mail_task_reopened'])); 61*8c9d5139SSzymon Olewniczak 62f2c81100SSzymon Olewniczak $redirect = true; 63f2c81100SSzymon Olewniczak } elseif($template['action'] === 'task_edit') { 64f2c81100SSzymon Olewniczak $template['auth_level'] = $task->get_level(); 65f2c81100SSzymon Olewniczak 66f2c81100SSzymon Olewniczak $template['users'] = $this->model->users->get_all(); 67f2c81100SSzymon Olewniczak $template['tasktypes'] = $this->model->tasktypes->get_all(); 68f2c81100SSzymon Olewniczak 69f2c81100SSzymon Olewniczak if (isset($template['issue'])) { 70f2c81100SSzymon Olewniczak $template['causes'] = $this->model->commcauses->get_all(array( 71f2c81100SSzymon Olewniczak 'issue' => $template['issue']->id, 72f2c81100SSzymon Olewniczak 'type' => array('!=', '0'), 73f2c81100SSzymon Olewniczak )); 74aa89e6f8SSzymon Olewniczak } 75aa89e6f8SSzymon Olewniczak 76f2c81100SSzymon Olewniczak if (count($_POST) > 0) { 77f2c81100SSzymon Olewniczak //checkboxes 78f2c81100SSzymon Olewniczak if (!isset($_POST['all_day_event'])) { 79f2c81100SSzymon Olewniczak $_POST['all_day_event'] = '0'; 80f2c81100SSzymon Olewniczak } 81f2c81100SSzymon Olewniczak $task->set_data($_POST); 82f2c81100SSzymon Olewniczak //for reason 83f2c81100SSzymon Olewniczak $task->set_state($_POST); 84f2c81100SSzymon Olewniczak 85f2c81100SSzymon Olewniczak $this->model->tasks->save($task); 86f2c81100SSzymon Olewniczak //~ $bezcache = new Bezcache(); 87f2c81100SSzymon Olewniczak //~ $bezcache->task_toupdate($task->id); 88f2c81100SSzymon Olewniczak 89f2c81100SSzymon Olewniczak header("Location: ?id=bez:task:tid:".$task->id); 90f2c81100SSzymon Olewniczak } else { 91f2c81100SSzymon Olewniczak $value = $task->get_assoc(); 92f2c81100SSzymon Olewniczak } 93f2c81100SSzymon Olewniczak } 94f2c81100SSzymon Olewniczak 95f2c81100SSzymon Olewniczak if ($redirect) { 96f2c81100SSzymon Olewniczak header("Location: ?id=bez:task:tid:".$template['tid']); 97aa89e6f8SSzymon Olewniczak } 98aa89e6f8SSzymon Olewniczak 9919440e21SSzymon Olewniczak} catch (DBException $e) { 10019440e21SSzymon Olewniczak echo nl2br($e); 101aa89e6f8SSzymon Olewniczak} 102aa89e6f8SSzymon Olewniczak 103