<?php
require_once '../includes/header.php';
require_once '../includes/navbar.php';

// Handle notifikasi hapus
if (isset($_GET['hapus'])) {
    switch ($_GET['hapus']) {
        case 'success':
            echo "<script>
                Swal.fire({
                    icon: 'success',
                    title: 'Berhasil',
                    text: 'Data pendidikan berhasil dihapus'
                });
            </script>";
            break;
        case 'error':
            $message = isset($_GET['message']) ? urldecode($_GET['message']) : 'Terjadi kesalahan';
            echo "<script>
                Swal.fire({
                    icon: 'error',
                    title: 'Gagal',
                    text: '{$message}'
                });
            </script>";
            break;
        case 'invalid':
            echo "<script>
                Swal.fire({
                    icon: 'error',
                    title: 'Error',
                    text: 'ID tidak valid'
                });
            </script>";
            break;
    }
}

// Query untuk mendapatkan tahun ajaran yang aktif
$query_tahun_aktif = "SELECT id_tahunajaran, tahun_ajaran FROM bind_tahunajaran WHERE aktif = 1";
$result_tahun_aktif = mysqli_query($conn, $query_tahun_aktif);

// Konfigurasi pagination
$limit = isset($_GET['limit']) ? (int)$_GET['limit'] : 10;
$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$offset = ($page - 1) * $limit;

if ($result_tahun_aktif && mysqli_num_rows($result_tahun_aktif) > 0) {
    $tahun_aktif = mysqli_fetch_assoc($result_tahun_aktif);
    $id_tahun_aktif = $tahun_aktif['id_tahunajaran'];
    
    // Query untuk mendapatkan total data
    $query_count = "SELECT COUNT(*) as total 
                    FROM bind_pendidikan_siswa ps 
                    JOIN bind_siswa s ON ps.id_siswa = s.id_siswa 
                    JOIN bind_datasiswa ds ON s.id_siswa = ds.id_siswa
                    JOIN bind_tahunajaran t ON ds.id_tahunajaran = t.id_tahunajaran
                    WHERE ds.id_tahunajaran = '$id_tahun_aktif'";
    
    // Query untuk mendapatkan data dengan limit dan offset
    $query = "SELECT ps.*, s.nama_lengkap, s.nisn, s.nis, t.tahun_ajaran
              FROM bind_pendidikan_siswa ps 
              JOIN bind_siswa s ON ps.id_siswa = s.id_siswa 
              JOIN bind_datasiswa ds ON s.id_siswa = ds.id_siswa
              JOIN bind_tahunajaran t ON ds.id_tahunajaran = t.id_tahunajaran
              WHERE ds.id_tahunajaran = '$id_tahun_aktif'
              ORDER BY ps.id_pendidikan DESC
              LIMIT $limit OFFSET $offset";
} else {
    // Fallback jika tidak ada tahun ajaran aktif
    $query_count = "SELECT COUNT(*) as total 
                    FROM bind_pendidikan_siswa ps 
                    JOIN bind_siswa s ON ps.id_siswa = s.id_siswa 
                    JOIN bind_datasiswa ds ON s.id_siswa = ds.id_siswa
                    JOIN bind_tahunajaran t ON ds.id_tahunajaran = t.id_tahunajaran";
    
    $query = "SELECT ps.*, s.nama_lengkap, s.nisn, s.nis, t.tahun_ajaran
              FROM bind_pendidikan_siswa ps 
              JOIN bind_siswa s ON ps.id_siswa = s.id_siswa 
              JOIN bind_datasiswa ds ON s.id_siswa = ds.id_siswa
              JOIN bind_tahunajaran t ON ds.id_tahunajaran = t.id_tahunajaran
              ORDER BY ps.id_pendidikan DESC
              LIMIT $limit OFFSET $offset";
}

// Eksekusi query
$result_count = mysqli_query($conn, $query_count);
$total_data = mysqli_fetch_assoc($result_count)['total'];
$result = mysqli_query($conn, $query);

// Hitung total halaman
$total_pages = ceil($total_data / $limit);
?>

