Fix race format persistence in event manager
This commit is contained in:
@@ -229,15 +229,18 @@ export function renderEventManagerView(context) {
|
|||||||
document.getElementById("eventBrandingForm")?.addEventListener("submit", (e) => {
|
document.getElementById("eventBrandingForm")?.addEventListener("submit", (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const form = new FormData(e.currentTarget);
|
const form = new FormData(e.currentTarget);
|
||||||
event.branding = normalizeBrandingConfig({
|
updateEvent((item) => ({
|
||||||
...event.branding,
|
...item,
|
||||||
brandName: String(form.get("brandName") || "").trim(),
|
branding: normalizeBrandingConfig({
|
||||||
brandTagline: String(form.get("brandTagline") || "").trim(),
|
...item.branding,
|
||||||
pdfFooter: String(form.get("pdfFooter") || "").trim(),
|
brandName: String(form.get("brandName") || "").trim(),
|
||||||
pdfTheme: String(form.get("pdfTheme") || "").trim(),
|
brandTagline: String(form.get("brandTagline") || "").trim(),
|
||||||
});
|
pdfFooter: String(form.get("pdfFooter") || "").trim(),
|
||||||
|
pdfTheme: String(form.get("pdfTheme") || "").trim(),
|
||||||
|
}),
|
||||||
|
}));
|
||||||
saveState();
|
saveState();
|
||||||
rerenderEventManager(eventId);
|
refreshManager();
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById("eventLogoUpload")?.addEventListener("change", (eventInput) => {
|
document.getElementById("eventLogoUpload")?.addEventListener("change", (eventInput) => {
|
||||||
@@ -248,12 +251,15 @@ export function renderEventManagerView(context) {
|
|||||||
}
|
}
|
||||||
const reader = new FileReader();
|
const reader = new FileReader();
|
||||||
reader.onload = () => {
|
reader.onload = () => {
|
||||||
event.branding = normalizeBrandingConfig({
|
updateEvent((item) => ({
|
||||||
...event.branding,
|
...item,
|
||||||
logoDataUrl: typeof reader.result === "string" ? reader.result : "",
|
branding: normalizeBrandingConfig({
|
||||||
});
|
...item.branding,
|
||||||
|
logoDataUrl: typeof reader.result === "string" ? reader.result : "",
|
||||||
|
}),
|
||||||
|
}));
|
||||||
saveState();
|
saveState();
|
||||||
rerenderEventManager(eventId);
|
refreshManager();
|
||||||
};
|
};
|
||||||
reader.readAsDataURL(file);
|
reader.readAsDataURL(file);
|
||||||
});
|
});
|
||||||
@@ -658,9 +664,16 @@ export function renderEventManagerView(context) {
|
|||||||
document.getElementById("raceFormatForm")?.addEventListener("submit", (e) => {
|
document.getElementById("raceFormatForm")?.addEventListener("submit", (e) => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
const form = new FormData(e.currentTarget);
|
const form = new FormData(e.currentTarget);
|
||||||
event.raceConfig = buildRaceFormatConfigFromForm(form, event);
|
const config = buildRaceFormatConfigFromForm(form, event);
|
||||||
|
updateEvent((item) => ({
|
||||||
|
...item,
|
||||||
|
raceConfig: {
|
||||||
|
...config,
|
||||||
|
teams: getEventTeams(item),
|
||||||
|
},
|
||||||
|
}));
|
||||||
saveState();
|
saveState();
|
||||||
rerenderEventManager(eventId);
|
refreshManager();
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById("applyRacePreset")?.addEventListener("click", () => {
|
document.getElementById("applyRacePreset")?.addEventListener("click", () => {
|
||||||
@@ -669,9 +682,13 @@ export function renderEventManagerView(context) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const form = new FormData(formElement);
|
const form = new FormData(formElement);
|
||||||
applyRaceFormatPreset(event, String(form.get("presetId") || "custom"));
|
updateEvent((item) => {
|
||||||
|
const next = normalizeEvent(item);
|
||||||
|
applyRaceFormatPreset(next, String(form.get("presetId") || "custom"));
|
||||||
|
return next;
|
||||||
|
});
|
||||||
saveState();
|
saveState();
|
||||||
rerenderEventManager(eventId);
|
refreshManager();
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById("saveRacePreset")?.addEventListener("click", () => {
|
document.getElementById("saveRacePreset")?.addEventListener("click", () => {
|
||||||
@@ -717,9 +734,16 @@ export function renderEventManagerView(context) {
|
|||||||
});
|
});
|
||||||
const otherPresets = (state.settings.racePresets || []).filter((preset) => preset.id !== presetId);
|
const otherPresets = (state.settings.racePresets || []).filter((preset) => preset.id !== presetId);
|
||||||
state.settings.racePresets = [...otherPresets, storedPreset];
|
state.settings.racePresets = [...otherPresets, storedPreset];
|
||||||
event.raceConfig = { ...config, presetId };
|
updateEvent((item) => ({
|
||||||
|
...item,
|
||||||
|
raceConfig: {
|
||||||
|
...config,
|
||||||
|
presetId,
|
||||||
|
teams: getEventTeams(item),
|
||||||
|
},
|
||||||
|
}));
|
||||||
saveState();
|
saveState();
|
||||||
rerenderEventManager(eventId);
|
refreshManager();
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById("deleteRacePreset")?.addEventListener("click", () => {
|
document.getElementById("deleteRacePreset")?.addEventListener("click", () => {
|
||||||
@@ -733,9 +757,15 @@ export function renderEventManagerView(context) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
state.settings.racePresets = (state.settings.racePresets || []).filter((preset) => preset.id !== presetId);
|
state.settings.racePresets = (state.settings.racePresets || []).filter((preset) => preset.id !== presetId);
|
||||||
event.raceConfig.presetId = "custom";
|
updateEvent((item) => ({
|
||||||
|
...item,
|
||||||
|
raceConfig: {
|
||||||
|
...item.raceConfig,
|
||||||
|
presetId: "custom",
|
||||||
|
},
|
||||||
|
}));
|
||||||
saveState();
|
saveState();
|
||||||
rerenderEventManager(eventId);
|
refreshManager();
|
||||||
});
|
});
|
||||||
|
|
||||||
document.getElementById("generateQualifying")?.addEventListener("click", () => {
|
document.getElementById("generateQualifying")?.addEventListener("click", () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user