@extends('layout.layout') @section('content') @include('components.alert') @php $pageTitle = request('course_id') ? 'Course Sessions' : 'All Sessions'; $pageDescription = request('course_id') ? 'Review and manage the sessions linked to the selected course.' : 'Review today\'s sessions, check the upcoming queue, and handle feedback or urgent actions quickly.'; $showAdminFilter = (Auth::user()->jobTitle && Auth::user()->jobTitle->slug != 'admin') || Auth::user()->hasRole('Super admin'); $isTrackSelected = request('schedule_type') === 'track'; $isCourseSelected = request('schedule_type') === 'course'; $hideCourseFilters = request('course_id'); @endphp
@if (request('course_id')) Back to Courses @endif {{-- @unless (request('course_id')) --}} {{--
Filters
@endunless --}}
Today's Sessions
@foreach ($todayCourses as $course) @php $scheduled = $course->staffScheduled; $teacher = sessionTeacher($course, $scheduled); $manager = $teacher->manager ?? null; $feedback = $feedbacksBySession->get($course->id); $teacherName = staffDisplayName($teacher); $teacherAvailability = $teacher && $course->session_date ? $teacher->getAvailabilityStatusForDate($course->session_date, false) : ['type' => null, 'label' => null]; $teacherAvailabilityType = $teacherAvailability['type'] ?? null; $teacherAvailabilityLabel = match ($teacherAvailabilityType) { 'leave' => 'Leave Session', 'holiday' => 'Holiday Session', default => null, }; $managerName = staffDisplayName($manager); $trackOrProduct = $scheduled->schedule_type === 'track' ? $scheduled->track->name_en ?? 'N/A' : $scheduled->academyProduct->name_en ?? 'N/A'; $levelLabel = $scheduled->trackLevel->name_en ?? '-'; $groupLabel = $scheduled->trackType->name ?? 'N/A'; $groupPill = $scheduled->trackType?->name === 'Group' ? 'success' : 'warn'; $joinUrl = $scheduled->hasPaidStudentInvoice() ? route('courses.sessions.bbb.join', ['course' => $scheduled->id, 'session' => $course->id]) : null; $courseStudents = $scheduled->courseStudent; $studentCount = $courseStudents->count(); $firstStudentId = $studentCount > 0 ? $courseStudents->first()->student_id : null; $studentNoShowUrgents = $course->urgents->filter( fn($urgent) => $urgent->message === "Student Didn't Show-Up", ); $reportedStudentIds = $studentNoShowUrgents ->pluck('student_id') ->filter() ->map(fn($id) => (int) $id) ->all(); $availableStudents = $courseStudents ->filter( fn($courseStudent) => !in_array( (int) $courseStudent->student_id, $reportedStudentIds, true, ), ) ->values(); $remainingStudentCount = $availableStudents->count(); $singleStudentNoShowSent = $studentCount === 1 && $remainingStudentCount === 0; $isFinalTrackSession = $scheduled->schedule_type === 'track' && (int) $course->session_number === (int) ($scheduled->session ?? $course->session_number); $existingSubSession = $course->subSessions->first(); $subSessionTypeLabel = match ($existingSubSession?->type) { 'extra_session' => 'Extra Session', 'gift_call' => 'Gift Call', 'cover_up' => 'Cover Up', default => null, }; $primaryAssignment = $scheduled->courseAdmins->first(); $adminStaff = $primaryAssignment?->admin?->staff; $teamLeader = $adminStaff?->manager; $adminName = $primaryAssignment ? ($primaryAssignment->admin?->full_name ?: trim(($adminStaff?->first_name ?? '') . ' ' . ($adminStaff?->last_name ?? ''))) : 'N/A'; $teamLeaderName = $teamLeader ? ($teamLeader->full_name ?: trim(($teamLeader->first_name ?? '') . ' ' . ($teamLeader->last_name ?? ''))) : 'N/A'; @endphp {{ $course->id }} Session {{ $course->session_number }} @if ($subSessionTypeLabel)
Sub Session: {{ $subSessionTypeLabel }}
@endif
@foreach ($courseStudents as $student) {{ $student->student->first_name }} {{ $student->student->last_name }} @endforeach
@if ($primaryAssignment && $adminStaff) {{ $adminName ?: 'N/A' }} @else N/A @endif @if ($primaryAssignment && $teamLeader) {{ $teamLeaderName ?: 'N/A' }} @else N/A @endif {{ $teacherName }} @if ($teacherAvailabilityLabel)
{{ $teacherAvailabilityLabel }}
@endif {{ $managerName }} {{ $trackOrProduct }} {{ $levelLabel }} {{ $course->session_date }} {{ \Carbon\Carbon::parse($course->start_time)->format('h:i A') }} {{ $groupLabel }}
@if (!$feedback) @else @endif @php $onSpotSent = $course->urgents->contains( fn($u) => str_contains($u->message ?? '', 'On-Spot Absence'), ); @endphp @if (filled($joinUrl)) @else @endif @php $teacherNoShowSent = $course->urgents->contains( fn($u) => str_contains($u->message ?? '', "Teacher Didn't Show-Up"), ); @endphp @if ($studentCount > 1) @else @endif @if ($course->subSessions->count() > 0) @endif
@endforeach
Upcoming Sessions
@foreach ($upcomingCourses as $course) @php $scheduled = $course->staffScheduled; $teacher = sessionTeacher($course, $scheduled); $manager = $teacher->manager ?? null; $teacherName = staffDisplayName($teacher); $teacherAvailability = $teacher && $course->session_date ? $teacher->getAvailabilityStatusForDate($course->session_date, false) : ['type' => null, 'label' => null]; $teacherAvailabilityType = $teacherAvailability['type'] ?? null; $teacherAvailabilityLabel = match ($teacherAvailabilityType) { 'leave' => 'Leave Session', 'holiday' => 'Holiday Session', default => null, }; $managerName = staffDisplayName($manager); $trackOrProduct = $scheduled->schedule_type === 'track' ? $scheduled->track->name_en ?? 'N/A' : $scheduled->academyProduct->name_en ?? 'N/A'; $levelLabel = $scheduled->trackLevel->name_en ?? '-'; $groupLabel = $scheduled->trackType->name ?? 'N/A'; $groupPill = $scheduled->trackType?->name === 'Group' ? 'success' : 'warn'; $primaryAssignment = $scheduled->courseAdmins->first(); $adminStaff = $primaryAssignment?->admin?->staff; $teamLeader = $adminStaff?->manager; $adminName = $primaryAssignment ? ($primaryAssignment->admin?->full_name ?: trim(($adminStaff?->first_name ?? '') . ' ' . ($adminStaff?->last_name ?? ''))) : 'N/A'; $teamLeaderName = $teamLeader ? ($teamLeader->full_name ?: trim(($teamLeader->first_name ?? '') . ' ' . ($teamLeader->last_name ?? ''))) : 'N/A'; @endphp {{ $course->id }} Session {{ $course->session_number }}
@foreach ($scheduled->courseStudent as $student) {{ $student->student->first_name }} {{ $student->student->last_name }} @endforeach
@if ($primaryAssignment && $adminStaff) {{ $adminName ?: 'N/A' }} @else N/A @endif @if ($primaryAssignment && $teamLeader) {{ $teamLeaderName ?: 'N/A' }} @else N/A @endif {{ $teacherName }} @if ($teacherAvailabilityLabel)
{{ $teacherAvailabilityLabel }}
@endif {{ $managerName }} {{ $trackOrProduct }} {{ $levelLabel }} {{ $course->session_date }} {{ \Carbon\Carbon::parse($course->start_time)->format('h:i A') }} {{ $groupLabel }} @if (filled($joinUrl)) @else @endif @endforeach
@endsection @push('styles') @endpush @push('scripts') @endpush