@extends('layout.layout') @section('content') @include('components.alert')
@can('student') Add New Request @endcan
Request Filters

Search by subject, filter request type, or narrow results by related category.

@if (request('search') || request('type') || request('related_to')) Clear Filters @endif
Clear
Requests List

Student request records including assignees, department, subject, status, and actions.

{{ $rows->total() ?? $rows->count() }} Request(s)
@if ($rows->isNotEmpty())
@foreach ($rows as $row) @php $courseAssignedAdmin = $row->course?->admin_assigned_students ?->firstWhere('student_id', $row->created_by) ?->admin; $displayAdmin = $row->admin ?? $courseAssignedAdmin; $storedSupervisorName = $row->supervisor?->full_name ?? getSupervisorFromSessionId($row->session_id) ?? $row->course?->staff?->manager?->full_name ?? trim(($row->course?->staff?->manager?->first_name ?? '') . ' ' . ($row->course?->staff?->manager?->last_name ?? '')); $instructorManagerName = $row->instructor?->manager?->full_name ?? trim(($row->instructor?->manager?->first_name ?? '') . ' ' . ($row->instructor?->manager?->last_name ?? '')); $teamLeaderName = $displayAdmin?->staff?->manager?->full_name ?? trim(($displayAdmin?->staff?->manager?->first_name ?? '') . ' ' . ($displayAdmin?->staff?->manager?->last_name ?? '')); $relatedToLabel = $row->related_to ? ucfirst($row->related_to) : ($row->type === 'refund' ? ($row->course?->course_name_en ?? $row->course?->course_name_ar ?? 'Course') : '-'); $latestEscalation = $row->escalationRequests->sortByDesc('created_at')->first(); $escalationStatusClass = match ($latestEscalation?->status) { 'pending' => 'ui-pill--warn', 'assigned', 'in_progress' => 'ui-pill--info', 'resolved', 'closed' => 'ui-pill--success', 'rejected' => 'ui-pill--danger', default => 'ui-pill--neutral', }; @endphp @endforeach
ID Student Name Admin Department Supervisor Team Leader Subject Type Status Escalation Note Related To Created Date Actions
#{{ $row->id }} @if ($row->creator)
{{ strtoupper(substr($row->creator->first_name ?? 'S', 0, 1) . substr($row->creator->last_name ?? '', 0, 1)) }}
{{ trim(($row->creator->first_name ?? '') . ' ' . ($row->creator->last_name ?? '')) }}
@else - @endif
{{ $displayAdmin?->full_name ?: '-' }} {{ $row->requestType?->targetDepartment?->name ?? '-' }} {{ $storedSupervisorName ?: ($instructorManagerName ?: '-') }} {{ $teamLeaderName ?: '-' }}
{{ $row->subject }}
{{ ucfirst($row->type) }} @php $statusClass = match ($row->status) { 'pending' => 'ui-pill--warn', 'approved', 'done', 'closed', 'accepted' => 'ui-pill--success', 'rejected', 'cancelled' => 'ui-pill--danger', default => 'ui-pill--neutral', }; @endphp {{ ucfirst($row->status) }} @if ($row->escalation_requests_count > 0)
{{ $latestEscalation ? ucfirst(str_replace('_', ' ', $latestEscalation->status)) : 'Escalated' }}
@else - @endif
{{ $row->status_note ?: '-' }}
@if ($relatedToLabel !== '-') {{ $relatedToLabel }} @else - @endif {{ $row->created_at?->format('d M Y, h:i A') }}
@can('student') @if (Auth::id() === $row->created_by)
@csrf @method('DELETE')
@endif @endcan
@if ($rows->hasPages())
{{ $rows->appends(request()->except('page'))->links('pagination::bootstrap-5') }}
@endif @else
No student requests found.

Start by creating a new request or changing your filters.

@can('student') Create Request @endcan
@endif
@endsection @push('scripts') @endpush @push('styles') @endpush