|
<?php |
|
|
|
namespace Kanboard\Filter; |
|
|
|
use Kanboard\Core\Filter\FilterInterface; |
|
use Kanboard\Model\CommentModel; |
|
use Kanboard\Model\TaskModel; |
|
use PicoDb\Database; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class TaskCommentFilter extends BaseFilter implements FilterInterface |
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
private $db; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function getAttributes() |
|
{ |
|
return array('comment'); |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function setDatabase(Database $db) |
|
{ |
|
$this->db = $db; |
|
return $this; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public function apply() |
|
{ |
|
$this->query->inSubquery(TaskModel::TABLE.'.id', $this->getSubQuery()); |
|
|
|
return $this; |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
protected function getSubQuery() |
|
{ |
|
return $this->db |
|
->table(CommentModel::TABLE) |
|
->columns(CommentModel::TABLE.'.task_id') |
|
->ilike(CommentModel::TABLE.'.comment', '%'.$this->value.'%'); |
|
} |
|
} |
|
|