164 lines
6.2 KiB
PHP
164 lines
6.2 KiB
PHP
@extends('admin.layouts.app')
|
|
|
|
@section('title', 'Data Siswa')
|
|
|
|
@section('content')
|
|
<section class="section">
|
|
<div class="section-header">
|
|
<h1>Data Siswa</h1>
|
|
<div class="section-header-breadcrumb">
|
|
<div class="breadcrumb-item"><a href="{{ route('admin.dashboard') }}">Dashboard</a></div>
|
|
<div class="breadcrumb-item active">Data Siswa</div>
|
|
</div>
|
|
</div>
|
|
|
|
{{-- Notifikasi sukses --}}
|
|
@if (session('success'))
|
|
<div class="alert alert-success alert-dismissible show fade">
|
|
<div class="alert-body">
|
|
{{ session('success') }}
|
|
<button class="close" data-dismiss="alert">
|
|
<span>×</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
{{-- Notifikasi error --}}
|
|
@if ($errors->any())
|
|
<div class="alert alert-danger alert-dismissible show fade">
|
|
<div class="alert-body">
|
|
<ul class="mb-0">
|
|
@foreach ($errors->all() as $error)
|
|
<li>{{ $error }}</li>
|
|
@endforeach
|
|
</ul>
|
|
<button class="close" data-dismiss="alert">
|
|
<span>×</span>
|
|
</button>
|
|
</div>
|
|
</div>
|
|
@endif
|
|
|
|
<div class="section-body">
|
|
<div class="card">
|
|
<div class="card-header">
|
|
<h4>Filter, Import/Export & Data Siswa</h4>
|
|
</div>
|
|
<div class="card-body">
|
|
|
|
{{-- Filter dan tombol --}}
|
|
<div class="d-flex justify-content-between flex-wrap mb-4 gap-3">
|
|
|
|
{{-- Filter Kelas dan Tahun Ajaran --}}
|
|
<form method="GET" action="{{ route('admin.siswa.index') }}" class="form-inline">
|
|
<div class="form-group mr-3">
|
|
<label for="kelas_id" class="mr-2">Kelas</label>
|
|
<select name="kelas_id" id="kelas_id" class="form-control" onchange="this.form.submit()">
|
|
<option value="">-- Semua Kelas --</option>
|
|
@foreach ($kelasList as $kelas)
|
|
<option value="{{ $kelas->id }}" {{ request('kelas_id') == $kelas->id ? 'selected' : '' }}>
|
|
{{ $kelas->nama_kelas }} (Tingkat {{ $kelas->tingkat }})
|
|
</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
<div class="form-group">
|
|
<label for="tahun_ajaran_id" class="mr-2">Tahun Ajaran</label>
|
|
<select name="tahun_ajaran_id" id="tahun_ajaran_id" class="form-control" onchange="this.form.submit()">
|
|
<option value="">-- Semua Tahun --</option>
|
|
@foreach ($tahunAjaranList as $ta)
|
|
<option value="{{ $ta->id }}" {{ request('tahun_ajaran_id') == $ta->id ? 'selected' : '' }}>
|
|
{{ $ta->tahun }} {{ ucfirst($ta->semester) }}
|
|
</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
</form>
|
|
|
|
{{-- Tombol Import, Export, Tambah, Lulus --}}
|
|
<div>
|
|
<form action="{{ route('admin.siswa.import') }}" method="POST" enctype="multipart/form-data" id="importForm" class="d-inline">
|
|
@csrf
|
|
<input type="file" name="file" id="file" class="d-none" onchange="document.getElementById('importForm').submit()" required>
|
|
<label for="file" class="btn btn-success mb-0" title="Import Excel" style="cursor: pointer;">
|
|
<i class="fas fa-file-import"></i>
|
|
</label>
|
|
</form>
|
|
|
|
<a href="{{ route('admin.siswa.export') }}" class="btn btn-info" title="Export Excel">
|
|
<i class="fas fa-file-export"></i>
|
|
</a>
|
|
|
|
<a href="{{ route('admin.siswa.create', ['kelas_id' => request('kelas_id')]) }}" class="btn btn-primary" title="Tambah Siswa">
|
|
<i class="fas fa-user-plus"></i> Tambah Siswa
|
|
</a>
|
|
|
|
<a href="{{ route('admin.siswa.lulus') }}" class="btn btn-secondary" title="Lihat Siswa Lulus">
|
|
<i class="fas fa-graduation-cap"></i> Siswa Lulus
|
|
</a>
|
|
</div>
|
|
</div>
|
|
|
|
{{-- Tabel Data --}}
|
|
<div class="table-responsive">
|
|
<table class="table table-striped table-md">
|
|
<thead>
|
|
<tr>
|
|
<th>#</th>
|
|
<th>Kelas</th>
|
|
<th>Tingkat</th>
|
|
<th>Tahun Ajaran</th>
|
|
<th>NISN</th>
|
|
<th>Nama</th>
|
|
<th>Jenis Kelamin</th>
|
|
<th>Alamat</th>
|
|
<th>Email</th>
|
|
<th>Aksi</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
@forelse($data as $index => $siswa)
|
|
<tr>
|
|
<td>{{ $data->firstItem() + $index }}</td>
|
|
<td>{{ $siswa->kelas->nama_kelas ?? '-' }}</td>
|
|
<td>{{ $siswa->kelas->tingkat ?? '-' }}</td>
|
|
<td>{{ $siswa->tahunAjaran->tahun ?? '-' }} {{ ucfirst($siswa->tahunAjaran->semester ?? '-') }}</td>
|
|
<td>{{ $siswa->nisn }}</td>
|
|
<td>{{ $siswa->nama }}</td>
|
|
<td>{{ $siswa->jenis_kelamin == 'L' ? 'Laki-laki' : 'Perempuan' }}</td>
|
|
<td>{{ $siswa->alamat ?? '-' }}</td>
|
|
<td>{{ $siswa->user->email ?? '-' }}</td>
|
|
<td>
|
|
<a href="{{ route('admin.siswa.edit', $siswa->id) }}" class="btn btn-warning btn-action mr-1" title="Edit">
|
|
<i class="fas fa-edit"></i>
|
|
</a>
|
|
<form action="{{ route('admin.siswa.destroy', $siswa->id) }}" method="POST" class="d-inline" onsubmit="return confirm('Yakin ingin menghapus data ini?')">
|
|
@csrf
|
|
@method('DELETE')
|
|
<button class="btn btn-danger btn-action" title="Hapus">
|
|
<i class="fas fa-trash"></i>
|
|
</button>
|
|
</form>
|
|
</td>
|
|
</tr>
|
|
@empty
|
|
<tr>
|
|
<td colspan="10" class="text-center">Belum ada data siswa.</td>
|
|
</tr>
|
|
@endforelse
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
|
|
{{-- Pagination --}}
|
|
<div class="mt-3">
|
|
{{ $data->links('pagination::bootstrap-4') }}
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
@endsection
|