@props(['peer'])
{{--
Eine Zeile der Zugangsliste.
Ausgelagert, als die Liste in zwei Gruppen zerfiel (Personen und Hosts).
Sie zweimal hinzuschreiben hätte geheißen, sie ab dem nächsten Knopf an
zwei Stellen zu pflegen — und die zweite fällt erst auf, wenn jemand einen
Host-Zugang sucht und ihn anders aussehen sieht als seinen eigenen.
Ursprünglicher Kopfkommentar der Liste, weil er die Form dieser Zeile
erklärt: Ein Register von Zugängen, keine Tabelle. Sieben Spalten ließen
jede davon zu schmal — Namen brachen um, „Letzter Kontakt" brach in seiner
eigenen Überschrift um, und die Zeile passte trotzdem nicht. Das sind
Eigenschaften EINES Zugangs, keine Größen, die jemand über eine Spalte
hinweg vergleicht: also je Zugang eine eigene Zeile, Identität oben,
Messwerte darunter in Mono, wo sie sich von selbst untereinander stellen.
--}}
@php
$status = $peer->status();
$tone = [
'online' => 'border-success-border bg-success-bg text-success',
'idle' => 'border-line-strong bg-surface-2 text-muted',
'blocked' => 'border-danger-border bg-danger-bg text-danger',
'pending' => 'border-warning-border bg-warning-bg text-warning',
][$status];
// Der Strich trägt den Zustand mit, damit ein gesperrter Zugang beim
// Überfliegen auffällt, ohne dass jemand eine Plakette liest.
$rule = [
'online' => 'bg-success-bright',
'idle' => 'bg-line-strong',
'blocked' => 'bg-danger',
'pending' => 'bg-warning',
][$status];
@endphp
{{-- Bei einem Host-Zugang der Name des HOSTS, nicht der gespeicherte.
Der Zugang bekommt seinen Namen einmal beim Anlegen; wird der
Host später umbenannt, zeigt die Liste weiter den alten. Genau
so stand hier „pve-fns-1", während der Host längst „fsn-01"
hieß — zwei Namen für dieselbe Maschine, und man muss erst
wissen, dass es dieselbe ist. --}}
{{ $peer->host?->name ?? $peer->name }}
{{-- Die Plakette bleibt, obwohl die Gruppe daneben dasselbe sagt:
eine Zeile wandert beim Suchen aus ihrer Überschrift heraus,
und dann steht sie ohne sie da. --}}
{{ $peer->host ? __('vpn.host_peer') : __('vpn.operator_peer') }}
@if ($peer->owner)
{{ $peer->owner->name }}
@if ($peer->user_id === auth()->id())
{{ __('vpn.you') }}
@endif
@elseif (! $peer->host)
{{ __('vpn.no_owner') }}
@endif
{{-- Die Messwerte, jeder mit eigener Beschriftung: ohne Kopfzeile
müssen sie sich selbst benennen. --}}
{{-- Eine hinterlegte Konfiguration lässt sich erneut abholen; ohne
eine gibt es nichts auszugeben, und das zu sagen ist besser als
ein fehlender Knopf. --}}
@if (! $peer->hasStoredConfig() && $peer->kind === \App\Models\VpnPeer::KIND_STAFF && $peer->user_id === auth()->id())
@endif
@can('downloadConfig', $peer)
@endcan
@can('block', $peer)
@endcan
@can('update', $peer)
@if ($peer->kind === \App\Models\VpnPeer::KIND_STAFF)
@endif
@endcan
@can('delete', $peer)
@endcan