diff --git a/app/Filament/Resources/Members/Schemas/MemberForm.php b/app/Filament/Resources/Members/Schemas/MemberForm.php index 7f67fa8..05f19ef 100644 --- a/app/Filament/Resources/Members/Schemas/MemberForm.php +++ b/app/Filament/Resources/Members/Schemas/MemberForm.php @@ -7,6 +7,7 @@ use App\Models\Member; use Filament\Actions\Action; use Filament\Forms\Components\DatePicker; use Filament\Forms\Components\Select; +use Filament\Forms\Components\ViewField; use Filament\Schemas\Components\Tabs; use Filament\Schemas\Components\Tabs\Tab; use Filament\Forms\Components\TextInput; @@ -158,7 +159,7 @@ class MemberForm /* | Hébergements web ISPConfig */ - Section::make('Hébergements Web') + /*Section::make('Hébergements Web') ->collapsible() ->schema([ RepeatableEntry::make('ispconfigs_web') @@ -166,24 +167,38 @@ class MemberForm ->state(fn(?Member $record) => $record?->ispconfigs() ->where('type', IspconfigType::WEB) ->get() + ->map(fn ($ispconfig) => $ispconfig->toArray()) + ->all() ) ->schema([ - TextEntry::make('data.web_domain.domain') + TextEntry::make('data.domain_id') + ->label('ID Domaine'), + TextEntry::make('data.domain') ->label('Domaine'), - - TextEntry::make('data.web_domain.ip_address') - ->label('Adresse IP'), - - TextEntry::make('data.web_domain.disk_quota') - ->label('Quota disque') - ->formatStateUsing(fn($state) => $state ? "{$state} Mo" : '—' + TextEntry::make('data.active') + ->label('État') + ->formatStateUsing(fn($state) => $state == 'o' ? "Activé" : 'Désactivé' ), ]) - ->columns(3), + ->columns(2), ]) ->visible(fn(?Member $record) => $record?->ispconfigs() ->where('type', IspconfigType::WEB) ->exists() + ),*/ + Section::make('Hébergements Web') + ->collapsible() + ->schema([ + ViewField::make('ispconfig_web_hostings') + ->view('filament.components.members.web-hostings') + ->viewData(fn (?Member $record) => [ + 'member' => $record, + ]), + ]) + ->visible(fn (?Member $record) => + $record?->ispconfigs() + ->where('type', IspconfigType::WEB) + ->exists() ), ]), ]), diff --git a/app/Livewire/Ispconfig/WebHostingList.php b/app/Livewire/Ispconfig/WebHostingList.php new file mode 100644 index 0000000..ddc6372 --- /dev/null +++ b/app/Livewire/Ispconfig/WebHostingList.php @@ -0,0 +1,25 @@ +member + ->ispconfigs() + ->where('type', IspconfigType::WEB) + ->get(); + + return view('livewire.ispconfig.web-hosting-list', [ + 'websites' => $websites, + ]); + } +} diff --git a/resources/views/filament/components/members/web-hostings.blade.php b/resources/views/filament/components/members/web-hostings.blade.php new file mode 100644 index 0000000..c0caed7 --- /dev/null +++ b/resources/views/filament/components/members/web-hostings.blade.php @@ -0,0 +1 @@ +@livewire('ispconfig.web-hosting-list', ['member' => $member], key('web-hostings-'.$member->id)) diff --git a/resources/views/livewire/ispconfig/web-hosting-list.blade.php b/resources/views/livewire/ispconfig/web-hosting-list.blade.php new file mode 100644 index 0000000..a169e07 --- /dev/null +++ b/resources/views/livewire/ispconfig/web-hosting-list.blade.php @@ -0,0 +1,84 @@ +
+ Aucun hébergement web. +
+ @endforelse +