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) { 25ef159648SSzymon Olewniczak if (isset($_POST['no_evaluation'])) { 26ef159648SSzymon Olewniczak $_POST['reason'] = ''; 27ef159648SSzymon Olewniczak } 28ef159648SSzymon Olewniczak 29aa89e6f8SSzymon Olewniczak $task->set_state(array( 30aa89e6f8SSzymon Olewniczak 'state' => $nparams['state'], 31aa89e6f8SSzymon Olewniczak 'reason' => $_POST['reason']) 32aa89e6f8SSzymon Olewniczak ); 33aa89e6f8SSzymon Olewniczak $this->model->tasks->save($task); 34aa89e6f8SSzymon Olewniczak 35f2c81100SSzymon Olewniczak if (isset($template['issue'])) { 36f2c81100SSzymon Olewniczak $template['issue']->update_last_activity(); 37f2c81100SSzymon Olewniczak $this->model->issues->save($template['issue']); 38f2c81100SSzymon Olewniczak } 39aa89e6f8SSzymon Olewniczak 40aa89e6f8SSzymon Olewniczak $redirect = true; 41f2c81100SSzymon Olewniczak } else { 42f2c81100SSzymon Olewniczak $value = $task->get_assoc(); 43f2c81100SSzymon Olewniczak } 44f2c81100SSzymon Olewniczak } elseif ($template['action'] === 'task_reopen') { 45f2c81100SSzymon Olewniczak $task->set_state(array('state' => '0')); 46f2c81100SSzymon Olewniczak $this->model->tasks->save($task); 47f2c81100SSzymon Olewniczak 48f2c81100SSzymon Olewniczak if (isset($template['issue'])) { 49f2c81100SSzymon Olewniczak $template['issue']->update_last_activity(); 50f2c81100SSzymon Olewniczak $this->model->issues->save($template['issue']); 51aa89e6f8SSzymon Olewniczak } 52aa89e6f8SSzymon Olewniczak 538c9d5139SSzymon Olewniczak $notify_users = array(); 548c9d5139SSzymon Olewniczak if ($task->reporter !== $this->model->user_nick) { 558c9d5139SSzymon Olewniczak //prevent duplicates 568c9d5139SSzymon Olewniczak $notify_users[$task->reporter] = $task->reporter; 578c9d5139SSzymon Olewniczak } 588c9d5139SSzymon Olewniczak if ($task->executor !== $this->model->user_nick) { 598c9d5139SSzymon Olewniczak //prevent duplicates 608c9d5139SSzymon Olewniczak $notify_users[$task->executor] = $task->executor; 618c9d5139SSzymon Olewniczak } 628c9d5139SSzymon Olewniczak 638c9d5139SSzymon Olewniczak $task->mail_notify_add($template['issue'], $notify_users, 648c9d5139SSzymon Olewniczak array('action' => $bezlang['mail_task_reopened'])); 658c9d5139SSzymon Olewniczak 66f2c81100SSzymon Olewniczak $redirect = true; 67f2c81100SSzymon Olewniczak } elseif($template['action'] === 'task_edit') { 68f2c81100SSzymon Olewniczak 69f2c81100SSzymon Olewniczak $template['users'] = $this->model->users->get_all(); 70f2c81100SSzymon Olewniczak $template['tasktypes'] = $this->model->tasktypes->get_all(); 71f2c81100SSzymon Olewniczak 72f2c81100SSzymon Olewniczak if (isset($template['issue'])) { 73f2c81100SSzymon Olewniczak $template['causes'] = $this->model->commcauses->get_all(array( 74f2c81100SSzymon Olewniczak 'issue' => $template['issue']->id, 75f2c81100SSzymon Olewniczak 'type' => array('!=', '0'), 76f2c81100SSzymon Olewniczak )); 77aa89e6f8SSzymon Olewniczak } 78aa89e6f8SSzymon Olewniczak 79f2c81100SSzymon Olewniczak if (count($_POST) > 0) { 80f2c81100SSzymon Olewniczak //checkboxes 81f2c81100SSzymon Olewniczak if (!isset($_POST['all_day_event'])) { 82f2c81100SSzymon Olewniczak $_POST['all_day_event'] = '0'; 83f2c81100SSzymon Olewniczak } 84f2c81100SSzymon Olewniczak $task->set_data($_POST); 85f2c81100SSzymon Olewniczak //for reason 86*6271e095SSzymon Olewniczak //$task->set_state($_POST); 87f2c81100SSzymon Olewniczak 88f2c81100SSzymon Olewniczak $this->model->tasks->save($task); 89f2c81100SSzymon Olewniczak //~ $bezcache = new Bezcache(); 90f2c81100SSzymon Olewniczak //~ $bezcache->task_toupdate($task->id); 91f2c81100SSzymon Olewniczak 92f2c81100SSzymon Olewniczak header("Location: ?id=bez:task:tid:".$task->id); 93f2c81100SSzymon Olewniczak } else { 94f2c81100SSzymon Olewniczak $value = $task->get_assoc(); 95f2c81100SSzymon Olewniczak } 96f2c81100SSzymon Olewniczak } 97f2c81100SSzymon Olewniczak 98f2c81100SSzymon Olewniczak if ($redirect) { 99f2c81100SSzymon Olewniczak header("Location: ?id=bez:task:tid:".$template['tid']); 100aa89e6f8SSzymon Olewniczak } 101*6271e095SSzymon Olewniczak} catch (ValidationException $e) { 102*6271e095SSzymon Olewniczak $errors = $e->get_errors(); 103*6271e095SSzymon Olewniczak $value = $_POST; 10419440e21SSzymon Olewniczak} catch (DBException $e) { 10519440e21SSzymon Olewniczak echo nl2br($e); 106aa89e6f8SSzymon Olewniczak} 107aa89e6f8SSzymon Olewniczak 108