mirror of
https://github.com/pelican-dev/panel.git
synced 2025-05-29 02:44:45 +02:00
Merge branch 'main' of github.com:pelican-dev/panel
This commit is contained in:
commit
d4a02336aa
@ -27,11 +27,11 @@ enum ServerState: string
|
||||
{
|
||||
return match ($this) {
|
||||
self::Normal => 'primary',
|
||||
self::Installing => 'info',
|
||||
self::Installing => 'primary',
|
||||
self::InstallFailed => 'danger',
|
||||
self::ReinstallFailed => 'danger',
|
||||
self::Suspended => 'danger',
|
||||
self::RestoringBackup => 'info',
|
||||
self::Suspended => 'warning',
|
||||
self::RestoringBackup => 'primary',
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -46,22 +46,19 @@ class Dashboard extends Page
|
||||
CreateAction::make()
|
||||
->label(trans('dashboard/index.sections.intro-developers.button_features'))
|
||||
->icon('tabler-brand-github')
|
||||
->url('https://github.com/pelican-dev/panel/discussions', true)
|
||||
->color('primary'),
|
||||
->url('https://github.com/pelican-dev/panel/discussions', true),
|
||||
],
|
||||
'nodeActions' => [
|
||||
CreateAction::make()
|
||||
->label(trans('dashboard/index.sections.intro-first-node.button_label'))
|
||||
->icon('tabler-server-2')
|
||||
->url(route('filament.admin.resources.nodes.create'))
|
||||
->color('primary'),
|
||||
->url(route('filament.admin.resources.nodes.create')),
|
||||
],
|
||||
'supportActions' => [
|
||||
CreateAction::make()
|
||||
->label(trans('dashboard/index.sections.intro-support.button_translate'))
|
||||
->icon('tabler-language')
|
||||
->url('https://crowdin.com/project/pelican-dev', true)
|
||||
->color('info'),
|
||||
->url('https://crowdin.com/project/pelican-dev', true),
|
||||
CreateAction::make()
|
||||
->label(trans('dashboard/index.sections.intro-support.button_donate'))
|
||||
->icon('tabler-cash')
|
||||
@ -72,13 +69,11 @@ class Dashboard extends Page
|
||||
CreateAction::make()
|
||||
->label(trans('dashboard/index.sections.intro-help.button_docs'))
|
||||
->icon('tabler-speedboat')
|
||||
->url('https://pelican.dev/docs', true)
|
||||
->color('info'),
|
||||
->url('https://pelican.dev/docs', true),
|
||||
CreateAction::make()
|
||||
->label(trans('dashboard/index.sections.intro-help.button_discord'))
|
||||
->icon('tabler-brand-discord')
|
||||
->url('https://discord.gg/pelican-panel', true)
|
||||
->color('primary'),
|
||||
->url('https://discord.gg/pelican-panel', true),
|
||||
],
|
||||
];
|
||||
}
|
||||
|
@ -3,6 +3,7 @@
|
||||
namespace App\Filament\Resources\NodeResource\RelationManagers;
|
||||
|
||||
use App\Models\Allocation;
|
||||
use App\Models\Server;
|
||||
use App\Services\Allocations\AssignmentService;
|
||||
use Filament\Forms;
|
||||
use Filament\Forms\Form;
|
||||
@ -37,12 +38,19 @@ class AllocationsRelationManager extends RelationManager
|
||||
|
||||
// All assigned allocations
|
||||
->checkIfRecordIsSelectableUsing(fn (Allocation $allocation) => $allocation->server_id === null)
|
||||
|
||||
->searchable()
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('server.name')->label('Server')->icon('tabler-brand-docker'),
|
||||
Tables\Columns\TextColumn::make('ip_alias')->label('Alias'),
|
||||
Tables\Columns\TextColumn::make('ip')->label('IP'),
|
||||
Tables\Columns\TextColumn::make('port')->label('Port'),
|
||||
Tables\Columns\TextColumn::make('server.name')
|
||||
->label('Server')
|
||||
->icon('tabler-brand-docker')
|
||||
->url(fn (Allocation $allocation): string => $allocation->server ? route('filament.admin.resources.servers.edit', ['record' => $allocation->server]) : ''),
|
||||
Tables\Columns\TextColumn::make('ip_alias')
|
||||
->label('Alias'),
|
||||
Tables\Columns\TextColumn::make('ip')
|
||||
->label('IP'),
|
||||
Tables\Columns\TextColumn::make('port')
|
||||
->searchable()
|
||||
->label('Port'),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
@ -59,7 +67,6 @@ class AllocationsRelationManager extends RelationManager
|
||||
->inlineLabel()
|
||||
->ipv4()
|
||||
->helperText("Usually your machine's public IP unless you are port forwarding.")
|
||||
// ->selectablePlaceholder(false)
|
||||
->required(),
|
||||
Forms\Components\TextInput::make('allocation_alias')
|
||||
->label('Alias')
|
||||
|
@ -41,7 +41,6 @@ class CreateServer extends CreateRecord
|
||||
->label('Display Name')
|
||||
->suffixAction(Forms\Components\Actions\Action::make('random')
|
||||
->icon('tabler-dice-' . random_int(1, 6))
|
||||
->color('primary')
|
||||
->action(function (Forms\Set $set, Forms\Get $get) {
|
||||
$egg = Egg::find($get('egg_id'));
|
||||
$prefix = $egg ? str($egg->name)->lower()->kebab() . '-' : '';
|
||||
|
@ -93,7 +93,6 @@ class EditServer extends EditRecord
|
||||
->label('Display Name')
|
||||
->suffixAction(Forms\Components\Actions\Action::make('random')
|
||||
->icon('tabler-dice-' . random_int(1, 6))
|
||||
->color('primary')
|
||||
->action(function (Forms\Set $set, Forms\Get $get) {
|
||||
$egg = Egg::find($get('egg_id'));
|
||||
$prefix = $egg ? str($egg->name)->lower()->kebab() . '-' : '';
|
||||
@ -167,7 +166,7 @@ class EditServer extends EditRecord
|
||||
return $state;
|
||||
}
|
||||
|
||||
$images = Egg::find($get('egg_id'))->docker_images ?? [];
|
||||
$images = Egg::find($get('egg_id'))->docker_images;
|
||||
|
||||
return !in_array($get('image'), $images);
|
||||
})
|
||||
@ -203,13 +202,7 @@ class EditServer extends EditRecord
|
||||
->disabled(fn (Forms\Get $get) => $get('custom_image'))
|
||||
->label('Docker Image')
|
||||
->prefixIcon('tabler-brand-docker')
|
||||
->options(function (Forms\Get $get, Forms\Set $set) {
|
||||
$images = Egg::find($get('egg_id'))->docker_images ?? [];
|
||||
|
||||
$set('image', collect($images)->first());
|
||||
|
||||
return $images;
|
||||
})
|
||||
->options(fn (Forms\Get $get) => Egg::find($get('egg_id'))->docker_images)
|
||||
->disabled(fn (Forms\Components\Select $component) => empty($component->getOptions()))
|
||||
->selectablePlaceholder(false)
|
||||
->columnSpan([
|
||||
@ -453,18 +446,22 @@ class EditServer extends EditRecord
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
$this->getSaveFormAction(),
|
||||
Actions\DeleteAction::make('Delete')
|
||||
->successRedirectUrl(route('filament.admin.resources.servers.index'))
|
||||
->color('danger')
|
||||
->after(fn (Server $server) => resolve(ServerDeletionService::class)->handle($server))
|
||||
->requiresConfirmation(),
|
||||
Actions\DeleteAction::make('Force Delete')
|
||||
->label('Force Delete')
|
||||
->successRedirectUrl(route('filament.admin.resources.servers.index'))
|
||||
->color('danger')
|
||||
->after(fn (Server $server) => resolve(ServerDeletionService::class)->withForce()->handle($server))
|
||||
->requiresConfirmation(),
|
||||
Actions\DeleteAction::make('Delete')
|
||||
->successRedirectUrl(route('filament.admin.resources.servers.index'))
|
||||
->color('danger')
|
||||
->after(fn (Server $server) => resolve(ServerDeletionService::class)->handle($server))
|
||||
->requiresConfirmation(),
|
||||
Actions\Action::make('console')
|
||||
->label('Console')
|
||||
->icon('tabler-terminal')
|
||||
->url(fn (Server $server) => "/server/$server->uuid_short"),
|
||||
$this->getSaveFormAction()->formId('form'),
|
||||
];
|
||||
|
||||
}
|
||||
|
@ -57,7 +57,7 @@ class AllocationsRelationManager extends RelationManager
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make()->label('Create Allocation'),
|
||||
Tables\Actions\AssociateAction::make()->label('Add Allocation'),
|
||||
//Tables\Actions\AssociateAction::make()->label('Add Allocation'),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\BulkActionGroup::make([
|
||||
|
@ -43,8 +43,8 @@ class AdminPanelProvider extends PanelProvider
|
||||
->colors([
|
||||
'danger' => Color::Red,
|
||||
'gray' => Color::Zinc,
|
||||
'info' => Color::Blue,
|
||||
'primary' => Color::Sky,
|
||||
'info' => Color::Sky,
|
||||
'primary' => Color::Blue,
|
||||
'success' => Color::Green,
|
||||
'warning' => Color::Amber,
|
||||
])
|
||||
|
Loading…
x
Reference in New Issue
Block a user