Workflow draft

This commit is contained in:
Dennis Eichhorn 2016-07-15 20:15:23 +02:00
parent 57dc16efc9
commit c3b3e94100
20 changed files with 952 additions and 0 deletions

44
Admin/Activate.php Normal file
View File

@ -0,0 +1,44 @@
<?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\Workflow\Admin;
use phpOMS\DataStorage\Database\Pool;
use phpOMS\Module\ActivateAbstract;
use phpOMS\Module\InfoManager;
/**
* Navigation class.
*
* @category Modules
* @package Modules\Admin
* @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 Activate extends ActivateAbstract
{
/**
* {@inheritdoc}
*/
public static function activate(Pool $dbPool, InfoManager $info)
{
parent::activate($dbPool, $info);
}
}

44
Admin/Deactivate.php Normal file
View File

@ -0,0 +1,44 @@
<?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\Workflow\Admin;
use phpOMS\DataStorage\Database\Pool;
use phpOMS\Module\DeactivateAbstract;
use phpOMS\Module\InfoManager;
/**
* Navigation class.
*
* @category Modules
* @package Modules\Admin
* @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 Deactivate extends DeactivateAbstract
{
/**
* {@inheritdoc}
*/
public static function deactivate(Pool $dbPool, InfoManager $info)
{
parent::deactivate($dbPool, $info);
}
}

View File

@ -0,0 +1,79 @@
[
{
"id": 1001101001,
"pid": "754a08ddf8bcb1cf22f310f09206dd783d42f7dd",
"type": 1,
"subtype": 1,
"name": "Tasks",
"uri": "/{/lang}/backend/task/dashboard",
"target": "self",
"icon": "fa fa-bolt",
"order": 15,
"from": "Tasks",
"permission": null,
"parent": 0,
"children": [
{
"id": 1001102001,
"pid": "43ec7cda8be033d7b20996708a2fca644e5dde86",
"type": 3,
"subtype": 1,
"name": "List",
"uri": "/{/lang}/backend/task/dashboard",
"target": "self",
"icon": null,
"order": 1,
"from": "Tasks",
"permission": null,
"parent": 1001101001,
"children": [
{
"id": 1001102101,
"pid": "43ec7cda8be033d7b20996708a2fca644e5dde86",
"type": 0,
"subtype": 1,
"name": "Tasks",
"uri": "/{/lang}/backend/task/single",
"target": "self",
"icon": null,
"order": 1,
"from": "Tasks",
"permission": null,
"parent": 1001102001,
"children": []
}
]
},
{
"id": 1001103001,
"pid": "43ec7cda8be033d7b20996708a2fca644e5dde86",
"type": 3,
"subtype": 1,
"name": "Create",
"uri": "/{/lang}/backend/task/create",
"target": "self",
"icon": null,
"order": 10,
"from": "Tasks",
"permission": null,
"parent": 1001101001,
"children": []
},
{
"id": 1001104001,
"pid": "43ec7cda8be033d7b20996708a2fca644e5dde86",
"type": 3,
"subtype": 1,
"name": "Analysis",
"uri": "/{/lang}/backend/task/analysis",
"target": "self",
"icon": null,
"order": 20,
"from": "Tasks",
"permission": null,
"parent": 1001101001,
"children": []
}
]
}
]

View File

@ -0,0 +1,40 @@
<?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\Workflow\Admin\Install;
use phpOMS\DataStorage\Database\Pool;
/**
* Navigation class.
*
* @category Modules
* @package Modules\Admin
* @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 Navigation
{
public static function install(Pool $dbPool)
{
$navData = json_decode(file_get_contents(__DIR__ . '/Navigation.install.json'), true);
$class = '\\Modules\\Navigation\\Admin\\Installer';
/** @var $class \Modules\Navigation\Admin\Installer */
$class::installExternal($dbPool, $navData);
}
}

49
Admin/Installer.php Normal file
View File

@ -0,0 +1,49 @@
<?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\Workflow\Admin;
use phpOMS\DataStorage\Database\DatabaseType;
use phpOMS\DataStorage\Database\Pool;
use phpOMS\Module\InfoManager;
use phpOMS\Module\InstallerAbstract;
/**
* Tasks install class.
*
* @category Modules
* @package Modules\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 Installer extends InstallerAbstract
{
/**
* {@inheritdoc}
*/
public static function install(Pool $dbPool, InfoManager $info)
{
parent::install($dbPool, $info);
switch ($dbPool->get('core')->getType()) {
case DatabaseType::MYSQL:
break;
}
}
}

