Fix egg export (#380)

This commit is contained in:
Boy132 2024-06-12 18:18:24 +02:00 committed by GitHub
parent 61f3e965ba
commit 7c829fb9cf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 9 additions and 5 deletions

View File

@ -202,11 +202,13 @@ class EditEgg extends EditRecord
Actions\DeleteAction::make() Actions\DeleteAction::make()
->disabled(fn (Egg $egg): bool => $egg->servers()->count() > 0) ->disabled(fn (Egg $egg): bool => $egg->servers()->count() > 0)
->label(fn (Egg $egg): string => $egg->servers()->count() <= 0 ? 'Delete Egg' : 'Egg In Use'), ->label(fn (Egg $egg): string => $egg->servers()->count() <= 0 ? 'Delete Egg' : 'Egg In Use'),
Actions\ExportAction::make() Actions\Action::make('export')
->icon('tabler-download') ->icon('tabler-download')
->label('Export Egg') ->label('Export Egg')
->color('primary') ->color('primary')
->url(fn (EggExporterService $service, Egg $egg) => $service->handle($egg->id)), ->action(fn (EggExporterService $service, Egg $egg) => response()->streamDownload(function () use ($service, $egg) {
echo $service->handle($egg->id);
}, 'egg-' . $egg->getKebabName() . '.json')),
$this->getSaveFormAction()->formId('form'), $this->getSaveFormAction()->formId('form'),
]; ];
} }

View File

@ -4,6 +4,7 @@ namespace App\Filament\Resources\EggResource\Pages;
use App\Filament\Resources\EggResource; use App\Filament\Resources\EggResource;
use App\Models\Egg; use App\Models\Egg;
use App\Services\Eggs\Sharing\EggExporterService;
use App\Services\Eggs\Sharing\EggImporterService; use App\Services\Eggs\Sharing\EggImporterService;
use Exception; use Exception;
use Filament\Actions; use Filament\Actions;
@ -43,12 +44,13 @@ class ListEggs extends ListRecords
]) ])
->actions([ ->actions([
Tables\Actions\EditAction::make(), Tables\Actions\EditAction::make(),
Tables\Actions\ExportAction::make() Tables\Actions\Action::make('export')
->icon('tabler-download') ->icon('tabler-download')
->label('Export') ->label('Export')
->color('primary') ->color('primary')
// TODO uses old admin panel export service ->action(fn (EggExporterService $service, Egg $egg) => response()->streamDownload(function () use ($service, $egg) {
->url(fn (Egg $egg): string => route('admin.eggs.export', ['egg' => $egg])), echo $service->handle($egg->id);
}, 'egg-' . $egg->getKebabName() . '.json')),
]) ])
->bulkActions([ ->bulkActions([
Tables\Actions\BulkActionGroup::make([ Tables\Actions\BulkActionGroup::make([