Return is array and not an object

This commit is contained in:
Dennis Eichhorn 2016-02-06 18:18:23 +01:00
parent 792ce687d7
commit 39b286af7b
9 changed files with 140 additions and 90 deletions

View File

@ -47,12 +47,12 @@ class Installer extends InstallerAbstract
$dbPool->get('core')->con->prepare( $dbPool->get('core')->con->prepare(
'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'task` ( 'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'task` (
`task_id` int(11) NOT NULL AUTO_INCREMENT, `task_id` int(11) NOT NULL AUTO_INCREMENT,
`task_title` varchar(30) DEFAULT NULL, `task_title` varchar(60) DEFAULT NULL,
`task_desc` text NOT NULL, `task_desc` text NOT NULL,
`task_type` tinyint(1) NOT NULL, `task_type` tinyint(1) NOT NULL,
`task_status` tinyint(1) NOT NULL, `task_status` tinyint(1) NOT NULL,
`task_due` datetime NOT NULL, `task_due` datetime NOT NULL,
`task_done` datetime NOT NULL, `task_done` datetime DEFAULT NULL,
`task_created_by` int(11) NOT NULL, `task_created_by` int(11) NOT NULL,
`task_created_at` datetime NOT NULL, `task_created_at` datetime NOT NULL,
PRIMARY KEY (`task_id`), PRIMARY KEY (`task_id`),

View File

@ -15,8 +15,11 @@
*/ */
namespace Modules\Tasks; namespace Modules\Tasks;
use Modules\Navigation\Models\Navigation; use Modules\Tasks\Models\Task;
use Modules\Navigation\Views\NavigationView; use Modules\Tasks\Models\TaskElement;
use Modules\Tasks\Models\TaskMapper;
use Modules\Tasks\Models\TaskStatus;
use Modules\Tasks\Models\TaskType;
use phpOMS\Contract\RenderableInterface; use phpOMS\Contract\RenderableInterface;
use phpOMS\Message\RequestAbstract; use phpOMS\Message\RequestAbstract;
use phpOMS\Message\RequestDestination; use phpOMS\Message\RequestDestination;
@ -120,6 +123,10 @@ class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/Tasks/Theme/Backend/task-dashboard'); $view->setTemplate('/Modules/Tasks/Theme/Backend/task-dashboard');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response)); $view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response));
$taskMapper = new TaskMapper($this->app->dbPool->get());
$tasks = $taskMapper->getNewest(25);
$view->addData('tasks', $tasks);
return $view; return $view;
} }
@ -139,6 +146,10 @@ class Controller extends ModuleAbstract implements WebInterface
$view->setTemplate('/Modules/Tasks/Theme/Backend/task-single'); $view->setTemplate('/Modules/Tasks/Theme/Backend/task-single');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response)); $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'));
$view->addData('task', $task);
return $view; return $view;
} }
@ -180,4 +191,30 @@ class Controller extends ModuleAbstract implements WebInterface
return $view; return $view;
} }
public function apiTaskCreate(RequestAbstract $request, ResponseAbstract $response, $data = null)
{
$taskMapper = new TaskMapper($this->app->dbPool->get());
$task = new Task();
$task->setTitle($request->getData('title') ?? '');
$task->setDescription($request->getData('description') ?? '');
$task->setCreatedBy($request->getAccount());
$task->setCreatedAt(new \DateTime('now'));
$task->setDue(new \DateTime($request->getData('due') ?? 'now'));
$task->setStatus(TaskStatus::OPEN);
$task->setType(TaskType::TASK);
$element = new TaskElement();
$element->setForwarded($request->getData('forward') ?? $request->getAccount());
$element->setCreatedAt($task->getCreatedAt());
$element->setCreatedBy($task->getCreatedBy());
$element->setDue($task->getDue());
$element->setStatus(TaskStatus::OPEN);
$task->addElement($element);
$taskMapper->create($task);
$response->set($request->__toString(), $task->getId());
}
} }

View File

