fix(classes): halaman Kelas default TA berjalan (36 kelas) + filter pilih tahun ajaran
This commit is contained in:
@@ -23,9 +23,11 @@ class SchoolClassController extends Controller
|
|||||||
public function index(Request $request): View
|
public function index(Request $request): View
|
||||||
{
|
{
|
||||||
$search = trim((string) $request->get('search'));
|
$search = trim((string) $request->get('search'));
|
||||||
|
$academicYearId = $request->integer('academic_year_id') ?: null;
|
||||||
|
|
||||||
$classes = SchoolClass::with(['academicYear', 'department'])
|
$classes = SchoolClass::with(['academicYear', 'department'])
|
||||||
->withCount(['students', 'academicHistories'])
|
->withCount(['students', 'academicHistories'])
|
||||||
|
->when($academicYearId, fn ($query) => $query->where('academic_year_id', $academicYearId), fn ($query) => $query->forActiveAcademicYear())
|
||||||
->when($search !== '', function ($query) use ($search) {
|
->when($search !== '', function ($query) use ($search) {
|
||||||
$query->where('name', 'like', "%{$search}%")
|
$query->where('name', 'like', "%{$search}%")
|
||||||
->orWhere('level', 'like', "%{$search}%")
|
->orWhere('level', 'like', "%{$search}%")
|
||||||
@@ -38,6 +40,7 @@ class SchoolClassController extends Controller
|
|||||||
return view('classes.index', [
|
return view('classes.index', [
|
||||||
'classes' => $classes,
|
'classes' => $classes,
|
||||||
'search' => $search,
|
'search' => $search,
|
||||||
|
'academicYearId' => $academicYearId,
|
||||||
'academicYears' => AcademicYear::orderByDesc('start_year')->orderByDesc('end_year')->get(),
|
'academicYears' => AcademicYear::orderByDesc('start_year')->orderByDesc('end_year')->get(),
|
||||||
'importPreview' => $request->session()->get('class_import_preview'),
|
'importPreview' => $request->session()->get('class_import_preview'),
|
||||||
'importReferenceData' => $this->importReferenceData(),
|
'importReferenceData' => $this->importReferenceData(),
|
||||||
|
|||||||
@@ -162,6 +162,15 @@
|
|||||||
<div class="md:flex-1">
|
<div class="md:flex-1">
|
||||||
<x-form-input name="search" label="Pencarian" :value="$search" placeholder="Cari kelas..." />
|
<x-form-input name="search" label="Pencarian" :value="$search" placeholder="Cari kelas..." />
|
||||||
</div>
|
</div>
|
||||||
|
<div class="md:flex-1">
|
||||||
|
<label for="academic_year_id" class="mb-2 block text-sm font-medium text-slate-700">Tahun Ajaran</label>
|
||||||
|
<select id="academic_year_id" name="academic_year_id" onchange="this.form.submit()" class="w-full rounded-2xl border border-slate-200 bg-white px-4 py-3 text-sm text-slate-700 focus:border-indigo-300 focus:outline-none focus:ring-2 focus:ring-indigo-100">
|
||||||
|
<option value="">TA berjalan ({{ $academicYears->firstWhere('is_active', true)?->name ?? '-' }})</option>
|
||||||
|
@foreach ($academicYears as $ay)
|
||||||
|
<option value="{{ $ay->id }}" @selected($academicYearId === $ay->id)>{{ $ay->name }}{{ $ay->is_active ? ' (aktif)' : '' }}</option>
|
||||||
|
@endforeach
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
<div class="flex items-end gap-3">
|
<div class="flex items-end gap-3">
|
||||||
<button type="submit" class="rounded-2xl bg-slate-900 px-5 py-3 text-sm font-semibold text-white transition hover:bg-slate-800">Cari</button>
|
<button type="submit" class="rounded-2xl bg-slate-900 px-5 py-3 text-sm font-semibold text-white transition hover:bg-slate-800">Cari</button>
|
||||||
<a href="{{ route('classes.index') }}" class="rounded-2xl border border-slate-200 px-5 py-3 text-sm font-semibold text-slate-700 transition hover:bg-slate-50">Reset</a>
|
<a href="{{ route('classes.index') }}" class="rounded-2xl border border-slate-200 px-5 py-3 text-sm font-semibold text-slate-700 transition hover:bg-slate-50">Reset</a>
|
||||||
|
|||||||
Reference in New Issue
Block a user