xref: /plugin/bez/ctl/task_form.php (revision ff14b1073c2dab2f863cab3b8baf8b1a01f7993a)
1aa89e6f8SSzymon Olewniczak<?php
2aa89e6f8SSzymon Olewniczak
3*ff14b107SSzymon Olewniczak/** @var action_plugin_bez_default $this */
4aa89e6f8SSzymon Olewniczak
5*ff14b107SSzymon Olewniczakuse \dokuwiki\plugin\bez;
6*ff14b107SSzymon Olewniczak
7*ff14b107SSzymon Olewniczak$task_id = $this->get_param('tid');
8*ff14b107SSzymon Olewniczakif ($task_id != '') {
9*ff14b107SSzymon Olewniczak    /** @var bez\mdl\Task $task */
10*ff14b107SSzymon Olewniczak    $task = $this->model->taskFactory->get_one($this->get_param('tid'));
11f2c81100SSzymon Olewniczak} else {
12*ff14b107SSzymon Olewniczak    /** @var bez\mdl\Task $task */
13*ff14b107SSzymon Olewniczak    $task = $this->model->taskFactory->create_object();
14f2c81100SSzymon Olewniczak}
15*ff14b107SSzymon Olewniczak$this->tpl->set('task', $task);
16*ff14b107SSzymon Olewniczak$this->tpl->set('task_programs',  $this->model->task_programFactory->get_all());
1748ab8737SSzymon Olewniczak
18*ff14b107SSzymon Olewniczakif ($this->get_param('action') == 'add') {
1948ab8737SSzymon Olewniczak
20*ff14b107SSzymon Olewniczak    $this->model->taskFactory->initial_save($task, $_POST);
21aa89e6f8SSzymon Olewniczak
22*ff14b107SSzymon Olewniczak    $redirect = true;
23aa89e6f8SSzymon Olewniczak}
24aa89e6f8SSzymon Olewniczak
25*ff14b107SSzymon Olewniczakif (isset($redirect) && $redirect == true) {
26*ff14b107SSzymon Olewniczak    header("Location: " . $this->url('task', 'tid', $task->id));
2704f149d4SSzymon Olewniczak}
28aa89e6f8SSzymon Olewniczak
29*ff14b107SSzymon Olewniczak//
30*ff14b107SSzymon Olewniczak//$template['tid'] = isset($nparams['tid']) ? $nparams['tid'] : '-1';
31*ff14b107SSzymon Olewniczak//$template['action'] = isset($nparams['action']) ? $nparams['action'] : '-default';
32*ff14b107SSzymon Olewniczak//
33*ff14b107SSzymon Olewniczak//if (isset($_POST['tasktype'])) {
34*ff14b107SSzymon Olewniczak//    $tasktype = $_POST['tasktype'];
35*ff14b107SSzymon Olewniczak//} else {
36*ff14b107SSzymon Olewniczak//    $tasktype = $nparams['tasktype'];
37*ff14b107SSzymon Olewniczak//}
38*ff14b107SSzymon Olewniczak//$template['tasktype'] = $tasktype;
39*ff14b107SSzymon Olewniczak//
40*ff14b107SSzymon Olewniczak//try {
41*ff14b107SSzymon Olewniczak//
42*ff14b107SSzymon Olewniczak//    $task = $this->model->tasks->create_object(
43*ff14b107SSzymon Olewniczak//                            array('tasktype' => $tasktype));
44*ff14b107SSzymon Olewniczak//    $template['task'] = $task;
45*ff14b107SSzymon Olewniczak//
46*ff14b107SSzymon Olewniczak//    //$template['auth_level'] = $task->get_level();
47*ff14b107SSzymon Olewniczak//    //$template['user'] = $task->get_user();
48*ff14b107SSzymon Olewniczak//    $value['tasktype'] = $tasktype;
49*ff14b107SSzymon Olewniczak//    $value['executor'] = $this->model->user_nick;
50*ff14b107SSzymon Olewniczak//
51*ff14b107SSzymon Olewniczak//    if (count($_POST) > 0) {
52*ff14b107SSzymon Olewniczak//        //checkboxes
53*ff14b107SSzymon Olewniczak//        if (!isset($_POST['all_day_event'])) {
54*ff14b107SSzymon Olewniczak//            $_POST['all_day_event'] = '0';
55*ff14b107SSzymon Olewniczak//        }
56*ff14b107SSzymon Olewniczak//
57*ff14b107SSzymon Olewniczak//        $task->set_data($_POST);
58*ff14b107SSzymon Olewniczak//
59*ff14b107SSzymon Olewniczak//        if ($task->issue == '') {
60*ff14b107SSzymon Olewniczak//            $task->add_subscribent($task->reporter);
61*ff14b107SSzymon Olewniczak//            $task->add_subscribent($task->executor);
62*ff14b107SSzymon Olewniczak//        }
63*ff14b107SSzymon Olewniczak//
64*ff14b107SSzymon Olewniczak//        $tid = $this->model->tasks->save($task);
65*ff14b107SSzymon Olewniczak//
66*ff14b107SSzymon Olewniczak//
67*ff14b107SSzymon Olewniczak//        //don't send notification when user binds himself to the task.
68*ff14b107SSzymon Olewniczak//        if ($task->reporter !== $task->executor) {
69*ff14b107SSzymon Olewniczak//            $task->mail_notify_add(NULL, array($task->executor),
70*ff14b107SSzymon Olewniczak//                       array('action' => $bezlang['mail_task_added_programme']));
71*ff14b107SSzymon Olewniczak//        }
72*ff14b107SSzymon Olewniczak//        header("Location: ?id=bez:task:tid:$tid");
73*ff14b107SSzymon Olewniczak//    } else {
74*ff14b107SSzymon Olewniczak//        if (isset($nparams['duplicate'])) {
75*ff14b107SSzymon Olewniczak//            $tid = (int)$nparams['duplicate'];
76*ff14b107SSzymon Olewniczak//            $task = $this->model->tasks->get_one($tid);
77*ff14b107SSzymon Olewniczak//            $value = $task->get_assoc();
78*ff14b107SSzymon Olewniczak//        } else {
79*ff14b107SSzymon Olewniczak//            $value['all_day_event'] = '1';
80*ff14b107SSzymon Olewniczak//        }
81*ff14b107SSzymon Olewniczak//    }
82*ff14b107SSzymon Olewniczak//
83*ff14b107SSzymon Olewniczak//    $template['users'] = $this->model->users->get_all();
84*ff14b107SSzymon Olewniczak//    $template['tasktypes'] = $this->model->tasktypes->get_all();
85*ff14b107SSzymon Olewniczak//
86*ff14b107SSzymon Olewniczak//} catch (ValidationException $e) {
87*ff14b107SSzymon Olewniczak//	$errors = $e->get_errors();
88*ff14b107SSzymon Olewniczak//	$value = $_POST;
89*ff14b107SSzymon Olewniczak//} catch (DBException $e) {
90*ff14b107SSzymon Olewniczak//    echo nl2br($e);
91*ff14b107SSzymon Olewniczak////	header("Location: ?id=bez:tasks");
92*ff14b107SSzymon Olewniczak//}
93aa89e6f8SSzymon Olewniczak
94