Merge pull request #115 from pelican-dev/feature/mult-egg-upload

Allow importing of multiple eggs at once
This commit is contained in:
Charles 2024-04-21 10:06:21 -04:00 committed by GitHub
commit 6ff9568760
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 17 additions and 24 deletions

View File

@ -21,11 +21,12 @@ class ListEggs extends ListRecords
Actions\CreateAction::make(), Actions\CreateAction::make(),
Actions\Action::make('import') Actions\Action::make('import')
->label('Import Egg') ->label('Import')
->form([ ->form([
Forms\Components\FileUpload::make('egg') Forms\Components\FileUpload::make('egg')
->acceptedFileTypes(['application/json']) ->acceptedFileTypes(['application/json'])
->storeFiles(false), ->storeFiles(false)
->multiple(),
]) ])
->action(function (array $data): void { ->action(function (array $data): void {
/** @var TemporaryUploadedFile $eggFile */ /** @var TemporaryUploadedFile $eggFile */
@ -34,25 +35,25 @@ class ListEggs extends ListRecords
/** @var EggImporterService $eggImportService */ /** @var EggImporterService $eggImportService */
$eggImportService = resolve(EggImporterService::class); $eggImportService = resolve(EggImporterService::class);
try { foreach ($eggFile as $file) {
$newEgg = $eggImportService->handle($eggFile); try {
} catch (Exception $exception) { $eggImportService->handle($file);
Notification::make() } catch (Exception $exception) {
->title('Egg Import Failed') Notification::make()
->danger() ->title('Import Failed')
->send(); ->danger()
->send();
report($exception); report($exception);
return; return;
}
} }
Notification::make() Notification::make()
->title("Egg Import Success: $newEgg->name") ->title('Import Success')
->success() ->success()
->send(); ->send();
redirect()->route('filament.admin.resources.eggs.edit', [$newEgg]);
}), }),
]; ];
} }

View File

@ -1,12 +1,10 @@
<x-filament-panels::page> <x-filament-panels::page>
<x-filament::tabs label="Content tabs"> <x-filament::tabs disabled>
<x-filament::tabs.item disabled>Panel's Resources: </x-filament::tabs.item> <x-filament::tabs.item disabled>Overview: </x-filament::tabs.item>
<x-filament::tabs.item <x-filament::tabs.item
icon="tabler-server-2" icon="tabler-server-2"
:active="$activeTab === 'nodes'"
wire:click="$set('activeTab', 'nodes')"
> >
Nodes Nodes
<x-slot name="badge">{{ $nodesCount }}</x-slot> <x-slot name="badge">{{ $nodesCount }}</x-slot>
@ -14,8 +12,6 @@
<x-filament::tabs.item <x-filament::tabs.item
icon="tabler-brand-docker" icon="tabler-brand-docker"
:active="$activeTab === 'servers'"
wire:click="$set('activeTab', 'servers')"
> >
Servers Servers
<x-slot name="badge">{{ $serversCount }}</x-slot> <x-slot name="badge">{{ $serversCount }}</x-slot>
@ -23,8 +19,6 @@
<x-filament::tabs.item <x-filament::tabs.item
icon="tabler-eggs" icon="tabler-eggs"
:active="$activeTab === 'eggs'"
wire:click="$set('activeTab', 'eggs')"
> >
Eggs Eggs
<x-slot name="badge">{{ $eggsCount }}</x-slot> <x-slot name="badge">{{ $eggsCount }}</x-slot>
@ -32,8 +26,6 @@
<x-filament::tabs.item <x-filament::tabs.item
icon="tabler-users" icon="tabler-users"
:active="$activeTab === 'users'"
wire:click="$set('activeTab', 'users')"
> >
Users Users
<x-slot name="badge">{{ $usersCount }}</x-slot> <x-slot name="badge">{{ $usersCount }}</x-slot>