Merge branch 'main' of github.com:pelican-dev/panel

This commit is contained in:
Lance Pioch 2024-04-29 22:42:21 -04:00
commit d4a02336aa
7 changed files with 40 additions and 42 deletions

View File

@ -27,11 +27,11 @@ enum ServerState: string
{ {
return match ($this) { return match ($this) {
self::Normal => 'primary', self::Normal => 'primary',
self::Installing => 'info', self::Installing => 'primary',
self::InstallFailed => 'danger', self::InstallFailed => 'danger',
self::ReinstallFailed => 'danger', self::ReinstallFailed => 'danger',
self::Suspended => 'danger', self::Suspended => 'warning',
self::RestoringBackup => 'info', self::RestoringBackup => 'primary',
}; };
} }
} }

View File

@ -46,22 +46,19 @@ class Dashboard extends Page
CreateAction::make() CreateAction::make()
->label(trans('dashboard/index.sections.intro-developers.button_features')) ->label(trans('dashboard/index.sections.intro-developers.button_features'))
->icon('tabler-brand-github') ->icon('tabler-brand-github')
->url('https://github.com/pelican-dev/panel/discussions', true) ->url('https://github.com/pelican-dev/panel/discussions', true),
->color('primary'),
], ],
'nodeActions' => [ 'nodeActions' => [
CreateAction::make() CreateAction::make()
->label(trans('dashboard/index.sections.intro-first-node.button_label')) ->label(trans('dashboard/index.sections.intro-first-node.button_label'))
->icon('tabler-server-2') ->icon('tabler-server-2')
->url(route('filament.admin.resources.nodes.create')) ->url(route('filament.admin.resources.nodes.create')),
->color('primary'),
], ],
'supportActions' => [ 'supportActions' => [
CreateAction::make() CreateAction::make()
->label(trans('dashboard/index.sections.intro-support.button_translate')) ->label(trans('dashboard/index.sections.intro-support.button_translate'))
->icon('tabler-language') ->icon('tabler-language')
->url('https://crowdin.com/project/pelican-dev', true) ->url('https://crowdin.com/project/pelican-dev', true),
->color('info'),
CreateAction::make() CreateAction::make()
->label(trans('dashboard/index.sections.intro-support.button_donate')) ->label(trans('dashboard/index.sections.intro-support.button_donate'))
->icon('tabler-cash') ->icon('tabler-cash')
@ -72,13 +69,11 @@ class Dashboard extends Page
CreateAction::make() CreateAction::make()
->label(trans('dashboard/index.sections.intro-help.button_docs')) ->label(trans('dashboard/index.sections.intro-help.button_docs'))
->icon('tabler-speedboat') ->icon('tabler-speedboat')
->url('https://pelican.dev/docs', true) ->url('https://pelican.dev/docs', true),
->color('info'),
CreateAction::make() CreateAction::make()
->label(trans('dashboard/index.sections.intro-help.button_discord')) ->label(trans('dashboard/index.sections.intro-help.button_discord'))
->icon('tabler-brand-discord') ->icon('tabler-brand-discord')
->url('https://discord.gg/pelican-panel', true) ->url('https://discord.gg/pelican-panel', true),
->color('primary'),
], ],
]; ];
} }

View File

