Merge pull request #115 from pelican-dev/feature/mult-egg-upload
Allow importing of multiple eggs at once
This commit is contained in:
commit
6ff9568760
@ -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]);
|
|
||||||
}),
|
}),
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
@ -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>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user