@extends('layout.layout') @section('content') @php $attendees = collect($status['attendees'] ?? []); $sessionNumber = $session->session_number ?? $session->id; $courseName = $course->course_name_en ?? $status['meeting_name'] ?? 'Course Session'; $totalUsers = $status['participant_count'] ?? $attendees->count(); $onlineUsers = $attendees->filter(fn ($attendee) => $attendee['is_online'] ?? ($status['running'] ?? false))->count(); $talkActiveUsers = $attendees->filter(fn ($attendee) => ($attendee['has_joined_voice'] ?? 'No') === 'Yes' && ($attendee['is_listening_only'] ?? 'No') !== 'Yes')->count(); $webcamActiveUsers = $attendees->filter(fn ($attendee) => ($attendee['has_video'] ?? 'No') === 'Yes')->count(); @endphp @include('components.alert')
| User | Attendance | Mic | Camera | Status |
|---|---|---|---|---|
|
{{ $initials ?: 'U' }}
@if($attendee['profile_url'])
{{ $attendee['name'] }}
@else
{{ $attendee['name'] }}
@endif
|
{{ $formatSeconds($attendee['attendance_total_seconds'] ?? 0) }}
First: {{ $formatDate($attendee['first_joined_at'] ?? null) }}
Last: {{ $formatDate($attendee['last_joined_at'] ?? null) }}
Left: {{ $formatDate($attendee['left_at'] ?? null) }}
|
{{ $micActive ? 'Mic On' : 'Mic Off' }}
{{ $formatSeconds($attendee['mic_total_seconds'] ?? 0) }}
{{ $attendee['mic_open_count'] ?? 0 }} opens
Opened: {{ $formatDate($attendee['mic_opened_at'] ?? null) }}
Closed: {{ $formatDate($attendee['mic_closed_at'] ?? null) }}
|
{{ $cameraActive ? 'Camera On' : 'Camera Off' }}
{{ $formatSeconds($attendee['webcam_total_seconds'] ?? 0) }}
{{ $attendee['webcam_open_count'] ?? 0 }} opens
Opened: {{ $formatDate($attendee['webcam_opened_at'] ?? null) }}
Closed: {{ $formatDate($attendee['webcam_closed_at'] ?? null) }}
|
{{ $isOnline ? 'Online' : 'Offline' }} |
|
No attendees data yet. BigBlueButton sends attendee rows while the meeting is running.
|
||||