@extends('layouts.app') @section('title', 'Edit KALDIK: ' . $kaldik->name) @php $statusColors = [ 'draft' => 'bg-slate-100 dark:bg-white/10 text-slate-600 dark:text-white/50', 'pending' => 'bg-amber-100 dark:bg-amber-500/10 text-amber-700 dark:text-amber-400', 'final' => 'bg-emerald-100 dark:bg-emerald-500/10 text-emerald-700 dark:text-emerald-400', 'archived' => 'bg-slate-100 dark:bg-white/10 text-slate-400 dark:text-white/30', ]; $statusLabels = [ 'draft' => 'Draf', 'pending' => 'Menunggu Approval', 'final' => 'Final', 'archived' => 'Arsip', ]; $isDraft = $kaldik->isDraft(); @endphp @section('content')

{{ $kaldik->name }}

{{ $statusLabels[$kaldik->status] ?? $kaldik->status }}

{{ $kaldik->academicYear->name ?? '' }} · {{ $kaldik->semesterLabel() }} · {{ $kaldik->start_date->format('d M Y') }} — {{ $kaldik->end_date->format('d M Y') }} @if ($kaldik->version > 1) · Revisi v{{ $kaldik->version }} @endif

@if ($isDraft)
@csrf
@elseif ($kaldik->isFinal())
@csrf
@endif Kembali
@if (session('success'))
{{ session('success') }}
@endif @if (session('error'))
{{ session('error') }}
@endif @if ($errors->any())
@endif @if (!$isDraft)
Kalender berstatus {{ $statusLabels[$kaldik->status] ?? $kaldik->status }} bersifat read-only. @if ($kaldik->isFinal()) Gunakan tombol Buat Revisi di kanan atas untuk membuat versi baru yang bisa diedit dan diajukan approval ulang. @elseif ($kaldik->isPending()) Revisi diperlukan setelah Kepsek menolak (status kembali Draf), atau tunggu hasil approval. @endif
@endif
{{-- Section 1: Info Dasar --}}

Informasi Dasar

@csrf @method('PUT')
{{ $kaldik->semesterLabel() }} (satu tahun ajaran)
@error('semester_2_start_date')

{{ $message }}

@enderror

Kosongkan "Mulai Semester 2" bila batas semester otomatis. Jika diisi, pemisahan blok Ganjil/Genap di dokumen memakai tanggal ini, bukan tebakan bulan.

@if ($isDraft)
Semester 1: | Semester 2:
@endif @if ($isDraft) @endif
{{-- Section 2: Struktur & Durasi JP per Jenjang (merged) --}} @php $emptyDayMap = []; foreach ($weekDays as $d) { $emptyDayMap[$d] = 0; } @endphp

Struktur & Durasi JP per Jenjang

Jumlah JP per hari (0 = libur mingguan) & durasi menit per JP — boleh berbeda antar jenjang.

Contoh: Kelas 1–3 → Senin 7jp, Selasa 7jp, Rabu 7jp, Kamis 7jp, Jumat 5jp, Sabtu 0, Ahad 0 — mnt/JP 35. Kelas 4–6 bisa beda, mis. mnt/JP 40.

@csrf
@foreach ($weekDays as $day) @endforeach @if ($isDraft) @endif @forelse ($kaldik->levelStructures as $ls) @foreach ($weekDays as $day) @endforeach @php $jpWk = 0; foreach ($weekDays as $d) { $jpWk += $ls->jpForDay($d); } @endphp @if ($isDraft) @endif @empty @foreach ($weekDays as $day) @endforeach @if ($isDraft) @endif @endforelse
Jenjang{{ \Illuminate\Support\Str::title($day) }}mnt/JP JP/mgg mnt/mgg
s/d
{{ $jpWk * $ls->jp_duration_minutes }}
s/d
0
Total JP/minggu (semua jenjang): 0 Total mnt/minggu: 0

Keterangan: JP = Jam Pelajaran. Angka 0 pada hari tertentu = libur mingguan (mis. Sabtu/Ahad). JP/minggu & mnt/minggu terhitung otomatis dan diperbarui langsung saat Anda mengetik, sebelum menekan Simpan.

@if ($isDraft)
@endif
{{-- Section 4: Libur --}}

Libur

@if ($kaldik->holidays->count() > 0)
@if ($isDraft) @endif @foreach ($kaldik->holidays->sortBy('date') as $holiday) @if ($isDraft) @endif @endforeach
Tanggal Nama Tipe
{{ $holiday->date->format('d M Y') }} {{ $holiday->name }} {{ $holiday->type }}
@csrf @method('DELETE')
@endif @if ($isDraft)
@csrf
@endif
{{-- Section 5: Kegiatan Khusus --}}

Kegiatan Khusus

@if ($kaldik->classOverrides->count() > 0)
@if ($isDraft) @endif @foreach ($kaldik->classOverrides as $co) @if ($isDraft) @endif @endforeach
Judul Periode Level
{{ $co->title }} {{ $co->start_date->format('d M') }} — {{ $co->end_date->format('d M Y') }} {{ $co->grade_level ? 'Kelas ' . $co->grade_level : 'Semua' }}
@csrf @method('DELETE')
@endif @if ($isDraft)
@csrf
@endif
@endsection @push('scripts') @endpush