mirror of
https://github.com/Karaka-Management/oms-Tasks.git
synced 2026-01-11 15:38:40 +00:00
Init
This commit is contained in:
commit
b53e7115e3
38
Admin/Install/Navigation.php
Normal file
38
Admin/Install/Navigation.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\Admin\Install;
|
||||
|
||||
/**
|
||||
* 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($dbPool)
|
||||
{
|
||||
$navData = json_decode(file_get_contents(__DIR__ . '/nav.install.json'), true);
|
||||
|
||||
$class = '\\Modules\\Navigation\\Admin\\Installer';
|
||||
$class::installExternal($dbPool, $navData);
|
||||
}
|
||||
}
|
||||
79
Admin/Install/nav.install.json
Normal file
79
Admin/Install/nav.install.json
Normal 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": []
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
117
Admin/Installer.php
Normal file
117
Admin/Installer.php
Normal file
|
|
@ -0,0 +1,117 @@
|
|||
<?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\Admin;
|
||||
|
||||
use phpOMS\DataStorage\Database\DatabaseType;
|
||||
use phpOMS\DataStorage\Database\Pool;
|
||||
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, array $info)
|
||||
{
|
||||
parent::install($dbPool, $info);
|
||||
|
||||
switch ($dbPool->get('core')->getType()) {
|
||||
case DatabaseType::MYSQL:
|
||||
$dbPool->get('core')->con->beginTransaction();
|
||||
|
||||
$dbPool->get('core')->con->prepare(
|
||||
'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'task` (
|
||||
`task_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`task_title` varchar(30) DEFAULT NULL,
|
||||
`task_desc` text NOT NULL,
|
||||
`task_plain` text NOT NULL,
|
||||
`task_type` tinyint(1) NOT NULL,
|
||||
`task_status` tinyint(1) NOT NULL,
|
||||
`task_due` datetime NOT NULL,
|
||||
`task_done` datetime NOT NULL,
|
||||
`task_creator` int(11) NOT NULL,
|
||||
`task_created` datetime NOT NULL,
|
||||
PRIMARY KEY (`task_id`),
|
||||
KEY `task_creator` (`task_creator`)
|
||||
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
|
||||
)->execute();
|
||||
|
||||
$dbPool->get('core')->con->prepare(
|
||||
'ALTER TABLE `' . $dbPool->get('core')->prefix . 'task`
|
||||
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_ibfk_1` FOREIGN KEY (`task_creator`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`);'
|
||||
)->execute();
|
||||
|
||||
$dbPool->get('core')->con->prepare(
|
||||
'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'task_account` (
|
||||
`task_account_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`task_account_task` int(11) NOT NULL,
|
||||
`task_account_seen` tinyint(1) NOT NULL,
|
||||
`task_account_account` int(11) NOT NULL,
|
||||
`task_account_type` tinyint(1) NOT NULL,
|
||||
PRIMARY KEY (`task_account_id`),
|
||||
KEY `task_account_task` (`task_account_task`),
|
||||
KEY `task_account_account` (`task_account_account`)
|
||||
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
|
||||
)->execute();
|
||||
|
||||
$dbPool->get('core')->con->prepare(
|
||||
'ALTER TABLE `' . $dbPool->get('core')->prefix . 'task_account`
|
||||
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_account_ibfk_1` FOREIGN KEY (`task_account_task`) REFERENCES `' . $dbPool->get('core')->prefix . 'task` (`task_id`),
|
||||
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_account_ibfk_2` FOREIGN KEY (`task_account_account`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`);'
|
||||
)->execute();
|
||||
|
||||
$dbPool->get('core')->con->prepare(
|
||||
'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'task_element` (
|
||||
`task_element_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`task_element_desc` text NOT NULL,
|
||||
`task_element_plain` text NOT NULL,
|
||||
`task_element_task` int(11) NOT NULL,
|
||||
`task_element_creator` int(11) NOT NULL,
|
||||
`task_element_status` tinyint(1) NOT NULL,
|
||||
`task_element_due` datetime NOT NULL,
|
||||
`task_element_forwarded` int(11) NOT NULL,
|
||||
`task_element_created` datetime NOT NULL,
|
||||
PRIMARY KEY (`task_element_id`),
|
||||
KEY `task_element_task` (`task_element_task`),
|
||||
KEY `task_element_creator` (`task_element_creator`),
|
||||
KEY `task_element_forwarded` (`task_element_forwarded`)
|
||||
)ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
|
||||
)->execute();
|
||||
|
||||
$dbPool->get('core')->con->prepare(
|
||||
'ALTER TABLE `' . $dbPool->get('core')->prefix . 'task_element`
|
||||
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_element_ibfk_1` FOREIGN KEY (`task_element_task`) REFERENCES `' . $dbPool->get('core')->prefix . 'task` (`task_id`),
|
||||
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_element_ibfk_2` FOREIGN KEY (`task_element_creator`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`),
|
||||
ADD CONSTRAINT `' . $dbPool->get('core')->prefix . 'task_element_ibfk_3` FOREIGN KEY (`task_element_forwarded`) REFERENCES `' . $dbPool->get('core')->prefix . 'account` (`account_id`);'
|
||||
)->execute();
|
||||
|
||||
$dbPool->get('core')->con->commit();
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
189
Controller.php
Normal file
189
Controller.php
Normal file
|
|
@ -0,0 +1,189 @@
|
|||
<?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;
|
||||
|
||||
use Modules\Navigation\Models\Navigation;
|
||||
use Modules\Navigation\Views\NavigationView;
|
||||
use phpOMS\Contract\RenderableInterface;
|
||||
use phpOMS\Message\RequestAbstract;
|
||||
use phpOMS\Message\RequestDestination;
|
||||
use phpOMS\Message\ResponseAbstract;
|
||||
use phpOMS\Module\ModuleAbstract;
|
||||
use phpOMS\Module\WebInterface;
|
||||
use phpOMS\Views\View;
|
||||
use phpOMS\Views\ViewLayout;
|
||||
|
||||
/**
|
||||
* Task 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 Controller extends ModuleAbstract implements WebInterface
|
||||
{
|
||||
|
||||
/**
|
||||
* Module name.
|
||||
*
|
||||
* @var \string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static $module = 'Tasks';
|
||||
|
||||
/**
|
||||
* Localization files.
|
||||
*
|
||||
* @var \string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static $localization = [
|
||||
RequestDestination::BACKEND => ['backend'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Providing.
|
||||
*
|
||||
* @var \string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static $providing = [
|
||||
'Content',
|
||||
];
|
||||
|
||||
/**
|
||||
* Dependencies.
|
||||
*
|
||||
* @var \string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static $dependencies = [];
|
||||
|
||||
/**
|
||||
* Routing elements.
|
||||
*
|
||||
* @var array
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static $routes = [
|
||||
'^.*/backend/task/dashboard.*$' => [['dest' => '\Modules\Tasks\Controller:viewTaskDashboard', 'method' => 'GET', 'type' => ViewLayout::MAIN],],
|
||||
'^.*/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],],
|
||||
];
|
||||
|
||||
/**
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return RenderableInterface
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function viewTaskDashboard(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app, $request, $response);
|
||||
$view->setTemplate('/Modules/Tasks/Theme/backend/task-dashboard');
|
||||
$view->addData('nav', $this->createNavigation(1001101001, $request, $response));
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return RenderableInterface
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function viewTaskView(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app, $request, $response);
|
||||
$view->setTemplate('/Modules/Tasks/Theme/backend/task-single');
|
||||
$view->addData('nav', $this->createNavigation(1001101001, $request, $response));
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return RenderableInterface
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function viewTaskCreate(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app, $request, $response);
|
||||
$view->setTemplate('/Modules/Tasks/Theme/backend/task-create');
|
||||
$view->addData('nav', $this->createNavigation(1001101001, $request, $response));
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
* @param mixed $data Generic data
|
||||
*
|
||||
* @return RenderableInterface
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function viewTaskAnalysis(RequestAbstract $request, ResponseAbstract $response, $data = null) : RenderableInterface
|
||||
{
|
||||
$view = new View($this->app, $request, $response);
|
||||
$view->setTemplate('/Modules/Tasks/Theme/backend/task-analysis');
|
||||
$view->addData('nav', $this->createNavigation(1001101001, $request, $response));
|
||||
|
||||
return $view;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $pageId Page/parent Id for navigation
|
||||
* @param RequestAbstract $request Request
|
||||
* @param ResponseAbstract $response Response
|
||||
*
|
||||
* @return RenderableInterface
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
private function createNavigation(\int $pageId, RequestAbstract $request, ResponseAbstract $response)
|
||||
{
|
||||
$nav = Navigation::getInstance($request, $this->app->dbPool);
|
||||
$navView = new NavigationView($this->app, $request, $response);
|
||||
$navView->setTemplate('/Modules/Navigation/Theme/backend/mid');
|
||||
$navView->setNav($nav->getNav());
|
||||
$navView->setLanguage($request->getL11n()->language);
|
||||
$navView->setParent($pageId);
|
||||
|
||||
return $navView;
|
||||
}
|
||||
}
|
||||
34
Models/NullTaskElement.php
Normal file
34
Models/NullTaskElement.php
Normal 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 NullTaskElement extends TaskElement
|
||||
{
|
||||
|
||||
}
|
||||
0
Models/Stats.php
Normal file
0
Models/Stats.php
Normal file
313
Models/Task.php
Normal file
313
Models/Task.php
Normal file
|
|
@ -0,0 +1,313 @@
|
|||
<?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 Task
|
||||
{
|
||||
|
||||
/**
|
||||
* ID.
|
||||
*
|
||||
* @var \int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $id = null;
|
||||
|
||||
/**
|
||||
* Title.
|
||||
*
|
||||
* @var \string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $title = '';
|
||||
|
||||
/**
|
||||
* Creator.
|
||||
*
|
||||
* @var \int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $createdBy = null;
|
||||
|
||||
/**
|
||||
* Created.
|
||||
*
|
||||
* @var \DateTime
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $createdAt = null;
|
||||
|
||||
/**
|
||||
* Description.
|
||||
*
|
||||
* @var \string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $description = '';
|
||||
|
||||
/**
|
||||
* Plain unparsed.
|
||||
*
|
||||
* @var \string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $plain = '';
|
||||
|
||||
/**
|
||||
* Type.
|
||||
*
|
||||
* @var TaskType
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $type = TaskType::TASK;
|
||||
|
||||
/**
|
||||
* Status.
|
||||
*
|
||||
* @var TaskStatus
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $status = TaskStatus::OPEN;
|
||||
|
||||
/**
|
||||
* Due.
|
||||
*
|
||||
* @var \DateTime
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $due = null;
|
||||
|
||||
/**
|
||||
* Done.
|
||||
*
|
||||
* @var \DateTime
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $done = null;
|
||||
|
||||
/**
|
||||
* Task elements.
|
||||
*
|
||||
* @var TaskElement[]
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $taskElements = [];
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Adding new task element.
|
||||
*
|
||||
* @param TaskElement $element Task element
|
||||
*
|
||||
* @return bool
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function addElement(TaskElement $element) : \bool
|
||||
{
|
||||
if (!isset($this->taskElements[$element->getId()])) {
|
||||
$this->taskElements[$element->getId()] = $element;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \DateTime
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getCreatedAt() : \DateTime
|
||||
{
|
||||
return $this->createdAt;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \int
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getCreatedBy() : \int
|
||||
{
|
||||
return $this->createdBy;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \string
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getDescription() : \string
|
||||
{
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \DateTime
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getDone() : \DateTime
|
||||
{
|
||||
return $this->done;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \DateTime
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getDue() : \DateTime
|
||||
{
|
||||
return $this->due;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \int
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getId() : \int
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return TaskStatus
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getStatus() : TaskStatus
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \string
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getTitle() : \string
|
||||
{
|
||||
return $this->title;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove Element from list.
|
||||
*
|
||||
* @param \int $id Task element
|
||||
*
|
||||
* @return bool
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function removeElement($id) : \bool
|
||||
{
|
||||
if (isset($this->taskElements[$id])) {
|
||||
unset($this->taskElements[$id]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get task elements.
|
||||
*
|
||||
* @return TaskElement[]
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getTaskElements() : array
|
||||
{
|
||||
return $this->taskElements;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get task elements.
|
||||
*
|
||||
* @param \int $id Element id
|
||||
*
|
||||
* @return TaskElement
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getTaskElement(\int $id) : TaskElement
|
||||
{
|
||||
return $this->taskElements[$id] ?? new NullTaskElement();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get task type.
|
||||
*
|
||||
* @return \int
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getType() : \int
|
||||
{
|
||||
return $this->type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get plain.
|
||||
*
|
||||
* @return \string
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getPlain() : \string
|
||||
{
|
||||
return $this->plain;
|
||||
}
|
||||
}
|
||||
346
Models/TaskElement.php
Normal file
346
Models/TaskElement.php
Normal file
|
|
@ -0,0 +1,346 @@
|
|||
<?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 TaskElement
|
||||
{
|
||||
|
||||
/**
|
||||
* Id.
|
||||
*
|
||||
* @var \int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $id = null;
|
||||
|
||||
/**
|
||||
* Description.
|
||||
*
|
||||
* @var \string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $description = '';
|
||||
|
||||
/**
|
||||
* Task.
|
||||
*
|
||||
* @var \int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $task = 0;
|
||||
|
||||
/**
|
||||
* Creator.
|
||||
*
|
||||
* @var \int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $creator = 0;
|
||||
|
||||
/**
|
||||
* Created.
|
||||
*
|
||||
* @var \DateTime
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $created = null;
|
||||
|
||||
/**
|
||||
* Status.
|
||||
*
|
||||
* @var \int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $status = null;
|
||||
|
||||
/**
|
||||
* Due.
|
||||
*
|
||||
* @var \DateTime
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $due = null;
|
||||
|
||||
/**
|
||||
* Forwarded to.
|
||||
*
|
||||
* @var \int
|
||||
* @since 1.0.0
|
||||
*/
|
||||
private $forwarded = 0;
|
||||
|
||||
/**
|
||||
* Constructor.
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* Init task element.
|
||||
*
|
||||
* @param \int $id Article ID
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function init($id)
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \DateTime
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getCreated()
|
||||
{
|
||||
return $this->created;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \DateTime $created
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function setCreated($created)
|
||||
{
|
||||
$this->created = $created;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \int
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getCreator()
|
||||
{
|
||||
return $this->creator;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \int $creator
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function setCreator($creator)
|
||||
{
|
||||
$this->creator = $creator;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \string
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getDescription()
|
||||
{
|
||||
return $this->description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \string $description
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function setDescription($description)
|
||||
{
|
||||
$this->description = $description;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \DateTime
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getDue()
|
||||
{
|
||||
return $this->due;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \DateTime $due
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function setDue($due)
|
||||
{
|
||||
$this->due = $due;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \int
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getForwarded()
|
||||
{
|
||||
return $this->forwarded;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \int $forwarded
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function setForwarded($forwarded)
|
||||
{
|
||||
$this->forwarded = $forwarded;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \int
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getId()
|
||||
{
|
||||
return $this->id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \int $id
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function setId($id)
|
||||
{
|
||||
$this->id = $id;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \int
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getStatus()
|
||||
{
|
||||
return $this->status;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \int $status
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function setStatus($status)
|
||||
{
|
||||
$this->status = $status;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \int
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function getTask()
|
||||
{
|
||||
return $this->task;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param \int $task
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function setTask($task)
|
||||
{
|
||||
$this->task = $task;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function delete()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function create()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function update()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function serialize()
|
||||
{
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function unserialize($data)
|
||||
{
|
||||
}
|
||||
}
|
||||
0
Models/TaskElementMapper.php
Normal file
0
Models/TaskElementMapper.php
Normal file
121
Models/TaskMapper.php
Normal file
121
Models/TaskMapper.php
Normal file
|
|
@ -0,0 +1,121 @@
|
|||
<?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;
|
||||
|
||||
use phpOMS\DataStorage\Database\DataMapperAbstract;
|
||||
use phpOMS\DataStorage\Database\Query\Builder;
|
||||
use phpOMS\DataStorage\Database\Query\Column;
|
||||
|
||||
class TaskMapper extends DataMapperAbstract
|
||||
{
|
||||
|
||||
/**
|
||||
* Columns.
|
||||
*
|
||||
* @var array<string, array>
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static $columns = [
|
||||
'task_id' => ['name' => 'task_id', 'type' => 'int', 'internal' => 'id'],
|
||||
'task_title' => ['name' => 'task_title', 'type' => 'string', 'internal' => 'title'],
|
||||
'task_desc' => ['name' => 'task_desc', 'type' => 'string', 'internal' => 'description'],
|
||||
'task_plain' => ['name' => 'task_plain', 'type' => 'string', 'internal' => 'plain'],
|
||||
'task_type' => ['name' => 'task_type', 'type' => 'int', 'internal' => 'type'],
|
||||
'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_creator' => ['name' => 'task_creator', 'type' => 'int', 'internal' => 'createdBy'],
|
||||
'task_created' => ['name' => 'task_created', 'type' => 'DateTime', 'internal' => 'createdAt'],
|
||||
];
|
||||
|
||||
/**
|
||||
* Primary table.
|
||||
*
|
||||
* @var \string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static $table = 'task';
|
||||
|
||||
protected static $createdAt = 'task_created';
|
||||
|
||||
/**
|
||||
* Primary field name.
|
||||
*
|
||||
* @var \string
|
||||
* @since 1.0.0
|
||||
*/
|
||||
protected static $primaryField = 'task_id';
|
||||
|
||||
/**
|
||||
* Create media.
|
||||
*
|
||||
* @param Task $obj Media
|
||||
*
|
||||
* @return \bool
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function create(&$obj)
|
||||
{
|
||||
try {
|
||||
$objId = parent::create($obj);
|
||||
$query = new Builder($this->db);
|
||||
$query->prefix($this->db->getPrefix())
|
||||
->insert(
|
||||
'account_permission_account',
|
||||
'account_permission_from',
|
||||
'account_permission_for',
|
||||
'account_permission_id1',
|
||||
'account_permission_id2',
|
||||
'account_permission_r',
|
||||
'account_permission_w',
|
||||
'account_permission_m',
|
||||
'account_permission_d',
|
||||
'account_permission_p'
|
||||
)
|
||||
->into('account_permission')
|
||||
->values($obj->getCreatedBy(), 'task', 'task', 1, $objId, 1, 1, 1, 1, 1);
|
||||
|
||||
$this->db->con->prepare($query->toSql())->execute();
|
||||
} catch (\Exception $e) {
|
||||
var_dump($e);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return $objId;
|
||||
}
|
||||
|
||||
/**
|
||||
* Find.
|
||||
*
|
||||
* @param array $columns Columns to select
|
||||
*
|
||||
* @return Builder
|
||||
*
|
||||
* @since 1.0.0
|
||||
* @author Dennis Eichhorn <d.eichhorn@oms.com>
|
||||
*/
|
||||
public function find(...$columns) : Builder
|
||||
{
|
||||
return parent::find(...$columns)->from('account_permission')
|
||||
->where('account_permission.account_permission_for', '=', 'task')
|
||||
->where('account_permission.account_permission_id1', '=', 1)
|
||||
->where('task.task_id', '=', new Column('account_permission.account_permission_id2'))
|
||||
->where('account_permission.account_permission_r', '=', 1);
|
||||
}
|
||||
}
|
||||
42
Models/TaskPriority.php
Normal file
42
Models/TaskPriority.php
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<?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;
|
||||
|
||||
use phpOMS\Datatypes\Enum;
|
||||
|
||||
/**
|
||||
* Task priority enum.
|
||||
*
|
||||
* @category Tasks
|
||||
* @package Modules
|
||||
* @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
|
||||
*/
|
||||
abstract class TaskPriority extends Enum
|
||||
{
|
||||
const VLOW = 1;
|
||||
|
||||
const LOW = 2;
|
||||
|
||||
const MEDIUM = 3;
|
||||
|
||||
const HIGH = 4;
|
||||
|
||||
const VHIGH = 5;
|
||||
}
|
||||
42
Models/TaskStatus.php
Normal file
42
Models/TaskStatus.php
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
<?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;
|
||||
|
||||
use phpOMS\Datatypes\Enum;
|
||||
|
||||
/**
|
||||
* Task status enum.
|
||||
*
|
||||
* @category Tasks
|
||||
* @package Modules
|
||||
* @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
|
||||
*/
|
||||
abstract class TaskStatus extends Enum
|
||||
{
|
||||
const OPEN = 1;
|
||||
|
||||
const WORKING = 2;
|
||||
|
||||
const SUSPENDED = 3;
|
||||
|
||||
const CANCELED = 4;
|
||||
|
||||
const DONE = 5;
|
||||
}
|
||||
35
Models/TaskType.php
Normal file
35
Models/TaskType.php
Normal file
|
|
@ -0,0 +1,35 @@
|
|||
<?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;
|
||||
|
||||
use phpOMS\Datatypes\Enum;
|
||||
|
||||
/**
|
||||
* Task type enum.
|
||||
*
|
||||
* @category Tasks
|
||||
* @package Modules
|
||||
* @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
|
||||
*/
|
||||
abstract class TaskType extends Enum
|
||||
{
|
||||
const TASK = 0;
|
||||
const MODULE = 1;
|
||||
}
|
||||
36
Models/TaskVisibility.php
Normal file
36
Models/TaskVisibility.php
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
<?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;
|
||||
|
||||
use phpOMS\Datatypes\Enum;
|
||||
|
||||
/**
|
||||
* Task status enum.
|
||||
*
|
||||
* @category Tasks
|
||||
* @package Modules
|
||||
* @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
|
||||
*/
|
||||
abstract class TaskVisibility extends Enum
|
||||
{
|
||||
const TO = 1;
|
||||
const CC = 2;
|
||||
const BCC = 3;
|
||||
}
|
||||
50
Theme/backend/task-analysis.tpl.php
Normal file
50
Theme/backend/task-analysis.tpl.php
Normal 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">
|
||||
<h1><?= $this->l11n->lang['Tasks']['Account']; ?></h1>
|
||||
<div class="inner">
|
||||
<form>
|
||||
<table class="layout wf-100">
|
||||
<tr><td><label for="iAccount"><?= $this->l11n->lang['Tasks']['Account']; ?></label>
|
||||
<tr><td><input type="text" id="iAccount" name="account" placeholder="">
|
||||
<tr><td><label for="iFrom"><?= $this->l11n->lang['Tasks']['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->lang['Tasks']['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->lang[0]['Submit']; ?>">
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="box w-50 floatLeft">
|
||||
<h1><?= $this->l11n->lang['Tasks']['Statistics']; ?></h1>
|
||||
<div class="inner">
|
||||
<table class="list wf-100">
|
||||
<tr><td><?= $this->l11n->lang['Tasks']['Received']; ?><td>0
|
||||
<tr><td><?= $this->l11n->lang['Tasks']['Created']; ?><td>0
|
||||
<tr><td><?= $this->l11n->lang['Tasks']['Forwarded']; ?><td>0
|
||||
<tr><td><?= $this->l11n->lang['Tasks']['AverageAmount']; ?><td>0
|
||||
<tr><td><?= $this->l11n->lang['Tasks']['AverageProcessTime']; ?><td>0
|
||||
<tr><td><?= $this->l11n->lang['Tasks']['InTime']; ?><td>0
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
58
Theme/backend/task-create.tpl.php
Normal file
58
Theme/backend/task-create.tpl.php
Normal file
|
|
@ -0,0 +1,58 @@
|
|||
<?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">
|
||||
<h1><?= $this->l11n->lang['Tasks']['Task']; ?></h1>
|
||||
|
||||
<div class="inner">
|
||||
<form id="fTask">
|
||||
<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 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 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 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 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">
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="box w-50 floatLeft">
|
||||
<h1><?= $this->l11n->lang['Tasks']['Media']; ?></h1>
|
||||
|
||||
<div class="inner">
|
||||
<form>
|
||||
<table class="layout wf-100">
|
||||
<tbody>
|
||||
<tr><td colspan="2"><label for="iMedia"><?= $this->l11n->lang['Tasks']['Media']; ?></label>
|
||||
<tr><td><input type="text" id="iMedia" placeholder=" File"><td><button><?= $this->l11n->lang[0]['Select']; ?></button>
|
||||
<tr><td colspan="2"><label for="iUpload"><?= $this->l11n->lang['Tasks']['Upload']; ?></label>
|
||||
<tr><td><input type="file" id="iUpload" form="fTask"><input form="fTask" type="hidden" name="type"><td>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
69
Theme/backend/task-dashboard.tpl.php
Normal file
69
Theme/backend/task-dashboard.tpl.php
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
<?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-75 floatLeft">
|
||||
<table class="table">
|
||||
<caption><?= $this->l11n->lang['Tasks']['Tasks']; ?></caption>
|
||||
<thead>
|
||||
<tr><td><?= $this->l11n->lang[0]['ID']; ?>
|
||||
<td><?= $this->l11n->lang['Tasks']['Status']; ?>
|
||||
<td><?= $this->l11n->lang['Tasks']['Due']; ?>
|
||||
<td class="full"><?= $this->l11n->lang['Tasks']['Title']; ?>
|
||||
<td><?= $this->l11n->lang['Tasks']['Creator']; ?>
|
||||
<td><?= $this->l11n->lang['Tasks']['Created']; ?>
|
||||
<tfoot>
|
||||
<tbody>
|
||||
<tr><td colspan="6" class="empty"><?= $this->l11n->lang[0]['Empty']; ?>
|
||||
</table>
|
||||
</section>
|
||||
|
||||
<section class="w-25 floatLeft">
|
||||
<section class="box w-100">
|
||||
<h1><?= $this->l11n->lang['Tasks']['Settings']; ?></h1>
|
||||
<div class="inner">
|
||||
<form>
|
||||
<table class="layout wf-100">
|
||||
<tr><td><label for="iIntervarl"><?= $this->l11n->lang['Tasks']['Interval']; ?></label>
|
||||
<tr><td><select id="iIntervarl" name="interval">
|
||||
<option><?= $this->l11n->lang['Tasks']['All']; ?>
|
||||
<option><?= $this->l11n->lang['Tasks']['Day']; ?>
|
||||
<option><?= $this->l11n->lang['Tasks']['Week']; ?>
|
||||
<option selected><?= $this->l11n->lang['Tasks']['Month']; ?>
|
||||
<option><?= $this->l11n->lang['Tasks']['Year']; ?>
|
||||
</select>
|
||||
</table>
|
||||
</form>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="box w-100">
|
||||
<h1><?= $this->l11n->lang['Tasks']['Settings']; ?></h1>
|
||||
<div class="inner">
|
||||
<table class="list">
|
||||
<tr><th><?= $this->l11n->lang['Tasks']['Received']; ?><td>0
|
||||
<tr><th><?= $this->l11n->lang['Tasks']['Created']; ?><td>0
|
||||
<tr><th><?= $this->l11n->lang['Tasks']['Forwarded']; ?><td>0
|
||||
<tr><th><?= $this->l11n->lang['Tasks']['AverageAmount']; ?><td>0
|
||||
<tr><th><?= $this->l11n->lang['Tasks']['AverageProcessTime']; ?><td>0
|
||||
<tr><th><?= $this->l11n->lang['Tasks']['InTime']; ?><td>0
|
||||
</table>
|
||||
</div>
|
||||
</section>
|
||||
</section>
|
||||
103
Theme/backend/task-single.tpl.php
Normal file
103
Theme/backend/task-single.tpl.php
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
<?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
|
||||
*/
|
||||
$task = new \Modules\Tasks\Models\Task(null);
|
||||
|
||||
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">
|
||||
<h1>
|
||||
<?= $task->getTitle(); ?>
|
||||
<i class="fa fa-minus min"></i>
|
||||
<i class="fa fa-plus max vh"></i>
|
||||
</h1>
|
||||
|
||||
<div class="bc-1">
|
||||
<span><?= $task->getCreated()->format('Y-m-d H:i:s'); ?></span>
|
||||
<span><?= $task->getDue()->format('Y-m-d H:i:s'); ?></span>
|
||||
<span><?= $task->getDone()->format('Y-m-d H:i:s'); ?></span> <span><?= $task->getStatus(); ?></span>
|
||||
<span><?= $task->getCreator(); ?></span>
|
||||
<?= $task->getDescription(); ?>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?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
|
||||
*/
|
||||
$elements = $task->getTaskElements();
|
||||
foreach ($elements as $element): ?>
|
||||
<div class="b b-3 c7-1 c7" id="i7-1-1">
|
||||
<div class="bc-1">
|
||||
<span><?= $element->getCreated()->format('Y-m-d H:i:s'); ?></span>
|
||||
<span><?= $element->getDue()->format('Y-m-d H:i:s'); ?></span> <span><?= $element->getStatus(); ?></span>
|
||||
<span><?= $element->getForwarded(); ?></span> <span><?= $element->getCreator(); ?></span>
|
||||
<?= $element->getDescription(); ?>
|
||||
</div>
|
||||
</div>
|
||||
<?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
|
||||
*/ endforeach; ?>
|
||||
|
||||
<div class="b b-3 c7-1 c7" id="i7-1-1">
|
||||
<div class="bc-1">
|
||||
<ul class="l-1">
|
||||
<li>
|
||||
<lable><?= $this->l11n->lang['Tasks']['Receiver']; ?></lable>
|
||||
<li><input type="text">
|
||||
<li>
|
||||
<lable><?= $this->l11n->lang['Tasks']['Due']; ?></lable>
|
||||
<li><input type="text">
|
||||
<li>
|
||||
<lable><?= $this->l11n->lang['Tasks']['Message']; ?></lable>
|
||||
<li><textarea style="width: 100%"></textarea>
|
||||
</ul>
|
||||
<button class="rf"><?= $this->l11n->lang[0]['Submit']; ?></button>
|
||||
<div class="clearfix"></div>
|
||||
</div>
|
||||
</div>
|
||||
59
Theme/lang/backend.en.lang.php
Normal file
59
Theme/lang/backend.en.lang.php
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
<?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
|
||||
*/
|
||||
$MODLANG['Tasks'] = [
|
||||
'Account' => 'Account',
|
||||
'All' => 'All',
|
||||
'AverageProcessTime' => 'Avg. Process Time',
|
||||
'AverageAmount' => 'Average Amount',
|
||||
'BCC' => 'BCC',
|
||||
'CC' => 'CC',
|
||||
'Created' => 'Created',
|
||||
'Creator' => 'Creator',
|
||||
'Default' => 'Default',
|
||||
'Day' => 'Day',
|
||||
'Due' => 'Due',
|
||||
'Forwarded' => 'Forwarded',
|
||||
'From' => 'From',
|
||||
'Group' => 'Group',
|
||||
'Interval' => 'Interval',
|
||||
'InTime' => 'In Time',
|
||||
'Message' => 'Message',
|
||||
'Media' => 'Media',
|
||||
'Month' => 'Month',
|
||||
'Name' => 'Name',
|
||||
'New' => 'New',
|
||||
'Open' => 'Open',
|
||||
'Person' => 'Person',
|
||||
'Priority' => 'Priority',
|
||||
'Received' => 'Received',
|
||||
'Redirected' => 'Redirected',
|
||||
'Select' => 'Select',
|
||||
'Settings' => 'Settings',
|
||||
'SharedVisibility' => 'Visibility is shared across all',
|
||||
'Size' => 'Size',
|
||||
'Statistics' => 'Statistics',
|
||||
'Status' => 'Status',
|
||||
'Task' => 'Task',
|
||||
'Tasks' => 'Tasks',
|
||||
'Template' => 'Template',
|
||||
'Title' => 'Title',
|
||||
'To' => 'To',
|
||||
'Today' => 'Today',
|
||||
'Type' => 'Type',
|
||||
'Upload' => 'Upload',
|
||||
'Week' => 'Week',
|
||||
'Year' => 'Year',
|
||||
];
|
||||
20
Theme/lang/nav.backend.en.lang.php
Normal file
20
Theme/lang/nav.backend.en.lang.php
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
<?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
|
||||
*/
|
||||
$MODLANG['Navigation'] = [
|
||||
'Analysis' => 'Analysis',
|
||||
'Create' => 'Create',
|
||||
'Tasks' => 'Tasks',
|
||||
];
|
||||
0
Views/TaskCreate.php
Normal file
0
Views/TaskCreate.php
Normal file
BIN
img/module_teaser_small.png
Normal file
BIN
img/module_teaser_small.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 48 KiB |
52
info.json
Normal file
52
info.json
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
{
|
||||
"name": {
|
||||
"id": 1001100000,
|
||||
"internal": "Tasks",
|
||||
"external": "OMS Tasks"
|
||||
},
|
||||
"version": "1.0.0",
|
||||
"requirements": {
|
||||
"phpOMS": "1.0.0",
|
||||
"phpOMS-db": "1.0.0"
|
||||
},
|
||||
"creator": {
|
||||
"name": "Orange Management",
|
||||
"website": "www.spl1nes.com"
|
||||
},
|
||||
"description": "Tasks module.",
|
||||
"directory": "Tasks",
|
||||
"dependencies": {},
|
||||
"providing": {
|
||||
"Navigation": "*"
|
||||
},
|
||||
"load": [
|
||||
{
|
||||
"pid": [
|
||||
"43ec7cda8be033d7b20996708a2fca644e5dde86",
|
||||
"5d52fd7cd66f1fd8ed754002920e7693b45d6d59"
|
||||
],
|
||||
"type": 4,
|
||||
"for": 0,
|
||||
"from": "Tasks",
|
||||
"file": "Tasks"
|
||||
},
|
||||
{
|
||||
"pid": [
|
||||
"754a08ddf8bcb1cf22f310f09206dd783d42f7dd"
|
||||
],
|
||||
"type": 5,
|
||||
"from": "Tasks",
|
||||
"for": "Navigation",
|
||||
"file": "nav.backend"
|
||||
},
|
||||
{
|
||||
"pid": [
|
||||
"43ec7cda8be033d7b20996708a2fca644e5dde86"
|
||||
],
|
||||
"type": 5,
|
||||
"for": "Content",
|
||||
"file": "backend",
|
||||
"from": "Tasks"
|
||||
}
|
||||
]
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user