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