diff --git a/src/event_manager_controller.js b/src/event_manager_controller.js index 52cf6fa..6a22c5d 100644 --- a/src/event_manager_controller.js +++ b/src/event_manager_controller.js @@ -203,7 +203,7 @@ export function renderEventManagerView(context) { }); }; - eventManageArea.querySelectorAll(".summary-warning-link, .manage-step-card-link").forEach((node) => { + eventManageArea.querySelectorAll('[id^="team-edit-"], [id^="team-delete-"]').forEach((node) => { bindManageJump(node); }); @@ -505,19 +505,24 @@ export function renderEventManagerView(context) { rerenderEventManager(eventId); }); - raceTeams.forEach((team) => { - document.getElementById(`team-edit-${team.id}`)?.addEventListener("click", () => { - setSelectedTeamEditId(team.id); - rerenderEventManager(eventId); - }); - - document.getElementById(`team-delete-${team.id}`)?.addEventListener("click", () => { - event.raceConfig.teams = getEventTeams(event).filter((item) => item.id !== team.id); - if (selectedTeamEditId === team.id) { - setSelectedTeamEditId(null); + eventManageArea.querySelectorAll("[id^=\"team-edit-\"], [id^=\"team-delete-\"]").forEach((node) => { + node.addEventListener("click", () => { + const nodeId = String(node.id || ""); + if (nodeId.startsWith("team-edit-")) { + const teamId = nodeId.slice("team-edit-".length); + setSelectedTeamEditId(teamId); + rerenderEventManager(eventId); + return; + } + if (nodeId.startsWith("team-delete-")) { + const teamId = nodeId.slice("team-delete-".length); + event.raceConfig.teams = getEventTeams(event).filter((item) => item.id !== teamId); + if (getSelectedTeamEditId() === teamId) { + setSelectedTeamEditId(null); + } + saveState(); + rerenderEventManager(eventId); } - saveState(); - rerenderEventManager(eventId); }); }); @@ -543,12 +548,15 @@ export function renderEventManagerView(context) { rerenderEventManager(eventId); }); - document.getElementById("teamEditForm")?.addEventListener("submit", (submitEvent) => { - submitEvent.preventDefault(); + const commitTeamEdit = () => { if (!editingTeam) { return; } - const form = new FormData(submitEvent.currentTarget); + const formNode = document.getElementById("teamEditForm"); + if (!(formNode instanceof HTMLFormElement)) { + return; + } + const form = new FormData(formNode); const name = String(form.get("teamName") || "").trim(); const driverIds = form.getAll("teamDriverIds").map(String).filter(Boolean); const carIds = form.getAll("teamCarIds").map(String).filter(Boolean); @@ -567,8 +575,15 @@ export function renderEventManagerView(context) { setSelectedTeamEditId(null); saveState(); rerenderEventManager(eventId); + }; + + document.getElementById("teamEditForm")?.addEventListener("submit", (submitEvent) => { + submitEvent.preventDefault(); + commitTeamEdit(); }); + document.getElementById("teamEditSave")?.addEventListener("click", commitTeamEdit); + document.getElementById("raceFormatBasicToggle")?.addEventListener("click", () => { setRaceFormatAdvanced(false); rerenderEventManager(eventId); diff --git a/src/event_manager_view.js b/src/event_manager_view.js index 933bcdc..b84eab8 100644 --- a/src/event_manager_view.js +++ b/src/event_manager_view.js @@ -743,7 +743,7 @@ export function renderEventManagerMarkup(context) {