|
<?php |
|
|
|
namespace Kanboard\Helper; |
|
|
|
use Kanboard\Core\Base; |
|
use Kanboard\Filter\ProjectActivityProjectIdFilter; |
|
use Kanboard\Filter\ProjectActivityProjectIdsFilter; |
|
use Kanboard\Filter\ProjectActivityTaskIdFilter; |
|
use Kanboard\Model\ProjectActivityModel; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class ProjectActivityHelper extends Base |
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function searchEvents($search) |
|
{ |
|
$projects = $this->projectUserRoleModel->getActiveProjectsByUser($this->userSession->getId()); |
|
$events = array(); |
|
|
|
if ($search !== '') { |
|
$queryBuilder = $this->projectActivityLexer->build($search); |
|
$queryBuilder |
|
->withFilter(new ProjectActivityProjectIdsFilter(array_keys($projects))) |
|
->getQuery() |
|
->desc(ProjectActivityModel::TABLE.'.id') |
|
->limit(500) |
|
; |
|
|
|
$events = $queryBuilder->format($this->projectActivityEventFormatter); |
|
} |
|
|
|
return $events; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getProjectEvents($project_id, $limit = 50) |
|
{ |
|
$queryBuilder = $this->projectActivityQuery |
|
->withFilter(new ProjectActivityProjectIdFilter($project_id)); |
|
|
|
$queryBuilder->getQuery() |
|
->desc(ProjectActivityModel::TABLE.'.id') |
|
->limit($limit) |
|
; |
|
|
|
return $queryBuilder->format($this->projectActivityEventFormatter); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getProjectsEvents(array $project_ids, $limit = 50) |
|
{ |
|
$queryBuilder = $this->projectActivityQuery |
|
->withFilter(new ProjectActivityProjectIdsFilter($project_ids)); |
|
|
|
$queryBuilder->getQuery() |
|
->desc(ProjectActivityModel::TABLE.'.id') |
|
->limit($limit) |
|
; |
|
|
|
return $queryBuilder->format($this->projectActivityEventFormatter); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getTaskEvents($task_id) |
|
{ |
|
$queryBuilder = $this->projectActivityQuery |
|
->withFilter(new ProjectActivityTaskIdFilter($task_id)); |
|
|
|
$queryBuilder->getQuery()->desc(ProjectActivityModel::TABLE.'.id'); |
|
|
|
return $queryBuilder->format($this->projectActivityEventFormatter); |
|
} |
|
} |
|
|