|
11 | 11 | use Nette\Database\Context; |
12 | 12 | use Ublaboo\DataGrid\Filter; |
13 | 13 | use Ublaboo\DataGrid\Utils\Sorting; |
14 | | -use Ublaboo\DataGrid\DataSource\FilterableDataSource; |
15 | 14 | use Ublaboo\DataGrid\DataSource\IDataSource; |
16 | 15 | use Ublaboo\NetteDatabaseDataSource\Exception\NetteDatabaseDataSourceException; |
17 | 16 |
|
18 | | -class NetteDatabaseDataSource extends FilterableDataSource implements IDataSource |
| 17 | +class NetteDatabaseDataSource implements IDataSource |
19 | 18 | { |
20 | 19 |
|
21 | 20 | /** |
@@ -135,6 +134,42 @@ protected function applyWhere($column, $value, $operator = '=') |
135 | 134 | ********************************************************************************/ |
136 | 135 |
|
137 | 136 |
|
| 137 | + /** |
| 138 | + * Filter data |
| 139 | + * @param array $filters |
| 140 | + * @return static |
| 141 | + */ |
| 142 | + public function filter(array $filters) |
| 143 | + { |
| 144 | + foreach ($filters as $filter) { |
| 145 | + if ($filter->isValueSet()) { |
| 146 | + if ($filter->hasConditionCallback()) { |
| 147 | + $this->sql = Callback::invokeArgs( |
| 148 | + $filter->getConditionCallback(), |
| 149 | + [$this->sql, $filter->getValue(), $this->query_parameters] |
| 150 | + ); |
| 151 | + } else { |
| 152 | + if ($filter instanceof Filter\FilterText) { |
| 153 | + $this->applyFilterText($filter); |
| 154 | + } else if ($filter instanceof Filter\FilterMultiSelect) { |
| 155 | + $this->applyFilterMultiSelect($filter); |
| 156 | + } else if ($filter instanceof Filter\FilterSelect) { |
| 157 | + $this->applyFilterSelect($filter); |
| 158 | + } else if ($filter instanceof Filter\FilterDate) { |
| 159 | + $this->applyFilterDate($filter); |
| 160 | + } else if ($filter instanceof Filter\FilterDateRange) { |
| 161 | + $this->applyFilterDateRange($filter); |
| 162 | + } else if ($filter instanceof Filter\FilterRange) { |
| 163 | + $this->applyFilterRange($filter); |
| 164 | + } |
| 165 | + } |
| 166 | + } |
| 167 | + } |
| 168 | + |
| 169 | + return $this; |
| 170 | + } |
| 171 | + |
| 172 | + |
138 | 173 | /** |
139 | 174 | * Get count of data |
140 | 175 | * @return int |
|
0 commit comments