Skip to content

Commit 4c68ad9

Browse files
committed
WIP with new filtering in repository handler
1 parent 03ff9e0 commit 4c68ad9

3 files changed

Lines changed: 12 additions & 10 deletions

File tree

Grid/Action/FilterAction.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ public function execute(GridRepository $gridRepository, array $value): void
2626
$state->setFilter(
2727
(string)$value['filter']['name'],
2828
(string)$value['filter']['value'],
29-
isset($value['filter']['condition_type']) ? (string)$value['filter']['condition_type'] : 'eq',
29+
isset($value['filter']['condition_type']) ? (string)$value['filter']['condition_type'] : 'like',
3030
);
3131
}
3232
}

Grid/State.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,7 @@ public function getFilterState(string $name): ?FilterState
169169
return null;
170170
}
171171

172-
public function setFilter(string $name, mixed $value, ?string $conditionType = 'eq'): void
172+
public function setFilter(string $name, mixed $value, ?string $conditionType = 'like'): void
173173
{
174174
$filters = $this->getFilters();
175175
if (isset($filters[$name])) {

ProviderHandler/RepositoryHandler.php

Lines changed: 10 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,6 @@ public function saveItem(object $provider, DataObject $item): void
9090
}
9191

9292
throw new RuntimeException('Repository has no save-method we know of.');
93-
9493
}
9594

9695
public function deleteItem(object $provider, DataObject $item): void
@@ -152,15 +151,18 @@ private function getFilterGroups(GridState $gridState): array
152151
$filterGroups[] = $searchFilterGroup;
153152
}
154153

155-
foreach ($gridState->getFilters() as $filterData) {
156-
if (!is_array($filterData)) {
157-
continue;
154+
foreach ($gridState->getFilters() as $gridFilter) {
155+
$filter = $this->filterFactory->create();
156+
$filter->setField($gridFilter->getField());
157+
158+
if ($gridFilter->getConditionType() === 'like') {
159+
$filter->setValue($gridFilter->getValue());
160+
$filter->setConditionType('like');
161+
} else {
162+
$filter->setValue($gridFilter->getValue());
163+
$filter->setConditionType($gridFilter->getConditionType());
158164
}
159165

160-
$filter = $this->filterFactory->create();
161-
$filter->setField($filterData['field']);
162-
$filter->setValue($filterData['value']);
163-
$filter->setConditionType($filterData['condition_type']);
164166
$filterGroups[] = $this->filterGroupBuilder->setFilters([$filter])->create();
165167
}
166168

0 commit comments

Comments
 (0)