From 7f6f513fd58256a43766afbdefb91e6712e56364 Mon Sep 17 00:00:00 2001 From: Maarten Paauw Date: Thu, 18 Jan 2024 15:45:58 +0100 Subject: [PATCH 1/4] Fix exporting relationship values --- packages/actions/src/Concerns/CanExportRecords.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/actions/src/Concerns/CanExportRecords.php b/packages/actions/src/Concerns/CanExportRecords.php index ea52027f07..4d07f06b34 100644 --- a/packages/actions/src/Concerns/CanExportRecords.php +++ b/packages/actions/src/Concerns/CanExportRecords.php @@ -22,7 +22,9 @@ use Filament\Tables\Contracts\HasTable; use Illuminate\Bus\PendingBatch; use Illuminate\Foundation\Bus\PendingChain; use Illuminate\Support\Arr; +use Illuminate\Support\Collection; use Illuminate\Support\Facades\Bus; +use Illuminate\Support\Str; use Livewire\Component; use function Filament\Support\format_number; @@ -124,6 +126,10 @@ trait CanExportRecords ); $columnMap = collect($data['columnMap']) + ->dot() + ->reduce(fn (Collection $carry, mixed $value, string $key): Collection => $carry->mergeRecursive([ + Str::beforeLast($key, '.') => [Str::afterLast($key, '.') => $value], + ]), collect()) ->filter(fn (array $column): bool => $column['isEnabled'] ?? false) ->mapWithKeys(fn (array $column, string $columnName): array => [$columnName => $column['label']]) ->all(); From 8a8c20405b44793179eb658d930004fd079196e8 Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Thu, 18 Jan 2024 14:47:08 +0000 Subject: [PATCH 2/4] Update PrepareCsvExport.php --- packages/actions/src/Exports/Jobs/PrepareCsvExport.php | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php index d91561ff7b..5be9422360 100644 --- a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php +++ b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php @@ -103,16 +103,14 @@ class PrepareCsvExport implements ShouldQueue return; } - $qualifiedKeyName = $query->getModel()->getQualifiedKeyName(); - $query->toBase() - ->select([$qualifiedKeyName]) + ->select([$query->getModel()->getQualifiedKeyName()]) ->chunkById( $this->chunkSize * 10, fn (Collection $records) => $dispatchRecords( Arr::pluck($records->all(), $keyName), ), - $qualifiedKeyName, + $keyName, ); } From e20ae6e4435bcd37d73bd2aaf42fa157a149c854 Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Thu, 18 Jan 2024 15:03:57 +0000 Subject: [PATCH 3/4] fix: Remove deferred filters --- packages/tables/src/Concerns/HasFilters.php | 24 +++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/packages/tables/src/Concerns/HasFilters.php b/packages/tables/src/Concerns/HasFilters.php index 4425351d28..e3860de6e8 100644 --- a/packages/tables/src/Concerns/HasFilters.php +++ b/packages/tables/src/Concerns/HasFilters.php @@ -60,7 +60,7 @@ trait HasFilters $this->resetPage(); } - public function removeTableFilter(string $filterName, ?string $field = null, bool $shouldTriggerUpdatedFiltersHook = true): void + public function removeTableFilter(string $filterName, ?string $field = null, bool $isRemovingAllFilters = false): void { $filter = $this->getTable()->getFilter($filterName); $filterResetState = $filter->getResetState(); @@ -82,11 +82,17 @@ trait HasFilters }); } - if (! $shouldTriggerUpdatedFiltersHook) { + if ($isRemovingAllFilters) { return; } - $this->updatedTableFilters(); + if ($this->getTable()->hasDeferredFilters()) { + $this->applyTableFilters(); + + return; + } + + $this->handleTableFilterUpdates(); } public function removeTableFilters(): void @@ -96,14 +102,20 @@ trait HasFilters foreach ($filters as $filterName => $filter) { $this->removeTableFilter( $filterName, - shouldTriggerUpdatedFiltersHook: false, + isRemovingAllFilters: true, ); } - $this->updatedTableFilters(); - $this->resetTableSearch(); $this->resetTableColumnSearches(); + + if ($this->getTable()->hasDeferredFilters()) { + $this->applyTableFilters(); + + return; + } + + $this->handleTableFilterUpdates(); } public function resetTableFiltersForm(): void From 34f0d68fcec992b01143057707e5073c3e6f06cb Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Thu, 18 Jan 2024 15:06:50 +0000 Subject: [PATCH 4/4] Update HasFilters.php --- packages/tables/src/Concerns/HasFilters.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/tables/src/Concerns/HasFilters.php b/packages/tables/src/Concerns/HasFilters.php index e3860de6e8..20182ecfd6 100644 --- a/packages/tables/src/Concerns/HasFilters.php +++ b/packages/tables/src/Concerns/HasFilters.php @@ -122,6 +122,12 @@ trait HasFilters { $this->getTableFiltersForm()->fill(); + if ($this->getTable()->hasDeferredFilters()) { + $this->applyTableFilters(); + + return; + } + $this->handleTableFilterUpdates(); }