3
Admin/Routes/console.php Normal file
View File

@ -0,0 +1,3 @@
<?php
$moduleRoutes = [];

30
Admin/Routes/http.php Normal file
View File

@ -0,0 +1,30 @@
<?php
use phpOMS\Router\RouteVerb;
return [
'^.*/backend/workflow/template/list.*$' => [
[
'dest' => '\Modules\Workflow\Controller:viewWorkflowTemplates',
'verb' => RouteVerb::GET,
],
],
'^.*/backend/workflow/template/single.*$' => [
[
'dest' => '\Modules\Workflow\Controller:viewWorkflowTemplate',
'verb' => RouteVerb::GET,
],
],
'^.*/backend/workflow/template/create.*$' => [
[
'dest' => '\Modules\Workflow\Controller:viewWorkflowTemplateCreate',
'verb' => RouteVerb::GET,
],
],
'^.*/backend/workflow/single.*$' => [
[
'dest' => '\Modules\Workflow\Controller:viewWorkflowSingle',
'verb' => RouteVerb::GET,
],
],
];

3
Admin/Routes/socket.php Normal file
View File

@ -0,0 +1,3 @@
<?php
$moduleRoutes = [];

55
Admin/Uninstall.php Normal file
View File

@ -0,0 +1,55 @@
<?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\Workflow\Admin;
use phpOMS\DataStorage\Database\Pool;
use phpOMS\DataStorage\Database\Schema\Builder;
use phpOMS\Module\InfoManager;
use phpOMS\Module\UninstallAbstract;
/**
* Navigation class.
*
* @category Modules
* @package Modules\Admin
* @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 Uninstall extends UninstallAbstract
{
/**
* {@inheritdoc}
*/
public static function uninstall(Pool $dbPool, InfoManager $info)
{
parent::uninstall($dbPool, $info);
$query = new Builder($dbPool->get());
$query->prefix($dbPool->get('core')->getPrefix())->drop(
'task_element',
'task_account',
'task'
);
$dbPool->get()->con->prepare($query->toSql())->execute();
}
}

47
Admin/Update.php Normal file
View File

@ -0,0 +1,47 @@
<?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\Workflow\Admin;
use phpOMS\DataStorage\Database\Pool;
use phpOMS\Module\InfoManager;
use phpOMS\Module\UpdateAbstract;
use phpOMS\System\File\Directory;
/**
* Navigation class.
*
* @category Modules
* @package Modules\Admin
* @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 Update extends UpdateAbstract
{
/**
* {@inheritdoc}
*/
public static function update(Pool $dbPool, InfoManager $info)
{
Directory::deletePath(__DIR__ . '/Update');
mkdir('Update');
parent::update($dbPool, $info);
}
}

155
Controller.php Normal file
View File

@ -0,0 +1,155 @@
<?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\Workflow;
use phpOMS\Message\RequestAbstract;
use phpOMS\Message\ResponseAbstract;
use phpOMS\Module\ModuleAbstract;
use phpOMS\Module\WebInterface;
use phpOMS\Views\View;
/**
* Task class.
*
* @category Modules
* @package Modules\Workflow
* @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 Controller extends ModuleAbstract implements WebInterface
{
/**
* Module path.
*
* @var string
* @since 1.0.0
*/
const MODULE_PATH = __DIR__;
/**
* Module version.
*
* @var string
* @since 1.0.0
*/
const MODULE_VERSION = '1.0.0';
/**
* Module name.
*
* @var string
* @since 1.0.0
*/
const MODULE_NAME = 'Workflow';
/**
* Providing.
*
* @var string
* @since 1.0.0
*/
protected static $providing = [];
/**
* Dependencies.
*
* @var string
* @since 1.0.0
*/
protected static $dependencies = [
];
/**
* @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 viewWorkflowTemplates(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable
{
$view = new View($this->app, $request, $response);
$view->setTemplate('/Modules/Workflow/Theme/Backend/task-dashboard');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response));
return $view;
}
/**
* @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 viewWorkflowTemplate(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable
{
$view = new View($this->app, $request, $response);
$view->setTemplate('/Modules/Workflow/Theme/Backend/task-single');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response));
return $view;
}
/**
* @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 viewWorkflowSingle(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable
{
$view = new View($this->app, $request, $response);
$view->setTemplate('/Modules/Workflow/Theme/Backend/task-create');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response));
return $view;
}
/**
* @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 viewWorkflowTemplateCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : \Serializable
{
$view = new View($this->app, $request, $response);
$view->setTemplate('/Modules/Workflow/Theme/Backend/task-analysis');
$view->addData('nav', $this->app->moduleManager->get('Navigation')->createNavigationMid(1001101001, $request, $response));
return $view;
}
}

34
Models/Template.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\Workflow\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 Template
{
}

View File

@ -0,0 +1,19 @@
<?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
*/
return ['Navigation' => [
'Workflows' => 'Workflows',
'Workflow' => 'Workflow',
]];