@ -3,6 +3,7 @@
namespace App\Filament\Resources\NodeResource\RelationManagers; namespace App\Filament\Resources\NodeResource\RelationManagers;
use App\Models\Allocation; use App\Models\Allocation;
use App\Models\Server;
use App\Services\Allocations\AssignmentService; use App\Services\Allocations\AssignmentService;
use Filament\Forms; use Filament\Forms;
use Filament\Forms\Form; use Filament\Forms\Form;
@ -37,12 +38,19 @@ class AllocationsRelationManager extends RelationManager
// All assigned allocations // All assigned allocations
->checkIfRecordIsSelectableUsing(fn (Allocation $allocation) => $allocation->server_id === null) ->checkIfRecordIsSelectableUsing(fn (Allocation $allocation) => $allocation->server_id === null)
->searchable()
->columns([ ->columns([
Tables\Columns\TextColumn::make('server.name')->label('Server')->icon('tabler-brand-docker'), Tables\Columns\TextColumn::make('server.name')
Tables\Columns\TextColumn::make('ip_alias')->label('Alias'), ->label('Server')
Tables\Columns\TextColumn::make('ip')->label('IP'), ->icon('tabler-brand-docker')
Tables\Columns\TextColumn::make('port')->label('Port'), ->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([ ->filters([
// //
@ -59,7 +67,6 @@ class AllocationsRelationManager extends RelationManager
->inlineLabel() ->inlineLabel()
->ipv4() ->ipv4()
->helperText("Usually your machine's public IP unless you are port forwarding.") ->helperText("Usually your machine's public IP unless you are port forwarding.")
// ->selectablePlaceholder(false)
->required(), ->required(),
Forms\Components\TextInput::make('allocation_alias') Forms\Components\TextInput::make('allocation_alias')
->label('Alias') ->label('Alias')

View File

@ -41,7 +41,6 @@ class CreateServer extends CreateRecord
->label('Display Name') ->label('Display Name')
->suffixAction(Forms\Components\Actions\Action::make('random') ->suffixAction(Forms\Components\Actions\Action::make('random')
->icon('tabler-dice-' . random_int(1, 6)) ->icon('tabler-dice-' . random_int(1, 6))
->color('primary')
->action(function (Forms\Set $set, Forms\Get $get) { ->action(function (Forms\Set $set, Forms\Get $get) {
$egg = Egg::find($get('egg_id')); $egg = Egg::find($get('egg_id'));
$prefix = $egg ? str($egg->name)->lower()->kebab() . '-' : ''; $prefix = $egg ? str($egg->name)->lower()->kebab() . '-' : '';

View File

@ -93,7 +93,6 @@ class EditServer extends EditRecord
->label('Display Name') ->label('Display Name')
->suffixAction(Forms\Components\Actions\Action::make('random') ->suffixAction(Forms\Components\Actions\Action::make('random')
->icon('tabler-dice-' . random_int(1, 6)) ->icon('tabler-dice-' . random_int(1, 6))
->color('primary')
->action(function (Forms\Set $set, Forms\Get $get) { ->action(function (Forms\Set $set, Forms\Get $get) {
$egg = Egg::find($get('egg_id')); $egg = Egg::find($get('egg_id'));
$prefix = $egg ? str($egg->name)->lower()->kebab() . '-' : ''; $prefix = $egg ? str($egg->name)->lower()->kebab() . '-' : '';
@ -167,7 +166,7 @@ class EditServer extends EditRecord
return $state; return $state;
} }
$images = Egg::find($get('egg_id'))->docker_images ?? []; $images = Egg::find($get('egg_id'))->docker_images;
return !in_array($get('image'), $images); return !in_array($get('image'), $images);
}) })
@ -203,13 +202,7 @@ class EditServer extends EditRecord
->disabled(fn (Forms\Get $get) => $get('custom_image')) ->disabled(fn (Forms\Get $get) => $get('custom_image'))
->label('Docker Image') ->label('Docker Image')
->prefixIcon('tabler-brand-docker') ->prefixIcon('tabler-brand-docker')
->options(function (Forms\Get $get, Forms\Set $set) { ->options(fn (Forms\Get $get) => Egg::find($get('egg_id'))->docker_images)
$images = Egg::find($get('egg_id'))->docker_images ?? [];
$set('image', collect($images)->first());
return $images;
})
->disabled(fn (Forms\Components\Select $component) => empty($component->getOptions())) ->disabled(fn (Forms\Components\Select $component) => empty($component->getOptions()))
->selectablePlaceholder(false) ->selectablePlaceholder(false)
->columnSpan([ ->columnSpan([
@ -453,25 +446,29 @@ class EditServer extends EditRecord
protected function getHeaderActions(): array protected function getHeaderActions(): array
{ {
return [ 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') Actions\DeleteAction::make('Force Delete')
->label('Force Delete') ->label('Force Delete')
->successRedirectUrl(route('filament.admin.resources.servers.index')) ->successRedirectUrl(route('filament.admin.resources.servers.index'))
->color('danger') ->color('danger')
->after(fn (Server $server) => resolve(ServerDeletionService::class)->withForce()->handle($server)) ->after(fn (Server $server) => resolve(ServerDeletionService::class)->withForce()->handle($server))
->requiresConfirmation(), ->requiresConfirmation(),
Actions\DeleteAction::make('Delete') Actions\Action::make('console')
->successRedirectUrl(route('filament.admin.resources.servers.index')) ->label('Console')
->color('danger') ->icon('tabler-terminal')
->after(fn (Server $server) => resolve(ServerDeletionService::class)->handle($server)) ->url(fn (Server $server) => "/server/$server->uuid_short"),
->requiresConfirmation(), $this->getSaveFormAction()->formId('form'),
]; ];
} }
protected function getFormActions(): array protected function getFormActions(): array
{ {
return []; return [];
} }
protected function mutateFormDataBeforeSave(array $data): array protected function mutateFormDataBeforeSave(array $data): array
{ {

View File

@ -57,7 +57,7 @@ class AllocationsRelationManager extends RelationManager
]) ])
->headerActions([ ->headerActions([
Tables\Actions\CreateAction::make()->label('Create Allocation'), Tables\Actions\CreateAction::make()->label('Create Allocation'),
Tables\Actions\AssociateAction::make()->label('Add Allocation'), //Tables\Actions\AssociateAction::make()->label('Add Allocation'),
]) ])
->bulkActions([ ->bulkActions([
Tables\Actions\BulkActionGroup::make([ Tables\Actions\BulkActionGroup::make([

View File

@ -43,8 +43,8 @@ class AdminPanelProvider extends PanelProvider
->colors([ ->colors([
'danger' => Color::Red, 'danger' => Color::Red,
'gray' => Color::Zinc, 'gray' => Color::Zinc,
'info' => Color::Blue, 'info' => Color::Sky,
'primary' => Color::Sky, 'primary' => Color::Blue,
'success' => Color::Green, 'success' => Color::Green,
'warning' => Color::Amber, 'warning' => Color::Amber,
]) ])