Rework admin player table and account deletion

This commit is contained in:
2026-02-05 13:19:23 +01:00
parent 19b5dc2491
commit 69d31b4113
7 changed files with 147 additions and 70 deletions

View File

@@ -204,17 +204,38 @@ function setupHandlers() {
});
}
const grantJokerBtn = $("grant-joker");
if (grantJokerBtn) {
grantJokerBtn.addEventListener("click", async () => {
const playerId = $("joker-player")?.value;
if (!playerId) return toast(t("admin.jokerSelectFirst"), true);
try {
await adminApi.grantJoker(playerId);
toast(t("admin.jokerGranted"));
await refreshPhaseData();
} catch (err) {
toast(err.message, true);
const playerTable = $("admin-player-table");
if (playerTable) {
playerTable.addEventListener("click", async (e) => {
const grantBtn = e.target.closest("[data-grant-joker]");
const deleteBtn = e.target.closest("[data-delete-player]");
if (grantBtn) {
const playerId = grantBtn.dataset.grantJoker;
try {
await adminApi.grantJoker(playerId);
toast(t("admin.jokerGranted"));
await refreshPhaseData();
} catch (err) {
toast(err.message, true);
}
} else if (deleteBtn) {
const playerId = deleteBtn.dataset.deletePlayer;
const name = deleteBtn.dataset.name || "";
openConfirmModal({
title: t("admin.deleteTitle"),
body: t("admin.deleteBody", { name }),
confirmLabel: t("admin.deleteConfirm"),
onConfirm: async (close) => {
try {
await adminApi.deletePlayer(playerId);
toast(t("admin.deleteDone"));
close();
await refreshPhaseData();
} catch (err) {
toast(err.message, true);
}
},
});
}
});
}