Require rejection reason and move approve/reject buttons inside manager detail view
This commit is contained in:
@@ -875,8 +875,6 @@ async function openAdminDashboard(){
|
||||
<div style="font-size:12px;color:#64748b;margin-top:6px">${escapeHtml(item.created_at || '')}</div>
|
||||
<div style="display:flex;gap:8px;margin-top:10px">
|
||||
<button type="button" class="btn-secondary" onclick="openPendingManagerDetailByIndex(${index})">Detail</button>
|
||||
<button type="button" class="btn-destructive" onclick="rejectPendingUser('${escapeHtml(item.id)}')">Tolak</button>
|
||||
<button type="button" class="btn-primary" onclick="approvePendingUser('${escapeHtml(item.id)}')">Setujui</button>
|
||||
</div>
|
||||
</div>
|
||||
`).join('');
|
||||
@@ -892,16 +890,25 @@ async function approvePendingUser(id){
|
||||
const jr = await resp.json().catch(()=>null);
|
||||
if(!resp.ok || !jr || !jr.success){ showToast('Gagal menyetujui user', 'error', 4000); return; }
|
||||
showToast('User disetujui', 'success', 3000);
|
||||
closePendingManagerDetail();
|
||||
openAdminDashboard();
|
||||
}catch(e){ console.error(e); showToast('Gagal menyetujui user', 'error', 4000); }
|
||||
}
|
||||
|
||||
async function rejectPendingUser(id){
|
||||
const reason = prompt("Masukkan alasan penolakan:");
|
||||
if (reason === null) return; // user cancelled
|
||||
const trimmedReason = reason.trim();
|
||||
if (!trimmedReason) {
|
||||
showToast("Alasan penolakan wajib diisi!", "error", 4000);
|
||||
return;
|
||||
}
|
||||
try{
|
||||
const resp = await fetch('src/api/admin/reject_user.php', { method: 'POST', headers: buildHeaders(), body: JSON.stringify({ id: id }), credentials: 'same-origin' });
|
||||
const resp = await fetch('src/api/admin/reject_user.php', { method: 'POST', headers: buildHeaders(), body: JSON.stringify({ id: id, reason: trimmedReason }), credentials: 'same-origin' });
|
||||
const jr = await resp.json().catch(()=>null);
|
||||
if(!resp.ok || !jr || !jr.success){ showToast('Gagal menolak user', 'error', 4000); return; }
|
||||
showToast('User ditolak', 'success', 3000);
|
||||
closePendingManagerDetail();
|
||||
openAdminDashboard();
|
||||
}catch(e){ console.error(e); showToast('Gagal menolak user', 'error', 4000); }
|
||||
}
|
||||
@@ -2413,6 +2420,10 @@ function openPendingManagerDetail(u){
|
||||
<div style="font-size:12px;color:#64748b">Bukti Organisasi</div>
|
||||
<div style="font-weight:700;color:#0f172a;margin-top:8px">${proofPreview}</div>
|
||||
</div>
|
||||
<div style="display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:12px;border-top:1px solid #e2e8f0">
|
||||
<button type="button" class="btn-destructive" style="padding:8px 16px;font-size:14px" onclick="rejectPendingUser('${escapeHtml(u.id)}')">Tolak</button>
|
||||
<button type="button" class="btn-primary" style="padding:8px 16px;font-size:14px" onclick="approvePendingUser('${escapeHtml(u.id)}')">Setujui</button>
|
||||
</div>
|
||||
`;
|
||||
|
||||
modal.classList.remove('hidden');
|
||||
|
||||
Reference in New Issue
Block a user