View File

@ -0,0 +1,19 @@
<?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
*/
return ['Tasks' => [
'Workflow' => 'Workflow',
'Workflows' => 'Workflows',
]];

View File

@ -0,0 +1,60 @@
<?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
*/
/**
* @var \phpOMS\Views\View $this
*/
echo $this->getData('nav')->render(); ?>
<section class="box w-50 floatLeft">
<header><h1><?= $this->l11n->getText('Tasks', 'Backend', 'Task'); ?></h1></header>
<div class="inner">
<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->getText('Tasks', 'Backend', '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->l11n->getText(0, 'Backend', 'Add'); ?></button>
<tr><td colspan="2"><label for="iObserver"><?= $this->l11n->getText('Tasks', 'Backend', '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->l11n->getText(0, 'Backend', 'Add'); ?></button>
<tr><td colspan="2"><label for="iDue"><?= $this->l11n->getText('Tasks', 'Backend', '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->l11n->getText('Tasks', 'Backend', 'Title'); ?></label>
<tr><td><input type="text" id="iTitle" name="title" placeholder="&#xf040; <?= $this->l11n->getText('Tasks', 'Backend', 'Title'); ?>"><td>
<tr><td colspan="2"><label for="iMessage"><?= $this->l11n->getText('Tasks', 'Backend', 'Message'); ?></label>
<tr><td><textarea id="iMessage" name="description" placeholder="&#xf040;"></textarea><td>
<tr><td colspan="2"><input type="submit" value="<?= $this->l11n->getText(0, 'Backend', 'Create'); ?>"><input type="hidden" name="type" value="<?= \Modules\Tasks\Models\TaskType::SINGLE; ?>">
</table>
</form>
</div>
</section>
<section class="box w-50 floatLeft">
<header><h1><?= $this->l11n->getText('Tasks', 'Backend', 'Media'); ?></h1></header>
<div class="inner">
<form>
<table class="layout wf-100">
<tbody>
<tr><td colspan="2"><label for="iMedia"><?= $this->l11n->getText('Tasks', 'Backend', 'Media'); ?></label>
<tr><td><input type="text" id="iMedia" placeholder="&#xf15b; File"><td><button><?= $this->l11n->getText(0, 'Backend', 'Select'); ?></button>
<tr><td colspan="2"><label for="iUpload"><?= $this->l11n->getText('Tasks', 'Backend', 'Upload'); ?></label>
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
</table>
</form>
</div>
</section>
<?php include ROOT_PATH . '/Modules/Profile/Theme/Backend/acc-grp-popup.tpl.php'; ?>

View File

@ -0,0 +1,86 @@
<?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
*/
/**
* @var \phpOMS\Views\View $this
* @var \Modules\Tasks\Models\Task[] $tasks
*/
$tasks = $this->getData('tasks');
echo $this->getData('nav')->render(); ?>
<div class="box w-75 floatLeft">
<table class="table">
<caption><?= $this->l11n->getText('Tasks', 'Backend', 'Tasks'); ?></caption>
<thead>
<td><?= $this->l11n->getText('Tasks', 'Backend', 'Status'); ?>
<td><?= $this->l11n->getText('Tasks', 'Backend', 'Due'); ?>
<td class="full"><?= $this->l11n->getText('Tasks', 'Backend', 'Title'); ?>
<td><?= $this->l11n->getText('Tasks', 'Backend', 'Creator'); ?>
<td><?= $this->l11n->getText('Tasks', 'Backend', 'Created'); ?>
<tfoot>
<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->getText('Tasks', 'Backend', '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->getText(0, 'Backend', 'Empty'); ?>
<?php endif; ?>
</table>
</div>
<section class="w-25 floatLeft">
<section class="box w-100">
<header><h1><?= $this->l11n->getText('Tasks', 'Backend', 'Settings'); ?></h1></header>
<div class="inner">
<form>
<table class="layout wf-100">
<tr><td><label for="iIntervarl"><?= $this->l11n->getText('Tasks', 'Backend', 'Interval'); ?></label>
<tr><td><select id="iIntervarl" name="interval">
<option><?= $this->l11n->getText('Tasks', 'Backend', 'All'); ?>
<option><?= $this->l11n->getText('Tasks', 'Backend', 'Day'); ?>
<option><?= $this->l11n->getText('Tasks', 'Backend', 'Week'); ?>
<option selected><?= $this->l11n->getText('Tasks', 'Backend', 'Month'); ?>
<option><?= $this->l11n->getText('Tasks', 'Backend', 'Year'); ?>
</select>
</table>
</form>
</div>
</section>
<section class="box w-100">
<header><h1><?= $this->l11n->getText('Tasks', 'Backend', 'Settings'); ?></h1></header>
<div class="inner">
<table class="list">
<tr><th><?= $this->l11n->getText('Tasks', 'Backend', 'Received'); ?><td>0
<tr><th><?= $this->l11n->getText('Tasks', 'Backend', 'Created'); ?><td>0
<tr><th><?= $this->l11n->getText('Tasks', 'Backend', 'Forwarded'); ?><td>0
<tr><th><?= $this->l11n->getText('Tasks', 'Backend', 'AverageAmount'); ?><td>0
<tr><th><?= $this->l11n->getText('Tasks', 'Backend', 'AverageProcessTime'); ?><td>0
<tr><th><?= $this->l11n->getText('Tasks', 'Backend', 'InTime'); ?><td>0
</table>
</div>
</section>
</section>

View File

@ -0,0 +1,90 @@
<?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
*/
/**
* @var \phpOMS\Views\View $this
* @var \Modules\Tasks\Models\Task $task
*/
$task = $this->getData('task');
$elements = $task->getTaskElements();
$cElements = count($elements);
echo $this->getData('nav')->render(); ?>
<section class="box w-50">
<header><h1><?= $task->getTitle(); ?></h1></header>
<div class="inner">
<div class="floatRight">Due <?= $task->getDue()->format('Y-m-d H:i'); ?></div>
<div>Created <?= $task->getCreatedAt()->format('Y-m-d H:i'); ?></div>
<blockquote>
<?= $task->getDescription(); ?>
</blockquote>
<div>Created <?= $task->getCreatedBy(); ?></div>
<div>Status <?= $task->getStatus(); ?></div>
</div>
</section>
<?php $c = 0;
foreach ($elements as $key => $element) : $c++;
if($element->getStatus() === \Modules\Tasks\Models\TaskStatus::DONE) { $color = 'green'; }
elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::OPEN) { $color = 'darkblue'; }
elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::WORKING) { $color = 'purple'; }
elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::CANCELED) { $color = 'red'; }
elseif($element->getStatus() === \Modules\Tasks\Models\TaskStatus::SUSPENDED) { $color = 'yellow'; } ?>
<section class="box w-50">
<div class="floatRight"><span class="tag <?= $color; ?>"><?= $this->l11n->getText('Tasks', 'Backend', 'S' . $element->getStatus()); ?></span></div>
<div><?= $element->getCreatedBy(); ?> - <?= $element->getCreatedAt()->format('Y-m-d H:i'); ?></div>
</section>
<?php if ($element->getDescription() !== '') : ?>
<section class="box w-50">
<div class="inner">
<blockquote>
<?= $element->getDescription(); ?>
</blockquote>
</div>
</section>
<?php endif; ?>
<section class="box w-50">
<?php if ($element->getStatus() !== \Modules\Tasks\Models\TaskStatus::CANCELED ||
$element->getStatus() !== \Modules\Tasks\Models\TaskStatus::DONE ||
$element->getStatus() !== \Modules\Tasks\Models\TaskStatus::SUSPENDED || $c != $cElements
) : ?>
<div class="floatRight">Due <?= $element->getDue()->format('Y-m-d H:i'); ?></div>
<?php endif; ?>
<?php if ($element->getForwarded() !== 0) : ?>
<div>Forwarded <?= $element->getForwarded(); ?></div>
<?php endif; ?>
</section>
<?php endforeach; ?>
<section class="box w-50">
<div class="inner">
<form>
<table class="layout wf-100">
<tr><td><label for="iMessage"><?= $this->l11n->getText('Tasks', 'Backend', 'Message'); ?></label>
<tr><td><textarea></textarea>
<tr><td><label for="iDue"><?= $this->l11n->getText('Tasks', 'Backend', 'Due'); ?></label>
<tr><td><input type="datetime-local">
<tr><td><label for="iReceiver"><?= $this->l11n->getText('Tasks', 'Backend', 'Status'); ?></label>
<tr><td><select>
<option>
</select>
<tr><td><label for="iReceiver"><?= $this->l11n->getText('Tasks', 'Backend', 'To'); ?></label>
<tr><td><input type="text" id="iReceiver" placeholder="&#xf007; Guest">
<tr><td><input type="submit" value="<?= $this->l11n->getText(0, 'Backend', 'Create'); ?>"><input type="hidden" name="type" value="1">
</table>
</form>
</div>
</section>

View File

@ -0,0 +1,50 @@
<?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
*/
/**
* @var \phpOMS\Views\View $this
*/
echo $this->getData('nav')->render(); ?>
<section class="box w-50 floatLeft">
<header><h1><?= $this->l11n->getText('Tasks', 'Backend', 'Account'); ?></h1></header>
<div class="inner">
<form>
<table class="layout wf-100">
<tr><td><label for="iAccount"><?= $this->l11n->getText('Tasks', 'Backend', 'Account'); ?></label>
<tr><td><span class="input"><button type="button" formaction=""><i class="fa fa-book"></i></button><input type="number" min="1" id="iAccount" name="account" placeholder="&#xf007; Guest" required></span>
<tr><td><label for="iFrom"><?= $this->l11n->getText('Tasks', 'Backend', 'From'); ?></label>
<tr><td><input type="datetime-local" id="iFrom" name="from" value="<?= (new \DateTime('NOW'))->format('Y-m-d\TH:i:s') ?>">
<tr><td><label for="iTo"><?= $this->l11n->getText('Tasks', 'Backend', 'To'); ?></label>
<tr><td><input type="datetime-local" id="iTo" name="to" value="<?= (new \DateTime('NOW'))->format('Y-m-d\TH:i:s') ?>">
<tr><td><input type="submit" value="<?= $this->l11n->getText(0, 'Backend', 'Submit'); ?>">
</table>
</form>
</div>
</section>
<section class="box w-50 floatLeft">
<header><h1><?= $this->l11n->getText('Tasks', 'Backend', 'Statistics'); ?></h1></header>
<div class="inner">
<table class="list wf-100">
<tr><td><?= $this->l11n->getText('Tasks', 'Backend', 'Received'); ?><td>0
<tr><td><?= $this->l11n->getText('Tasks', 'Backend', 'Created'); ?><td>0
<tr><td><?= $this->l11n->getText('Tasks', 'Backend', 'Forwarded'); ?><td>0
<tr><td><?= $this->l11n->getText('Tasks', 'Backend', 'AverageAmount'); ?><td>0
<tr><td><?= $this->l11n->getText('Tasks', 'Backend', 'AverageProcessTime'); ?><td>0
<tr><td><?= $this->l11n->getText('Tasks', 'Backend', 'InTime'); ?><td>0
</table>
</div>
</section>

BIN
img/module_teaser_small.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

45
info.json Normal file
View File

@ -0,0 +1,45 @@
{
"name": {
"id": 1005500000,
"internal": "Workflow",
"external": "OMS Workflow"
},
"version": "1.0.0",
"requirements": {
"phpOMS": "1.0.0",
"phpOMS-db": "1.0.0"
},
"creator": {
"name": "Orange Management",
"website": "www.spl1nes.com"
},
"description": "Workflow module.",
"directory": "Workflow",
"dependencies": {
"Admin" : "1.0.0",
"Calendar" : "1.0.0"
},
"providing": {
"Navigation": "*"
},
"load": [
{
"pid": [
"ac3d9bdf783c7963f449488e33c60133b3dbe6f8"
],
"type": 4,
"for": 0,
"from": "Workflow",
"file": "Workflow"
},
{
"pid": [
"754a08ddf8bcb1cf22f310f09206dd783d42f7dd"
],
"type": 5,
"from": "Workflow",
"for": "Navigation",
"file": "Navigation"
}
]
}