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