mirror of
https://github.com/Karaka-Management/oms-Tasks.git
synced 2026-02-13 05:08:41 +00:00
Implement and rename mapper functionality
This commit is contained in:
parent
4919a52846
commit
72623910be
|
|
@ -54,8 +54,7 @@ final class BackendController extends Controller
|
||||||
$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));
|
||||||
|
|
||||||
$open = TaskMapper::getOpen($request->getHeader()->getAccount());
|
$tasks = TaskMapper::getAny($request->getHeader()->getAccount());
|
||||||
$tasks = TaskMapper::getNewest(25);
|
|
||||||
|
|
||||||
$view->addData('tasks', $tasks);
|
$view->addData('tasks', $tasks);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -101,7 +101,7 @@ final class TaskElementMapper extends DataMapperAbstract
|
||||||
* @var string
|
* @var string
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
protected static $createdAt = 'task_created_at';
|
protected static $createdAt = 'task_element_created_at';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Primary field name.
|
* Primary field name.
|
||||||
|
|
|
||||||
|
|
@ -127,7 +127,7 @@ final class TaskMapper extends DataMapperAbstract
|
||||||
protected static $primaryField = 'task_id';
|
protected static $primaryField = 'task_id';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get open tasks
|
* Get open tasks by createdBy
|
||||||
*
|
*
|
||||||
* @param int $user User
|
* @param int $user User
|
||||||
*
|
*
|
||||||
|
|
@ -135,7 +135,7 @@ final class TaskMapper extends DataMapperAbstract
|
||||||
*
|
*
|
||||||
* @since 1.0.0
|
* @since 1.0.0
|
||||||
*/
|
*/
|
||||||
public static function getOpen(int $user) : array
|
public static function getOpenCreatedBy(int $user) : array
|
||||||
{
|
{
|
||||||
$query = self::getQuery();
|
$query = self::getQuery();
|
||||||
$query->where(self::$table . '.task_created_by', '=', $user)
|
$query->where(self::$table . '.task_created_by', '=', $user)
|
||||||
|
|
@ -144,6 +144,158 @@ final class TaskMapper extends DataMapperAbstract
|
||||||
return self::getAllByQuery($query);
|
return self::getAllByQuery($query);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get open tasks for user
|
||||||
|
*
|
||||||
|
* @param int $user User
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function getOpenTo(int $user) : array
|
||||||
|
{
|
||||||
|
$query = self::getQuery();
|
||||||
|
$query->innerJoin(TaskElementMapper::getTable())
|
||||||
|
->on(self::$table . '.task_id', '=', TaskElementMapper::getTable() . '.task_element_task')
|
||||||
|
->innerJoin(AccountRelationMapper::getTable())
|
||||||
|
->on(TaskElementMapper::getTable() . '.task_element_id', '=', AccountRelationMapper::getTable() . '.task_account_task_element')
|
||||||
|
->where(self::$table . '.task_status', '=', TaskStatus::OPEN)
|
||||||
|
->andWhere(AccountRelationMapper::getTable() . '.task_account_account', '=', $user)
|
||||||
|
->andWhere(AccountRelationMapper::getTable() . '.task_account_duty', '=', DutyType::TO);
|
||||||
|
|
||||||
|
return self::getAllByQuery($query);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get open tasks for mentioned user
|
||||||
|
*
|
||||||
|
* @param int $user User
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function getOpenAny(int $user) : array
|
||||||
|
{
|
||||||
|
$query = self::getQuery();
|
||||||
|
$query->innerJoin(TaskElementMapper::getTable())
|
||||||
|
->on(self::$table . '.task_id', '=', TaskElementMapper::getTable() . '.task_element_task')
|
||||||
|
->innerJoin(AccountRelationMapper::getTable())
|
||||||
|
->on(TaskElementMapper::getTable() . '.task_element_id', '=', AccountRelationMapper::getTable() . '.task_account_task_element')
|
||||||
|
->where(self::$table . '.task_status', '=', TaskStatus::OPEN)
|
||||||
|
->andWhere(AccountRelationMapper::getTable() . '.task_account_account', '=', $user);
|
||||||
|
// todo: ->orWhere(self::$table . '.createdBy', '=', $user) this needs a where condition so we can create (...) or created by
|
||||||
|
|
||||||
|
return self::getAllByQuery($query);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get open tasks by cc
|
||||||
|
*
|
||||||
|
* @param int $user User
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function getOpenCC(int $user) : array
|
||||||
|
{
|
||||||
|
$query = self::getQuery();
|
||||||
|
$query->innerJoin(TaskElementMapper::getTable())
|
||||||
|
->on(self::$table . '.task_id', '=', TaskElementMapper::getTable() . '.task_element_task')
|
||||||
|
->innerJoin(AccountRelationMapper::getTable())
|
||||||
|
->on(TaskElementMapper::getTable() . '.task_element_id', '=', AccountRelationMapper::getTable() . '.task_account_task_element')
|
||||||
|
->where(self::$table . '.task_status', '=', TaskStatus::OPEN)
|
||||||
|
->andWhere(AccountRelationMapper::getTable() . '.task_account_account', '=', $user)
|
||||||
|
->andWhere(AccountRelationMapper::getTable() . '.task_account_duty', '=', DutyType::CC);
|
||||||
|
|
||||||
|
return self::getAllByQuery($query);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get tasks created by user
|
||||||
|
*
|
||||||
|
* @param int $user User
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function getCreatedBy(int $user) : array
|
||||||
|
{
|
||||||
|
$query = self::getQuery();
|
||||||
|
$query->where(self::$table . '.task_created_by', '=', $user);
|
||||||
|
|
||||||
|
return self::getAllByQuery($query);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get tasks sent to user
|
||||||
|
*
|
||||||
|
* @param int $user User
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function getTo(int $user) : array
|
||||||
|
{
|
||||||
|
$query = self::getQuery();
|
||||||
|
$query->innerJoin(TaskElementMapper::getTable())
|
||||||
|
->on(self::$table . '.task_id', '=', TaskElementMapper::getTable() . '.task_element_task')
|
||||||
|
->innerJoin(AccountRelationMapper::getTable())
|
||||||
|
->on(TaskElementMapper::getTable() . '.task_element_id', '=', AccountRelationMapper::getTable() . '.task_account_task_element')
|
||||||
|
->where(AccountRelationMapper::getTable() . '.task_account_account', '=', $user)
|
||||||
|
->andWhere(AccountRelationMapper::getTable() . '.task_account_duty', '=', DutyType::TO);
|
||||||
|
|
||||||
|
return self::getAllByQuery($query);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get tasks cc to user
|
||||||
|
*
|
||||||
|
* @param int $user User
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function getCC(int $user) : array
|
||||||
|
{
|
||||||
|
$query = self::getQuery();
|
||||||
|
$query->innerJoin(TaskElementMapper::getTable())
|
||||||
|
->on(self::$table . '.task_id', '=', TaskElementMapper::getTable() . '.task_element_task')
|
||||||
|
->innerJoin(AccountRelationMapper::getTable())
|
||||||
|
->on(TaskElementMapper::getTable() . '.task_element_id', '=', AccountRelationMapper::getTable() . '.task_account_task_element')
|
||||||
|
->where(AccountRelationMapper::getTable() . '.task_account_account', '=', $user)
|
||||||
|
->andWhere(AccountRelationMapper::getTable() . '.task_account_duty', '=', DutyType::CC);
|
||||||
|
|
||||||
|
return self::getAllByQuery($query);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Get tasks that have something to do with the user
|
||||||
|
*
|
||||||
|
* @param int $user User
|
||||||
|
*
|
||||||
|
* @return array
|
||||||
|
*
|
||||||
|
* @since 1.0.0
|
||||||
|
*/
|
||||||
|
public static function getAny(int $user) : array
|
||||||
|
{
|
||||||
|
$query = self::getQuery();
|
||||||
|
$query->innerJoin(TaskElementMapper::getTable())
|
||||||
|
->on(self::$table . '.task_id', '=', TaskElementMapper::getTable() . '.task_element_task')
|
||||||
|
->innerJoin(AccountRelationMapper::getTable())
|
||||||
|
->on(TaskElementMapper::getTable() . '.task_element_id', '=', AccountRelationMapper::getTable() . '.task_account_task_element')
|
||||||
|
->where(AccountRelationMapper::getTable() . '.task_account_account', '=', $user)
|
||||||
|
->orderBy(TaskElementMapper::getTable() . '.' . TaskElementMapper::getCreatedAt(), 'DESC');
|
||||||
|
|
||||||
|
return self::getAllByQuery($query);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Count unread task
|
* Count unread task
|
||||||
*
|
*
|
||||||
|
|
@ -159,10 +311,14 @@ final class TaskMapper extends DataMapperAbstract
|
||||||
$query = new Builder(self::$db);
|
$query = new Builder(self::$db);
|
||||||
|
|
||||||
$query->prefix(self::$db->getPrefix())
|
$query->prefix(self::$db->getPrefix())
|
||||||
->count()
|
->count('*')
|
||||||
->from(self::$table)
|
->from(self::$table)
|
||||||
->where(self::$table . '.task_created_by', '=', $user)
|
->innerJoin(TaskElementMapper::getTable())
|
||||||
->andWhere(self::$table . '.task_status', '=', TaskStatus::OPEN);
|
->on(self::$table . '.task_id', '=', TaskElementMapper::getTable() . '.task_element_task')
|
||||||
|
->innerJoin(AccountRelationMapper::getTable())
|
||||||
|
->on(TaskElementMapper::getTable() . '.task_element_id', '=', AccountRelationMapper::getTable() . '.task_account_task_element')
|
||||||
|
->where(self::$table . '.task_status', '=', TaskStatus::OPEN)
|
||||||
|
->andWhere(AccountRelationMapper::getTable() . '.task_account_account', '=', $user);
|
||||||
|
|
||||||
$sth = self::$db->con->prepare($query->toSql());
|
$sth = self::$db->con->prepare($query->toSql());
|
||||||
$sth->execute();
|
$sth->execute();
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@ $tasks = $this->getData('tasks');
|
||||||
echo $this->getData('nav')->render(); ?>
|
echo $this->getData('nav')->render(); ?>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-12 col-md-9">
|
<div class="col-xs-12">
|
||||||
<div class="box wf-100">
|
<div class="box wf-100">
|
||||||
<table id="taskList" class="table darkred">
|
<table id="taskList" class="table darkred">
|
||||||
<caption><?= $this->getHtml('Tasks') ?><i class="fa fa-download floatRight download btn"></i></caption>
|
<caption><?= $this->getHtml('Tasks') ?><i class="fa fa-download floatRight download btn"></i></caption>
|
||||||
|
|
@ -60,38 +60,4 @@ echo $this->getData('nav')->render(); ?>
|
||||||
</table>
|
</table>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-xs-12 col-md-3">
|
|
||||||
<section class="box wf-100">
|
|
||||||
<header><h1><?= $this->getHtml('Settings') ?></h1></header>
|
|
||||||
<div class="inner">
|
|
||||||
<form id="iTaskInterval" action="<?= \phpOMS\Uri\UriFactory::build('{/api}task/dashboard?{?}') ?>" method="post">
|
|
||||||
<table class="layout wf-100">
|
|
||||||
<tr><td><label for="iIntervarl"><?= $this->getHtml('Interval') ?></label>
|
|
||||||
<tr><td><select id="iIntervarl" name="interval">
|
|
||||||
<option><?= $this->getHtml('All') ?>
|
|
||||||
<option><?= $this->getHtml('Day') ?>
|
|
||||||
<option><?= $this->getHtml('Week') ?>
|
|
||||||
<option selected><?= $this->getHtml('Month') ?>
|
|
||||||
<option><?= $this->getHtml('Year') ?>
|
|
||||||
</select>
|
|
||||||
</table>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
<section class="box wf-100">
|
|
||||||
<header><h1><?= $this->getHtml('Settings') ?></h1></header>
|
|
||||||
<div class="inner">
|
|
||||||
<table class="list">
|
|
||||||
<tr><th><?= $this->getHtml('Received') ?><td>0
|
|
||||||
<tr><th><?= $this->getHtml('Created') ?><td>0
|
|
||||||
<tr><th><?= $this->getHtml('Forwarded') ?><td>0
|
|
||||||
<tr><th><?= $this->getHtml('AverageAmount') ?><td>0
|
|
||||||
<tr><th><?= $this->getHtml('AverageProcessTime') ?><td>0
|
|
||||||
<tr><th><?= $this->getHtml('InTime') ?><td>0
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -29,7 +29,7 @@ $color = $this->getStatus($task->getStatus());
|
||||||
echo $this->getData('nav')->render(); ?>
|
echo $this->getData('nav')->render(); ?>
|
||||||
|
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-xs-12">
|
<div class="col-md-6 col-xs-12">
|
||||||
<section class="box wf-100">
|
<section class="box wf-100">
|
||||||
<div class="inner">
|
<div class="inner">
|
||||||
<div class="floatRight">
|
<div class="floatRight">
|
||||||
|
|
@ -136,7 +136,9 @@ echo $this->getData('nav')->render(); ?>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</section>
|
</section>
|
||||||
<?php endforeach; ?>
|
<?php endforeach; ?>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-md-6 col-xs-12">
|
||||||
<section class="box wf-100">
|
<section class="box wf-100">
|
||||||
<div class="inner">
|
<div class="inner">
|
||||||
<form id="taskElementCreate" method="PUT" action="<?= \phpOMS\Uri\UriFactory::build('{/api}task/element?{?}&csrf={$CSRF}'); ?>">
|
<form id="taskElementCreate" method="PUT" action="<?= \phpOMS\Uri\UriFactory::build('{/api}task/element?{?}&csrf={$CSRF}'); ?>">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user