xref: /plugin/bez/ctl/thread.php (revision 7fbf4c3966fc9b63e77e3ef6f091279dbce0d34f)
1<?php
2/** @var action_plugin_bez $this */
3
4use \dokuwiki\plugin\bez;
5
6if ($this->get_param('id') == '') {
7    header('Location: ?id=bez:threads');
8}
9
10//try {
11    //$issue_id = (int)$nparams['id'];
12
13    //new way
14
15$thread = $this->model->threadFactory->get_one($this->get_param('id'));
16$this->tpl->set('thread', $thread);
17$this->tpl->set('corrections', array());
18$this->tpl->set('thread_comments', array());
19
20
21//    $template['tid'] = isset($nparams['tid']) ? $nparams['tid'] : '-1';
22//    $template['kid'] = isset($nparams['kid']) ? $nparams['kid'] : '-1';
23//    $template['state'] = isset($nparams['state']) ? $nparams['state'] : '-1';
24//    $template['action'] = isset($nparams['action']) ? $nparams['action'] : '-default';
25
26//    $template['issue'] = $issue;
27//    $template['commcauses'] = $this->model->commcauses->get_all(
28//        array('issue' => $issue_id)
29//    );
30//
31//    $template['commcause'] = $this->model->commcauses->
32//                            create_dummy_object(array('issue' => $issue->id));
33//
34//    $template['corrections'] = $this->model->tasks->get_all(array(
35//        'issue' => $issue_id,
36//        'action' => 0,
37//    ));
38//
39//    $template['commcauses_tasks'] = array();
40//    foreach ($this->model->commcauses->get_causes_ids($issue_id) as $kid) {
41//        $template['commcauses_tasks'][$kid] = $this->model->tasks->get_all(array(
42//            'cause' => $kid,
43//        ));
44//    }
45
46
47//    $template['users'] = $this->model->users->get_all();
48//
49//    //remove userts that are subscribents already
50//    $template['users_to_invite'] = array_diff_key($template['users'], $issue->get_subscribents());
51
52
53//	$action = '';
54//	if (isset($nparams['action'])) {
55//		$action = $nparams['action'];
56//		$redirect = false;
57//		$anchor = '';
58//
59//		if ($action === 'commcause_add') {
60//
61//            $defaults = array('issue' => (string)$issue_id);
62//            if ($issue->user_is_coordinator()) {
63//                $defaults['type'] = $_POST['type'];
64//            }
65//
66//			$commcause = $this->model->commcauses->create_object($defaults);
67//
68//            $data = array('content' => $_POST['content']);
69//			$commcause->set_data($data);
70//
71//			$id = $this->model->commcauses->save($commcause);
72//
73//			$issue->add_participant($INFO['client']);
74//			$issue->add_subscribent($INFO['client']);
75//
76//			$issue->update_last_activity();
77//			$this->model->issues->save($issue);
78//
79//            $commcause->mail_notify_add($issue);
80//
81//			$anchor = 'k'.$id;
82//			$redirect = true;
83//		} elseif ($action === 'subscribe') {
84//			$issue->add_subscribent($INFO['client']);
85//			$this->model->issues->save($issue);
86//
87//			$redirect = true;
88//		} elseif ($action === 'unsubscribe') {
89//			$issue->remove_subscribent($INFO['client']);
90//			$this->model->issues->save($issue);
91//
92//            $this->add_notification($bezlang['unsubscribed_com']);
93//
94//            $redirect = true;
95//
96//        } elseif ($action === 'invite') {
97//            $client = $_POST['client'];
98//
99//			$state = $issue->add_subscribent($client);
100//            //user wasn't subscribent
101//            if ($state === true) {
102//                $this->model->issues->save($issue);
103//                $issue->mail_notify_invite($client);
104//
105//                $this->add_notification($this->model->users->get_user_email($client), $bezlang['invitation_has_been_send']);
106//
107//                $redirect = true;
108//            }
109//
110//		} elseif ($action === 'commcause_delete') {
111//			$commcause = $this->model->commcauses->get_one($template['kid']);
112//
113//			$this->model->commcauses->delete($commcause);
114//
115//			$issue->update_last_activity();
116//			$this->model->issues->save($issue);
117//
118//			$redirect = true;
119//		} elseif ($action === 'commcause_edit') {
120//			if (count($_POST) === 0) {
121//				$commcause = $this->model->commcauses->get_one($template['kid']);
122//				$template['kid'] = $commcause->id;
123//				$value = $commcause->get_assoc();
124//			} else {
125//				$commcause = $this->model->commcauses->get_one($template['kid']);
126//
127//                $data = array('content' => $_POST['content']);
128//                if ($issue->user_is_coordinator()) {
129//                    $data['type'] = $_POST['type'];
130//                }
131//
132//				$commcause->set_data($data);
133//				$this->model->commcauses->save($commcause);
134//
135//				$issue->update_last_activity();
136//				$this->model->issues->save($issue);
137//
138//				$anchor = 'k'.$commcause->id;
139//				$redirect = true;
140//			}
141//
142//        } elseif ($action === 'commcause_edit_metadata') {
143//            if (count($_POST) === 0) {
144//				$commcause = $this->model->commcauses->get_one($template['kid']);
145//				$template['kid'] = $commcause->id;
146//				$value = $commcause->get_assoc(array('datetime', 'reporter'));
147//                $unix = strtotime($value['datetime']);
148//                $value['date'] = date('Y-m-d', $unix);
149//                $value['time'] = date('H:i:s', $unix);
150//			} else {
151//				$commcause = $this->model->commcauses->get_one($template['kid']);
152//                $_POST['datetime'] = $_POST['date']. ' '.$_POST['time'];
153//				$commcause->set_meta($_POST);
154//				$this->model->commcauses->save($commcause);
155//
156//				$anchor = 'k'.$commcause->id;
157//				$redirect = true;
158//			}
159//		} elseif ($action === 'issue_close') {
160//			$value['opinion'] = $issue->opinion;
161//		} elseif ($action == 'issue_close_confirm') {
162//			$issue->set_state($_POST);
163//			$this->model->issues->save($issue);
164//
165//            $issue->mail_notify_change_state();
166//
167//			$redirect = true;
168//		} elseif ($action === 'reopen') {
169//			$issue->set_state(array('state' => '0'));
170//			$this->model->issues->save($issue);
171//
172//            $issue->mail_notify_change_state();
173//
174//            $redirect = true;
175//        } elseif ($action === 'issue_edit_metadata') {
176//            if (count($_POST) > 0) {
177//
178//                $_POST['last_activity'] = $_POST['last_activity_date']. ' '.$_POST['last_activity_time'];
179//
180//                $issue->set_meta($_POST);
181//                $this->model->issues->save($issue);
182//
183//                $redirect = true;
184//            } else {
185//                $value = $issue->get_assoc();
186//                $value['date'] = date('Y-m-d', (int)$value['date']);
187//                $value['last_mod'] = date('Y-m-d', (int)$value['last_mod']);
188//
189//                $unix = strtotime($value['last_activity']);
190//                $value['last_activity_date'] = date('Y-m-d', $unix);
191//                $value['last_activity_time'] = date('H:i:s', $unix);
192//            }
193// 		} elseif (strpos($action, 'task') === 0) {
194//            $template['task'] = $this->model->tasks->
195//                    create_dummy_object(array('issue' => $issue->id));
196//			$template['users'] = $this->model->users->get_all();
197//			$template['tasktypes'] = $this->model->tasktypes->get_all();
198//
199//			if (count($_POST) > 0) {
200//				if (!isset($_POST['all_day_event'])) {
201//					$_POST['all_day_event'] = '0';
202//				}
203//			}
204//
205//			if ($action === 'task_reopen') {
206//				$task = $this->model->tasks->get_one($nparams['tid']);
207//				$task->set_state(array('state' => '0'));
208//				$this->model->tasks->save($task);
209//
210//				$issue->update_last_activity();
211//				$this->model->issues->save($issue);
212//
213//                $task->mail_notify_subscribents($template['issue'],
214//                        array('action' => $bezlang['mail_task_reopened']));
215//
216//				$redirect = true;
217//				$anchor = 'z'.$task->id;
218//
219//			} elseif ($action === 'task_edit') {
220//				$template['tid'] = $nparams['tid'];
221//
222//				$template['causes'] = $this->model->commcauses->get_all(array(
223//					'issue' => $issue_id,
224//					'type' => array('!=', '0'),
225//				));
226//
227//				$task = $this->model->tasks->get_one($template['tid']);
228//				$value = $task->get_assoc();
229//
230//            } elseif ($action === 'task_change_state') {
231//                $template['tid'] = $nparams['tid'];
232//				$task = $this->model->tasks->get_one($template['tid']);
233//				$value = array('reason' => $task->reason);
234//			} elseif($action === 'task_edit_metadata') {
235//
236//                $task = $this->model->tasks->get_one($template['tid']);
237//
238//                if (count($_POST) > 0) {
239//                    $task->set_meta($_POST);
240//                    $this->model->tasks->save($task);
241//
242//                    header("Location: ?id=bez:issue:id:$issue_id#z".$task->id);
243//                } else {
244//                    $value = $task->get_assoc();
245//                    $value['date'] = date('Y-m-d', (int)$value['date']);
246//                    $value['close_date'] = date('Y-m-d', (int)$value['close_date']);
247//                }
248//            }
249//
250//			if (count($_POST) > 0) {
251//				//ends with
252//				if (substr($action, -strlen('add')) === 'add') {
253//					$defaults = array('issue' => (string)$issue_id);
254//					if ($template['kid'] !== '-1') {
255//						$defaults['cause'] = $template['kid'];
256//					}
257//					$task = $this->model->tasks->create_object($defaults);
258//
259//					$task->set_data($_POST);
260//					$id = $this->model->tasks->save($task);
261//
262//					$issue->add_participant($task->executor);
263//					$issue->add_subscribent($task->executor);
264//
265//					$issue->update_last_activity();
266//					$this->model->issues->save($issue);
267//
268//                    $task->mail_notify_add($issue);
269//
270//					$anchor = 'z'.$id;
271//					$redirect = true;
272//				} elseif ($action === 'task_change_state') {
273//					$task = $this->model->tasks->get_one($template['tid']);
274//
275//                    if (isset($_POST['no_evaluation'])) {
276//                        $_POST['reason'] = '';
277//                    }
278//
279//					$task->set_state(array(
280//								'state' => $nparams['state'],
281//								'reason' => $_POST['reason'])
282//							);
283//					$this->model->tasks->save($task);
284//
285//					$issue->update_last_activity();
286//					$this->model->issues->save($issue);
287//
288//                    $task->mail_notify_subscribents($template['issue'],
289//                        array('action' => $bezlang['mail_task_change_state']));
290//
291//					$anchor = 'z'.$task->id;
292//					$redirect = true;
293//				} elseif ($action === 'task_edit') {
294//					$task = $this->model->tasks->get_one($template['tid']);
295//					$task->set_data($_POST);
296//					$this->model->tasks->save($task);
297//
298//					$issue->add_participant($task->executor);
299//					$issue->add_subscribent($task->executor);
300//
301//					//don't upgrade last activity!!!
302//					$anchor = 'z'.$task->id;
303//					$redirect = true;
304//				}
305//			}
306//		}
307//
308//		if ($redirect) {
309//			if ($anchor !== '') {
310//				$anchor = '#'.$anchor;
311//			}
312//			header("Location: ?id=bez:issue:id:$issue_id$anchor");
313//		}
314//	}
315
316
317//} catch (ValidationException $e) {
318//	$errors = $e->get_errors();
319//	$value = $_POST;
320//} catch (DBException $e) {
321//	echo nl2br($e);
322////	header("Location: ?id=bez:issue:id:$issue_id");
323//}
324
325
326