{{-- Lokasi File: resources/views/guru/dashboard.blade.php Deskripsi: Dashboard Utama Guru dengan Card Jurnal Interaktif & AI Assistant --}} @php use Illuminate\Support\Facades\Storage; use Carbon\Carbon; use Illuminate\Support\Str; // ======================================================================== // HELPER LOGIC: STATUS SESI MENGAJAR // ======================================================================== if (!function_exists('getStatusAbsensi')) { // PERBAIKAN: Hapus parameter $sesiLookup, cukup terima $jadwal saja function getStatusAbsensi($jadwal) { // Mengambil data sesi hari ini dari relasi (Eager Loaded di Controller) $sesi = $jadwal->sesiJurnalHariIni; $jamSekarang = Carbon::now(); $jamJadwalMulai = Carbon::parse($jadwal->jam_mulai); $jamJadwalSelesai = Carbon::parse($jadwal->jam_selesai); // Default State (Belum Mulai) $data = [ 'status_header' => 'Jadwal', 'badge_class' => 'badge-soft-secondary', 'row_opacity' => '1', 'is_active' => false, 'btn_action' => 'wait', // wait, start, absensi, report, disabled 'btn_text' => 'Belum Mulai', 'btn_class' => 'btn-light text-muted', 'btn_icon' => 'far fa-clock' ]; if ($sesi) { // --- KONDISI 1: SESI SUDAH ADA (GURU SUDAH TAP-IN) --- if ($sesi->status_sesi == 'menunggu_absensi') { // Tahap 1: Absensi $data['status_header'] = 'Menunggu Absensi'; $data['badge_class'] = 'badge-soft-warning'; $data['is_active'] = true; $data['btn_action'] = 'absensi'; $data['btn_text'] = 'Lanjut Absen'; $data['btn_class'] = 'btn-warning text-dark'; $data['btn_icon'] = 'fas fa-user-check'; } elseif ($sesi->status_sesi == 'berlangsung') { // Tahap 2: Mengajar (Sudah Absen) $data['status_header'] = 'Sedang Mengajar'; $data['badge_class'] = 'badge-soft-indigo pulse-animation'; $data['is_active'] = true; $data['btn_action'] = 'report'; $data['btn_text'] = 'Isi Jurnal'; $data['btn_class'] = 'btn-info text-white'; $data['btn_icon'] = 'fas fa-file-signature'; } elseif ($sesi->status_sesi == 'laporan_selesai') { // Tahap 3: Selesai $data['status_header'] = 'Selesai'; $data['badge_class'] = 'badge-soft-success'; $data['btn_action'] = 'detail'; $data['btn_text'] = 'Lihat Detail'; $data['btn_class'] = 'btn-outline-success'; $data['btn_icon'] = 'fas fa-check-circle'; $data['row_opacity'] = '0.7'; } } else { // --- KONDISI 2: SESI BELUM ADA (BELUM TAP-IN) --- if ($jamSekarang->isAfter($jamJadwalSelesai)) { // Telat Parah (Sudah lewat jam selesai) $data['status_header'] = 'Terlewat'; $data['badge_class'] = 'badge-soft-danger'; $data['btn_action'] = 'disabled'; $data['btn_text'] = 'Tidak Hadir'; $data['btn_class'] = 'btn-light text-danger'; $data['btn_icon'] = 'fas fa-times-circle'; $data['row_opacity'] = '0.6'; } elseif ($jamSekarang->between($jamJadwalMulai->subMinutes(30), $jamJadwalSelesai)) { // Siap Dimulai (Range Masuk: 30 menit sebelum s/d jam selesai) $isLate = $jamSekarang->gt($jamJadwalMulai); $data['status_header'] = $isLate ? 'Terlambat Masuk' : 'Siap Dimulai'; $data['badge_class'] = $isLate ? 'badge-soft-warning' : 'badge-soft-primary'; $data['btn_action'] = 'start'; $data['btn_text'] = 'Mulai Sesi'; $data['btn_class'] = 'btn-primary-modern'; $data['btn_icon'] = 'fas fa-play'; } else { // Masih lama (Belum waktunya) $data['status_header'] = 'Menunggu'; $data['badge_class'] = 'badge-soft-secondary'; $data['btn_action'] = 'wait'; } } return $data; } } @endphp @extends('adminlte::page') @section('title', 'Dashboard Guru | SmartSchool') @push('css') @endpush @section('content') {{-- HEADER: GREETING --}}
Siap menginspirasi siswa hari ini?
Analisis performa mengajar berbasis data real-time
Sedang berpikir...
Tidak ada jadwal mengajar hari ini.
{!! Str::limit(strip_tags($laporan->materi_pembelajaran), 150) !!}
Data jurnal mengajar akan muncul di sini.