Add category attribute for advanced search
This commit is contained in:
@@ -59,6 +59,9 @@ class TaskFilter extends Base
|
||||
case 'T_DESCRIPTION':
|
||||
$this->filterByDescription($value);
|
||||
break;
|
||||
case 'T_CATEGORY':
|
||||
$this->filterByCategoryName($value);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -202,6 +205,30 @@ class TaskFilter extends Base
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter by category
|
||||
*
|
||||
* @access public
|
||||
* @param array $values List of assignees
|
||||
* @return TaskFilter
|
||||
*/
|
||||
public function filterByCategoryName(array $values)
|
||||
{
|
||||
$this->query->join(Category::TABLE, 'id', 'category_id');
|
||||
$this->query->beginOr();
|
||||
|
||||
foreach ($values as $category) {
|
||||
if ($category === 'none') {
|
||||
$this->query->eq(Task::TABLE.'.category_id', 0);
|
||||
}
|
||||
else {
|
||||
$this->query->eq(Category::TABLE.'.name', $category);
|
||||
}
|
||||
}
|
||||
|
||||
$this->query->closeOr();
|
||||
}
|
||||
|
||||
/**
|
||||
* Filter by assignee
|
||||
*
|
||||
|
||||
@@ -26,21 +26,6 @@ class TaskFinder extends Base
|
||||
->eq('is_active', Task::STATUS_CLOSED);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get query for task search
|
||||
*
|
||||
* @access public
|
||||
* @param integer $project_id Project id
|
||||
* @param string $search Search terms
|
||||
* @return \PicoDb\Table
|
||||
*/
|
||||
public function getSearchQuery($project_id, $search)
|
||||
{
|
||||
return $this->getExtendedQuery()
|
||||
->eq('project_id', $project_id)
|
||||
->ilike('title', '%'.$search.'%');
|
||||
}
|
||||
|
||||
/**
|
||||
* Get query for assigned user tasks
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user