1<?php 2include_once DOKU_PLUGIN."bez/models/issues.php"; 3include_once DOKU_PLUGIN."bez/models/tasks.php"; 4include_once DOKU_PLUGIN."bez/models/causes.php"; 5include_once DOKU_PLUGIN."bez/models/users.php"; 6include_once DOKU_PLUGIN."bez/models/tasktypes.php"; 7//~ include_once DOKU_PLUGIN."bez/models/bezcache.php"; 8 9$causo = new Causes(); 10//~ $bezcache = new Bezcache(); 11 12$issue_id = (int)$nparams['id']; 13$issue = $this->model->issues->get_one($issue_id); 14 15/*casue*/ 16$cause_id = ''; 17if (isset($nparams['cid']) && $nparams['cid'] != '') { 18 $cause_id = (int)$nparams['cid']; 19 $template['cause'] = $causo->join($causo->getone($cause_id)); 20} 21 22/*edycja*/ 23if (isset($nparams['tid'])) { 24 $action = $nparams['action']; 25 $tid = (int)$nparams['tid']; 26 27 $task = $this->model->tasks->get_one($tid); 28 29 $template['auth_level'] = $task->get_level(); 30 $template['state_string'] = $task->state_string(); 31 32 if (isset($nparams['id'])) { 33 $template['causes'] = $causo->get($issue_id); 34 } 35 36 if (!$action) 37 $action = 'edit'; 38 39 if ($action == 'edit') { 40 $value = $task->get_assoc(); 41 } else if ($action == 'update') { 42 try { 43 //checkboxes 44 if (!isset($_POST['all_day_event'])) { 45 $_POST['all_day_event'] = '0'; 46 } 47 $task->set_data($_POST); 48 //for reason 49 $task->set_state($_POST); 50 51 if ($task->any_errors()) { 52 $errors = $task->get_errors(); 53 $value = $_POST; 54 } else { 55 $this->model->tasks->save($task); 56 //~ $bezcache->task_toupdate($task->id); 57 58 $issue->add_participant($task->executor); 59 $issue->update_last_activity(); 60 $this->model->issues->save($issue); 61 62 if ($cause_id == NULL) { 63 header("Location: ?id=bez:issue_task:id:$issue_id:tid:$tid"); 64 } else { 65 header("Location: ?id=bez:issue_cause_task:id:$issue_id:cid:$cause_id:tid:$tid"); 66 } 67 } 68 } catch (Exception $e) { 69 echo nl2br($e); 70 } 71 } 72 73 $template['task_button'] = $bezlang['change_task_button']; 74 75 if ($task->cause == NULL) { 76 $template['task_action'] = $this->id('task_form', 'id', $task->issue, 'tid', $task->id, 'action', 'update'); 77 } else { 78 $template['task_action'] = $this->id('task_form', 'id', $task->issue, 'cid', $task->cause, 'tid', $task->id, 'action', 'update'); 79 } 80 81 82 83/*dodawania*/ 84} else { 85 $defaults = array('issue' => $issue_id, 'cause' => $cause_id); 86 87 $task = $this->model->tasks->create_object_issue($defaults); 88 89 $template['auth_level'] = $task->get_level(); 90 91 92 if (count($_POST) > 0) { 93 try { 94 //checkboxes 95 if (!isset($_POST['all_day_event'])) { 96 $_POST['all_day_event'] = '0'; 97 } 98 $task->set_data($_POST); 99 100 if ($task->any_errors()) { 101 $errors = $task->get_errors(); 102 $value = $_POST; 103 } else { 104 $tid = $this->model->tasks->save($task); 105 106 $issue->add_participant($task->executor); 107 $issue->update_last_activity(); 108 $this->model->issues->save($issue); 109 110 $title = 'Dodano zadanie'; 111 $exec = $task->executor; 112 $subject = "[$conf[title]] $title: #$issue_id #z$tid"; 113 $to = $this->model->users->get_user_full_name($exec).' <'.$this->model->users->get_user_email($exec).'>'; 114 if ($cause_id == '') { 115 $body = "$uri?id=".$this->id('issue_task', 'id', $issue_id, 'tid', $tid); 116 } else { 117 $body = "$uri?id=".$this->id('issue_cause_task', 'id', $issue_id, 'cid', $cause_id, 'tid', $tid); 118 } 119 $this->helper->mail($to, $subject, $body); 120 121 if ($cause_id == '') { 122 header("Location: ?id=bez:issue_task:id:$issue_id:tid:$tid"); 123 } else { 124 header("Location: ?id=bez:issue_cause_task:id:$issue_id:cid:$cause_id:tid:$tid"); 125 } 126 } 127 } catch (Exception $e) { 128 echo nl2br($e); 129 } 130 } else { 131 $value['all_day_event'] = '1'; 132 } 133 134 $template['task_button'] = $bezlang['add']; 135 if ($cause_id == '') { 136 $template['task_action'] = $this->id('task_form', 'id', $issue_id, 'action', 'add'); 137 } else { 138 $template['task_action'] = $this->id('task_form', 'id', $issue_id, 'cid', $cause_id, 'action', 'add'); 139 } 140 141} 142 143if (isset($nparams['id'])) { 144 $isso = new Issues(); 145 $template['issue'] = $isso->get($issue_id); 146} 147 148$template['user'] = $task->get_user(); 149$template['user_name'] = $this->model->users->get_user_full_name($template['user']); 150 151 152$template['users'] = $this->model->users->get_all(); 153$template['tasktypes'] = $this->model->tasktypes->get_all(); 154 155$template['issue_object'] = $this->model->issues->get_one($issue_id); 156 157 158