Add admin status combobox to move voters back to suggest
This commit is contained in:
@@ -91,6 +91,44 @@ function setupLinkApply(runSerializedRefresh) {
|
||||
function setupPlayerTableActions(runSerializedRefresh) {
|
||||
const playerTable = $("admin-player-table");
|
||||
if (!playerTable) return;
|
||||
const phaseSelectSelector = "[data-set-player-phase]";
|
||||
|
||||
playerTable.addEventListener("focusin", (e) => {
|
||||
if (e.target.matches?.(phaseSelectSelector)) {
|
||||
state.adminStatusSelectActive = true;
|
||||
}
|
||||
});
|
||||
|
||||
playerTable.addEventListener("focusout", (e) => {
|
||||
if (!e.target.matches?.(phaseSelectSelector)) return;
|
||||
window.setTimeout(() => {
|
||||
const focused = document.activeElement;
|
||||
state.adminStatusSelectActive =
|
||||
!!focused?.matches?.(phaseSelectSelector);
|
||||
}, 0);
|
||||
});
|
||||
|
||||
playerTable.addEventListener("change", async (e) => {
|
||||
const select = e.target.closest(phaseSelectSelector);
|
||||
if (!select) return;
|
||||
const playerId = select.dataset.setPlayerPhase;
|
||||
const phase = select.value;
|
||||
if (!playerId || !phase) return;
|
||||
select.disabled = true;
|
||||
|
||||
try {
|
||||
await adminApi.setPlayerPhase(playerId, phase);
|
||||
toast(t("admin.statusUpdated"));
|
||||
state.adminStatusSelectActive = false;
|
||||
await runSerializedRefresh();
|
||||
} catch (err) {
|
||||
select.value = "";
|
||||
toast(err.message, true);
|
||||
} finally {
|
||||
select.disabled = false;
|
||||
state.adminStatusSelectActive = false;
|
||||
}
|
||||
});
|
||||
|
||||
playerTable.addEventListener("click", async (e) => {
|
||||
const grantBtn = e.target.closest("[data-grant-joker]");
|
||||
|
||||
Reference in New Issue
Block a user