added eggs, nodes relationship, structured the layout

This commit is contained in:
Scai 2024-04-13 16:23:05 +03:00
parent 9fafe2f42c
commit 25c1b251a3

View File

@ -3,15 +3,15 @@
namespace App\Filament\Resources; namespace App\Filament\Resources;
use App\Filament\Resources\MountResource\Pages; use App\Filament\Resources\MountResource\Pages;
use App\Filament\Resources\MountResource\RelationManagers;
use App\Models\Mount; use App\Models\Mount;
use Filament\Forms; use Filament\Forms;
use Filament\Forms\Components\Group;
use Filament\Forms\Components\Section;
use Filament\Forms\Components\Select;
use Filament\Forms\Form; use Filament\Forms\Form;
use Filament\Resources\Resource; use Filament\Resources\Resource;
use Filament\Tables; use Filament\Tables;
use Filament\Tables\Table; use Filament\Tables\Table;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class MountResource extends Resource class MountResource extends Resource
{ {
@ -23,57 +23,78 @@ class MountResource extends Resource
{ {
return $form return $form
->schema([ ->schema([
Forms\Components\TextInput::make('name') Section::make()->schema([
->required() Forms\Components\TextInput::make('name')
->helperText('Unique name used to separate this mount from another.') ->required()
->maxLength(191), ->helperText('Unique name used to separate this mount from another.')
Forms\Components\ToggleButtons::make('read_only') ->maxLength(64),
->label('Read only?') Forms\Components\ToggleButtons::make('read_only')
->helperText('Is the mount read only inside the container?') ->label('Read only?')
->options([ ->helperText('Is the mount read only inside the container?')
false => 'Writeable', ->options([
true => 'Read only', false => 'Writeable',
true => 'Read only',
])
->icons([
false => 'tabler-writing',
true => 'tabler-writing-off',
])
->colors([
false => 'warning',
true => 'success',
])
->inline()
->default(false)
->required(),
Forms\Components\TextInput::make('source')
->required()
->helperText('File path on the host system to mount to a container.')
->maxLength(191),
Forms\Components\TextInput::make('target')
->required()
->helperText('Where the mount will be accessible inside a container.')
->maxLength(191),
Forms\Components\ToggleButtons::make('user_mountable')
->hidden()
->label('User mountable?')
->options([
false => 'No',
true => 'Yes',
])
->icons([
false => 'tabler-user-cancel',
true => 'tabler-user-bolt',
])
->colors([
false => 'success',
true => 'warning',
])
->default(false)
->inline()
->required(),
Forms\Components\Textarea::make('description')
->helperText('A longer description for this mount.')
->columnSpanFull(),
])->columnSpan(2)->columns([
'default' => 1,
'lg' => 2,
]),
Group::make()->schema([
Section::make()->schema([
Select::make('eggs')->multiple()
->relationship('eggs', 'name')
->preload(),
Select::make('nodes')->multiple()
->relationship('nodes', 'name')
->searchable(['name', 'fqdn'])
->preload(),
]) ])
->icons([ ])->columns([
false => 'tabler-writing', 'default' => 1,
true => 'tabler-writing-off', ]),
]) ])->columns([
->colors([ 'default' => 1,
false => 'warning', 'lg' => 3,
true => 'success',
])
->inline()
->default(false)
->required(),
Forms\Components\TextInput::make('source')
->required()
->helperText('File path on the host system to mount to a container.')
->maxLength(191),
Forms\Components\TextInput::make('target')
->required()
->helperText('Where the mount will be accessible inside a container.')
->maxLength(191),
Forms\Components\ToggleButtons::make('user_mountable')
->hidden()
->label('User mountable?')
->options([
false => 'No',
true => 'Yes',
])
->icons([
false => 'tabler-user-cancel',
true => 'tabler-user-bolt',
])
->colors([
false => 'success',
true => 'warning',
])
->default(false)
->inline()
->required(),
Forms\Components\Textarea::make('description')
->helperText('A longer description for this mount.')
->columnSpanFull(),
]); ]);
} }