{{-- Polling pauses while a config is on screen: every poll re-renders this page, and that would put the private key into an HTTP response every five seconds. Traffic figures can wait the minute someone needs to copy a key. --}}
{{ __('vpn.subtitle') }}
{{ __('vpn.hub_incomplete_title') }}
{{ __('vpn.hub_incomplete_body') }}
{{ __('vpn.config_once') }}
{{ $newConfig }}
{{ __('vpn.copy_failed') }}
{{ __('vpn.qr_hint') }}
{{ __('vpn.empty') }}
@else| {{ __('vpn.peer') }} | {{ __('vpn.owner') }} | {{ __('vpn.address') }} | {{ __('vpn.traffic') }} | {{ __('vpn.handshake') }} | {{ __('vpn.status') }} | {{ __('vpn.actions') }} |
|---|---|---|---|---|---|---|
|
{{ $peer->name }}
@if ($peer->host)
|
@if ($peer->owner) {{ $peer->owner->name }} @if ($peer->user_id === auth()->id()) {{ __('vpn.you') }} @endif @else {{ $peer->host ? __('vpn.host_peer') : __('vpn.no_owner') }} @endif |
{{ $peer->allowed_ip }}
@if ($peer->endpoint)
{{ $peer->endpoint }}
@endif
|
↓ {{ \App\Support\Bytes::human($peer->rx_bytes) }} ↑ {{ \App\Support\Bytes::human($peer->tx_bytes) }} |
{{ $peer->last_handshake_at?->diffForHumans() ?? __('vpn.never') }} | {{ __('vpn.status_'.$status) }} |
@can('downloadConfig', $peer)
@endcan
@can('block', $peer)
@endcan
@can('delete', $peer)
@endcan
|