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"; 7include_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 $template['auth_level'] = $task->get_level(); 29 30 if (isset($nparams['id'])) { 31 $template['causes'] = $causo->get($issue_id); 32 } 33 34 if (!$action) 35 $action = 'edit'; 36 37 if ($action == 'edit') { 38 $value = $task->get_assoc(); 39 } else if ($action == 'update') { 40 try { 41 //checkboxes 42 if (!isset($_POST['all_day_event'])) { 43 $_POST['all_day_event'] = '0'; 44 } 45 $task->set_data($_POST); 46 $task->set_acl($_POST); 47 48 if ($task->any_errors()) { 49 $errors = $task->get_errors(); 50 $value = $_POST; 51 } else { 52 $this->model->tasks->save($task); 53 $bezcache->task_toupdate($task->id); 54 55 $issue->add_participant($task->executor); 56 $issue->update_last_activity(); 57 $this->model->issues->save($issue); 58 59 if ($cause_id == NULL) { 60 header("Location: ?id=bez:issue_task:id:$issue_id:tid:$tid"); 61 } else { 62 header("Location: ?id=bez:issue_cause_task:id:$issue_id:cid:$cause_id:tid:$tid"); 63 } 64 } 65 } catch (Exception $e) { 66 echo nl2br($e); 67 } 68 } 69 70 $template['task_button'] = $bezlang['change_task_button']; 71 72 if ($task->cause == NULL) { 73 $template['task_action'] = $this->id('task_form', 'id', $task->issue, 'tid', $task->id, 'action', 'update'); 74 } else { 75 $template['task_action'] = $this->id('task_form', 'id', $task->issue, 'cid', $task->cause, 'tid', $task->id, 'action', 'update'); 76 } 77 78 79 80/*dodawania*/ 81} else { 82 $defaults = array('issue' => $issue_id, 'cause' => $cause_id); 83 84 $task = $this->model->tasks->create_object($defaults); 85 86 $template['auth_level'] = $task->get_level(); 87 88 89 90 if (count($_POST) > 0) { 91 try { 92 //checkboxes 93 if (!isset($_POST['all_day_event'])) { 94 $_POST['all_day_event'] = '0'; 95 } 96 $task->set_data($_POST); 97 if ($task->any_errors()) { 98 $errors = $task->get_errors(); 99 $value = $_POST; 100 } else { 101 $tid = $this->model->tasks->save($task); 102 103 $issue->add_participant($task->executor); 104 $issue->update_last_activity(); 105 $this->model->issues->save($issue); 106 107 $title = 'Dodano zadanie'; 108 $exec = $task->executor; 109 $subject = "[$conf[title]] $title: #$issue_id #z$tid"; 110 $to = $this->model->users->get_user_full_name($exec).' <'.$this->model->users->get_user_email($exec).'>'; 111 if ($cause_id == '') { 112 $body = "$uri?id=".$this->id('issue_task', 'id', $issue_id, 'tid', $tid); 113 } else { 114 $body = "$uri?id=".$this->id('issue_cause_task', 'id', $issue_id, 'cid', $cause_id, 'tid', $tid); 115 } 116 $this->helper->mail($to, $subject, $body); 117 118 if ($cause_id == '') { 119 header("Location: ?id=bez:issue_task:id:$issue_id:tid:$tid"); 120 } else { 121 header("Location: ?id=bez:issue_cause_task:id:$issue_id:cid:$cause_id:tid:$tid"); 122 } 123 } 124 } catch (Exception $e) { 125 echo nl2br($e); 126 } 127 } else { 128 $value['all_day_event'] = '1'; 129 } 130 131 $template['task_button'] = $bezlang['add']; 132 if ($cause_id == '') { 133 $template['task_action'] = $this->id('task_form', 'id', $issue_id, 'action', 'add'); 134 } else { 135 $template['task_action'] = $this->id('task_form', 'id', $issue_id, 'cid', $cause_id, 'action', 'add'); 136 } 137 138} 139 140if (isset($nparams['id'])) { 141 $isso = new Issues(); 142 $template['issue'] = $isso->get($issue_id); 143} 144 145$template['users'] = $this->model->users->get_all(); 146$template['tasktypes'] = $this->model->tasktypes->get_all(); 147 148$template['issue_object'] = $this->model->issues->get_one($issue_id); 149