@extends('layouts.adminlte') @section('title', 'Dashboard Orang Tua') @section('content_header')

Dashboard

Ringkasan kehadiran dan aktivitas anak Anda.

@stop @section('content')
@if(!$parentRecord) {{-- KASUS: AKUN BELUM TERHUBUNG --}}

Akun Belum Terhubung

Mohon hubungi Admin Sekolah atau Wali Kelas untuk menghubungkan akun Anda dengan data siswa.

Hubungi Admin
@else {{-- WELCOME BANNER --}}

Selamat Datang, Bapak/Ibu {{ $parentRecord->name }}!

Pantau kehadiran putra/putri Anda secara realtime melalui dashboard ini.

@foreach($parentRecord->students as $student) {{ $student->name }} ({{ $student->class->name ?? 'N/A' }}) @endforeach
Illustration
{{-- 💡 WIDGET WALI KELAS --}} @if($parentRecord->students->isNotEmpty())
@foreach($parentRecord->students as $student) @if($student->class && $student->class->homeroomTeacher && $student->class->homeroomTeacher->user)
{{-- Avatar Wali Kelas --}}
@if($student->class->homeroomTeacher->user->profile_photo_path) @else @endif

Wali Kelas {{ $student->class->name }}

{{ $student->class->homeroomTeacher->user->name }}

{{ $student->name }}

{{-- Tombol WA --}} @if($student->class->homeroomTeacher->user->phone_number ?? $student->class->homeroomTeacher->user->no_hp) @php // Normalisasi nomor HP (08xx -> 628xx) $phone = $student->class->homeroomTeacher->user->phone_number ?? $student->class->homeroomTeacher->user->no_hp; if(substr($phone, 0, 1) == '0') { $phone = '62' . substr($phone, 1); } $message = "Assalamu'alaikum, saya orang tua dari " . $student->name . " kelas " . $student->class->name . "..."; @endphp Hubungi Guru @else No. HP tidak tersedia @endif
@endif @endforeach
@endif {{-- 💡 BAGIAN PENGUMUMAN --}} @if(isset($announcements) && $announcements->isNotEmpty())

Pengumuman Terbaru

@foreach($announcements as $announcement)
{{ $announcement->created_at->diffForHumans() }} @if($announcement->target_type == 'class') Kls {{ $announcement->class->name ?? '' }} @endif
{{ $announcement->title }}

{{ $announcement->content }}

@endforeach
@else {{-- 💡 EMPTY STATE PENGUMUMAN --}}

Belum Ada Pengumuman

Saat ini belum ada informasi atau pengumuman baru dari sekolah.

@endif {{-- BAGIAN 1: STATISTIK CARD --}}

Statistik Kehadiran

@php $statCards = [ ['label' => 'Terlambat', 'count' => $totalSIA['Terlambat'] ?? 0, 'icon' => 'fas fa-clock', 'color' => 'from-amber-400 to-orange-500', 'bg' => 'bg-amber-50', 'text' => 'text-amber-600'], ['label' => 'Sakit', 'count' => $totalSIA['Sakit'] ?? 0, 'icon' => 'fas fa-procedures', 'color' => 'from-blue-400 to-cyan-500', 'bg' => 'bg-blue-50', 'text' => 'text-blue-600'], ['label' => 'Izin', 'count' => $totalSIA['Izin'] ?? 0, 'icon' => 'fas fa-envelope-open-text', 'color' => 'from-indigo-400 to-purple-500', 'bg' => 'bg-indigo-50', 'text' => 'text-indigo-600'], ['label' => 'Alpha', 'count' => $totalSIA['Alpha'] ?? 0, 'icon' => 'fas fa-times-circle', 'color' => 'from-red-400 to-rose-500', 'bg' => 'bg-red-50', 'text' => 'text-red-600'], ]; @endphp @foreach($statCards as $card)

{{ $card['label'] }}

{{ $card['count'] }}

@endforeach
{{-- BAGIAN 2: RIWAYAT ABSENSI --}}

Riwayat Absensi (30 Hari)

Lihat Semua
@forelse($absences as $absence) @empty @endforelse
Siswa Tanggal Masuk Pulang Status Aksi
{{ $absence->student->name ?? 'N/A' }}
{{ $absence->student->class->name ?? 'N/A' }}
{{ $absence->attendance_time->translatedFormat('d F Y') }} {{ $absence->attendance_time->format('H:i') }} @if($absence->checkout_time) {{ $absence->checkout_time->format('H:i') }} @else - @endif @php $statusStyles = [ 'Hadir' => 'bg-green-100 text-green-700', 'Terlambat' => 'bg-amber-100 text-amber-700', 'Absen' => 'bg-red-100 text-red-700', 'Izin' => 'bg-blue-100 text-blue-700', 'Sakit' => 'bg-purple-100 text-purple-700', ]; $style = $statusStyles[$absence->status] ?? 'bg-gray-100 text-gray-600'; // Override jika sudah pulang if($absence->checkout_time) { $style = 'bg-teal-100 text-teal-700'; } @endphp {{ $absence->status }}{{ $absence->checkout_time ? ' (Selesai)' : '' }}
Belum ada riwayat absensi dalam 30 hari terakhir.
@endif
@stop @section('css') @stop @section('js') @stop