summaryrefslogtreecommitdiff
path: root/app/ServiceProvider
diff options
context:
space:
mode:
authorFrederic Guillot <fred@kanboard.net>2016-04-10 12:13:42 -0400
committerFrederic Guillot <fred@kanboard.net>2016-04-10 12:13:42 -0400
commit2eadfb22912d94e76a479b694070735fbb0298f1 (patch)
tree4280c1bc33851da2188f4bc0aa49310a5923e021 /app/ServiceProvider
parent7b74f55a285d2785f83be148abdeab95e2b4a7c6 (diff)
Refactor ProjectActivity model to use Filter and Formatter interface
Diffstat (limited to 'app/ServiceProvider')
-rw-r--r--app/ServiceProvider/FilterProvider.php42
-rw-r--r--app/ServiceProvider/HelperProvider.php1
2 files changed, 39 insertions, 4 deletions
diff --git a/app/ServiceProvider/FilterProvider.php b/app/ServiceProvider/FilterProvider.php
index 3100ae7e..4b4dbd2d 100644
--- a/app/ServiceProvider/FilterProvider.php
+++ b/app/ServiceProvider/FilterProvider.php
@@ -4,6 +4,7 @@ namespace Kanboard\ServiceProvider;
use Kanboard\Core\Filter\LexerBuilder;
use Kanboard\Core\Filter\QueryBuilder;
+use Kanboard\Filter\ProjectActivityTaskTitleFilter;
use Kanboard\Filter\TaskAssigneeFilter;
use Kanboard\Filter\TaskCategoryFilter;
use Kanboard\Filter\TaskColorFilter;
@@ -46,6 +47,25 @@ 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(User::TABLE));
+ return $builder;
+ });
+
+ return $container;
+ }
+
+ public function createProjectFilter(Container $container)
+ {
$container['projectGroupRoleQuery'] = $container->factory(function ($c) {
$builder = new QueryBuilder();
$builder->withQuery($c['db']->table(ProjectGroupRole::TABLE));
@@ -58,18 +78,32 @@ class FilterProvider implements ServiceProviderInterface
return $builder;
});
- $container['userQuery'] = $container->factory(function ($c) {
+ $container['projectQuery'] = $container->factory(function ($c) {
$builder = new QueryBuilder();
- $builder->withQuery($c['db']->table(User::TABLE));
+ $builder->withQuery($c['db']->table(Project::TABLE));
return $builder;
});
- $container['projectQuery'] = $container->factory(function ($c) {
+ $container['projectActivityLexer'] = $container->factory(function ($c) {
+ $builder = new LexerBuilder();
+ $builder->withQuery($c['projectActivity']->getQuery());
+ $builder->withFilter(new ProjectActivityTaskTitleFilter());
+
+ return $builder;
+ });
+
+ $container['projectActivityQuery'] = $container->factory(function ($c) {
$builder = new QueryBuilder();
- $builder->withQuery($c['db']->table(Project::TABLE));
+ $builder->withQuery($c['projectActivity']->getQuery());
+
return $builder;
});
+ return $container;
+ }
+
+ public function createTaskFilter(Container $container)
+ {
$container['taskQuery'] = $container->factory(function ($c) {
$builder = new QueryBuilder();
$builder->withQuery($c['taskFinder']->getExtendedQuery());
diff --git a/app/ServiceProvider/HelperProvider.php b/app/ServiceProvider/HelperProvider.php
index 3590afa5..bf3956a2 100644
--- a/app/ServiceProvider/HelperProvider.php
+++ b/app/ServiceProvider/HelperProvider.php
@@ -30,6 +30,7 @@ class HelperProvider implements ServiceProviderInterface
$container['helper']->register('user', '\Kanboard\Helper\UserHelper');
$container['helper']->register('avatar', '\Kanboard\Helper\AvatarHelper');
$container['helper']->register('projectHeader', '\Kanboard\Helper\ProjectHeaderHelper');
+ $container['helper']->register('projectActivity', '\Kanboard\Helper\ProjectActivityHelper');
$container['template'] = new Template($container['helper']);