From 77874d0c3782a257101c3fb578144a6950f3dc9c Mon Sep 17 00:00:00 2001 From: bzy107 Date: Thu, 26 Dec 2024 02:04:25 +0900 Subject: [PATCH 01/15] Fix: Add conditions to DISTINCT and modify reorder conditions in PostgreSQL --- .../actions/src/Exports/Jobs/PrepareCsvExport.php | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php index cd6525c928..8c3350e221 100644 --- a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php +++ b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php @@ -69,13 +69,18 @@ class PrepareCsvExport implements ShouldQueue if ($databaseConnection->getDriverName() === 'pgsql') { $originalOrders = collect($query->getQuery()->orders) - ->reject(fn (array $order): bool => in_array($order['column'] ?? null, [$keyName, $qualifiedKeyName])) + ->reject(fn (array $order): bool => in_array($order['column'] ?? null, [$qualifiedKeyName])) ->unique('column'); /** @var array $originalBindings */ $originalBindings = $query->getRawBindings(); - $query->reorder($qualifiedKeyName); + if (! empty($originalOrders->all())) { + $query->reorder($originalOrders[0]['column'], $originalOrders[0]['direction']); + $originalOrders->forget(0); + } else { + $query->reorder($qualifiedKeyName); + } foreach ($originalOrders as $order) { if (blank($order['column'] ?? null) || blank($order['direction'] ?? null)) { @@ -144,7 +149,10 @@ class PrepareCsvExport implements ShouldQueue $chunkKeySize = $this->chunkSize * 10; $baseQuery = $query->toBase(); - $baseQuery->distinct($qualifiedKeyName); + + if (in_array($query->getQuery()->orders[0]['column'] ?? null, [$keyName, $qualifiedKeyName])) { + $baseQuery->distinct($qualifiedKeyName); + } /** @phpstan-ignore-next-line */ $baseQueryOrders = $baseQuery->orders ?? []; From 4e85f00d4933336cbd79b907ab04237fc1948453 Mon Sep 17 00:00:00 2001 From: Hammad Zafar <75698921+hammadzafar05@users.noreply.github.com> Date: Wed, 1 Jan 2025 12:11:05 +0500 Subject: [PATCH 02/15] Fixed Docs: Updated the URL --- packages/forms/docs/03-fields/15-textarea.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/forms/docs/03-fields/15-textarea.md b/packages/forms/docs/03-fields/15-textarea.md index c0306a05d6..449b008d88 100644 --- a/packages/forms/docs/03-fields/15-textarea.md +++ b/packages/forms/docs/03-fields/15-textarea.md @@ -51,7 +51,7 @@ Textarea::make('description') There are a few differences, compared to [`disabled()`](getting-started#disabling-a-field): -- When using `readOnly()`, the field will still be sent to the server when the form is submitted. It can be mutated with the browser console, or via JavaScript. You can use [`dehydrated(false)`](advanced#preventing-a-field-from-being-dehydrated) to prevent this. +- When using `readOnly()`, the field will still be sent to the server when the form is submitted. It can be mutated with the browser console, or via JavaScript. You can use [`dehydrated(false)`](../advanced#preventing-a-field-from-being-dehydrated) to prevent this. - There are no styling changes, such as less opacity, when using `readOnly()`. - The field is still focusable when using `readOnly()`. From 3726be63d46acca47628ccd15366fc99e4f310c0 Mon Sep 17 00:00:00 2001 From: bzy107 Date: Thu, 2 Jan 2025 12:07:44 +0900 Subject: [PATCH 03/15] Fix: review comment --- packages/actions/src/Exports/Jobs/PrepareCsvExport.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php index 8c3350e221..f0bddf3f83 100644 --- a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php +++ b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php @@ -69,7 +69,7 @@ class PrepareCsvExport implements ShouldQueue if ($databaseConnection->getDriverName() === 'pgsql') { $originalOrders = collect($query->getQuery()->orders) - ->reject(fn (array $order): bool => in_array($order['column'] ?? null, [$qualifiedKeyName])) + ->reject(fn (array $order): bool => ($order['column'] ?? null) === $qualifiedKeyName) ->unique('column'); /** @var array $originalBindings */ From 774ef25d8e28ac87e3af4abd3d2a42e9b35acb3f Mon Sep 17 00:00:00 2001 From: ezb_ryankenidy Date: Thu, 2 Jan 2025 13:43:48 +0700 Subject: [PATCH 04/15] hide zero notification bade --- .../components/topbar/database-notifications-trigger.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/panels/resources/views/components/topbar/database-notifications-trigger.blade.php b/packages/panels/resources/views/components/topbar/database-notifications-trigger.blade.php index 2f4131c34c..470668d8b4 100644 --- a/packages/panels/resources/views/components/topbar/database-notifications-trigger.blade.php +++ b/packages/panels/resources/views/components/topbar/database-notifications-trigger.blade.php @@ -1,5 +1,5 @@ Date: Fri, 3 Jan 2025 01:02:41 +0800 Subject: [PATCH 05/15] fix deprecate notice --- composer.json | 2 +- packages/actions/composer.json | 2 +- packages/actions/src/Concerns/CanImportRecords.php | 4 ++-- packages/actions/src/Exports/Jobs/PrepareCsvExport.php | 4 ++-- .../src/Imports/Http/Controllers/DownloadImportFailureCsv.php | 4 ++-- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/composer.json b/composer.json index a2626203d1..33ee5805c9 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,7 @@ "filament/support": "*", "larastan/larastan": "^2.2", "laravel/pint": "^1.0", - "league/csv": "^9.14", + "league/csv": "^9.16", "league/flysystem-aws-s3-v3": "^3.0", "nunomaduro/termwind": "^1.0|^2.0", "openspout/openspout": "^4.23", diff --git a/packages/actions/composer.json b/packages/actions/composer.json index fc480843bb..ccfcb4584a 100644 --- a/packages/actions/composer.json +++ b/packages/actions/composer.json @@ -17,7 +17,7 @@ "illuminate/contracts": "^10.45|^11.0", "illuminate/database": "^10.45|^11.0", "illuminate/support": "^10.45|^11.0", - "league/csv": "^9.14", + "league/csv": "^9.16", "openspout/openspout": "^4.23", "spatie/laravel-package-tools": "^1.9" }, diff --git a/packages/actions/src/Concerns/CanImportRecords.php b/packages/actions/src/Concerns/CanImportRecords.php index 7e70050a75..7092360993 100644 --- a/packages/actions/src/Concerns/CanImportRecords.php +++ b/packages/actions/src/Concerns/CanImportRecords.php @@ -32,7 +32,7 @@ use Illuminate\Support\Number; use Illuminate\Support\Str; use Illuminate\Validation\Rules\File; use Illuminate\Validation\ValidationException; -use League\Csv\ByteSequence; +use League\Csv\Bom; use League\Csv\CharsetConverter; use League\Csv\Info; use League\Csv\Reader as CsvReader; @@ -343,7 +343,7 @@ trait CanImportRecords $columns = $this->getImporter()::getColumns(); $csv = Writer::createFromFileObject(new SplTempFileObject); - $csv->setOutputBOM(ByteSequence::BOM_UTF8); + $csv->setOutputBOM(Bom::Utf8); if (filled($csvDelimiter = $this->getCsvDelimiter())) { $csv->setDelimiter($csvDelimiter); diff --git a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php index f0bddf3f83..00702cba06 100644 --- a/packages/actions/src/Exports/Jobs/PrepareCsvExport.php +++ b/packages/actions/src/Exports/Jobs/PrepareCsvExport.php @@ -15,7 +15,7 @@ use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; use Illuminate\Support\Arr; use Illuminate\Support\Collection; -use League\Csv\ByteSequence; +use League\Csv\Bom; use League\Csv\Writer; use SplTempFileObject; @@ -53,7 +53,7 @@ class PrepareCsvExport implements ShouldQueue public function handle(): void { $csv = Writer::createFromFileObject(new SplTempFileObject); - $csv->setOutputBOM(ByteSequence::BOM_UTF8); + $csv->setOutputBOM(Bom::Utf8); $csv->setDelimiter($this->exporter::getCsvDelimiter()); $csv->insertOne(array_values($this->columnMap)); diff --git a/packages/actions/src/Imports/Http/Controllers/DownloadImportFailureCsv.php b/packages/actions/src/Imports/Http/Controllers/DownloadImportFailureCsv.php index 6eec8cc159..7a39bf5413 100644 --- a/packages/actions/src/Imports/Http/Controllers/DownloadImportFailureCsv.php +++ b/packages/actions/src/Imports/Http/Controllers/DownloadImportFailureCsv.php @@ -5,7 +5,7 @@ namespace Filament\Actions\Imports\Http\Controllers; use Filament\Actions\Imports\Models\FailedImportRow; use Filament\Actions\Imports\Models\Import; use Illuminate\Support\Facades\Gate; -use League\Csv\ByteSequence; +use League\Csv\Bom; use League\Csv\Writer; use SplTempFileObject; use Symfony\Component\HttpFoundation\StreamedResponse; @@ -23,7 +23,7 @@ class DownloadImportFailureCsv } $csv = Writer::createFromFileObject(new SplTempFileObject); - $csv->setOutputBOM(ByteSequence::BOM_UTF8); + $csv->setOutputBOM(Bom::Utf8); $firstFailedRow = $import->failedRows()->first(); From b21ad91ea09d18b17a7c3b2231baf61a9891af6d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Borja=20Jim=C3=A9nez?= Date: Fri, 3 Jan 2025 23:29:23 +0100 Subject: [PATCH 06/15] add maxlenght 1000 to global search & table search 3.x --- .../resources/views/components/global-search/field.blade.php | 1 + .../tables/resources/views/components/search-field.blade.php | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/panels/resources/views/components/global-search/field.blade.php b/packages/panels/resources/views/components/global-search/field.blade.php index 48fe701f90..435c5fb1f2 100644 --- a/packages/panels/resources/views/components/global-search/field.blade.php +++ b/packages/panels/resources/views/components/global-search/field.blade.php @@ -21,6 +21,7 @@ wire:target="search" > ($model === 'Resource') ? "{$modelNamespace}\\Resource as ResourceModel" : "{$modelNamespace}\\{$model}", - 'modelClass' => ($model === 'Resource') ? 'ResourceModel' : $modelClass, + ...$this->generateModel($model, $modelNamespace, $modelClass), 'namespace' => $namespace, 'pages' => $this->indentString($pages, 3), 'relations' => $this->indentString($relations, 1), @@ -324,4 +323,20 @@ class MakeResourceCommand extends Command return static::SUCCESS; } + + protected function generateModel(string $model, string $modelNamespace, string $modelClass): array + { + $possibilities = ['Form', 'Table', 'Resource']; + $params = []; + + if (in_array($model, $possibilities)) { + $params['model'] = "{$modelNamespace}\\{$model} as {$model}Model"; + $params['modelClass'] = $model . 'Model'; + } else { + $params['model'] = "{$modelNamespace}\\{$model}"; + $params['modelClass'] = $modelClass; + } + + return $params; + } } From 0c98a4521772b7eafcadc3ac583a3203d8692562 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Borja=20Jim=C3=A9nez?= Date: Sat, 4 Jan 2025 03:16:11 +0100 Subject: [PATCH 08/15] add type comment --- packages/panels/src/Commands/MakeResourceCommand.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/panels/src/Commands/MakeResourceCommand.php b/packages/panels/src/Commands/MakeResourceCommand.php index 1d1b1819fd..1cf70483f8 100644 --- a/packages/panels/src/Commands/MakeResourceCommand.php +++ b/packages/panels/src/Commands/MakeResourceCommand.php @@ -324,6 +324,9 @@ class MakeResourceCommand extends Command return static::SUCCESS; } + /** + * @return array + */ protected function generateModel(string $model, string $modelNamespace, string $modelClass): array { $possibilities = ['Form', 'Table', 'Resource']; From cdeed6396a9b72a4bcc570a1a67ee04d20e76eda Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Sat, 4 Jan 2025 10:40:38 +0000 Subject: [PATCH 09/15] Update packages/panels/resources/views/components/topbar/database-notifications-trigger.blade.php --- .../components/topbar/database-notifications-trigger.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/panels/resources/views/components/topbar/database-notifications-trigger.blade.php b/packages/panels/resources/views/components/topbar/database-notifications-trigger.blade.php index 470668d8b4..cb59382dd2 100644 --- a/packages/panels/resources/views/components/topbar/database-notifications-trigger.blade.php +++ b/packages/panels/resources/views/components/topbar/database-notifications-trigger.blade.php @@ -1,5 +1,5 @@ Date: Sat, 4 Jan 2025 10:43:18 +0000 Subject: [PATCH 10/15] Update field.blade.php --- .../resources/views/components/global-search/field.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/panels/resources/views/components/global-search/field.blade.php b/packages/panels/resources/views/components/global-search/field.blade.php index 435c5fb1f2..25ac5c959b 100644 --- a/packages/panels/resources/views/components/global-search/field.blade.php +++ b/packages/panels/resources/views/components/global-search/field.blade.php @@ -21,9 +21,9 @@ wire:target="search" > Date: Sat, 4 Jan 2025 10:48:59 +0000 Subject: [PATCH 11/15] Update search-field.blade.php --- .../tables/resources/views/components/search-field.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tables/resources/views/components/search-field.blade.php b/packages/tables/resources/views/components/search-field.blade.php index 7c482229a4..842fd27c1b 100644 --- a/packages/tables/resources/views/components/search-field.blade.php +++ b/packages/tables/resources/views/components/search-field.blade.php @@ -28,11 +28,11 @@ :wire:target="$wireModel" > @endif From 7e8ffd5e5ef7704dd2b265ec83429106f3d463e1 Mon Sep 17 00:00:00 2001 From: tanthammar Date: Mon, 6 Jan 2025 17:03:31 +0000 Subject: [PATCH 14/15] chore: fix code style --- packages/tables/resources/views/index.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/tables/resources/views/index.blade.php b/packages/tables/resources/views/index.blade.php index 295d0e91ed..8f2c2abbd5 100644 --- a/packages/tables/resources/views/index.blade.php +++ b/packages/tables/resources/views/index.blade.php @@ -951,7 +951,7 @@ :debounce="$searchDebounce" :on-blur="$isSearchOnBlur" wire-model="tableColumnSearches.{{ $column->getName() }}" - class="min-w-48 mx-3 my-2" + class="mx-3 my-2 min-w-48" /> @endif From c72de156538cdc800660e409c306d5cd7e4df719 Mon Sep 17 00:00:00 2001 From: Dan Harrin Date: Tue, 7 Jan 2025 08:21:59 +0000 Subject: [PATCH 15/15] Update index.blade.php --- packages/tables/resources/views/index.blade.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/tables/resources/views/index.blade.php b/packages/tables/resources/views/index.blade.php index 8f2c2abbd5..4d8268fdeb 100644 --- a/packages/tables/resources/views/index.blade.php +++ b/packages/tables/resources/views/index.blade.php @@ -944,14 +944,14 @@ getName())->camel()->kebab(), + 'min-w-48 px-3 py-2' => $isIndividuallySearchable = $column->isIndividuallySearchable(), ]) > - @if ($column->isIndividuallySearchable()) + @if ($isIndividuallySearchable) @endif