mirror of
https://github.com/Karaka-Management/oms-Tasks.git
synced 2026-01-11 15:38:40 +00:00
Create task elements
This commit is contained in:
parent
814f8f493d
commit
0f769089cb
|
|
@ -223,6 +223,21 @@ class Controller extends ModuleAbstract implements WebInterface
|
|||
$response->set($request->__toString(), $task->jsonSerialize());
|
||||
}
|
||||
|
||||
private function validateTaskElementCreate(RequestAbstract $request) : array
|
||||
{
|
||||
$val = [];
|
||||
if (
|
||||
($val['status'] = !TaskStatus::isValidValue((int) $request->getData('status')))
|
||||
|| ($val['due'] = !((bool)strtotime($request->getData('due'))))
|
||||
|| ($val['task'] = !(is_numeric($request->getData('task'))))
|
||||
|| ($val['forward'] = !(is_numeric(empty($request->getData('forward')) ? $request->getAccount() : $request->getData('forward'))))
|
||||
) { // todo: validate correct task
|
||||
return $val;
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
/**
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
|
|
@ -235,6 +250,12 @@ class Controller extends ModuleAbstract implements WebInterface
|
|||
*/
|
||||
public function apiTaskElementCreate(RequestAbstract $request, ResponseAbstract $response, $data = null)
|
||||
{
|
||||
if (!empty($val = $this->validateTaskElementCreate($request))) {
|
||||
$response->set('task_element_create', new FormValidation($val));
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
$element = new TaskElement();
|
||||
$element->setForwarded($request->getData('forward') ?? $request->getAccount());
|
||||
$element->setCreatedAt(new \DateTime('now'));
|
||||
|
|
@ -242,10 +263,10 @@ class Controller extends ModuleAbstract implements WebInterface
|
|||
$element->setDue(new \DateTime($request->getData('due') ?? 'now'));
|
||||
$element->setStatus($request->getData('status'));
|
||||
$element->setTask($request->getData('task'));
|
||||
$element->setDescription($request->getData('desc'));
|
||||
$element->setDescription($request->getData('description'));
|
||||
|
||||
TaskElementMapper::create($element);
|
||||
$response->set($request->__toString(), new Reload());
|
||||
$response->set($request->__toString(), $element->jsonSerialize());
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -420,10 +420,13 @@ class Task implements \JsonSerializable
|
|||
{
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'createdBy' => $this->createdBy,
|
||||
'createdAt' => $this->createdAt,
|
||||
'title' => $this->title,
|
||||
'description' => $this->description,
|
||||
'status' => $this->status,
|
||||
'type' => $this->type,
|
||||
'type' => $this->type,
|
||||
'due' => $this->due->format('Y-m-d H:i:s'),
|
||||
'done' => (!isset($this->done) ? null : $this->done->format('Y-m-d H:i:s')),
|
||||
];
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ use phpOMS\Datatypes\Exception\InvalidEnumValue;
|
|||
* @link http://orange-management.com
|
||||
* @since 1.0.0
|
||||
*/
|
||||
class TaskElement
|
||||
class TaskElement implements \JsonSerializable
|
||||
{
|
||||
|
||||
/**
|
||||
|
|
@ -296,4 +296,21 @@ class TaskElement
|
|||
{
|
||||
$this->task = $task;
|
||||
}
|
||||
|
||||
public function toArray() : array {
|
||||
return [
|
||||
'id' => $this->id,
|
||||
'task' => $this->task,
|
||||
'createdBy' => $this->createdBy,
|
||||
'createdAt' => $this->createdAt,
|
||||
'description' => $this->description,
|
||||
'status' => $this->status,
|
||||
'forward' => $this->forwarded,
|
||||
'due' => isset($this->due) ? $this->due->format('Y-m-d H:i:s') : null,
|
||||
];
|
||||
}
|
||||
|
||||
public function jsonSerialize() {
|
||||
return json_encode($this->toArray());
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,15 +74,19 @@ foreach ($elements as $key => $element) : $c++;
|
|||
<form id="taskElementCreate" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/task/element?csrf={$CSRF}'); ?>">
|
||||
<table class="layout wf-100">
|
||||
<tr><td><label for="iMessage"><?= $this->getText('Message'); ?></label>
|
||||
<tr><td><textarea id="iMessage" name="desc"></textarea>
|
||||
<tr><td><textarea id="iMessage" name="description"></textarea>
|
||||
<tr><td><label for="iDue"><?= $this->getText('Due'); ?></label>
|
||||
<tr><td><input type="datetime-local" id="iDue" name="due">
|
||||
<tr><td><input type="datetime-local" id="iDue" name="due" value="<?= end($elements)->getDue()->format('Y-m-d\TH:i:s'); ?>">
|
||||
<tr><td><label for="iStatus"><?= $this->getText('Status'); ?></label>
|
||||
<tr><td><select id="iStatus" name="status">
|
||||
<option>
|
||||
<option value="<?= \Modules\Tasks\Models\TaskStatus::OPEN; ?>" selected>Open
|
||||
<option value="<?= \Modules\Tasks\Models\TaskStatus::WORKING; ?>">Working
|
||||
<option value="<?= \Modules\Tasks\Models\TaskStatus::SUSPENDED; ?>">Suspended
|
||||
<option value="<?= \Modules\Tasks\Models\TaskStatus::CANCELED; ?>">Canceled
|
||||
<option value="<?= \Modules\Tasks\Models\TaskStatus::DONE; ?>">Done
|
||||
</select>
|
||||
<tr><td><label for="iReceiver"><?= $this->getText('To'); ?></label>
|
||||
<tr><td><input type="text" id="iReceiver" name="forward" placeholder=" Guest">
|
||||
<tr><td><input type="text" id="iReceiver" name="forward" value="<?= $this->request->getAccount(); ?>" placeholder=" Guest">
|
||||
<tr><td><input type="submit" value="<?= $this->getText('Create', 0, 0); ?>"><input type="hidden" name="task" value="<?= $this->request->getData('id') ?>"><input type="hidden" name="type" value="1">
|
||||
</table>
|
||||
</form>
|
||||
|
|
|
|||
|
|
@ -74,15 +74,19 @@ foreach ($elements as $key => $element) : $c++;
|
|||
<form id="taskElementCreate" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/task/element?csrf={$CSRF}'); ?>">
|
||||
<table class="layout wf-100">
|
||||
<tr><td><label for="iMessage"><?= $this->getText('Message'); ?></label>
|
||||
<tr><td><textarea id="iMessage" name="desc"></textarea>
|
||||
<tr><td><textarea id="iMessage" name="description"></textarea>
|
||||
<tr><td><label for="iDue"><?= $this->getText('Due'); ?></label>
|
||||
<tr><td><input type="datetime-local" id="iDue" name="due">
|
||||
<tr><td><input type="datetime-local" id="iDue" name="due" value="<?= end($elements)->getDue()->format('Y-m-d\TH:i:s'); ?>">
|
||||
<tr><td><label for="iStatus"><?= $this->getText('Status'); ?></label>
|
||||
<tr><td><select id="iStatus" name="status">
|
||||
<option>
|
||||
<option value="<?= \Modules\Tasks\Models\TaskStatus::OPEN; ?>" selected>Open
|
||||
<option value="<?= \Modules\Tasks\Models\TaskStatus::WORKING; ?>">Working
|
||||
<option value="<?= \Modules\Tasks\Models\TaskStatus::SUSPENDED; ?>">Suspended
|
||||
<option value="<?= \Modules\Tasks\Models\TaskStatus::CANCELED; ?>">Canceled
|
||||
<option value="<?= \Modules\Tasks\Models\TaskStatus::DONE; ?>">Done
|
||||
</select>
|
||||
<tr><td><label for="iReceiver"><?= $this->getText('To'); ?></label>
|
||||
<tr><td><input type="text" id="iReceiver" name="forward" placeholder=" Guest">
|
||||
<tr><td><input type="text" id="iReceiver" name="forward" value="<?= $this->request->getAccount(); ?>" placeholder=" Guest">
|
||||
<tr><td><input type="submit" value="<?= $this->getText('Create', 0, 0); ?>"><input type="hidden" name="task" value="<?= $this->request->getData('id') ?>"><input type="hidden" name="type" value="1">
|
||||
</table>
|
||||
</form>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user