@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 --}}
Belum Terisi

kelas terisi pada

Belum ada kelas terisi pada — coba pilih tanggal lain

@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') }} • {{ $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 : 'belum'; $statusColors = [ 'belum' => 'bg-gray-100 border-gray-300 text-gray-400 hover:bg-gray-200', 'hadir' => 'bg-emerald-100 border-emerald-300 text-emerald-700 hover:bg-emerald-200', 'sakit' => 'bg-amber-100 border-amber-300 text-amber-700 hover:bg-amber-200', 'izin' => 'bg-blue-100 border-blue-300 text-blue-700 hover:bg-blue-200', 'pkl' => 'bg-violet-100 border-violet-300 text-violet-700 hover:bg-violet-200', 'alpha' => 'bg-red-100 border-red-300 text-red-700 hover:bg-red-200', 'terlambat' => 'bg-yellow-100 border-yellow-300 text-yellow-700 hover:bg-yellow-200', ]; $statusLabels = [ 'belum' => '—', 'hadir' => 'H', 'sakit' => 'S', 'izin' => 'I', 'pkl' => 'P', 'alpha' => 'A', 'terlambat' => 'T', ]; $statusFull = [ 'belum' => 'Belum diisi', 'hadir' => 'Hadir', 'sakit' => 'Sakit', 'izin' => 'Izin', 'pkl' => 'PKL', 'alpha' => 'Alpha', 'terlambat' => 'Terlambat', ]; @endphp @endforeach @endforeach
Siswa
Set
Jam {{ $lh }}
{{ strtoupper(substr($s->full_name, 0, 1)) }}

{{ $s->full_name }}

{{-- Bottom actions --}}
{{-- Legend + Submit --}}
@php $legends = [ 'hadir' => ['emerald', 'H', 'Hadir'], 'sakit' => ['amber', 'S', 'Sakit'], 'izin' => ['blue', 'I', 'Izin'], 'pkl' => ['violet', 'P', 'PKL'], 'alpha' => ['red', 'A', 'Alpha'], 'terlambat' => ['yellow', 'T', 'Terlambat'], ]; @endphp @foreach($legends as $key => $lg) {{ $lg[1] }} {{ $lg[2] }} @endforeach Klik untuk ganti status
{{-- Info --}}
Siswa dengan status Alpha (A) minimal 1 jam akan otomatis dicatat sebagai pelanggaran. Klik tombol status untuk rotasi: H → S → I → P → A → T → H.
@endif
@endsection @push('scripts') @endpush