Core adjustments for pending issues

This commit is contained in:
Dennis Eichhorn 2016-10-02 12:07:05 +02:00
parent 0aba90fd59
commit 2f379c222d
13 changed files with 127 additions and 40 deletions

20
Admin/Routes/Web/Api.php Normal file
View File

@ -0,0 +1,20 @@
<?php
use phpOMS\Router\RouteVerb;
return [
'^.*/api/task$' => [
[
'dest' => '\Modules\Tasks\Controller:apiTaskCreate',
'verb' => RouteVerb::SET,
],
],
'^.*/api/task/element.*$' => [
[
'dest' => '\Modules\Tasks\Controller:apiTaskElementCreate',
'verb' => RouteVerb::SET,
],
],
];

View File

@ -27,17 +27,4 @@ return [
'verb' => RouteVerb::GET,
],
],
'^.*/api/task$' => [
[
'dest' => '\Modules\Tasks\Controller:apiTaskCreate',
'verb' => RouteVerb::SET,
],
],
'^.*/api/task/element.*$' => [
[
'dest' => '\Modules\Tasks\Controller:apiTaskElementCreate',
'verb' => RouteVerb::SET,
],
],
];

View File

@ -16,8 +16,10 @@
namespace Modules\Tasks;
use Model\Message\Redirect;
use Model\Message\Reload;
use Modules\Tasks\Models\Task;
use Modules\Tasks\Models\TaskElement;
use Modules\Tasks\Models\TaskElementMapper;
use Modules\Tasks\Models\TaskMapper;
use Modules\Tasks\Models\TaskStatus;
use Modules\Tasks\Models\TaskType;
@ -196,7 +198,32 @@ class Controller extends ModuleAbstract implements WebInterface
$task->addElement($element);
TaskMapper::create($task);
$response->set($request->__toString(), new Redirect(UriFactory::build('http://127.0.0.1/{/lang}/backend/task/single?id=' . $task->getId())));
$response->set($request->__toString(), new Redirect(UriFactory::build('{/base}/{/lang}/{/app}/task/single?id=' . $task->getId())));
}
/**
* @param RequestAbstract $request Request
* @param ResponseAbstract $response Response
* @param mixed $data Generic data
*
* @return \Serializable
*
* @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com>
*/
public function apiTaskElementCreate(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$element = new TaskElement();
$element->setForwarded($request->getData('forward') ?? $request->getAccount());
$element->setCreatedAt(new \DateTime('now'));
$element->setCreatedBy($request->getAccount());
$element->setDue(new \DateTime($request->getData('due') ?? 'now'));
$element->setStatus($request->getData('status'));
$element->setTask($request->getData('task'));
$element->setDescription($request->getData('desc'));
TaskElementMapper::create($element);
$response->set($request->__toString(), new Reload());
}
}

34
Models/NullTask.php Normal file
View File

@ -0,0 +1,34 @@
<?php
/**
* Orange Management
*
* PHP Version 7.0
*
* @category TBD
* @package TBD
* @author OMS Development Team <dev@oms.com>
* @author Dennis Eichhorn <d.eichhorn@oms.com>
* @copyright 2013 Dennis Eichhorn
* @license OMS License 1.0
* @version 1.0.0
* @link http://orange-management.com
*/
namespace Modules\Tasks\Models;
/**
* Task class.
*
* @category Modules
* @package Framework
* @author OMS Development Team <dev@oms.com>
* @author Dennis Eichhorn <d.eichhorn@oms.com>
* @license OMS License 1.0
* @link http://orange-management.com
* @since 1.0.0
*/
class NullTask extends Task
{
}

View File

