| | <?php |
| |
|
| | namespace Kanboard\ServiceProvider; |
| |
|
| | use Kanboard\Core\Filter\LexerBuilder; |
| | use Kanboard\Core\Filter\QueryBuilder; |
| | use Kanboard\Filter\ProjectActivityCreationDateFilter; |
| | use Kanboard\Filter\ProjectActivityCreatorFilter; |
| | use Kanboard\Filter\ProjectActivityProjectNameFilter; |
| | use Kanboard\Filter\ProjectActivityTaskStatusFilter; |
| | use Kanboard\Filter\ProjectActivityTaskTitleFilter; |
| | use Kanboard\Filter\TaskAssigneeFilter; |
| | use Kanboard\Filter\TaskCategoryFilter; |
| | use Kanboard\Filter\TaskColorFilter; |
| | use Kanboard\Filter\TaskColumnFilter; |
| | use Kanboard\Filter\TaskCommentFilter; |
| | use Kanboard\Filter\TaskCompletionDateFilter; |
| | use Kanboard\Filter\TaskCompletionDateRangeFilter; |
| | use Kanboard\Filter\TaskCreationDateFilter; |
| | use Kanboard\Filter\TaskCreationDateRangeFilter; |
| | use Kanboard\Filter\TaskCreatorFilter; |
| | use Kanboard\Filter\TaskDescriptionFilter; |
| | use Kanboard\Filter\TaskDueDateFilter; |
| | use Kanboard\Filter\TaskStartDateFilter; |
| | use Kanboard\Filter\TaskIdFilter; |
| | use Kanboard\Filter\TaskLinkFilter; |
| | use Kanboard\Filter\TaskModificationDateFilter; |
| | use Kanboard\Filter\TaskModificationDateRangeFilter; |
| | use Kanboard\Filter\TaskMovedDateFilter; |
| | use Kanboard\Filter\TaskMovedDateRangeFilter; |
| | use Kanboard\Filter\TaskPriorityFilter; |
| | use Kanboard\Filter\TaskProjectFilter; |
| | use Kanboard\Filter\TaskReferenceFilter; |
| | use Kanboard\Filter\TaskScoreFilter; |
| | use Kanboard\Filter\TaskStatusFilter; |
| | use Kanboard\Filter\TaskSubtaskAssigneeFilter; |
| | use Kanboard\Filter\TaskSwimlaneFilter; |
| | use Kanboard\Filter\TaskTagFilter; |
| | use Kanboard\Filter\TaskTitleFilter; |
| | use Kanboard\Model\ProjectModel; |
| | use Kanboard\Model\ProjectGroupRoleModel; |
| | use Kanboard\Model\ProjectUserRoleModel; |
| | use Kanboard\Model\UserModel; |
| | use Pimple\Container; |
| | use Pimple\ServiceProviderInterface; |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | class FilterProvider implements ServiceProviderInterface |
| | { |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | public function register(Container $container) |
| | { |
| | $this->createUserFilter($container); |
| | $this->createProjectFilter($container); |
| | $this->createTaskFilter($container); |
| | return $container; |
| | } |
| |
|
| | public function createUserFilter(Container $container) |
| | { |
| | $container['userQuery'] = $container->factory(function ($c) { |
| | $builder = new QueryBuilder(); |
| | $builder->withQuery($c['db']->table(UserModel::TABLE)); |
| | return $builder; |
| | }); |
| |
|
| | return $container; |
| | } |
| |
|
| | public function createProjectFilter(Container $container) |
| | { |
| | $container['projectGroupRoleQuery'] = $container->factory(function ($c) { |
| | $builder = new QueryBuilder(); |
| | $builder->withQuery($c['db']->table(ProjectGroupRoleModel::TABLE)); |
| | return $builder; |
| | }); |
| |
|
| | $container['projectUserRoleQuery'] = $container->factory(function ($c) { |
| | $builder = new QueryBuilder(); |
| | $builder->withQuery($c['db']->table(ProjectUserRoleModel::TABLE)); |
| | return $builder; |
| | }); |
| |
|
| | $container['projectQuery'] = $container->factory(function ($c) { |
| | $builder = new QueryBuilder(); |
| | $builder->withQuery($c['db']->table(ProjectModel::TABLE)); |
| | return $builder; |
| | }); |
| |
|
| | $container['projectActivityLexer'] = $container->factory(function ($c) { |
| | $builder = new LexerBuilder(); |
| | $builder |
| | ->withQuery($c['projectActivityModel']->getQuery()) |
| | ->withFilter(new ProjectActivityTaskTitleFilter(), true) |
| | ->withFilter(new ProjectActivityTaskStatusFilter()) |
| | ->withFilter(new ProjectActivityProjectNameFilter()) |
| | ->withFilter(ProjectActivityCreationDateFilter::getInstance() |
| | ->setDateParser($c['dateParser']) |
| | ) |
| | ->withFilter(ProjectActivityCreatorFilter::getInstance() |
| | ->setCurrentUserId($c['userSession']->getId()) |
| | ) |
| | ; |
| |
|
| | return $builder; |
| | }); |
| |
|
| | $container['projectActivityQuery'] = $container->factory(function ($c) { |
| | $builder = new QueryBuilder(); |
| | $builder->withQuery($c['projectActivityModel']->getQuery()); |
| |
|
| | return $builder; |
| | }); |
| |
|
| | return $container; |
| | } |
| |
|
| | public function createTaskFilter(Container $container) |
| | { |
| | $container['taskQuery'] = $container->factory(function ($c) { |
| | $builder = new QueryBuilder(); |
| | $builder->withQuery($c['taskFinderModel']->getExtendedQuery()); |
| | return $builder; |
| | }); |
| |
|
| | $container['taskLexer'] = $container->factory(function ($c) { |
| | $builder = new LexerBuilder(); |
| |
|
| | $builder |
| | ->withQuery($c['taskFinderModel']->getExtendedQuery()) |
| | ->withFilter(TaskAssigneeFilter::getInstance() |
| | ->setCurrentUserId($c['userSession']->getId()) |
| | ) |
| | ->withFilter(new TaskCategoryFilter()) |
| | ->withFilter(TaskColorFilter::getInstance() |
| | ->setColorModel($c['colorModel']) |
| | ) |
| | ->withFilter(new TaskPriorityFilter()) |
| | ->withFilter(new TaskColumnFilter()) |
| | ->withFilter(TaskCommentFilter::getInstance() |
| | ->setDatabase($c['db']) |
| | ) |
| | ->withFilter(TaskCreationDateFilter::getInstance() |
| | ->setDateParser($c['dateParser']) |
| | ) |
| | ->withFilter(TaskCreationDateRangeFilter::getInstance() |
| | ->setDateParser($c['dateParser']) |
| | ) |
| | ->withFilter(TaskCreatorFilter::getInstance() |
| | ->setCurrentUserId($c['userSession']->getId()) |
| | ) |
| | ->withFilter(new TaskDescriptionFilter()) |
| | ->withFilter(TaskDueDateFilter::getInstance() |
| | ->setDateParser($c['dateParser']) |
| | ) |
| | ->withFilter(TaskStartDateFilter::getInstance() |
| | ->setDateParser($c['dateParser']) |
| | ) |
| | ->withFilter(TaskCompletionDateFilter::getInstance() |
| | ->setDateparser($c['dateParser']) |
| | ) |
| | ->withFilter(TaskCompletionDateRangeFilter::getInstance() |
| | ->setDateparser($c['dateParser']) |
| | ) |
| | ->withFilter(new TaskIdFilter()) |
| | ->withFilter(TaskLinkFilter::getInstance() |
| | ->setDatabase($c['db']) |
| | ) |
| | ->withFilter(TaskModificationDateFilter::getInstance() |
| | ->setDateParser($c['dateParser']) |
| | ) |
| | ->withFilter(TaskModificationDateRangeFilter::getInstance() |
| | ->setDateParser($c['dateParser']) |
| | ) |
| | ->withFilter(TaskMovedDateFilter::getInstance() |
| | ->setDateParser($c['dateParser']) |
| | ) |
| | ->withFilter(TaskMovedDateRangeFilter::getInstance() |
| | ->setDateParser($c['dateParser']) |
| | ) |
| | ->withFilter(new TaskProjectFilter()) |
| | ->withFilter(new TaskReferenceFilter()) |
| | ->withFilter(new TaskScoreFilter()) |
| | ->withFilter(new TaskStatusFilter()) |
| | ->withFilter(TaskSubtaskAssigneeFilter::getInstance() |
| | ->setCurrentUserId($c['userSession']->getId()) |
| | ->setDatabase($c['db']) |
| | ) |
| | ->withFilter(new TaskSwimlaneFilter()) |
| | ->withFilter(TaskTagFilter::getInstance() |
| | ->setDatabase($c['db']) |
| | ) |
| | ->withFilter(new TaskTitleFilter(), true) |
| | ; |
| |
|
| | return $builder; |
| | }); |
| |
|
| | return $container; |
| | } |
| | } |
| |
|