@php $stats = $this->stats; $counts = $this->counts; $rows = $this->rows; @endphp {{-- Polls on its own so the page keeps up with the network without anybody pressing anything; the Refresh button is for when they want it now. --}}
{{ __('Network') }} {{ __('Live sessions') }}

{{ __('Currently') }} {{ __('online.') }}

{{ __('Everyone currently connected to your network, updated live as sessions change.') }}

{{ __('Refreshed :n ago', ['n' => $this->secondsSinceRefresh() < 60 ? $this->secondsSinceRefresh().'s' : round($this->secondsSinceRefresh() / 60).'m']) }}
{{ __('Online') }} {{ number_format($stats['online']) }} {{ __('currently connected') }}
{{ __('Download') }} {{ bytes_human($stats['down']) }} {{ __('across open sessions') }}
{{ __('Upload') }} {{ bytes_human($stats['up']) }} {{ __('across open sessions') }}
{{ __('Total traffic') }} {{ bytes_human($stats['total']) }} {{ __('in + out · this session') }}
@foreach ([ 'all' => [__('All'), $counts['all']], 'pppoe' => [__('PPPoE'), $counts['pppoe']], 'hotspot' => [__('Hotspot'), $counts['hotspot']], ] as $key => [$label, $count]) @endforeach
@forelse ($rows as $row) url) x-data x-on:click=" if ($event.target.closest('a, button, input, label')) return; if (window.getSelection().toString() !== '') return; $el.querySelector('[data-row-link]').click(); " @endif> @empty @endforelse
{{ __('Subscriber') }} {{ __('Down · up') }} {{ __('Device · IP') }} {{ __('Router') }} {{ __('Online for') }} {{ __('Expiry') }}
@if ($row->url) {{ $row->label }} @else {{ $row->label }} @endif {{ $row->username }} @if ($row->down === null) {{-- PPPoE counters live on the interface, not the session — a zero here would read as "used nothing" rather than "not measured". --}} @else {{ bytes_human($row->down) }} · {{ bytes_human($row->up) }} @endif {{ $row->mac ?: '—' }} {{ $row->ip }} {{ $row->router?->router_name ?: '—' }} {{ $row->router?->managementAddress() }} {{ \Carbon\CarbonInterval::seconds($row->online_seconds) ->cascade()->forHumans(['short' => true, 'parts' => 2]) }} @if ($row->expires_at) {{ $row->expires_at->format('M j, h:i A') }} {{ $row->expires_at->isPast() ? __('expired') : __('in :when', ['when' => $row->expires_at->diffForHumans(null, true, true)]) }} @else @endif @if ($row->url) @endif
@if ($search !== '') {{ __('Nobody online matches ":term".', ['term' => $search]) }} @else {{ __('Nobody is connected right now.') }} @endif