@ -215,9 +215,9 @@ class Task
* @since 1.0.0 * @since 1.0.0
* @author Dennis Eichhorn <d.eichhorn@oms.com> * @author Dennis Eichhorn <d.eichhorn@oms.com>
*/ */
public function getDone() public function getDone() : \DateTime
{ {
return $this->done; return $this->done ?? new \DateTime('now');
} }
/** /**

View File

@ -92,7 +92,7 @@ class TaskElement
* @var int * @var int
* @since 1.0.0 * @since 1.0.0
*/ */
private $forwarded = null; private $forwarded = 0;
/** /**
* Constructor. * Constructor.
@ -152,6 +152,10 @@ class TaskElement
public function setCreatedBy(int $creator) public function setCreatedBy(int $creator)
{ {
$this->createdBy = $creator; $this->createdBy = $creator;
if($this->forwarded === 0) {
$this->setForwarded($this->createdBy);
}
} }
/** /**
@ -210,7 +214,7 @@ class TaskElement
*/ */
public function getForwarded() : int public function getForwarded() : int
{ {
return $this->forwarded ?? 0; return $this->forwarded;
} }
/** /**

View File

@ -71,7 +71,7 @@ class TaskElementMapper extends DataMapperAbstract
try { try {
$objId = parent::create($obj); $objId = parent::create($obj);
} catch (\Exception $e) { } catch (\Exception $e) {
var_dump($e); var_dump($e->getMessage());
return false; return false;
} }

View File

@ -101,7 +101,7 @@ class TaskMapper extends DataMapperAbstract
$this->db->con->prepare($query->toSql())->execute(); $this->db->con->prepare($query->toSql())->execute();
} catch (\Exception $e) { } catch (\Exception $e) {
var_dump($e); var_dump($e->getMessage());
return false; return false;
} }

View File

@ -56,4 +56,9 @@ $MODLANG['Tasks'] = [
'Upload' => 'Upload', 'Upload' => 'Upload',
'Week' => 'Week', 'Week' => 'Week',
'Year' => 'Year', 'Year' => 'Year',
'S1' => 'Open',
'S2' => 'Working',
'S3' => 'Suspended',
'S4' => 'Canceled',
'S5' => 'Done',
]; ];

View File

@ -15,14 +15,15 @@
*/ */
/** /**
* @var \phpOMS\Views\View $this * @var \phpOMS\Views\View $this
* @var \Modules\Tasks\Models\Task[] $tasks
*/ */
$tasks = $this->getData('tasks');
echo $this->getData('nav')->render(); ?> echo $this->getData('nav')->render(); ?>
<section class="box w-75 floatLeft"> <section class="box w-75 floatLeft">
<table class="table"> <table class="table">
<caption><?= $this->l11n->lang['Tasks']['Tasks']; ?></caption> <caption><?= $this->l11n->lang['Tasks']['Tasks']; ?></caption>
<thead> <thead>
<tr><td><?= $this->l11n->lang[0]['ID']; ?>
<td><?= $this->l11n->lang['Tasks']['Status']; ?> <td><?= $this->l11n->lang['Tasks']['Status']; ?>
<td><?= $this->l11n->lang['Tasks']['Due']; ?> <td><?= $this->l11n->lang['Tasks']['Due']; ?>
<td class="full"><?= $this->l11n->lang['Tasks']['Title']; ?> <td class="full"><?= $this->l11n->lang['Tasks']['Title']; ?>
@ -30,7 +31,23 @@ echo $this->getData('nav')->render(); ?>
<td><?= $this->l11n->lang['Tasks']['Created']; ?> <td><?= $this->l11n->lang['Tasks']['Created']; ?>
<tfoot> <tfoot>
<tbody> <tbody>
<?php $c = 0; foreach($tasks as $key => $task) : $c++;
$url = \phpOMS\Uri\UriFactory::build('/{/lang}/backend/task/single?id=' . $task->getId());
$color = 'darkred';
if($task->getStatus() === \Modules\Tasks\Models\TaskStatus::DONE) { $color = 'green'; }
elseif($task->getStatus() === \Modules\Tasks\Models\TaskStatus::OPEN) { $color = 'darkblue'; }
elseif($task->getStatus() === \Modules\Tasks\Models\TaskStatus::WORKING) { $color = 'purple'; }
elseif($task->getStatus() === \Modules\Tasks\Models\TaskStatus::CANCELED) { $color = 'red'; }
elseif($task->getStatus() === \Modules\Tasks\Models\TaskStatus::SUSPENDED) { $color = 'yellow'; } ;?>
<tr>
<td><a href="<?= $url; ?>"><span class="tag <?= $color; ?>"><?= $this->l11n->lang['Tasks']['S' . $task->getStatus()]; ?></span></a>
<td><a href="<?= $url; ?>"><?= $task->getDue()->format('Y-m-d H:i'); ?></a>
<td><a href="<?= $url; ?>"><?= $task->getTitle(); ?></a>
<td><a href="<?= $url; ?>"><?= $task->getCreatedBy(); ?></a>
<td><a href="<?= $url; ?>"><?= $task->getCreatedAt()->format('Y-m-d H:i'); ?></a>
<?php endforeach; if($c == 0) : ?>
<tr><td colspan="6" class="empty"><?= $this->l11n->lang[0]['Empty']; ?> <tr><td colspan="6" class="empty"><?= $this->l11n->lang[0]['Empty']; ?>
<?php endif; ?>
</table> </table>
</section> </section>

View File

