Files
Virtnet.bond/extensions/Servers/Proxmox/Admin/Resources/ServerResource/RelationManagers/Ipv4RelationManager.php
2025-11-30 11:57:22 +01:00

49 lines
1.7 KiB
PHP

<?php
namespace Paymenter\Extensions\Servers\Proxmox\Admin\Resources\ServerResource\RelationManagers;
use Filament\Notifications\Notification;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables;
use Filament\Tables\Table;
class Ipv4RelationManager extends RelationManager
{
protected static string $relationship = 'ipaddresses';
public function table(Table $table): Table
{
return $table
->recordTitleAttribute('ip')
->columns([
Tables\Columns\TextColumn::make('ip')->searchable(),
Tables\Columns\TextColumn::make('gateway'),
Tables\Columns\TextColumn::make('bridge'),
Tables\Columns\TextColumn::make('netmask'),
])
->filters([
//
])
->headerActions([
Tables\Actions\AssociateAction::make()
->modelLabel('IPv4')
->preloadRecordSelect()
->label('Add'),
])
->actions([
Tables\Actions\DissociateAction::make()
->label('Remove')
->before(function (Tables\Actions\DissociateAction $action, RelationManager $livewire) {
if ($livewire->ownerRecord->primary_ip == $action->getRecord()->id) {
Notification::make()
->danger()
->title('You cannot remove the primary IP')
->send();
$action->cancel();
}
}),
]);
}
}