<div class="container mt-4">
    <div class="d-flex justify-content-between align-items-center mb-4">
        <h2><i class="fas fa-graduation-cap me-2"></i>Data Pendidikan Siswa</h2>
        <a href="tambah.php" class="btn btn-primary">
            <i class="fas fa-plus me-1"></i> Tambah Data
        </a>
    </div>
    
    <?php if ($result_tahun_aktif && mysqli_num_rows($result_tahun_aktif) > 0): ?>
    <div class="alert alert-info">
        Menampilkan data pendidikan siswa untuk tahun ajaran aktif: <strong><?php echo htmlspecialchars($tahun_aktif['tahun_ajaran']); ?></strong>
    </div>
    <?php else: ?>
    <div class="alert alert-warning">
        <strong>Perhatian!</strong> Tidak ada tahun ajaran yang aktif. Menampilkan semua data pendidikan siswa.
    </div>
    <?php endif; ?>
    
    <div class="card border-0 shadow-lg">
        <div class="card-header bg-primary text-white py-3">
            <div class="d-flex justify-content-between align-items-center">
                <h5 class="card-title mb-0"><i class="fas fa-list me-2"></i>Daftar Pendidikan Siswa</h5>
                <div class="d-flex align-items-center">
                    <!-- Dropdown untuk pilihan jumlah data per halaman -->
                    <div class="me-3">
                        <select class="form-select form-select-sm" id="limitSelect" onchange="changeLimit(this.value)">
                            <option value="10" <?= $limit == 10 ? 'selected' : '' ?>>10</option>
                            <option value="30" <?= $limit == 30 ? 'selected' : '' ?>>30</option>
                            <option value="50" <?= $limit == 50 ? 'selected' : '' ?>>50</option>
                            <option value="100" <?= $limit == 100 ? 'selected' : '' ?>>100</option>
                            <option value="<?= $total_data ?>" <?= $limit == $total_data ? 'selected' : '' ?>>All</option>
                        </select>
                    </div>
                </div>
            </div>
        </div>
        <div class="card-body p-4">
            <!-- Info jumlah data yang ditampilkan -->
            <div class="row mb-3">
                <div class="col-md-6">
                    <p class="text-muted mb-0">
                        Menampilkan 
                        <strong><?= min(($offset + 1), $total_data) ?> - <?= min(($offset + $limit), $total_data) ?></strong> 
                        dari <strong><?= $total_data ?></strong> data
                    </p>
                </div>
            </div>
            
            <?php if ($result && mysqli_num_rows($result) > 0): ?>
            <div class="table-responsive">
                <table class="table table-hover table-bordered" id="tablePendidikan">
                   <thead class="table-light">
                    <tr>
                        <th style="width: 5%; vertical-align: middle;">No</th>
                        <th style="width: 10%; vertical-align: middle;">NISN</th>
                        <th style="width: 25%; vertical-align: middle;">Nama Siswa</th>
                        <th style="width: 27%; vertical-align: middle;">Asal Sekolah</th>
                        <th style="width: 8%; vertical-align: middle;">Diterima di Kelas</th>
                        <th style="width: 10%; vertical-align: middle;">Tanggal Diterima</th>
                        <th style="width: 15%; vertical-align: middle;">Aksi</th>
                    </tr>
                    </thead>
                    <tbody>
                        <?php 
                        $no = $offset + 1;
                        while ($row = mysqli_fetch_assoc($result)): 
                        ?>
                        <tr>
                            <td><?= $no++; ?></td>
                            <td><?= htmlspecialchars($row['nisn']); ?></td>
                            <td><?= htmlspecialchars($row['nama_lengkap']); ?></td>
                            <td><?= $row['asal_sekolah'] ? htmlspecialchars($row['asal_sekolah']) : '-'; ?></td>
                            <td><?= $row['diterima_di_kelas'] ? htmlspecialchars($row['diterima_di_kelas']) : '-'; ?></td>
                            <td><?= $row['tanggal_diterima'] ? date('d/m/Y', strtotime($row['tanggal_diterima'])) : '-'; ?></td>
                            <td>
                                <a href="detail.php?id=<?= $row['id_pendidikan']; ?>" class="btn btn-sm btn-info" title="Detail">
                                   <i class="fas fa-eye"></i>
                                </a>
                                <a href="edit.php?id=<?= $row['id_pendidikan']; ?>" class="btn btn-sm btn-warning" title="Edit">
                                    <i class="fas fa-edit"></i>
                                </a>
                                <button class='btn btn-sm btn-danger btn-hapus' data-id='<?= $row['id_pendidikan']; ?>' data-nama='<?= htmlspecialchars($row['nama_lengkap']); ?>'>
                                     <i class="fas fa-trash"></i>
                                </button>
                            </td>
                        </tr>
                        <?php endwhile; ?>
                    </tbody>
                </table>
            </div>

            <!-- Pagination -->
            <?php if ($total_pages > 1): ?>
            <nav aria-label="Page navigation">
                <ul class="pagination justify-content-center">
                    <!-- Tombol Previous -->
                    <li class="page-item <?= $page <= 1 ? 'disabled' : '' ?>">
                        <a class="page-link" href="?page=<?= $page - 1 ?>&limit=<?= $limit ?>" aria-label="Previous">
                            <span aria-hidden="true">&laquo;</span>
                        </a>
                    </li>

                    <!-- Tombol halaman -->
                    <?php for ($i = 1; $i <= $total_pages; $i++): ?>
                        <?php if ($i == 1 || $i == $total_pages || ($i >= $page - 2 && $i <= $page + 2)): ?>
                            <li class="page-item <?= $i == $page ? 'active' : '' ?>">
                                <a class="page-link" href="?page=<?= $i ?>&limit=<?= $limit ?>"><?= $i ?></a>
                            </li>
                        <?php elseif ($i == $page - 3 || $i == $page + 3): ?>
                            <li class="page-item disabled">
                                <a class="page-link" href="#">...</a>
                            </li>
                        <?php endif; ?>
                    <?php endfor; ?>

                    <!-- Tombol Next -->
                    <li class="page-item <?= $page >= $total_pages ? 'disabled' : '' ?>">
                        <a class="page-link" href="?page=<?= $page + 1 ?>&limit=<?= $limit ?>" aria-label="Next">
                            <span aria-hidden="true">&raquo;</span>
                        </a>
                    </li>
                </ul>
            </nav>
            <?php endif; ?>

            <?php else: ?>
            <div class="alert alert-info text-center py-4">
                <i class="fas fa-info-circle fa-2x mb-3"></i>
                <h5>Belum ada data pendidikan</h5>
                <p class="mb-0">Silakan tambah data pendidikan siswa terlebih dahulu</p>
            </div>
            <?php endif; ?>
        </div>
    </div>