@ -14,90 +14,77 @@
* @link http://orange-management.com * @link http://orange-management.com
*/ */
/** /**
* @var \phpOMS\Views\View $this * @var \phpOMS\Views\View $this
* @var \Modules\Tasks\Models\Task $task
*/ */
$task = new \Modules\Tasks\Models\Task(null); $task = $this->getData('task');
$elements = $task->getTaskElements();
$cElements = count($elements);
echo $this->getData('nav')->render(); ?> echo $this->getData('nav')->render(); ?>
<div class="b b-3 c7-1 c7" id="i7-1-1">
<div class="bc-1">
<select>
<option></option>
</select>
</div>
</div>
<div class="b b-3 c7-1 c7" id="i7-1-1"> <section class="box w-50">
<h1> <h1><?= $task->getTitle(); ?></h1>
<?= $task->getTitle(); ?> <div class="inner">
<i class="fa fa-minus min"></i> <div class="floatRight">Due <?= $task->getDue()->format('Y-m-d H:i'); ?></div>
<i class="fa fa-plus max vh"></i> <div>Created <?= $task->getCreatedAt()->format('Y-m-d H:i'); ?></div>
</h1> <blockquote>
<?= $task->getDescription(); ?>
<div class="bc-1"> </blockquote>
<span><?= $task->getCreated()->format('Y-m-d H:i:s'); ?></span> <div>Created <?= $task->getCreatedBy(); ?></div>
<span><?= $task->getDue()->format('Y-m-d H:i:s'); ?></span> <div>Status <?= $task->getStatus(); ?></div>
<span><?= $task->getDone()->format('Y-m-d H:i:s'); ?></span> <span><?= $task->getStatus(); ?></span>
<span><?= $task->getCreator(); ?></span>
<?= $task->getDescription(); ?>
</div> </div>
</div> </section>
<?php <?php $c = 0;
/** foreach ($elements as $key => $element) : $c++;
* Orange Management if($element->getStatus() === \Modules\Tasks\Models\TaskStatus::DONE) { $color = 'green'; }
* elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::OPEN) { $color = 'darkblue'; }
* PHP Version 7.0 elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::WORKING) { $color = 'purple'; }
* elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::CANCELED) { $color = 'red'; }
* @category TBD elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::SUSPENDED) { $color = 'yellow'; } ?>
* @package TBD <section class="box w-50">
* @author OMS Development Team <dev@oms.com> <div class="floatRight"><span class="tag <?= $color; ?>"><?= $this->l11n->lang['Tasks']['S' . $element->getStatus()]; ?></span></div>
* @author Dennis Eichhorn <d.eichhorn@oms.com> <div><?= $element->getCreatedBy(); ?> - <?= $element->getCreatedAt()->format('Y-m-d H:i'); ?></div>
* @copyright 2013 Dennis Eichhorn </section>
* @license OMS License 1.0 <?php if ($element->getDescription() !== '') : ?>
* @version 1.0.0 <section class="box w-50">
* @link http://orange-management.com <div class="inner">
*/ <blockquote>
$elements = $task->getTaskElements(); <?= $element->getDescription(); ?>
foreach ($elements as $element): ?> </blockquote>
<div class="b b-3 c7-1 c7" id="i7-1-1"> </div>
<div class="bc-1"> </section>
<span><?= $element->getCreated()->format('Y-m-d H:i:s'); ?></span> <?php endif; ?>
<span><?= $element->getDue()->format('Y-m-d H:i:s'); ?></span> <span><?= $element->getStatus(); ?></span> <section class="box w-50">
<span><?= $element->getForwarded(); ?></span> <span><?= $element->getCreator(); ?></span> <?php if ($element->getStatus() !== \Modules\Tasks\Models\TaskStatus::CANCELED ||
<?= $element->getDescription(); ?> $element->getStatus() !== \Modules\Tasks\Models\TaskStatus::DONE ||
</div> $element->getStatus() !== \Modules\Tasks\Models\TaskStatus::SUSPENDED || $c != $cElements
</div> ) : ?>
<?php <div class="floatRight">Due <?= $element->getDue()->format('Y-m-d H:i'); ?></div>
/** <?php endif; ?>
* Orange Management <?php if ($element->getForwarded() !== 0) : ?>
* <div>Forwarded <?= $element->getForwarded(); ?></div>
* PHP Version 7.0 <?php endif; ?>
* </section>
* @category TBD <?php endforeach; ?>
* @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
*/ endforeach; ?>
<div class="b b-3 c7-1 c7" id="i7-1-1"> <section class="box w-50">
<div class="bc-1"> <div class="inner">
<ul class="l-1"> <form>
<li> <table class="layout wf-100">
<label><?= $this->l11n->lang['Tasks']['Receiver']; ?></label> <tr><td><label for="iMessage"><?= $this->l11n->lang['Tasks']['Message']; ?></label>
<li><input type="text"> <tr><td><textarea></textarea>
<li> <tr><td><label for="iDue"><?= $this->l11n->lang['Tasks']['Due']; ?></label>
<label><?= $this->l11n->lang['Tasks']['Due']; ?></label> <tr><td><input type="datetime-local">
<li><input type="text"> <tr><td><label for="iReceiver"><?= $this->l11n->lang['Tasks']['Status']; ?></label>
<li> <tr><td><select>
<label><?= $this->l11n->lang['Tasks']['Message']; ?></label> <option>
<li><textarea style="width: 100%"></textarea> </select>
</ul> <tr><td><label for="iReceiver"><?= $this->l11n->lang['Tasks']['To']; ?></label>
<button class="rf"><?= $this->l11n->lang[0]['Submit']; ?></button> <tr><td><input type="text" id="iReceiver" placeholder="&#xf007; Guest">
<div class="clearfix"></div> <tr><td><input type="submit" value="<?= $this->l11n->lang[0]['Create']; ?>"><input type="hidden" name="type" value="1">
</table>
</form>
</div> </div>
</div> </section>