152 lines
6.4 KiB
PHP
152 lines
6.4 KiB
PHP
<?php
|
|
require_once __DIR__ . '/layout_header.php';
|
|
$db = db();
|
|
|
|
$message = '';
|
|
|
|
// Handle Delete
|
|
if (isset($_GET['delete'])) {
|
|
$id = (int)$_GET['delete'];
|
|
$db->prepare("DELETE FROM pengurus WHERE id = ?")->execute([$id]);
|
|
$message = '<div class="alert alert-success">Data pengurus berhasil dihapus.</div>';
|
|
}
|
|
|
|
// Handle Add/Edit
|
|
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['save_pengurus'])) {
|
|
$id = $_POST['id'] ?? null;
|
|
$nama = $_POST['nama'];
|
|
$jabatan = $_POST['jabatan'];
|
|
$telepon = $_POST['telepon'];
|
|
$urutan = (int)$_POST['urutan'];
|
|
|
|
if ($id) {
|
|
$stmt = $db->prepare("UPDATE pengurus SET nama=?, jabatan=?, telepon=?, urutan=? WHERE id=?");
|
|
$stmt->execute([$nama, $jabatan, $telepon, $urutan, $id]);
|
|
$message = '<div class="alert alert-success">Data pengurus berhasil diperbarui.</div>';
|
|
} else {
|
|
$stmt = $db->prepare("INSERT INTO pengurus (nama, jabatan, telepon, urutan) VALUES (?, ?, ?, ?)");
|
|
$stmt->execute([$nama, $jabatan, $telepon, $urutan]);
|
|
$message = '<div class="alert alert-success">Pengurus baru berhasil ditambahkan.</div>';
|
|
}
|
|
}
|
|
|
|
$pengurus_list = $db->query("SELECT * FROM pengurus ORDER BY urutan ASC")->fetchAll();
|
|
?>
|
|
|
|
<div class="top-bar">
|
|
<h1 class="h3 fw-bold m-0">Struktur Kepengurusan RT</h1>
|
|
<button class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#pengurusModal" onclick="resetForm()">
|
|
<i class="bi bi-plus-lg"></i> Tambah Pengurus
|
|
</button>
|
|
</div>
|
|
|
|
<?= $message ?>
|
|
|
|
<div class="row g-4">
|
|
<div class="col-md-8">
|
|
<div class="card">
|
|
<div class="table-responsive">
|
|
<table class="table table-hover align-middle">
|
|
<thead>
|
|
<tr>
|
|
<th>Urutan</th>
|
|
<th>Jabatan</th>
|
|
<th>Nama</th>
|
|
<th>Telepon</th>
|
|
<th class="text-end">Aksi</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php foreach ($pengurus_list as $p): ?>
|
|
<tr>
|
|
<td><?= $p['urutan'] ?></td>
|
|
<td><span class="fw-bold"><?= htmlspecialchars($p['jabatan']) ?></span></td>
|
|
<td><?= htmlspecialchars($p['nama']) ?></td>
|
|
<td><?= htmlspecialchars($p['telepon']) ?></td>
|
|
<td class="text-end">
|
|
<button class="btn btn-sm btn-outline-primary me-1" onclick='editPengurus(<?= json_encode($p) ?>)'>
|
|
<i class="bi bi-pencil"></i>
|
|
</button>
|
|
<a href="?delete=<?= $p['id'] ?>" class="btn btn-sm btn-outline-danger" onclick="return confirm('Yakin ingin menghapus?')">
|
|
<i class="bi bi-trash"></i>
|
|
</a>
|
|
</td>
|
|
</tr>
|
|
<?php endforeach; ?>
|
|
<?php if (empty($pengurus_list)): ?>
|
|
<tr>
|
|
<td colspan="5" class="text-center py-4 text-muted">Belum ada data pengurus.</td>
|
|
</tr>
|
|
<?php endif; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="col-md-4">
|
|
<div class="card bg-light border-0">
|
|
<h5 class="fw-bold mb-3">Informasi</h5>
|
|
<p class="small text-muted">Gunakan urutan untuk mengatur tampilan pengurus di Dashboard. Angka lebih kecil akan muncul lebih atas.</p>
|
|
<p class="small text-muted">Contoh: Ketua RT (1), Sekretaris (2), Bendahara (3).</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- Modal -->
|
|
<div class="modal fade" id="pengurusModal" tabindex="-1">
|
|
<div class="modal-dialog">
|
|
<form method="POST" class="modal-content">
|
|
<div class="modal-header">
|
|
<h5 class="modal-title" id="modalTitle">Tambah Pengurus</h5>
|
|
<button type="button" class="btn-close" data-bs-dismiss="modal"></button>
|
|
</div>
|
|
<div class="modal-body">
|
|
<input type="hidden" name="id" id="pengurusId">
|
|
<div class="mb-3">
|
|
<label class="form-label">Nama Lengkap</label>
|
|
<input type="text" name="nama" id="pengurusNama" class="form-control" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label">Jabatan</label>
|
|
<input type="text" name="jabatan" id="pengurusJabatan" class="form-control" placeholder="Contoh: Ketua RT" required>
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label">Telepon</label>
|
|
<input type="text" name="telepon" id="pengurusTelepon" class="form-control">
|
|
</div>
|
|
<div class="mb-3">
|
|
<label class="form-label">Urutan Tampil</label>
|
|
<input type="number" name="urutan" id="pengurusUrutan" class="form-control" value="0">
|
|
</div>
|
|
</div>
|
|
<div class="modal-footer">
|
|
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Batal</button>
|
|
<button type="submit" name="save_pengurus" class="btn btn-primary">Simpan</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
function editPengurus(p) {
|
|
document.getElementById('modalTitle').innerText = 'Edit Pengurus';
|
|
document.getElementById('pengurusId').value = p.id;
|
|
document.getElementById('pengurusNama').value = p.nama;
|
|
document.getElementById('pengurusJabatan').value = p.jabatan;
|
|
document.getElementById('pengurusTelepon').value = p.telepon;
|
|
document.getElementById('pengurusUrutan').value = p.urutan;
|
|
new bootstrap.Modal(document.getElementById('pengurusModal')).show();
|
|
}
|
|
|
|
function resetForm() {
|
|
document.getElementById('modalTitle').innerText = 'Tambah Pengurus';
|
|
document.getElementById('pengurusId').value = '';
|
|
document.getElementById('pengurusNama').value = '';
|
|
document.getElementById('pengurusJabatan').value = '';
|
|
document.getElementById('pengurusTelepon').value = '';
|
|
document.getElementById('pengurusUrutan').value = '0';
|
|
}
|
|
</script>
|
|
|
|
<?php require_once __DIR__ . '/layout_footer.php'; ?>
|