{{-- Reusable academic-period selector for PKBM staff pages. Expected variables: $periods Collection of objects with ->tahun_pelajaran and ->semester $period The currently resolved (working) period object or null $activePeriod The PKBM active period object or null $selectorAction (optional) GET target; defaults to the current URL $selectorQuery (optional) query pairs to preserve; defaults to current query minus periode --}} @php $selectorAction = $selectorAction ?? request()->url(); // Only the period itself is submitted by default. Period-bound filters // (kelas/tingkatan/mapel) are intentionally reset so switching year never // points at a selection that is invalid for the target period. $preserve = $selectorQuery ?? []; $periodCollection = $periods ?? collect(); $years = $periodCollection->pluck('tahun_pelajaran')->unique()->values(); $semestersByYear = []; foreach ($periodCollection as $periodItem) { $semestersByYear[$periodItem->tahun_pelajaran][] = $periodItem->semester; } $selectedYear = $period?->tahun_pelajaran; $selectedSemester = $period?->semester; $isActive = $period && $activePeriod && $activePeriod->tahun_pelajaran === $period->tahun_pelajaran && $activePeriod->semester === $period->semester; @endphp

Periode Akademik

Pilih tahun pelajaran dan semester. Data yang tampil dan data baru mengikuti periode terpilih, sehingga data lintas tahun tetap terarsip.

@if ($period)
{{ $isActive ? 'Periode aktif' : 'Periode dipilih' }} {{ $period->tahun_pelajaran }} · {{ $period->semester }}
@endif
@if ($years->isEmpty())

Belum ada periode akademik. Tambahkan terlebih dahulu pada menu Pengaturan Akademik.

@else
@foreach ($preserve as $key => $value) @continue(is_array($value)) @endforeach
@endif