<?php
/** @var action_plugin_bez $this */

use \dokuwiki\plugin\bez;

if ($this->get_param('id') == '') {
    header('Location: ?id=bez:threads');
}

//try {
    //$issue_id = (int)$nparams['id'];
    
    //new way

$thread = $this->model->threadFactory->get_one($this->get_param('id'));
$this->tpl->set('thread', $thread);
$this->tpl->set('corrections', array());
$this->tpl->set('thread_comments', array());


//    $template['tid'] = isset($nparams['tid']) ? $nparams['tid'] : '-1';
//    $template['kid'] = isset($nparams['kid']) ? $nparams['kid'] : '-1';
//    $template['state'] = isset($nparams['state']) ? $nparams['state'] : '-1';
//    $template['action'] = isset($nparams['action']) ? $nparams['action'] : '-default';
        
//    $template['issue'] = $issue;
//    $template['commcauses'] = $this->model->commcauses->get_all(
//        array('issue' => $issue_id)
//    );
//
//    $template['commcause'] = $this->model->commcauses->
//                            create_dummy_object(array('issue' => $issue->id));
//
//    $template['corrections'] = $this->model->tasks->get_all(array(
//        'issue' => $issue_id,
//        'action' => 0,
//    ));
//
//    $template['commcauses_tasks'] = array();
//    foreach ($this->model->commcauses->get_causes_ids($issue_id) as $kid) {
//        $template['commcauses_tasks'][$kid] = $this->model->tasks->get_all(array(
//            'cause' => $kid,
//        ));
//    }


//    $template['users'] = $this->model->users->get_all();
//
//    //remove userts that are subscribents already
//    $template['users_to_invite'] = array_diff_key($template['users'], $issue->get_subscribents());


