This commit is contained in:
larssand
2026-03-27 19:07:19 +01:00
parent 05e0bf0c1f
commit f5be5b57ad
2 changed files with 56 additions and 28 deletions

View File

@@ -254,12 +254,18 @@ export function renderEventManagerView(context) {
document.getElementById("sessionForm")?.addEventListener("submit", (e) => {
e.preventDefault();
const form = new FormData(e.currentTarget);
const formNode = e.currentTarget;
if (!(formNode instanceof HTMLFormElement)) {
return;
}
const form = new FormData(formNode);
const typeField = formNode.querySelector('[name="type"]');
const selectedType = typeField instanceof HTMLSelectElement ? typeField.value : String(form.get("type") || "");
state.sessions.push(normalizeSession({
id: uid("session"),
eventId,
name: String(form.get("name")).trim(),
type: String(form.get("type")),
type: selectedType,
durationMin: Number(form.get("durationMin")),
followUpSec: Math.max(0, Number(form.get("followUpSec") || 0) || 0),
startMode: String(form.get("startMode") || "mass"),
@@ -350,7 +356,13 @@ export function renderEventManagerView(context) {
if (!editingSession) {
return;
}
const form = new FormData(event.currentTarget);
const formNode = event.currentTarget;
if (!(formNode instanceof HTMLFormElement)) {
return;
}
const form = new FormData(formNode);
const typeField = formNode.querySelector('[name="type"]');
const selectedType = typeField instanceof HTMLSelectElement ? typeField.value : String(form.get("type") || editingSession.type);
const cleanedName = String(form.get("name") || "").trim();
const cleanedDuration = Number(form.get("durationMin") || editingSession.durationMin || 5) || 0;
if (!cleanedName) {
@@ -363,7 +375,7 @@ export function renderEventManagerView(context) {
}
setFormError("sessionEditError", "");
editingSession.name = cleanedName;
editingSession.type = String(form.get("type") || editingSession.type);
editingSession.type = selectedType;
editingSession.durationMin = Math.max(1, cleanedDuration);
editingSession.followUpSec = Math.max(0, Number(form.get("followUpSec") || 0) || 0);
editingSession.startMode = normalizeStartMode(String(form.get("startMode") || editingSession.startMode || "mass"));
@@ -496,7 +508,11 @@ export function renderEventManagerView(context) {
if (showTeamsSection) {
document.getElementById("teamForm")?.addEventListener("submit", (e) => {
e.preventDefault();
const form = new FormData(e.currentTarget);
const formNode = e.currentTarget;
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);
@@ -559,7 +575,11 @@ export function renderEventManagerView(context) {
if (!editingTeam) {
return;
}
const form = new FormData(submitEvent.currentTarget);
const formNode = submitEvent.currentTarget;
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);