@extends('layouts.app') @section('title', 'Input Presensi') @section('content')
{{-- Header --}}

Input Presensi Per Kelas

Pilih kelas, tanggal, dan isi kehadiran per jam pelajaran

{{-- Pilih Kelas + Tanggal --}}
@if($errors->any() && $students->count() > 0)

Gagal menyimpan presensi

    @foreach($errors->all() as $err)
  • {{ $err }}
  • @endforeach
@endif @if($students->count() > 0)
@csrf {{-- Info bar --}}
{{ $students->count() }} siswa {{ \Carbon\Carbon::parse($date)->translatedFormat('l, d F Y') }} Kelas {{ $className }}
{{-- Grid table --}}
@foreach($lessonHours as $lh) @endforeach @foreach($students as $s) {{-- Student name --}} {{-- Per-row bulk buttons --}} {{-- Lesson hours cells --}} @foreach($lessonHours as $lh) @php $key = $s->id . '-' . $lh; $currentStatus = isset($existing[$key]) ? $existing[$key]->status : 'hadir'; $statusColors = [ 'hadir' => 'bg-emerald-100 border-emerald-300 text-emerald-700', 'sakit' => 'bg-purple-100 border-purple-300 text-purple-700', 'izin' => 'bg-blue-100 border-blue-300 text-blue-700', 'alpha' => 'bg-red-100 border-red-300 text-red-700', 'terlambat' => 'bg-yellow-100 border-yellow-300 text-yellow-700', ]; $statusLabels = [ 'hadir' => 'H', 'sakit' => 'S', 'izin' => 'I', 'alpha' => 'A', 'terlambat' => 'T', ]; $statusFull = [ 'hadir' => 'Hadir', 'sakit' => 'Sakit', 'izin' => 'Izin', 'alpha' => 'Alpha', 'terlambat' => 'Terlambat', ]; $nextStatus = [ 'hadir' => 'sakit', 'sakit' => 'izin', 'izin' => 'alpha', 'alpha' => 'terlambat', 'terlambat' => 'hadir', ]; @endphp @endforeach @endforeach
Siswa Set Jam ke-{{ $lh }}
{{ strtoupper(substr($s->full_name, 0, 1)) }}

{{ $s->full_name }}

{{-- Submit --}}
H Hadir S Sakit I Izin A Alpha T Terlambat Klik tombol untuk ganti status
{{-- Info --}}
Siswa dengan status Alpha (A) minimal 1 jam akan otomatis dicatat sebagai pelanggaran.
@endif
@endsection @push('scripts') @endpush