1<?php
2
3namespace Kanboard\Filter;
4
5use Kanboard\Core\Filter\FilterInterface;
6use Kanboard\Model\ColorModel;
7use Kanboard\Model\TaskModel;
8
9/**
10 * Filter tasks by color
11 *
12 * @package filter
13 * @author  Frederic Guillot
14 */
15class TaskColorFilter extends BaseFilter implements FilterInterface
16{
17    /**
18     * Color object
19     *
20     * @access private
21     * @var    ColorModel
22     */
23    private $colorModel;
24
25    /**
26     * Set color model object
27     *
28     * @access public
29     * @param  ColorModel $colorModel
30     * @return TaskColorFilter
31     */
32    public function setColorModel(ColorModel $colorModel)
33    {
34        $this->colorModel = $colorModel;
35        return $this;
36    }
37
38    /**
39     * Get search attribute
40     *
41     * @access public
42     * @return string[]
43     */
44    public function getAttributes()
45    {
46        return array('color', 'colour');
47    }
48
49    /**
50     * Apply filter
51     *
52     * @access public
53     * @return FilterInterface
54     */
55    public function apply()
56    {
57        $this->query->eq(TaskModel::TABLE.'.color_id', $this->colorModel->find($this->value));
58        return $this;
59    }
60}
61