@extends('layouts.superadmin') @section('title', 'إدارة طلبات الغياب - الإدارة العليا') @push('styles') @endpush @section('content')
{{-- HERO --}}
إدارة طلبات الغياب — الإدارة العليا

إدارة طلبات الغياب

مراجعة ومتابعة طلبات الغياب @if($filterType == 'moderators') — كل المشرفين @elseif($filterType == 'male_moderators') — المشرفين الذكور @elseif($filterType == 'female_moderators') — المشرفات الإناث @elseif($filterType == 'official_members') — الأعضاء الرسميين @elseif($filterType == 'beta_members') — أعضاء بيتا @elseif($filterType == 'all_members') — كل الأعضاء @else — جميع الطلبات @endif

لوحة متابعة احترافية تحديث حالة الطلب (Pending/Approved/Rejected)
{{-- Profile Card --}}
المراجع
{{ auth()->user()->name }}
الإدارة العليا
{{-- Alerts --}} @if(session('success'))
{{ session('success') }}
@endif @if(session('error'))
{{ session('error') }}
@endif {{-- Stats --}}
@php $statCards = [ ['label'=>'إجمالي المستخدمين', 'val'=>number_format($stats['total_users']), 'icon'=>'fa-solid fa-users', 'tone'=>'bg-cyan-500/12 border-cyan-400/20 text-cyan-200'], ['label'=>'إجمالي الطلبات', 'val'=>number_format($stats['total_requests']), 'icon'=>'fa-solid fa-file-lines', 'tone'=>'bg-white/5 border-white/10 text-white/80'], ['label'=>'قيد المراجعة', 'val'=>number_format($stats['pending']), 'icon'=>'fa-solid fa-hourglass-half', 'tone'=>'bg-amber-500/12 border-amber-400/20 text-amber-200'], ['label'=>'معتمدة', 'val'=>number_format($stats['approved']), 'icon'=>'fa-solid fa-circle-check', 'tone'=>'bg-emerald-500/12 border-emerald-400/20 text-emerald-200'], ['label'=>'مرفوضة', 'val'=>number_format($stats['rejected']), 'icon'=>'fa-solid fa-circle-xmark', 'tone'=>'bg-rose-500/12 border-rose-400/20 text-rose-200'], ]; @endphp @foreach($statCards as $c)
{{ $c['val'] }}
{{ $c['label'] }}
@endforeach
{{-- Filters --}}
بحث وتصفية
تصفية الطلبات
{{-- Filter Type Selection --}}
@php $tabs = [ ['key'=>'all', 'label'=>'جميع الطلبات', 'tone'=>'from-cyan-300 via-cyan-200 to-emerald-200'], ['key'=>'moderators', 'label'=>'كل المشرفين', 'tone'=>'from-violet-300 via-violet-200 to-cyan-200'], ['key'=>'male_moderators', 'label'=>'المشرفين الذكور', 'tone'=>'from-sky-300 via-cyan-200 to-emerald-200'], ['key'=>'female_moderators', 'label'=>'المشرفات الإناث', 'tone'=>'from-pink-300 via-fuchsia-200 to-violet-200'], ['key'=>'all_members', 'label'=>'كل الأعضاء', 'tone'=>'from-emerald-300 via-emerald-200 to-cyan-200'], ['key'=>'official_members', 'label'=>'الأعضاء الرسميين', 'tone'=>'from-indigo-300 via-indigo-200 to-cyan-200'], ['key'=>'beta_members', 'label'=>'أعضاء بيتا', 'tone'=>'from-amber-300 via-orange-200 to-emerald-200'], ]; @endphp @foreach($tabs as $t) {{ $t['label'] }} @endforeach
{{-- Other Filters --}}
{{-- Actions --}}
طباعة التقرير الشامل
إجمالي: {{ $absences->total() }} طلب
{{-- Cards Grid --}} @if($absences->count() > 0)
@foreach ($absences as $absence) @php $userRole = $absence->user->roles->first(); $roleNames = [ 'moderator' => 'مشرف', 'official-member' => 'عضو رسمي', 'member' => 'عضو بيتا' ]; $rolePill = [ 'moderator' => 'bg-violet-500/12 border-violet-400/20 text-violet-200', 'official-member' => 'bg-emerald-500/12 border-emerald-400/20 text-emerald-200', 'member' => 'bg-cyan-500/12 border-cyan-400/20 text-cyan-200', ]; $statusPill = match($absence->status) { 'approved' => 'bg-emerald-500/12 border-emerald-400/20 text-emerald-200', 'pending' => 'bg-amber-500/12 border-amber-400/20 text-amber-200', default => 'bg-rose-500/12 border-rose-400/20 text-rose-200', }; $statusLabel = match($absence->status) { 'approved' => 'معتمد', 'pending' => 'قيد المراجعة', default => 'مرفوض', }; @endphp
{{-- Header --}}
@if($absence->user->avatar) {{ $absence->user->name }} @else
@endif
{{ $absence->user->name }}
{{ $absence->user->email }}
@if($userRole) {{ $roleNames[$userRole->name] ?? $userRole->name }} @endif {{ $statusLabel }}
{{-- Body --}}
من تاريخ
{{ $absence->from_date }}
إلى تاريخ
{{ $absence->to_date }}
@if($absence->reviewedBy)
راجعه
{{ $absence->reviewedBy->name }}
{{ $absence->reviewed_at->format('Y/m/d') }}
@else
لم يتم المراجعة بعد
@endif
{{-- Footer --}}
عرض التفاصيل @if($absence->status == 'pending') @endif
@endforeach
{{-- Pagination --}}
عرض {{ $absences->firstItem() }} إلى {{ $absences->lastItem() }} من أصل {{ $absences->total() }} نتيجة
{{ $absences->withQueryString()->links() }}
@else
لا توجد طلبات غياب
لم يتم العثور على أي طلبات غياب للفلتر المحدد
@endif
{{-- مودال تحديث حالة الطلب (Socratic) --}} {{-- Success Alert --}} {{-- Error Alert --}} @endsection