xref: /plugin/bez/ctl/task_form.php (revision 9b27512b609c5705b93ebef2c087bb1aa02d77f4)
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$tasko = new Tasks();
10$causo = new Causes();
11$usro = new Users();
12$tasktypeso = new Tasktypes();
13$bezcache = new Bezcache();
14
15$issue_id = (int)$nparams['id'];
16
17/*casue*/
18$cause_id = '';
19if (isset($nparams['cid']) && $nparams['cid'] != '') {
20	$cause_id = (int)$nparams['cid'];
21	$template['cause'] = $causo->join($causo->getone($cause_id));
22}
23
24/*edycja*/
25if (isset($nparams['tid'])) {
26	$action = $nparams['action'];
27	$tid = (int)$nparams['tid'];
28
29	$task = $this->model->task($tid);
30
31	$taskso = new Taskstates();
32	$task_states = $taskso->get();
33
34	//~ $template['raw_state'] = $task['state'];
35	//~ $template['state']  = $task_states[$task['state']];
36	if (isset($nparams['id']))
37		$template['causes'] = $causo->get($issue_id);
38
39	if (!$action)
40		$action = 'edit';
41
42	if ($action == 'edit') {
43		$value = $task->get_assoc();
44		//~ $value['cause_id'] = $task['cause'];
45	} else if ($action == 'update') {
46		//~ $cause_id = $_POST['cause_id'];
47		//~ if ($cause_id != '')
48			//~ $cause_id = (int)$cause_id;
49
50		//~ $data = $tasko->update($_POST, array('cause' => $cause_id), $tid);
51		//~ if (count($errors) == 0) {
52
53			//~ $title = 'Zmiana w zadaniu';
54			//~ $exec = $data['executor'];
55			//~ $subject = "[$conf[title]] $title: #$issue_id #z$tid";
56			//~ $to = $usro->name($exec).' <'.$usro->email($exec).'>';
57			//~ if (isset($nparams['id']))
58				//~ $body = "$uri?id=".$this->id('issue_task', 'id', $issue_id, 'tid', $tid);
59			//~ else
60				//~ $body = "$uri?id=".$this->id('show_task', 'tid', $tid);
61
62			//~ $this->helper->mail($to, $subject, $body);
63
64			//~ $cause_id = $_POST['cause_id'];
65			//~ if (!isset($nparams['id']))
66				//~ header("Location: ?id=bez:show_task:tid:$tid");
67			//~ elseif ($cause_id == '')
68				//~ header("Location: ?id=bez:issue_task:id:$issue_id:tid:$tid");
69			//~ else
70				//~ header("Location: ?id=bez:issue_cause_task:id:$issue_id:cid:$cause_id:tid:$tid");
71		//~ }
72		//~ $value = $_POST;
73		try {
74			$task->set_data($_POST);
75			if ($task->any_errors()) {
76				$errors = $this->validator->get_errors();
77				$value = $_POST;
78			} else {
79				$this->model->save_task($task);
80				$bezcache->task_toupdate($task->id);
81
82
83				$cause_id = $_POST['cause_id'];
84				if (!isset($nparams['id'])) {
85					header("Location: ?id=bez:show_task:tid:$tid");
86				} elseif ($cause_id == '') {
87					header("Location: ?id=bez:issue_task:id:$issue_id:tid:$tid");
88				} else {
89					header("Location: ?id=bez:issue_cause_task:id:$issue_id:cid:$cause_id:tid:$tid");
90				}
91			}
92		} catch (Exception $e) {
93			echo nl2br($e);
94		}
95	}
96	$template['task_button'] = $bezlang['change_task_button'];
97	if (isset($nparams['id']))
98		$template['task_action'] = $this->id('task_form', 'id', $issue_id, 'cid', $cause_id, 'tid', $tid, 'action', 'update');
99	else
100		$template['task_action'] = $this->id('task_form_plan', 'tid', $tid, 'action', 'update');
101
102/*dodawania*/
103} else {
104	if (count($_POST) > 0) {
105		//~ $data = array('reporter' => $INFO['client'], 'date' => time(), 'issue' => $issue_id, 'cause' => $cause_id);
106		//~ $data = $tasko->add($_POST, $data);
107		//~ if (count($errors) == 0) {
108			//~ $tid = $tasko->lastid();
109			//~ $title = 'Dodano zadanie';
110			//~ $exec = $data['executor'];
111			//~ $subject = "[$conf[title]] $title: #$issue_id #z$tid";
112			//~ $to = $usro->name($exec).' <'.$usro->email($exec).'>';
113			//~ $body = "$uri?id=".$this->id('issue_task', 'id', $issue_id, 'tid', $tid);
114			//~ $this->helper->mail($to, $subject, $body);
115
116			//~ if ($cause_id == '')
117				//~ header("Location: ?id=bez:issue_task:id:$issue_id:tid:$tid");
118			//~ else
119				//~ header("Location: ?id=bez:issue_cause_task:id:$issue_id:cid:$cause_id:tid:$tid");
120		//~ }
121		//~ $value = $_POST;
122		try {
123			$task = $this->model->create_task_object('0', $issue_id);
124			$task->set_data($_POST);
125			if ($task->any_errors()) {
126				$errors = $this->validator->get_errors();
127				$value = $_POST;
128			} else {
129				$this->model->save_task($task);
130				if ($cause_id == '') {
131					header("Location: ?id=bez:issue_task:id:$issue_id:tid:$tid");
132				} else {
133					header("Location: ?id=bez:issue_cause_task:id:$issue_id:cid:$cause_id:tid:$tid");
134				}
135			}
136		} catch (Exception $e) {
137			echo nl2br($e);
138		}
139	} else {
140		$value['all_day_event'] = '1';
141	}
142	$template['task_button'] = $bezlang['add'];
143	$template['task_action'] = $this->id('task_form', 'id', $issue_id, 'cid', $cause_id, 'action', 'add');
144}
145
146if (isset($nparams['id'])) {
147	$isso = new Issues();
148	$template['issue'] = $isso->get($issue_id);
149
150	//~ $template['anytasks'] = $tasko->any_task($issue_id);
151	//~ $template['opentasks'] = $tasko->any_open($issue_id);
152	//~ $template['cause_without_task'] = $isso->cause_without_task($issue_id);
153}
154
155$template['users'] = $usro->get();
156
157$tasktypes = $tasktypeso->get();
158$template['tasktypes'] = $tasktypes;
159