29 lines
1015 B
JavaScript
29 lines
1015 B
JavaScript
/* ============================================================
|
|
admin.js — Admin panel: public reports (now accessible to Field Officers)
|
|
============================================================ */
|
|
'use strict';
|
|
|
|
async function openAdminPanel() {
|
|
openModal('adminModal');
|
|
loadPendingReports();
|
|
updatePendingBadge();
|
|
}
|
|
|
|
async function updatePendingBadge() {
|
|
try {
|
|
const r = await fetch('api/public/report.php?action=list&status=pending&limit=1');
|
|
const d = await r.json();
|
|
const cnt = d?.data?.total ?? 0;
|
|
const el = document.getElementById('pendingBadge');
|
|
if (el) el.textContent = cnt > 0 ? cnt : '';
|
|
} catch { /* ignore */ }
|
|
}
|
|
|
|
document.addEventListener('DOMContentLoaded', () => {
|
|
// Status filter change - tetap tersedia untuk semua role
|
|
document.getElementById('pendingStatusFilter')
|
|
?.addEventListener('change', loadPendingReports);
|
|
|
|
// Refresh badge every 90 seconds
|
|
setInterval(updatePendingBadge, 90_000);
|
|
}); |