mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-20 00:34:44 +02:00
Add Server
ForceDelete
(#1134)
This commit is contained in:
parent
a8c3082b79
commit
b69136d7a4
@ -946,17 +946,51 @@ class EditServer extends EditRecord
|
|||||||
|
|
||||||
protected function getHeaderActions(): array
|
protected function getHeaderActions(): array
|
||||||
{
|
{
|
||||||
|
/** @var Server $server */
|
||||||
|
$server = $this->getRecord();
|
||||||
|
|
||||||
|
$canForceDelete = cache()->get("servers.$server->uuid.canForceDelete", false);
|
||||||
|
|
||||||
return [
|
return [
|
||||||
Actions\Action::make('Delete')
|
Actions\Action::make('Delete')
|
||||||
->successRedirectUrl(route('filament.admin.resources.servers.index'))
|
|
||||||
->color('danger')
|
->color('danger')
|
||||||
->label(trans('filament-actions::delete.single.modal.actions.delete.label'))
|
->label(trans('filament-actions::delete.single.label'))
|
||||||
|
->modalHeading(trans('filament-actions::delete.single.modal.heading', ['label' => $this->getRecordTitle()]))
|
||||||
|
->modalSubmitActionLabel(trans('filament-actions::delete.single.label'))
|
||||||
->requiresConfirmation()
|
->requiresConfirmation()
|
||||||
->action(function (Server $server, ServerDeletionService $service) {
|
->action(function (Server $server, ServerDeletionService $service) {
|
||||||
|
try {
|
||||||
$service->handle($server);
|
$service->handle($server);
|
||||||
|
} catch (ConnectionException) {
|
||||||
|
cache()->put("servers.$server->uuid.canForceDelete", true, now()->addMinutes(5));
|
||||||
|
|
||||||
|
Notification::make()
|
||||||
|
->title(trans('admin/server.notifications.error_server_delete'))
|
||||||
|
->body(trans('admin/server.notifications.error_server_delete_body'))
|
||||||
|
->color('warning')
|
||||||
|
->icon('tabler-database')
|
||||||
|
->warning()
|
||||||
|
->send();
|
||||||
|
}
|
||||||
|
})
|
||||||
|
->hidden(fn () => $canForceDelete)
|
||||||
|
->authorize(fn (Server $server) => auth()->user()->can('delete server', $server)),
|
||||||
|
Actions\Action::make('ForceDelete')
|
||||||
|
->color('danger')
|
||||||
|
->label(trans('filament-actions::force-delete.single.label'))
|
||||||
|
->modalHeading(trans('filament-actions::force-delete.single.modal.heading', ['label' => $this->getRecordTitle()]))
|
||||||
|
->modalSubmitActionLabel(trans('filament-actions::force-delete.single.label'))
|
||||||
|
->requiresConfirmation()
|
||||||
|
->action(function (Server $server, ServerDeletionService $service) {
|
||||||
|
try {
|
||||||
|
$service->withForce()->handle($server);
|
||||||
|
|
||||||
return redirect(ListServers::getUrl(panel: 'admin'));
|
return redirect(ListServers::getUrl(panel: 'admin'));
|
||||||
|
} catch (ConnectionException) {
|
||||||
|
cache()->forget("servers.$server->uuid.canForceDelete");
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
->visible(fn () => $canForceDelete)
|
||||||
->authorize(fn (Server $server) => auth()->user()->can('delete server', $server)),
|
->authorize(fn (Server $server) => auth()->user()->can('delete server', $server)),
|
||||||
Actions\Action::make('console')
|
Actions\Action::make('console')
|
||||||
->label(trans('admin/server.console'))
|
->label(trans('admin/server.console'))
|
||||||
|
@ -109,6 +109,8 @@ return [
|
|||||||
'server_suspend_help' => 'This will suspend the Server, stop any running processes, and immediately block the user from being able to access their files or otherwise manage the Server through the panel or API.',
|
'server_suspend_help' => 'This will suspend the Server, stop any running processes, and immediately block the user from being able to access their files or otherwise manage the Server through the panel or API.',
|
||||||
'server_unsuspend_help' => 'This will unsuspend the Server and restore normal user access.',
|
'server_unsuspend_help' => 'This will unsuspend the Server and restore normal user access.',
|
||||||
'server_unsuspended' => 'Server has been unsuspended',
|
'server_unsuspended' => 'Server has been unsuspended',
|
||||||
|
'error_server_delete' => 'Server couldn\'t be safely deleted.',
|
||||||
|
'error_server_delete_body' => 'You may Force Delete it.',
|
||||||
'create_failed' => 'Could not create Server',
|
'create_failed' => 'Could not create Server',
|
||||||
'invalid_port_range' => 'Invalid Port Range',
|
'invalid_port_range' => 'Invalid Port Range',
|
||||||
'invalid_port_range_body' => 'Your port range are not valid integers: :port',
|
'invalid_port_range_body' => 'Your port range are not valid integers: :port',
|
||||||
|
Loading…
x
Reference in New Issue
Block a user