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

View File

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