{{-- resources/views/livewire/guru-bk/dashboard.blade.php --}} {{-- Pastikan TailwindCSS & Bootstrap Icons sudah ada di layout --}}
{{-- Header + Range --}}

Dashboard Guru BK

Ringkasan konseling online, bimbingan offline, dan pelanggaran

Rentang: @foreach (['7'=>'7H','30'=>'30H','90'=>'90H','365'=>'1T','all'=>'Semua'] as $k => $label) @endforeach
{{-- Quick Links --}}
Kelola Konseling
Lihat & tindaklanjuti pengajuan konseling
Bimbingan Offline
Jadwalkan & catat hasil bimbingan
Pelanggaran
Pantau dan update status pelanggaran
Tips
Gunakan rentang waktu untuk fokus periode tertentu.
{{-- Stat Cards (Konseling & Offline) --}}
{{-- Konseling: total & status --}}
Konseling (Online)
{{ number_format($totalKonseling) }}
Diproses
@php $sumK = max(1, $konselingDiproses + $konselingSelesai); @endphp
{{ $konselingDiproses }}
Selesai
{{ $konselingSelesai }}
{{ $range === 'all' ? 'Semua waktu' : $range.' hari terakhir' }}
{{-- Offline: jadwalkan vs selesai --}}
Bimbingan Offline
{{ number_format($offlineDijadwalkan + $offlineSelesai) }}
@php $sumO = max(1, $offlineDijadwalkan + $offlineSelesai); @endphp
Dijadwalkan
{{ $offlineDijadwalkan }}
Selesai
{{ $offlineSelesai }}
{{ $range === 'all' ? 'Semua waktu' : $range.' hari terakhir' }}
{{-- Pelanggaran: total + jenis --}}
Pelanggaran
{{ number_format($totalPelanggaran) }}
@php $jr = $byJenis['ringan'] ?? 0; $js = $byJenis['sedang'] ?? 0; $jb = $byJenis['berat'] ?? 0; $sumJenis = max(1, $jr + $js + $jb); @endphp
Ringan
{{ $jr }}
Sedang
{{ $js }}
Berat
{{ $jb }}
{{ $range === 'all' ? 'Semua waktu' : $range.' hari terakhir' }}
{{-- Status Tindak Lanjut Pelanggaran --}}
Status Pelanggaran
@php $sd = $byStatus['diproses'] ?? 0; $ss = $byStatus['selesai'] ?? 0; $sumSt = max(1, $sd + $ss); @endphp
Diproses
{{ $sd }}
Selesai
{{ $ss }}
Mengikuti rentang waktu
{{-- Tren Pelanggaran 6 Bulan
Pelanggaran — 6 Bulan Terakhir
Puncak: {{ $trendMax }}
@foreach ($trend as $t) @php $h = $trendMax ? max(4, round(($t['count'] / $trendMax) * 100)) : 4; @endphp
{{ $t['label'] }}
{{ $t['count'] }}
@endforeach
--}} {{-- 3 Kolom: Terbaru & Jadwal --}}
{{-- Konseling Terbaru --}}
Konseling Terbaru
Lihat semua
@forelse($latestKonseling as $row) @php $hk = $row->hasilKonselings->sortByDesc('created_at')->first(); @endphp
{{ $row->siswa->pengguna->nama ?? '—' }} {{ $row->kategori->nama ?? '—' }}
{{ $row->judul }}
@if($hk) {{ ucfirst($hk->status) }} Pertemuan: {{ optional($hk->tanggal_pertemuan)->format('d M Y H:i') }} @else Belum ada tindak lanjut @endif {{ optional($row->created_at)->format('d M Y H:i') }}
@empty
Belum ada data.
@endforelse
{{-- Bimbingan Offline Terbaru --}}
Bimbingan Offline Terbaru
Lihat semua
@forelse($latestOffline as $row)
{{ ucfirst($row->status) }}
{{ $row->siswa->nama ?? '—' }} {{ $row->siswa->kelas->nama ?? '—' }}
{{ $row->topik ?? '(Tanpa topik)' }}
{{ optional($row->tanggal)->format('d M Y H:i') }}
@empty
Belum ada data.
@endforelse
{{-- Pelanggaran Terbaru + Upcoming Week --}}
Pelanggaran Terbaru
Lihat semua
@forelse($latestPelanggaran as $row)
{{ ucfirst($row->jenis) }}
{{ $row->siswa->nama ?? '—' }} {{ $row->siswa->kelas->nama ?? '—' }}
{{ $row->deskripsi }}
{{ optional($row->created_at)->format('d M Y H:i') }}
{{ ucfirst($row->status) }}
@empty
Belum ada data.
@endforelse
Jadwal 7 Hari Ke Depan
@forelse($upcomingWeek as $r)
{{ $r->siswa->nama ?? '—' }}
{{ optional($r->tanggal)->format('d M Y H:i') }}
{{ $r->siswa->kelas->nama ?? '—' }} • {{ $r->topik ?? '(Tanpa topik)' }}
@empty
Tidak ada jadwal.
@endforelse