This commit is contained in:
notCharles 2025-04-29 18:17:58 -04:00
parent 942ea99718
commit b98ecd252c
5 changed files with 22 additions and 14 deletions

View File

@ -9,6 +9,7 @@ use App\Filament\Server\Pages\Console;
use App\Models\Server; use App\Models\Server;
use Filament\Resources\Pages\ListRecords; use Filament\Resources\Pages\ListRecords;
use Filament\Schemas\Components\Tabs\Tab; use Filament\Schemas\Components\Tabs\Tab;
use Filament\Support\Enums\TextSize;
use Filament\Tables\Columns\ColumnGroup; use Filament\Tables\Columns\ColumnGroup;
use Filament\Tables\Columns\Layout\Stack; use Filament\Tables\Columns\Layout\Stack;
use Filament\Tables\Columns\TextColumn; use Filament\Tables\Columns\TextColumn;
@ -33,6 +34,7 @@ class ListServers extends ListRecords
->label('') ->label('')
->default('unknown') ->default('unknown')
->wrap() ->wrap()
->size(TextSize::Medium)
->badge() ->badge()
->alignCenter() ->alignCenter()
->tooltip(fn (Server $server) => $server->formatResource('uptime', type: ServerResourceType::Time)) ->tooltip(fn (Server $server) => $server->formatResource('uptime', type: ServerResourceType::Time))
@ -43,11 +45,12 @@ class ListServers extends ListRecords
$viewTwo = [ $viewTwo = [
TextColumn::make('name') TextColumn::make('name')
->label('') ->label('')
->size('md') ->size(TextSize::Medium)
->searchable(), ->searchable(),
TextColumn::make('iNeedAName') TextColumn::make('iNeedAName')
->label('') ->label('')
->badge() ->badge()
->size(TextSize::Medium)
->copyable(request()->isSecure()) ->copyable(request()->isSecure())
->copyMessage(fn (Server $server, string $state) => 'Copied ' . $server->allocation->address) ->copyMessage(fn (Server $server, string $state) => 'Copied ' . $server->allocation->address)
->state(fn (Server $server) => $server->allocation->address), ->state(fn (Server $server) => $server->allocation->address),
@ -56,18 +59,21 @@ class ListServers extends ListRecords
$viewThree = [ $viewThree = [
TextColumn::make('cpuUsage') TextColumn::make('cpuUsage')
->label('') ->label('')
->size(TextSize::Medium)
->icon('tabler-cpu') ->icon('tabler-cpu')
->tooltip(fn (Server $server) => 'Usage Limit: ' . $server->formatResource('cpu', limit: true, type: ServerResourceType::Percentage, precision: 0)) ->tooltip(fn (Server $server) => 'Usage Limit: ' . $server->formatResource('cpu', limit: true, type: ServerResourceType::Percentage, precision: 0))
->state(fn (Server $server) => $server->formatResource('cpu_absolute', type: ServerResourceType::Percentage)) ->state(fn (Server $server) => $server->formatResource('cpu_absolute', type: ServerResourceType::Percentage))
->color(fn (Server $server) => $this->getResourceColor($server, 'cpu')), ->color(fn (Server $server) => $this->getResourceColor($server, 'cpu')),
TextColumn::make('memoryUsage') TextColumn::make('memoryUsage')
->label('') ->label('')
->size(TextSize::Medium)
->icon('tabler-memory') ->icon('tabler-memory')
->tooltip(fn (Server $server) => 'Usage Limit: ' . $server->formatResource('memory', limit: true)) ->tooltip(fn (Server $server) => 'Usage Limit: ' . $server->formatResource('memory', limit: true))
->state(fn (Server $server) => $server->formatResource('memory_bytes')) ->state(fn (Server $server) => $server->formatResource('memory_bytes'))
->color(fn (Server $server) => $this->getResourceColor($server, 'memory')), ->color(fn (Server $server) => $this->getResourceColor($server, 'memory')),
TextColumn::make('diskUsage') TextColumn::make('diskUsage')
->label('') ->label('')
->size(TextSize::Medium)
->icon('tabler-device-floppy') ->icon('tabler-device-floppy')
->tooltip(fn (Server $server) => 'Usage Limit: ' . $server->formatResource('disk', limit: true)) ->tooltip(fn (Server $server) => 'Usage Limit: ' . $server->formatResource('disk', limit: true))
->state(fn (Server $server) => $server->formatResource('disk_bytes')) ->state(fn (Server $server) => $server->formatResource('disk_bytes'))

View File

@ -15,8 +15,8 @@ use Filament\Forms\Components\Repeater;
use Filament\Forms\Components\Select; use Filament\Forms\Components\Select;
use Filament\Forms\Components\Textarea; use Filament\Forms\Components\Textarea;
use Filament\Forms\Components\TextInput; use Filament\Forms\Components\TextInput;
use Filament\Schemas\Components\Form;
use Filament\Notifications\Notification; use Filament\Notifications\Notification;
use Filament\Schemas\Components\Section;
use Filament\Schemas\Schema; use Filament\Schemas\Schema;
use Illuminate\Database\Eloquent\Builder; use Illuminate\Database\Eloquent\Builder;
use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Validator;
@ -27,7 +27,10 @@ class Startup extends ServerFormPage
protected static ?int $navigationSort = 9; protected static ?int $navigationSort = 9;
public function form(Form|Schema $schema): Schema /**
* @throws \Exception
*/
public function form(Schema $schema): Schema
{ {
/** @var Server $server */ /** @var Server $server */
$server = Filament::getTenant(); $server = Filament::getTenant();

View File

@ -2,8 +2,8 @@
namespace App\Providers\Filament; namespace App\Providers\Filament;
use App\Filament\Pages\Auth\Login;
use App\Filament\Pages\Auth\EditProfile; use App\Filament\Pages\Auth\EditProfile;
use App\Filament\Pages\Auth\Login;
use App\Http\Middleware\LanguageMiddleware; use App\Http\Middleware\LanguageMiddleware;
use App\Http\Middleware\RequireTwoFactorAuthentication; use App\Http\Middleware\RequireTwoFactorAuthentication;
use Filament\Actions\Action; use Filament\Actions\Action;
@ -30,7 +30,7 @@ class AdminPanelProvider extends PanelProvider
->id('admin') ->id('admin')
->path('admin') ->path('admin')
->homeUrl('/') ->homeUrl('/')
//->spa() ->spa()
->databaseNotifications() ->databaseNotifications()
->breadcrumbs(false) ->breadcrumbs(false)
->brandName(config('app.name', 'Pelican')) ->brandName(config('app.name', 'Pelican'))
@ -40,11 +40,10 @@ class AdminPanelProvider extends PanelProvider
->topNavigation(config('panel.filament.top-navigation', false)) ->topNavigation(config('panel.filament.top-navigation', false))
->maxContentWidth(config('panel.filament.display-width', 'screen-2xl')) ->maxContentWidth(config('panel.filament.display-width', 'screen-2xl'))
->login(Login::class) ->login(Login::class)
->profile(EditProfile::class, false)
->passwordReset() ->passwordReset()
->userMenuItems([ ->userMenuItems([
'profile' => Action::make('toProfile') 'profile' => fn (Action $action) => $action->label(auth()->user()->username),
->label(fn () => trans('filament-panels::/auth/pages/edit-profile.label'))
->url(fn () => EditProfile::getUrl(panel: 'app')),
Action::make('exitAdmin') Action::make('exitAdmin')
->label(fn () => trans('profile.exit_admin')) ->label(fn () => trans('profile.exit_admin'))
->url('/') ->url('/')

View File

@ -27,7 +27,7 @@ class AppPanelProvider extends PanelProvider
{ {
return $panel return $panel
->id('app') ->id('app')
//->spa() ->spa()
->databaseNotifications() ->databaseNotifications()
->breadcrumbs(false) ->breadcrumbs(false)
->brandName(config('app.name', 'Pelican')) ->brandName(config('app.name', 'Pelican'))
@ -41,6 +41,7 @@ class AppPanelProvider extends PanelProvider
->login(Login::class) ->login(Login::class)
->passwordReset() ->passwordReset()
->userMenuItems([ ->userMenuItems([
'profile' => fn (Action $action) => $action->label(auth()->user()->username),
Action::make('toAdmin') Action::make('toAdmin')
->label('Admin') ->label('Admin')
->url('/admin') ->url('/admin')

View File

@ -3,9 +3,9 @@
namespace App\Providers\Filament; namespace App\Providers\Filament;
use App\Filament\App\Resources\ServerResource\Pages\ListServers; use App\Filament\App\Resources\ServerResource\Pages\ListServers;
use App\Filament\Pages\Auth\EditProfile;
use App\Filament\Pages\Auth\Login; use App\Filament\Pages\Auth\Login;
use App\Filament\Admin\Resources\ServerResource\Pages\EditServer; use App\Filament\Admin\Resources\ServerResource\Pages\EditServer;
use App\Filament\Pages\Auth\EditProfile;
use App\Http\Middleware\Activity\ServerSubject; use App\Http\Middleware\Activity\ServerSubject;
use App\Http\Middleware\LanguageMiddleware; use App\Http\Middleware\LanguageMiddleware;
use App\Http\Middleware\RequireTwoFactorAuthentication; use App\Http\Middleware\RequireTwoFactorAuthentication;
@ -34,7 +34,7 @@ class ServerPanelProvider extends PanelProvider
->id('server') ->id('server')
->path('server') ->path('server')
->homeUrl('/') ->homeUrl('/')
//->spa() ->spa()
->databaseNotifications() ->databaseNotifications()
->tenant(Server::class) ->tenant(Server::class)
->brandName(config('app.name', 'Pelican')) ->brandName(config('app.name', 'Pelican'))
@ -44,11 +44,10 @@ class ServerPanelProvider extends PanelProvider
->topNavigation(config('panel.filament.top-navigation', false)) ->topNavigation(config('panel.filament.top-navigation', false))
->maxContentWidth(config('panel.filament.display-width', 'screen-2xl')) ->maxContentWidth(config('panel.filament.display-width', 'screen-2xl'))
->login(Login::class) ->login(Login::class)
->profile(EditProfile::class, false)
->passwordReset() ->passwordReset()
->userMenuItems([ ->userMenuItems([
'profile' => Action::make('toProfile') 'profile' => fn (Action $action) => $action->label(auth()->user()->username),
->label(fn () => trans('filament-panels::/auth/pages/edit-profile.label'))
->url(fn () => EditProfile::getUrl(panel: 'app')),
Action::make('toServerList') Action::make('toServerList')
->label('Server List') ->label('Server List')
->icon('tabler-brand-docker') ->icon('tabler-brand-docker')