Skip to content

Commit fe0a8d0

Browse files
authored
Test Commit
1 parent 2ea9010 commit fe0a8d0

File tree

2 files changed

+60
-57
lines changed

2 files changed

+60
-57
lines changed

src/Traits/Helpers/FilterHelpers.php

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
namespace Rappasoft\LaravelLivewireTables\Traits\Helpers;
44

5+
use Illuminate\Database\Eloquent\Builder;
56
use Illuminate\Support\Arr;
67
use Illuminate\Support\Collection;
78
use Livewire\Attributes\Computed;
@@ -368,4 +369,63 @@ public function updateLivewireArrayFilterValues(string $filterKey, string $table
368369
}
369370

370371
}
372+
373+
public function applyFilters(): Builder
374+
{
375+
if ($this->filtersAreEnabled() && $this->hasFilters() && $this->hasAppliedFiltersWithValues()) {
376+
foreach ($this->getFilters() as $filter) {
377+
foreach ($this->getAppliedFiltersWithValues() as $key => $value) {
378+
if ($filter->getKey() === $key && $filter->hasFilterCallback()) {
379+
// Let the filter class validate the value
380+
$value = $filter->validate($value);
381+
382+
if ($value === false) {
383+
continue;
384+
}
385+
386+
$this->callHook('filterApplying', ['filter' => $filter->getKey(), 'value' => $value]);
387+
$this->callTraitHook('filterApplying', ['filter' => $filter->getKey(), 'value' => $value]);
388+
389+
($filter->getFilterCallback())($this->getBuilder(), $value);
390+
}
391+
}
392+
}
393+
$this->storeFilterValues();
394+
}
395+
396+
return $this->getBuilder();
397+
}
398+
399+
400+
public function updatedFilterComponents(string|array|null $value, string $filterName): void
401+
{
402+
$this->resetComputedPage();
403+
404+
// Clear bulk actions on filter - if enabled
405+
if ($this->getClearSelectedOnFilter()) {
406+
$this->clearSelected();
407+
$this->setSelectAllDisabled();
408+
}
409+
410+
// Clear filters on empty value
411+
$filter = $this->getFilterByKey($filterName);
412+
$value = $filter->validate($value);
413+
414+
if ($filter && ($value === false || $filter->isEmpty($value))) {
415+
$this->callHook('filterRemoved', ['filter' => $filter->getKey()]);
416+
$this->callTraitHook('filterRemoved', ['filter' => $filter->getKey()]);
417+
418+
$this->resetFilter($filterName);
419+
} elseif ($filter) {
420+
$this->callHook('filterUpdated', ['filter' => $filter->getKey(), 'value' => $value]);
421+
$this->callTraitHook('filterUpdated', ['filter' => $filter->getKey(), 'value' => $value]);
422+
if ($this->getEventStatusFilterApplied() && $filter->getKey() != null && $value != null) {
423+
event(new FilterApplied($this->getTableName(), $filter->getKey(), $value));
424+
}
425+
$this->dispatch('filter-was-set', tableName: $this->getTableName(), filterKey: $filter->getKey(), value: $value);
426+
427+
}
428+
429+
}
430+
371431
}

src/Traits/WithFilters.php

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,8 @@
22

33
namespace Rappasoft\LaravelLivewireTables\Traits;
44

5-
use Illuminate\Database\Eloquent\Builder;
65
use Illuminate\Support\Collection;
76
use Livewire\Attributes\Locked;
8-
use Rappasoft\LaravelLivewireTables\Events\FilterApplied;
97
use Rappasoft\LaravelLivewireTables\Traits\Configuration\FilterConfiguration;
108
use Rappasoft\LaravelLivewireTables\Traits\Core\QueryStrings\HasQueryStringForFilter;
119
use Rappasoft\LaravelLivewireTables\Traits\Helpers\FilterHelpers;
@@ -49,59 +47,4 @@ public function filters(): array
4947
return [];
5048
}
5149

52-
public function applyFilters(): Builder
53-
{
54-
if ($this->filtersAreEnabled() && $this->hasFilters() && $this->hasAppliedFiltersWithValues()) {
55-
foreach ($this->getFilters() as $filter) {
56-
foreach ($this->getAppliedFiltersWithValues() as $key => $value) {
57-
if ($filter->getKey() === $key && $filter->hasFilterCallback()) {
58-
// Let the filter class validate the value
59-
$value = $filter->validate($value);
60-
61-
if ($value === false) {
62-
continue;
63-
}
64-
65-
$this->callHook('filterApplying', ['filter' => $filter->getKey(), 'value' => $value]);
66-
$this->callTraitHook('filterApplying', ['filter' => $filter->getKey(), 'value' => $value]);
67-
68-
($filter->getFilterCallback())($this->getBuilder(), $value);
69-
}
70-
}
71-
}
72-
$this->storeFilterValues();
73-
}
74-
75-
return $this->getBuilder();
76-
}
77-
78-
public function updatedFilterComponents(string|array|null $value, string $filterName): void
79-
{
80-
$this->resetComputedPage();
81-
82-
// Clear bulk actions on filter - if enabled
83-
if ($this->getClearSelectedOnFilter()) {
84-
$this->clearSelected();
85-
$this->setSelectAllDisabled();
86-
}
87-
88-
// Clear filters on empty value
89-
$filter = $this->getFilterByKey($filterName);
90-
91-
if ($filter && $filter->isEmpty($value)) {
92-
$this->callHook('filterRemoved', ['filter' => $filter->getKey()]);
93-
$this->callTraitHook('filterRemoved', ['filter' => $filter->getKey()]);
94-
95-
$this->resetFilter($filterName);
96-
} elseif ($filter) {
97-
$this->callHook('filterUpdated', ['filter' => $filter->getKey(), 'value' => $value]);
98-
$this->callTraitHook('filterUpdated', ['filter' => $filter->getKey(), 'value' => $value]);
99-
if ($this->getEventStatusFilterApplied() && $filter->getKey() != null && $value != null) {
100-
event(new FilterApplied($this->getTableName(), $filter->getKey(), $value));
101-
}
102-
$this->dispatch('filter-was-set', tableName: $this->getTableName(), filterKey: $filter->getKey(), value: $value);
103-
104-
}
105-
106-
}
10750
}

0 commit comments

Comments
 (0)