feat(series): choose open series or club members only for series points
Who scores is now an explicit per-series choice: every driver (default) or club members only, with the club field shown only for the latter. Series saved with a club keep members-only scoring. README updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -16,7 +16,11 @@ function renderSeriesForm(series, { t, escapeHtml, state }) {
|
||||
return `
|
||||
<form id="seriesForm" class="form-grid cols-3 settings-grid">
|
||||
<label><span>${t("series.name")}</span><input name="name" required value="${escapeHtml(series.name)}" placeholder="${escapeHtml(t("series.name_placeholder"))}" /></label>
|
||||
<label><span>${t("series.club")}</span><input name="club" list="seriesClubOptions" value="${escapeHtml(series.club)}" placeholder="${escapeHtml(t("series.club_all"))}" />
|
||||
<label><span>${t("series.scoring")}</span><select name="scoring" data-series-scoring>
|
||||
<option value="all" ${series.scoring === "all" ? "selected" : ""}>${t("series.scoring_all")}</option>
|
||||
<option value="club" ${series.scoring === "club" ? "selected" : ""}>${t("series.scoring_club")}</option>
|
||||
</select></label>
|
||||
<label data-series-club ${series.scoring === "club" ? "" : "hidden"}><span>${t("series.club")}</span><input name="club" list="seriesClubOptions" value="${escapeHtml(series.club)}" placeholder="${escapeHtml(t("series.club_placeholder"))}" />
|
||||
<datalist id="seriesClubOptions">${clubs.map((club) => `<option value="${escapeHtml(club)}"></option>`).join("")}</datalist>
|
||||
<small>${t("series.club_hint")}</small></label>
|
||||
<fieldset class="series-classes"><legend>${t("series.classes")}</legend>
|
||||
@@ -120,6 +124,9 @@ export function renderSeriesView(deps) {
|
||||
if (!series) return;
|
||||
|
||||
const form = document.getElementById("seriesForm");
|
||||
form?.querySelector("[data-series-scoring]")?.addEventListener("change", (event) => {
|
||||
form.querySelector("[data-series-club]").hidden = event.target.value !== "club";
|
||||
});
|
||||
form?.querySelector("[data-series-preset]")?.addEventListener("change", (event) => {
|
||||
const preset = SERIES_POINT_PRESETS[event.target.value];
|
||||
if (!preset) return;
|
||||
@@ -133,6 +140,7 @@ export function renderSeriesView(deps) {
|
||||
Object.assign(series, normalizeSeries({
|
||||
...series,
|
||||
name: data.get("name"),
|
||||
scoring: data.get("scoring"),
|
||||
club: data.get("club"),
|
||||
classIds: data.getAll("classIds"),
|
||||
pointsTable: parsePointsTable(data.get("pointsTable")),
|
||||
|
||||
Reference in New Issue
Block a user