mirror of
https://github.com/Karaka-Management/oms-Tasks.git
synced 2026-01-11 15:38:40 +00:00
Implementing new schedule class/table. Schedule can be used for many other modules and objects.
This commit is contained in:
parent
39b286af7b
commit
da1fa7f921
|
|
@ -15,6 +15,7 @@
|
|||
*/
|
||||
namespace Modules\Tasks;
|
||||
|
||||
use Model\Message\Redirect;
|
||||
use Modules\Tasks\Models\Task;
|
||||
use Modules\Tasks\Models\TaskElement;
|
||||
use Modules\Tasks\Models\TaskMapper;
|
||||
|
|
@ -26,6 +27,7 @@ use phpOMS\Message\RequestDestination;
|
|||
use phpOMS\Message\ResponseAbstract;
|
||||
use phpOMS\Module\ModuleAbstract;
|
||||
use phpOMS\Module\WebInterface;
|
||||
use phpOMS\Uri\UriFactory;
|
||||
use phpOMS\Views\View;
|
||||
use phpOMS\Views\ViewLayout;
|
||||
|
||||
|
|
@ -105,6 +107,8 @@ class Controller extends ModuleAbstract implements WebInterface
|
|||
'^.*/backend/task/single.*$' => [['dest' => '\Modules\Tasks\Controller:viewTaskView', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
||||
'^.*/backend/task/create.*$' => [['dest' => '\Modules\Tasks\Controller:viewTaskCreate', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
||||
'^.*/backend/task/analysis.*$' => [['dest' => '\Modules\Tasks\Controller:viewTaskAnalysis', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
||||
|
||||
'^.*/api/task/create.*$' => [['dest' => '\Modules\Tasks\Controller:apiTaskCreate', 'method' => 'POST', 'type' => ViewLayout::NULL],],
|
||||
];
|
||||
|
||||
/**
|
||||
|
|
@ -124,7 +128,7 @@ class Controller extends ModuleAbstract implements WebInterface
|
|||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response));
|
||||
|
||||
$taskMapper = new TaskMapper($this->app->dbPool->get());
|
||||
$tasks = $taskMapper->getNewest(25);
|
||||
$tasks = $taskMapper->getNewest(25);
|
||||
$view->addData('tasks', $tasks);
|
||||
|
||||
return $view;
|
||||
|
|
@ -147,7 +151,7 @@ class Controller extends ModuleAbstract implements WebInterface
|
|||
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response));
|
||||
|
||||
$taskMapper = new TaskMapper($this->app->dbPool->get());
|
||||
$task = $taskMapper->get((int) $request->getData('id'));
|
||||
$task = $taskMapper->get((int) $request->getData('id'));
|
||||
$view->addData('task', $task);
|
||||
|
||||
return $view;
|
||||
|
|
@ -214,7 +218,7 @@ class Controller extends ModuleAbstract implements WebInterface
|
|||
$task->addElement($element);
|
||||
|
||||
$taskMapper->create($task);
|
||||
$response->set($request->__toString(), $task->getId());
|
||||
$response->set($request->__toString(), new Redirect(UriFactory::build('http://127.0.0.1/{/lang}/backend/task/single?id=' . $task->getId())));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@
|
|||
* @link http://orange-management.com
|
||||
*/
|
||||
namespace Modules\Tasks\Models;
|
||||
use Modules\Calendar\Models\Schedule;
|
||||
use phpOMS\Datatypes\Exception\InvalidEnumValue;
|
||||
|
||||
/**
|
||||
|
|
@ -76,7 +77,7 @@ class Task
|
|||
* @var TaskType
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $type = TaskType::TASK;
|
||||
private $type = TaskType::SINGLE;
|
||||
|
||||
/**
|
||||
* Status.
|
||||
|
|
@ -110,6 +111,8 @@ class Task
|
|||
*/
|
||||
private $taskElements = [];
|
||||
|
||||
private $schedule = null;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
|
|
@ -120,6 +123,7 @@ class Task
|
|||
{
|
||||
$this->createdAt = new \DateTime('now');
|
||||
$this->due = (new \DateTime('now'))->modify('+1 day');
|
||||
$this->schedule = new Schedule();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -376,23 +380,8 @@ class Task
|
|||
return $this->type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set task type.
|
||||
*
|
||||
* @param int $type
|
||||
*
|
||||
* @throws
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function setType(\int $type)
|
||||
{
|
||||
if(!TaskType::isValidValue($type)) {
|
||||
throw new InvalidEnumValue($type);
|
||||
}
|
||||
|
||||
$this->type = $type;
|
||||
public function getSchedule() : Schedule {
|
||||
return $this->schedule;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ class TaskMapper extends DataMapperAbstract
|
|||
'task_status' => ['name' => 'task_status', 'type' => 'int', 'internal' => 'status'],
|
||||
'task_due' => ['name' => 'task_due', 'type' => 'DateTime', 'internal' => 'due'],
|
||||
'task_done' => ['name' => 'task_done', 'type' => 'DateTime', 'internal' => 'done'],
|
||||
'task_schedule' => ['name' => 'task_schedule', 'type' => 'int', 'internal' => 'schedule'],
|
||||
'task_created_by' => ['name' => 'task_created_by', 'type' => 'int', 'internal' => 'createdBy'],
|
||||
'task_created_at' => ['name' => 'task_created_at', 'type' => 'DateTime', 'internal' => 'createdAt'],
|
||||
];
|
||||
|
|
@ -50,6 +51,13 @@ class TaskMapper extends DataMapperAbstract
|
|||
],
|
||||
];
|
||||
|
||||
protected static $hasOne = [
|
||||
'schedule' => [
|
||||
'mapper' => '\Modules\Calendar\Models\ScheduleMapper',
|
||||
'src' => 'task_schedule',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
|
|
|
|||
38
Models/TaskTemplate.php
Normal file
38
Models/TaskTemplate.php
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
<?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 Tasks
|
||||
* @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 TaskTemplate extends Task
|
||||
{
|
||||
/**
|
||||
* Type.
|
||||
*
|
||||
* @var TaskType
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $type = TaskType::TEMPLATE;
|
||||
}
|
||||
|
|
@ -30,6 +30,6 @@ use phpOMS\Datatypes\Enum;
|
|||
*/
|
||||
abstract class TaskType extends Enum
|
||||
{
|
||||
const TASK = 0;
|
||||
const MODULE = 1;
|
||||
const TEMPLATE = 1;
|
||||
const SINGLE = 2;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,20 +22,20 @@ echo $this->getData('nav')->render(); ?>
|
|||
<h1><?= $this->l11n->lang['Tasks']['Task']; ?></h1>
|
||||
|
||||
<div class="inner">
|
||||
<form id="fTask">
|
||||
<form id="fTask" method="POST" action="<?= \phpOMS\Uri\UriFactory::build('/{/lang}/api/task/create'); ?>">
|
||||
<table class="layout wf-100">
|
||||
<tbody>
|
||||
<tr><td colspan="2"><label for="iReceiver"><?= $this->l11n->lang['Tasks']['To']; ?></label>
|
||||
<tr><td><input type="text" id="iReceiver" placeholder=" Guest"><td><button><?= $this->l11n->lang[0]['Add']; ?></button>
|
||||
<tr><td><input type="text" id="iReceiver" name="forward" placeholder=" Guest"><td><button><?= $this->l11n->lang[0]['Add']; ?></button>
|
||||
<tr><td colspan="2"><label for="iObserver"><?= $this->l11n->lang['Tasks']['CC']; ?></label>
|
||||
<tr><td><input type="text" id="iObserver" placeholder=" Guest"><td><button><?= $this->l11n->lang[0]['Add']; ?></button>
|
||||
<tr><td><input type="text" id="iObserver" name="observer" placeholder=" Guest"><td><button><?= $this->l11n->lang[0]['Add']; ?></button>
|
||||
<tr><td colspan="2"><label for="iDue"><?= $this->l11n->lang['Tasks']['Due']; ?></label>
|
||||
<tr><td><input type="datetime-local" id="iDue" value="<?= (new \DateTime('NOW'))->format('Y-m-d\TH:i:s') ?>"><td>
|
||||
<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->l11n->lang['Tasks']['Title']; ?></label>
|
||||
<tr><td><input type="text" id="iTitle" placeholder=" <?= $this->l11n->lang['Tasks']['Title']; ?>"><td>
|
||||
<tr><td><input type="text" id="iTitle" name="title" placeholder=" <?= $this->l11n->lang['Tasks']['Title']; ?>"><td>
|
||||
<tr><td colspan="2"><label for="iMessage"><?= $this->l11n->lang['Tasks']['Message']; ?></label>
|
||||
<tr><td><textarea id="iMessage" placeholder=""></textarea><td>
|
||||
<tr><td colspan="2"><input type="submit" value="<?= $this->l11n->lang[0]['Create']; ?>"><input type="hidden" name="type" value="1">
|
||||
<tr><td><textarea id="iMessage" name="description" placeholder=""></textarea><td>
|
||||
<tr><td colspan="2"><input type="submit" value="<?= $this->l11n->lang[0]['Create']; ?>"><input type="hidden" name="type" value="<?= \Modules\Tasks\Models\TaskType::TASK ?>">
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user