@ -64,7 +64,6 @@ class TaskMapper extends DataMapperAbstract
protected static $hasMany = [
'taskElements' => [
'mapper' => TaskElementMapper::class,
'relationmapper' => TaskElementMapper::class,
'table' => 'task_element',
'dst' => 'task_element_task',
'src' => null,
@ -77,7 +76,7 @@ class TaskMapper extends DataMapperAbstract
* @var array<string, array>
* @since 1.0.0
*/
protected static $hasOne = [
protected static $ownsOne = [
'schedule' => [
'mapper' => ScheduleMapper::class,
'src' => 'task_schedule',

View File

@ -28,6 +28,7 @@ return ['Tasks' => [
'Forwarded' => 'Forwarded',
'From' => 'From',
'Group' => 'Group',
'History' => 'History',
'Interval' => 'Interval',
'InTime' => 'In Time',
'Message' => 'Message',
@ -49,6 +50,7 @@ return ['Tasks' => [
'Task' => 'Task',
'Tasks' => 'Tasks',
'Template' => 'Template',
'Time' => 'Time',
'Title' => 'Title',
'To' => 'To',
'Today' => 'Today',

View File

@ -48,3 +48,11 @@ echo $this->getData('nav')->render(); ?>
</table>
</div>
</section>
<div class="clear"></div>
<section class="box w-100 floatLeft">
<header><h1><?= $this->getText('History'); ?></h1></header>
<div class="inner" style="height: 300px">
</div>
</section>

View File

@ -22,19 +22,19 @@ echo $this->getData('nav')->render(); ?>
<header><h1><?= $this->getText('Task'); ?></h1></header>
<div class="inner">
<form id="fTask" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/task/create'); ?>">
<form id="fTask" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/task/create?csrf={$CSRF}'); ?>">
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iReceiver"><?= $this->getText('To'); ?></label>
<tr><td><span class="input"><button type="button" data-action='[{"type": "popup", "tpl": "acc-grp-tpl", "aniIn": "fadeIn", "aniOut": "fadeOut", "stay": 5000}]' formaction=""><i class="fa fa-book"></i></button><input type="number" min="1" id="iReceiver" name="receiver" placeholder="&#xf007; Guest" required></span><td><button><?= $this->getText('Add', 0, 0); ?></button>
<tr><td><span class="input"><button type="button" data-action='[{"listener": "click", "action": [{"type": "popup", "tpl": "acc-grp-tpl", "aniIn": "fadeIn", "aniOut": "fadeOut", "stay": 5000}]}]' formaction=""><i class="fa fa-book"></i></button><input type="number" min="1" id="iReceiver" name="receiver" placeholder="&#xf007; Guest" required></span><td><button><?= $this->getText('Add', 0, 0); ?></button>
<tr><td colspan="2"><label for="iObserver"><?= $this->getText('CC'); ?></label>
<tr><td><span class="input"><button type="button" formaction=""><i class="fa fa-book"></i></button><input type="number" min="1" id="iObserver" name="observer" placeholder="&#xf007; Guest" required></span><td><button><?= $this->getText('Add', 0, 0); ?></button>
<tr><td><span class="input"><button type="button" formaction=""><i class="fa fa-book"></i></button><input type="number" min="1" id="iObserver" name="observer" placeholder="&#xf007; Guest"></span><td><button><?= $this->getText('Add', 0, 0); ?></button>
<tr><td colspan="2"><label for="iDue"><?= $this->getText('Due'); ?></label>
<tr><td><input type="datetime-local" id="iDue" name="due" value="<?= (new \DateTime('NOW'))->format('Y-m-d\TH:i:s') ?>"><td>
<tr><td colspan="2"><label for="iTitle"><?= $this->getText('Title'); ?></label>
<tr><td><input type="text" id="iTitle" name="title" placeholder="&#xf040; <?= $this->getText('Title'); ?>"><td>
<tr><td><input type="text" id="iTitle" name="title" placeholder="&#xf040; <?= $this->getText('Title'); ?>" required><td>
<tr><td colspan="2"><label for="iMessage"><?= $this->getText('Message'); ?></label>
<tr><td><textarea id="iMessage" name="description" placeholder="&#xf040;"></textarea><td>
<tr><td><textarea id="iMessage" name="description" placeholder="&#xf040;" required></textarea><td>
<tr><td colspan="2"><input type="submit" value="<?= $this->getText('Create', 0, 0); ?>"><input type="hidden" name="type" value="<?= \Modules\Tasks\Models\TaskType::SINGLE; ?>">
</table>
</form>

View File

@ -71,19 +71,19 @@ foreach ($elements as $key => $element) : $c++;
<section class="box w-50">
<div class="inner">
<form>
<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></textarea>
<tr><td><textarea id="iMessage" name="desc"></textarea>
<tr><td><label for="iDue"><?= $this->getText('Due'); ?></label>
<tr><td><input type="datetime-local">
<tr><td><label for="iReceiver"><?= $this->getText('Status'); ?></label>
<tr><td><select>
<tr><td><input type="datetime-local" id="iDue" name="due">
<tr><td><label for="iStatus"><?= $this->getText('Status'); ?></label>
<tr><td><select id="iStatus" name="status">
<option>
</select>
<tr><td><label for="iReceiver"><?= $this->getText('To'); ?></label>
<tr><td><input type="text" id="iReceiver" placeholder="&#xf007; Guest">
<tr><td><input type="submit" value="<?= $this->getText('Create', 0, 0); ?>"><input type="hidden" name="type" value="1">
<tr><td><input type="text" id="iReceiver" name="forward" placeholder="&#xf007; 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>
</div>

View File

@ -28,6 +28,7 @@ return ['Tasks' => [
'Forwarded' => 'Forwarded',
'From' => 'From',
'Group' => 'Group',
'History' => 'History',
'Interval' => 'Interval',
'InTime' => 'In Time',
'Message' => 'Message',
@ -49,6 +50,7 @@ return ['Tasks' => [
'Task' => 'Task',
'Tasks' => 'Tasks',
'Template' => 'Template',
'Time' => 'Time',
'Title' => 'Title',
'To' => 'To',
'Today' => 'Today',

View File

@ -48,3 +48,11 @@ echo $this->getData('nav')->render(); ?>
</table>
</div>
</section>
<div class="clear"></div>
<section class="box w-100 floatLeft">
<header><h1><?= $this->getText('History'); ?></h1></header>
<div class="inner" style="height: 300px">
</div>
</section>

View File

@ -22,19 +22,19 @@ echo $this->getData('nav')->render(); ?>
<header><h1><?= $this->getText('Task'); ?></h1></header>
<div class="inner">
<form id="fTask" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/task/create'); ?>">
<form id="fTask" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/task/create?csrf={$CSRF}'); ?>">
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iReceiver"><?= $this->getText('To'); ?></label>
<tr><td><span class="input"><button type="button" data-action='[{"type": "popup", "tpl": "acc-grp-tpl", "aniIn": "fadeIn", "aniOut": "fadeOut", "stay": 5000}]' formaction=""><i class="fa fa-book"></i></button><input type="number" min="1" id="iReceiver" name="receiver" placeholder="&#xf007; Guest" required></span><td><button><?= $this->getText('Add', 0, 0); ?></button>
<tr><td><span class="input"><button type="button" data-action='[{"listener": "click", "action": [{"type": "popup", "tpl": "acc-grp-tpl", "aniIn": "fadeIn", "aniOut": "fadeOut", "stay": 5000}]}]' formaction=""><i class="fa fa-book"></i></button><input type="number" min="1" id="iReceiver" name="receiver" placeholder="&#xf007; Guest" required></span><td><button><?= $this->getText('Add', 0, 0); ?></button>
<tr><td colspan="2"><label for="iObserver"><?= $this->getText('CC'); ?></label>
<tr><td><span class="input"><button type="button" formaction=""><i class="fa fa-book"></i></button><input type="number" min="1" id="iObserver" name="observer" placeholder="&#xf007; Guest" required></span><td><button><?= $this->getText('Add', 0, 0); ?></button>
<tr><td><span class="input"><button type="button" formaction=""><i class="fa fa-book"></i></button><input type="number" min="1" id="iObserver" name="observer" placeholder="&#xf007; Guest"></span><td><button><?= $this->getText('Add', 0, 0); ?></button>
<tr><td colspan="2"><label for="iDue"><?= $this->getText('Due'); ?></label>
<tr><td><input type="datetime-local" id="iDue" name="due" value="<?= (new \DateTime('NOW'))->format('Y-m-d\TH:i:s') ?>"><td>
<tr><td colspan="2"><label for="iTitle"><?= $this->getText('Title'); ?></label>
<tr><td><input type="text" id="iTitle" name="title" placeholder="&#xf040; <?= $this->getText('Title'); ?>"><td>
<tr><td><input type="text" id="iTitle" name="title" placeholder="&#xf040; <?= $this->getText('Title'); ?>" required><td>
<tr><td colspan="2"><label for="iMessage"><?= $this->getText('Message'); ?></label>
<tr><td><textarea id="iMessage" name="description" placeholder="&#xf040;"></textarea><td>
<tr><td><textarea id="iMessage" name="description" placeholder="&#xf040;" required></textarea><td>
<tr><td colspan="2"><input type="submit" value="<?= $this->getText('Create', 0, 0); ?>"><input type="hidden" name="type" value="<?= \Modules\Tasks\Models\TaskType::SINGLE; ?>">
</table>
</form>

View File

@ -71,19 +71,19 @@ foreach ($elements as $key => $element) : $c++;
<section class="box w-50">
<div class="inner">
<form>
<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></textarea>
<tr><td><textarea id="iMessage" name="desc"></textarea>
<tr><td><label for="iDue"><?= $this->getText('Due'); ?></label>
<tr><td><input type="datetime-local">
<tr><td><label for="iReceiver"><?= $this->getText('Status'); ?></label>
<tr><td><select>
<tr><td><input type="datetime-local" id="iDue" name="due">
<tr><td><label for="iStatus"><?= $this->getText('Status'); ?></label>
<tr><td><select id="iStatus" name="status">
<option>
</select>
<tr><td><label for="iReceiver"><?= $this->getText('To'); ?></label>
<tr><td><input type="text" id="iReceiver" placeholder="&#xf007; Guest">
<tr><td><input type="submit" value="<?= $this->getText('Create', 0, 0); ?>"><input type="hidden" name="type" value="1">
<tr><td><input type="text" id="iReceiver" name="forward" placeholder="&#xf007; 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>
</div>