{{-- resources/views/admin/kegiatan/data/dashboard.blade.php --}} @extends('layouts.app') @section('content') @php // -- Day-tab calculations -- $isoDay = $selectedDate->dayOfWeekIso; $monOfWeek = $selectedDate->copy()->subDays($isoDay - 1); $hariMapTab = [ 'Senin' => 'Senin','Selasa' => 'Selasa','Rabu' => 'Rabu', 'Kamis' => 'Kamis','Jumat' => 'Jumat','Sabtu' => 'Sabtu','Minggu' => 'Ahad' ]; $activeTab = $hariMapTab[$selectedDate->locale('id')->isoFormat('dddd')] ?? 'Senin'; $todayHari = $hariMapTab[now()->locale('id')->isoFormat('dddd')] ?? 'Senin'; $tabHari = [ ['nama' => 'Senin', 'offset' => 0], ['nama' => 'Selasa', 'offset' => 1], ['nama' => 'Rabu', 'offset' => 2], ['nama' => 'Kamis', 'offset' => 3], ['nama' => 'Jumat', 'offset' => 4], ['nama' => 'Sabtu', 'offset' => 5], ['nama' => 'Minggu', 'offset' => 6], ]; $kelompokGroups = $kelasList->groupBy('kelompok.nama_kelompok'); @endphp {{-- ============================================================ --}} {{-- PAGE HEADER --}} {{-- ============================================================ --}}

{{ $selectedDate->locale('id')->isoFormat('dddd, D MMMM Y') }}

@if(session('success'))
{{ session('success') }}
@endif {{-- ============================================================ --}} {{-- 1. KPI CARDS --}} {{-- ============================================================ --}}
{{ $totalKegiatanHariIni }}
Total Kegiatan
{{ abs($comparisonTotal) }} vs minggu lalu
{{ $kegiatanSelesai }}
Kegiatan Selesai
dari {{ $totalKegiatanHariIni }} kegiatan
{{ $avgKehadiran }}%
Rata-rata Kehadiran
{{ abs($comparisonAvg) }}% vs minggu lalu
{{ $kegiatanBerlangsung }}
Sedang Berlangsung
@if($kegiatanBerlangsung > 0)
Live Now
@else
Tidak ada kegiatan
@endif
{{-- ============================================================ --}} {{-- 2. DAY TABS (Senin - Ahad) --}} {{-- ============================================================ --}}
@foreach($tabHari as $tab) @php $tabDate = $monOfWeek->copy()->addDays($tab['offset']); $tabDateStr = $tabDate->format('Y-m-d'); $isActive = ($activeTab === $tab['nama']); $isToday = ($todayHari === $tab['nama'] && now()->format('W') === $selectedDate->format('W')); $params = array_merge( request()->only(['kelas', 'kategori_id']), ['tanggal' => $tabDateStr] ); @endphp {{ $tab['nama'] }} {{ $tabDate->format('d/m') }} @endforeach
{{-- ======================================================== --}} {{-- 3. FILTER BAR (Tanggal + Kategori + Kelas + Aksi) --}} {{-- ======================================================== --}}
{{--
Kategori Semua Jadwal
--}}
{{-- ============================================================ --}} {{-- 4. INSIGHTS PANEL --}} {{-- ============================================================ --}} @if(count($insights) > 0)

Insight Hari Ini

@foreach($insights as $insight)
{{ $insight['message'] }}
{{ $insight['detail'] }}
@if($insight['action_url']) {{ $insight['action_text'] }} @endif
@endforeach
@endif {{-- ============================================================ --}} {{-- 5. MAIN LAYOUT: Kegiatan Cards (2/3) + Heatmap (1/3) --}} {{-- ============================================================ --}}
{{-- LEFT: Kegiatan Cards --}}
@if($kegiatanHariIni->count() > 0)
@foreach($kegiatanHariIni as $kegiatan)

{{ $kegiatan->nama_kegiatan }}

{{ date('H:i', strtotime($kegiatan->waktu_mulai)) }} – {{ date('H:i', strtotime($kegiatan->waktu_selesai)) }} {{ $kegiatan->kategori->nama_kategori }} @if($kegiatan->materi) {{ Str::limit($kegiatan->materi, 40) }} @endif @if($kegiatan->kelasKegiatan->isEmpty()) Kegiatan Umum @else {{ $kegiatan->kelasKegiatan->pluck('nama_kelas')->implode(', ') }} @endif
@if($kegiatan->status_kegiatan == 'belum') Belum Dimulai @elseif($kegiatan->status_kegiatan == 'berlangsung') Berlangsung @else Selesai @endif
{{-- Progress Bar --}} @php $persen = $kegiatan->persen_kehadiran; $pClass = $persen >= 85 ? 'p-success' : ($persen >= 70 ? 'p-warning' : ($persen >= 50 ? 'p-orange' : 'p-danger')); $denominator = $kegiatan->total_absensi > 0 ? $kegiatan->total_absensi : $totalSantriAktif; @endphp
Kehadiran {{ $kegiatan->total_hadir }}/{{ $denominator }} ({{ $persen }}%)
{{ $persen }}%
{{-- Actions --}}
@endforeach
@else

Tidak Ada Kegiatan Dijadwalkan

Tidak ada kegiatan untuk {{ $selectedKelasId ? 'kelas ini' : 'hari ini' }} pada {{ $selectedDate->locale('id')->isoFormat('dddd, D MMMM Y') }}

Buat Kegiatan Baru
@endif
{{-- RIGHT: Heatmap Calendar --}}
Kalender Kehadiran
{{-- Month/Year Selector --}}
{{ now()->locale('id')->isoFormat('MMMM Y') }}
Sen
Sel
Rab
Kam
Jum
Sab
Ahd
@foreach($heatmapData as $day)
{{ \Carbon\Carbon::parse($day['date'])->format('j') }}
@endforeach
Legend:
>90%
80-90%
70-80%
<70%
No data
{{-- ============================================================ --}} {{-- 6. MODAL DETAIL ABSENSI (AJAX) --}} {{-- ============================================================ --}} {{-- ============================================================ --}} {{-- JAVASCRIPT --}} {{-- ============================================================ --}} @endsection