Simplify dashboard to use new tasks list view

This commit is contained in:
Frederic Guillot
2017-03-12 21:36:52 -04:00
parent f6b42eb802
commit 9b34631135
31 changed files with 380 additions and 650 deletions

View File

@@ -0,0 +1,50 @@
<?php
namespace Kanboard\Pagination;
use Kanboard\Core\Base;
use Kanboard\Model\ProjectModel;
use Kanboard\Model\TaskModel;
/**
* Class DashboardPagination
*
* @package Kanboard\Pagination
* @author Frederic Guillot
*/
class DashboardPagination extends Base
{
/**
* Get user listing pagination
*
* @access public
* @param integer $userId
* @return array
*/
public function getOverview($userId)
{
$paginators = array();
$projects = $this->projectUserRoleModel->getActiveProjectsByUser($userId);
foreach ($projects as $projectId => $projectName) {
$paginator = $this->paginator
->setUrl('DashboardController', 'show', array('user_id' => $userId))
->setMax(50)
->setOrder(TaskModel::TABLE.'.priority')
->setDirection('DESC')
->setFormatter($this->taskListSubtaskAssigneeFormatter->withUserId($userId))
->setQuery($this->taskFinderModel->getUserQuery($userId)->eq(ProjectModel::TABLE.'.id', $projectId))
->calculate();
if ($paginator->getTotal() > 0) {
$paginators[] = array(
'project_id' => $projectId,
'project_name' => $projectName,
'paginator' => $paginator,
);
}
}
return $paginators;
}
}

View File

@@ -1,35 +0,0 @@
<?php
namespace Kanboard\Pagination;
use Kanboard\Core\Base;
use Kanboard\Core\Paginator;
use Kanboard\Model\ProjectModel;
/**
* Class ProjectPagination
*
* @package Kanboard\Pagination
* @author Frederic Guillot
*/
class ProjectPagination extends Base
{
/**
* Get dashboard pagination
*
* @access public
* @param integer $user_id
* @param string $method
* @param integer $max
* @return Paginator
*/
public function getDashboardPaginator($user_id, $method, $max)
{
return $this->paginator
->setUrl('DashboardController', $method, array('pagination' => 'projects', 'user_id' => $user_id))
->setMax($max)
->setOrder(ProjectModel::TABLE.'.name')
->setQuery($this->projectModel->getQueryColumnStats($this->projectPermissionModel->getActiveProjectIds($user_id)))
->calculateOnlyIf($this->request->getStringParam('pagination') === 'projects');
}
}

View File

@@ -1,39 +0,0 @@
<?php
namespace Kanboard\Pagination;
use Kanboard\Core\Base;
use Kanboard\Core\Paginator;
use Kanboard\Model\SubtaskModel;
use Kanboard\Model\TaskModel;
/**
* Class SubtaskPagination
*
* @package Kanboard\Pagination
* @author Frederic Guillot
*/
class SubtaskPagination extends Base
{
/**
* Get dashboard pagination
*
* @access public
* @param integer $user_id
* @param string $method
* @param integer $max
* @return Paginator
*/
public function getDashboardPaginator($user_id, $method, $max)
{
$query = $this->subtaskModel->getUserQuery($user_id, array(SubtaskModel::STATUS_TODO, SubtaskModel::STATUS_INPROGRESS));
$this->hook->reference('pagination:dashboard:subtask:query', $query);
return $this->paginator
->setUrl('DashboardController', $method, array('pagination' => 'subtasks', 'user_id' => $user_id))
->setMax($max)
->setOrder(TaskModel::TABLE.'.id')
->setQuery($query)
->calculateOnlyIf($this->request->getStringParam('pagination') === 'subtasks');
}
}

View File

@@ -1,38 +0,0 @@
<?php
namespace Kanboard\Pagination;
use Kanboard\Core\Base;
use Kanboard\Core\Paginator;
use Kanboard\Model\TaskModel;
/**
* Class TaskPagination
*
* @package Kanboard\Pagination
* @author Frederic Guillot
*/
class TaskPagination extends Base
{
/**
* Get dashboard pagination
*
* @access public
* @param integer $user_id
* @param string $method
* @param integer $max
* @return Paginator
*/
public function getDashboardPaginator($user_id, $method, $max)
{
$query = $this->taskFinderModel->getUserQuery($user_id);
$this->hook->reference('pagination:dashboard:task:query', $query);
return $this->paginator
->setUrl('DashboardController', $method, array('pagination' => 'tasks', 'user_id' => $user_id))
->setMax($max)
->setOrder(TaskModel::TABLE.'.id')
->setQuery($query)
->calculateOnlyIf($this->request->getStringParam('pagination') === 'tasks');
}
}

View File

@@ -15,7 +15,7 @@ use Kanboard\Model\UserModel;
class UserPagination extends Base
{
/**
* Get user listing paginator
* Get user listing pagination
*
* @access public
* @return Paginator