</div>

<script>
// Fungsi untuk mengubah jumlah data per halaman
function changeLimit(limit) {
    const urlParams = new URLSearchParams(window.location.search);
    urlParams.set('limit', limit);
    urlParams.set('page', 1); // Reset ke halaman pertama
    window.location.href = '?' + urlParams.toString();
}

document.addEventListener('DOMContentLoaded', function() {
    const btnHapus = document.querySelectorAll('.btn-hapus');
    
    btnHapus.forEach(btn => {
        btn.addEventListener('click', function() {
            const id = this.getAttribute('data-id');
            const nama = this.getAttribute('data-nama');
            
            Swal.fire({
                title: 'Apakah Anda yakin?',
                html: `Data pendidikan untuk siswa <b>${nama}</b> akan dihapus permanen!`,
                icon: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#d33',
                cancelButtonColor: '#3085d6',
                confirmButtonText: 'Ya, hapus!',
                cancelButtonText: 'Batal'
            }).then((result) => {
                if (result.isConfirmed) {
                    window.location.href = `hapus.php?id=${id}`;
                }
            });
        });
    });
});

// Nonaktifkan DataTable default karena sudah menggunakan pagination custom
// $(document).ready(function() {
//     $('#tablePendidikan').DataTable({
//         language: {
//             url: '//cdn.datatables.net/plug-ins/1.13.6/i18n/id.json'
//         },
//         columnDefs: [
//             { orderable: false, targets: 6 } // Non-aktifkan pengurutan untuk kolom aksi
//         ]
//     });
// });
</script>



<?php
require_once '../includes/footer.php';
?>