diff --git a/src/event_manager_controller.js b/src/event_manager_controller.js index bf1b537..6e359a0 100644 --- a/src/event_manager_controller.js +++ b/src/event_manager_controller.js @@ -489,47 +489,36 @@ export function renderEventManagerView(context) { persistRaceParticipants(); }); - const setTeamDebug = (message) => { - const node = document.getElementById("teamDebugStatus"); - if (node) node.textContent = message || ""; - }; - - const getTeamCreateSelections = () => ({ - driverIds: Array.from(document.querySelectorAll('[form="teamForm"][name="teamDriverIds"]:checked')).map((node) => String(node.value)).filter(Boolean), - carIds: Array.from(document.querySelectorAll('[form="teamForm"][name="teamCarIds"]:checked')).map((node) => String(node.value)).filter(Boolean), - }); - - const commitTeamCreate = () => { - const formNode = document.getElementById("teamForm"); - if (!(formNode instanceof HTMLFormElement)) { - return; - } - const form = new FormData(formNode); + document.getElementById("teamForm")?.addEventListener("submit", (e) => { + e.preventDefault(); + const form = new FormData(e.currentTarget); const name = String(form.get("teamName") || "").trim(); - const { driverIds, carIds } = getTeamCreateSelections(); - if (!name) { - setFormError("teamCreateError", t("validation.required_name")); - setTeamDebug("create: missing name"); + const driverIds = form.getAll("teamDriverIds").map(String).filter(Boolean); + const carIds = form.getAll("teamCarIds").map(String).filter(Boolean); + if (!name || (!driverIds.length && !carIds.length)) { return; } - if (!driverIds.length && !carIds.length) { - setFormError("teamCreateError", t("validation.invalid_selection")); - setTeamDebug("create: no drivers/cars selected"); - return; - } - setFormError("teamCreateError", ""); - setTeamDebug(`create: name=${name} drivers=${driverIds.length} cars=${carIds.length}`); const createdTeam = normalizeRaceTeam({ id: uid("team"), name, driverIds, carIds }); event.raceConfig.teams = [...getEventTeams(event), createdTeam]; setSelectedTeamEditId(createdTeam.id); saveState(); rerenderEventManager(eventId); - }; + }); - document.getElementById("teamForm")?.addEventListener("submit", (e) => { - e.preventDefault(); - setTeamDebug("create: submit fired"); - commitTeamCreate(); + 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 (getSelectedTeamEditId() === team.id) { + setSelectedTeamEditId(null); + } + saveState(); + rerenderEventManager(eventId); + }); }); document.getElementById("teamEditCancel")?.addEventListener("click", () => { @@ -554,15 +543,12 @@ export function renderEventManagerView(context) { rerenderEventManager(eventId); }); - const commitTeamEdit = () => { + document.getElementById("teamEditForm")?.addEventListener("submit", (submitEvent) => { + submitEvent.preventDefault(); if (!editingTeam) { return; } - const formNode = document.getElementById("teamEditForm"); - if (!(formNode instanceof HTMLFormElement)) { - return; - } - const form = new FormData(formNode); + const form = new FormData(submitEvent.currentTarget); 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); @@ -581,41 +567,8 @@ export function renderEventManagerView(context) { setSelectedTeamEditId(null); saveState(); rerenderEventManager(eventId); - }; - - document.getElementById("teamEditForm")?.addEventListener("submit", (submitEvent) => { - submitEvent.preventDefault(); - setTeamDebug("edit: submit fired"); - commitTeamEdit(); }); - window.liveRcTeamSaveEdit = () => { - setTeamDebug("edit: save fired"); - commitTeamEdit(); - }; - - window.liveRcTeamAdd = () => { - setTeamDebug("create: button fired"); - commitTeamCreate(); - }; - window.liveRcTeamEdit = (teamId) => { - setTeamDebug(`edit: open ${teamId}`); - if (!teamId) return; - setSelectedTeamEditId(String(teamId)); - rerenderEventManager(eventId); - }; - window.liveRcTeamRemove = (teamId) => { - setTeamDebug(`delete: ${teamId}`); - if (!teamId) return; - event.raceConfig.teams = getEventTeams(event).filter((item) => item.id !== String(teamId)); - if (getSelectedTeamEditId() === String(teamId)) { - setSelectedTeamEditId(null); - } - saveState(); - rerenderEventManager(eventId); - }; - - document.getElementById("raceFormatBasicToggle")?.addEventListener("click", () => { setRaceFormatAdvanced(false); rerenderEventManager(eventId); diff --git a/src/event_manager_view.js b/src/event_manager_view.js index 4098df1..2cd8dbd 100644 --- a/src/event_manager_view.js +++ b/src/event_manager_view.js @@ -292,9 +292,8 @@ export function renderEventManagerMarkup(context) {
${t("events.team_steps")}
${t("events.team_hint")}