xref: /plugin/bez/ctl/task_form.php (revision 168ecf58403c616ef3ef3bff8acd7252fdbee588)
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
8$tasko = new Tasks();
9$causo = new Causes();
10$usro = new Users();
11$tasktypeso = new Tasktypes();
12
13$issue_id = (int)$nparams['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	$task = $tasko->getone($tid);
27	$taskso = new Taskstates();
28	$task_states = $taskso->get();
29
30	$template['raw_state'] = $task['state'];
31	$template['state']  = $task_states[$task['state']];
32	if (isset($nparams['id']))
33		$template['causes'] = $causo->get($issue_id);
34
35	if (!$action)
36		$action = 'edit';
37
38	if ($action == 'edit') {
39		$value = $task;
40		$value['cause_id'] = $task['cause'];
41	} else if ($action == 'update') {
42		$cause_id = $_POST['cause_id'];
43		if ($cause_id != '')
44			$cause_id = (int)$cause_id;
45
46		if (!isset($_POST['task_plan']))
47			unset($_POST['plan_date']);
48
49		$data = $tasko->update($_POST, array('cause' => $cause_id), $tid);
50		if (count($errors) == 0) {
51
52			$title = 'Zmiana w zadaniu';
53			$exec = $data['executor'];
54			$subject = "[$conf[title]] $title: #$issue_id #z$tid";
55			$to = $usro->name($exec).' <'.$usro->email($exec).'>';
56			if (isset($nparams['id']))
57				$body = "$uri?id=".$this->id('issue_task', 'id', $issue_id, 'tid', $tid);
58			else
59				$body = "$uri?id=".$this->id('show_task', 'tid', $tid);
60
61			$this->helper->mail($to, $subject, $body);
62
63			$cause_id = $_POST['cause_id'];
64			if (!isset($nparams['id']))
65				header("Location: ?id=bez:show_task:tid:$tid");
66			elseif ($cause_id == '')
67				header("Location: ?id=bez:issue_task:id:$issue_id:tid:$tid");
68			else
69				header("Location: ?id=bez:issue_cause_task:id:$issue_id:cid:$cause_id:tid:$tid");
70		}
71		$value = $_POST;
72	}
73	$template['task_button'] = $bezlang['change_task_button'];
74	if (isset($nparams['id']))
75		$template['task_action'] = $this->id('task_form', 'id', $issue_id, 'cid', $cause_id, 'tid', $tid, 'action', 'update');
76	else
77		$template['task_action'] = $this->id('task_form_plan', 'tid', $tid, 'action', 'update');
78
79/*dodawania*/
80} else {
81	if (count($_POST) > 0) {
82		if (!isset($_POST['task_plan']))
83			unset($_POST['plan_date']);
84
85		$data = array('reporter' => $INFO['client'], 'date' => time(), 'issue' => $issue_id, 'cause' => $cause_id);
86		$data = $tasko->add($_POST, $data);
87		if (count($errors) == 0) {
88			$tid = $tasko->lastid();
89			$title = 'Dodano zadanie';
90			$exec = $data['executor'];
91			$subject = "[$conf[title]] $title: #$issue_id #z$tid";
92			$to = $usro->name($exec).' <'.$usro->email($exec).'>';
93			$body = "$uri?id=".$this->id('issue_task', 'id', $issue_id, 'tid', $tid);
94			$this->helper->mail($to, $subject, $body);
95
96			if ($cause_id == '')
97				header("Location: ?id=bez:issue_task:id:$issue_id:tid:$tid");
98			else
99				header("Location: ?id=bez:issue_cause_task:id:$issue_id:cid:$cause_id:tid:$tid");
100		}
101		$value = $_POST;
102	}
103	$template['task_button'] = $bezlang['add'];
104	$template['task_action'] = $this->id('task_form', 'id', $issue_id, 'cid', $cause_id, 'action', 'add');
105}
106
107if (isset($nparams['id'])) {
108	$isso = new Issues();
109	$template['issue'] = $isso->get($issue_id);
110
111	$template['anytasks'] = $tasko->any_task($issue_id);
112	$template['opentasks'] = $tasko->any_open($issue_id);
113	$template['cause_without_task'] = $isso->cause_without_task($issue_id);
114}
115
116$template['users'] = $usro->get();
117
118$tasktypes = $tasktypeso->get();
119$template['tasktypes'] = $tasktypes;
120