// stop job $jobInst->fill(tool::securePostAll()); $jobInst->id = tool::securePost('id'); $jobInst->taskId = $taskInst->id; $jobInst->start = $toolInst->timestampToSec(tool::securePost('startyear'), tool::securePost('startmonth'), tool::securePost('startday'), tool::securePost('starthour'), tool::securePost('startmin')); $jobInst->stop = $toolInst->timestampToSec(tool::securePost('stopyear'), tool::securePost('stopmonth'), tool::securePost('stopday'), tool::securePost('stophour'), tool::securePost('stopmin')); $saveflags = 0; // handle job flags if (tool::securePost('privatejob') == "1") { $saveflags += JOB_FLAG_PRIVATE; } $jobInst->flags = $saveflags; $jobInst->stop(); if (tool::securePost('taskdone') == "1") { $taskInst->stop(); $taskInst->update(); } } elseif (tool::securePost('action') == "save") { // start job $jobInst->fill(tool::securePostAll()); $jobInst->taskId = $taskInst->id; $jobInst->start = $toolInst->timestampToSec(tool::securePost('startyear'), tool::securePost('startmonth'), tool::securePost('startday'), tool::securePost('starthour'), tool::securePost('startmin')); $saveflags = 0; // handle job flags if (tool::securePost('privatejob') == "1") { $saveflags += JOB_FLAG_PRIVATE; } $jobInst->flags = $saveflags; $jobId = $jobInst->start(); $jobInst->activate($jobId); } elseif (tool::securePost('action') == "deleteattach") {
function start() { global $dbInst, $loginInst, $toolInst; if (!$loginInst->hasAccess("job.start")) { return false; } if (!$this->check()) { return false; } if (isset($this->id)) { $otherTask = $dbInst->getValue("select task_id from " . $dbInst->config['table_job'] . " where id != '" . $this->id . "' and user_id = '{$loginInst->id}' and stop = '0'"); if ($otherTask) { $taskInst = new task($otherTask); $toolInst->errorStatus("theres allready a running job in "" . substr($taskInst->subject, 0, 20) . "...""); return false; } } // set task to "in progress" $taskInst = new task($this->taskId); $taskInst->start(); $taskInst->update(); $query = "insert into " . $dbInst->config['table_job'] . " " . "(task_id,user_id,comment,start,stop,flags) " . "values (" . "'" . $this->taskId . "'," . "'" . $loginInst->id . "'," . "'" . $this->comment . "'," . "'" . $this->start . "'," . "'0'," . "'" . $this->flags . "')"; $result = $dbInst->query($query); $id = $dbInst->getValue("select distinct last_insert_id() from " . $dbInst->config['table_job']); $dbInst->status($result[1], "i"); if ($result[1] == 1 || $result[1] == 0) { return $id; } else { return false; } }
/** * boolean update() * updates a task in database * @return true on success, else false * @access public */ function update() { global $dbInst, $config, $toolInst, $loginInst; if (!$loginInst->hasAccess("task.update")) { return false; } if (!$this->check()) { return false; } if ($this->id == $this->mountId) { $toolInst->errorStatus("recursion error: unable to mount task into itself"); return false; } if (in_array($this->id, $this->treeId($this->mountId))) { $toolInst->errorStatus("recursion error: unable to mount task into one of its members"); return false; } $query = "update " . $dbInst->config['table_task'] . " set " . "finish = '" . $this->finish . "'," . "plannedhours = '" . $this->plannedHours . "',"; if ($loginInst->hasAccess("task.fixedPrice")) { $query .= "fixedprice = '" . str_replace(',', '.', $this->fixedPrice) . "',"; } $query .= "body = '" . $this->body . "'," . "type_id = '" . $this->typeId . "'," . "user_id = '" . $this->userId . "'," . "subject = '" . $this->subject . "'," . "mount_id = '" . $this->mountId . "'," . "status_id = '" . $this->statusId . "'," . "poster_id = '" . $this->posterId . "'," . "project_id = '" . $this->projectId . "'," . "priority_id = '" . $this->priorityId . "' where id = '" . $this->id . "'"; $result = $dbInst->query($query); $dbInst->status($result[1], "u"); if ($result[1] == 1 || $result[1] == 0) { // notification mail to manager, if task set to done if ($result[1] == 1 && $this->isDone()) { $projectInst = new project($this->projectId); $this->mail($projectInst->managerId, " --== TASK DONE ==--\n\nused time: " . $toolInst->formatTime($this->getSummary())); } // logging $userInst = new user($this->userId); $this->logger->info("changed task (" . $this->subject . ") for " . $userInst->name); if (tool::secureFiles('userfile', 'name') && @file_exists(tool::secureFiles('userfile', 'tmp_name'))) { // attachment successfully uploaded, we can save it $attach = new attachment(); $attach->taskId = $this->id; $attach->insert(); $this->logger->info("added attachment (" . $this->file . ") to task " . $this->subject); unset($_FILES['userfile']); } // process all childs $childs = $this->childs(); while ($element = current($childs)) { $child = new task($element); // we need to update the project id in all child tasks $child->projectId = $this->projectId; // task is set to status "done", we should start all child tasks now if ($this->isDone()) { $child->start(); $child->mail($child->userId, "There's an automatically started task for you:"); } $child->update(); next($childs); } return true; } return false; }
<?php $taskInst = new task(); // set default search values (only, if no submit was pressed) if (!tool::securePost('action')) { $taskInst->filterStatusId = TASK_STATUS_DONE; $taskInst->filterInvertStatus = 1; } ####################################################################### ## perform action $recordType = "new"; $action = tool::securePost('action'); if ($action == "update") { $taskInst->id = tool::securePost('id'); $taskInst->fill(tool::securePostAll()); if ($taskInst->update()) { $taskInst->clear(); $recordType = "new"; } else { $recordType = "edit"; } } if ($action == "new") { $taskInst->fill(tool::securePostAll()); if ($taskInst->insert()) { $taskInst->clear(); } } if ($action == "search") { if (tool::securePost('lastrecordtype')) { $recordType = tool::securePost('lastrecordtype');