//	$action = '';
//	if (isset($nparams['action'])) {
//		$action = $nparams['action'];
//		$redirect = false;
//		$anchor = '';
//
//		if ($action === 'commcause_add') {
//
//            $defaults = array('issue' => (string)$issue_id);
//            if ($issue->user_is_coordinator()) {
//                $defaults['type'] = $_POST['type'];
//            }
//
//			$commcause = $this->model->commcauses->create_object($defaults);
//
//            $data = array('content' => $_POST['content']);
//			$commcause->set_data($data);
//
//			$id = $this->model->commcauses->save($commcause);
//
//			$issue->add_participant($INFO['client']);
//			$issue->add_subscribent($INFO['client']);
//
//			$issue->update_last_activity();
//			$this->model->issues->save($issue);
//
//            $commcause->mail_notify_add($issue);
//
//			$anchor = 'k'.$id;
//			$redirect = true;
//		} elseif ($action === 'subscribe') {
//			$issue->add_subscribent($INFO['client']);
//			$this->model->issues->save($issue);
//
//			$redirect = true;
//		} elseif ($action === 'unsubscribe') {
//			$issue->remove_subscribent($INFO['client']);
//			$this->model->issues->save($issue);
//
//            $this->add_notification($bezlang['unsubscribed_com']);
//
//            $redirect = true;
//
//        } elseif ($action === 'invite') {
//            $client = $_POST['client'];
//
//			$state = $issue->add_subscribent($client);
//            //user wasn't subscribent
//            if ($state === true) {
//                $this->model->issues->save($issue);
//                $issue->mail_notify_invite($client);
//
//                $this->add_notification($this->model->users->get_user_email($client), $bezlang['invitation_has_been_send']);
//
//                $redirect = true;
//            }
//
//		} elseif ($action === 'commcause_delete') {
//			$commcause = $this->model->commcauses->get_one($template['kid']);
//
//			$this->model->commcauses->delete($commcause);
//
//			$issue->update_last_activity();
//			$this->model->issues->save($issue);
//
//			$redirect = true;
//		} elseif ($action === 'commcause_edit') {
//			if (count($_POST) === 0) {
//				$commcause = $this->model->commcauses->get_one($template['kid']);
//				$template['kid'] = $commcause->id;
//				$value = $commcause->get_assoc();
//			} else {
//				$commcause = $this->model->commcauses->get_one($template['kid']);
//
//                $data = array('content' => $_POST['content']);
//                if ($issue->user_is_coordinator()) {
//                    $data['type'] = $_POST['type'];
//                }
//
//				$commcause->set_data($data);
//				$this->model->commcauses->save($commcause);
//
//				$issue->update_last_activity();
//				$this->model->issues->save($issue);
//
//				$anchor = 'k'.$commcause->id;
//				$redirect = true;
//			}
//
//        } elseif ($action === 'commcause_edit_metadata') {
//            if (count($_POST) === 0) {
//				$commcause = $this->model->commcauses->get_one($template['kid']);
//				$template['kid'] = $commcause->id;
//				$value = $commcause->get_assoc(array('datetime', 'reporter'));
//                $unix = strtotime($value['datetime']);
//                $value['date'] = date('Y-m-d', $unix);
//                $value['time'] = date('H:i:s', $unix);
//			} else {
//				$commcause = $this->model->commcauses->get_one($template['kid']);
//                $_POST['datetime'] = $_POST['date']. ' '.$_POST['time'];
//				$commcause->set_meta($_POST);
//				$this->model->commcauses->save($commcause);
//
//				$anchor = 'k'.$commcause->id;
//				$redirect = true;
//			}
//		} elseif ($action === 'issue_close') {
//			$value['opinion'] = $issue->opinion;
//		} elseif ($action == 'issue_close_confirm') {
//			$issue->set_state($_POST);
//			$this->model->issues->save($issue);
//
//            $issue->mail_notify_change_state();
//
//			$redirect = true;
//		} elseif ($action === 'reopen') {
//			$issue->set_state(array('state' => '0'));
//			$this->model->issues->save($issue);
//
//            $issue->mail_notify_change_state();
//
//            $redirect = true;
//        } elseif ($action === 'issue_edit_metadata') {
//            if (count($_POST) > 0) {
//
//                $_POST['last_activity'] = $_POST['last_activity_date']. ' '.$_POST['last_activity_time'];
//
//                $issue->set_meta($_POST);
//                $this->model->issues->save($issue);
//
//                $redirect = true;
//            } else {
//                $value = $issue->get_assoc();
//                $value['date'] = date('Y-m-d', (int)$value['date']);
//                $value['last_mod'] = date('Y-m-d', (int)$value['last_mod']);
//
//                $unix = strtotime($value['last_activity']);
//                $value['last_activity_date'] = date('Y-m-d', $unix);
//                $value['last_activity_time'] = date('H:i:s', $unix);
//            }
// 		} elseif (strpos($action, 'task') === 0) {
//            $template['task'] = $this->model->tasks->
//                    create_dummy_object(array('issue' => $issue->id));
//			$template['users'] = $this->model->users->get_all();
//			$template['tasktypes'] = $this->model->tasktypes->get_all();
//
//			if (count($_POST) > 0) {
//				if (!isset($_POST['all_day_event'])) {
//					$_POST['all_day_event'] = '0';
//				}
//			}
//
//			if ($action === 'task_reopen') {
//				$task = $this->model->tasks->get_one($nparams['tid']);
//				$task->set_state(array('state' => '0'));
//				$this->model->tasks->save($task);
//
//				$issue->update_last_activity();
//				$this->model->issues->save($issue);
//
//                $task->mail_notify_subscribents($template['issue'],
//                        array('action' => $bezlang['mail_task_reopened']));
//
//				$redirect = true;
//				$anchor = 'z'.$task->id;
//
//			} elseif ($action === 'task_edit') {
//				$template['tid'] = $nparams['tid'];
//
//				$template['causes'] = $this->model->commcauses->get_all(array(
//					'issue' => $issue_id,
//					'type' => array('!=', '0'),
//				));
//
//				$task = $this->model->tasks->get_one($template['tid']);
//				$value = $task->get_assoc();
//
//            } elseif ($action === 'task_change_state') {
//                $template['tid'] = $nparams['tid'];
//				$task = $this->model->tasks->get_one($template['tid']);
//				$value = array('reason' => $task->reason);
//			} elseif($action === 'task_edit_metadata') {
//
//                $task = $this->model->tasks->get_one($template['tid']);
//
//                if (count($_POST) > 0) {
//                    $task->set_meta($_POST);
//                    $this->model->tasks->save($task);
//
//                    header("Location: ?id=bez:issue:id:$issue_id#z".$task->id);
//                } else {
//                    $value = $task->get_assoc();
//                    $value['date'] = date('Y-m-d', (int)$value['date']);
//                    $value['close_date'] = date('Y-m-d', (int)$value['close_date']);
//                }
//            }
//
//			if (count($_POST) > 0) {
//				//ends with
//				if (substr($action, -strlen('add')) === 'add') {
//					$defaults = array('issue' => (string)$issue_id);
//					if ($template['kid'] !== '-1') {
//						$defaults['cause'] = $template['kid'];
//					}
//					$task = $this->model->tasks->create_object($defaults);
//
//					$task->set_data($_POST);
//					$id = $this->model->tasks->save($task);
//
//					$issue->add_participant($task->executor);
//					$issue->add_subscribent($task->executor);
//
//					$issue->update_last_activity();
//					$this->model->issues->save($issue);
//
//                    $task->mail_notify_add($issue);
//
//					$anchor = 'z'.$id;
//					$redirect = true;
//				} elseif ($action === 'task_change_state') {
//					$task = $this->model->tasks->get_one($template['tid']);
//
//                    if (isset($_POST['no_evaluation'])) {
//                        $_POST['reason'] = '';
//                    }
//
//					$task->set_state(array(
//								'state' => $nparams['state'],
//								'reason' => $_POST['reason'])
//							);
//					$this->model->tasks->save($task);
//
//					$issue->update_last_activity();
//					$this->model->issues->save($issue);
//
//                    $task->mail_notify_subscribents($template['issue'],
//                        array('action' => $bezlang['mail_task_change_state']));
//
//					$anchor = 'z'.$task->id;
//					$redirect = true;
//				} elseif ($action === 'task_edit') {
//					$task = $this->model->tasks->get_one($template['tid']);
//					$task->set_data($_POST);
//					$this->model->tasks->save($task);
//
//					$issue->add_participant($task->executor);
//					$issue->add_subscribent($task->executor);
//
//					//don't upgrade last activity!!!
//					$anchor = 'z'.$task->id;
//					$redirect = true;
//				}
//			}
//		}
//
//		if ($redirect) {
//			if ($anchor !== '') {
//				$anchor = '#'.$anchor;
//			}
//			header("Location: ?id=bez:issue:id:$issue_id$anchor");
//		}
//	}

    
//} catch (ValidationException $e) {
//	$errors = $e->get_errors();
//	$value = $_POST;
//} catch (DBException $e) {
//	echo nl2br($e);
////	header("Location: ?id=bez:issue:id:$issue_id");
//}


