{event?.name ?? 'Event'} – Zeitnahme {#if !event}

Event nicht gefunden

Vermutlich gehört es nicht zum aktiven Team.

{:else}
Eventliste

{event.name || 'Unbenannt'}

{#if event.starts} {formatDateRange(event.starts, event.ends)} {/if}
{#if event.location}

{event.location}

{/if} {#if event.description && event.description !== event.name}

{event.description}

{/if}

Teilnehmer ({eventParticipants.length})

{#if event.participation === 'offen'} Jedes Teammitglied kann sich selbst eintragen. {:else if event.participation === 'bestaetigung'} Anmeldungen werden vom Ersteller oder der Teamleitung bestätigt. {:else} Teilnehmer trägt der Ersteller oder die Teamleitung ein. {/if}

{#if canSignUp} {/if} {#if canManage} {/if}
{#if canManage && available.length === 0 && riders.scoped.length === 0}

Das Team hat noch keine Fahrer. Jetzt anlegen

{/if} {#if eventParticipants.length === 0}

Noch niemand dabei

Fahrer gehören dem Team; hier steht, wer bei diesem Event mitfährt.

{:else} # Name Status {#if event.timing} Zeiten {/if} Aktionen {#each eventParticipants as p (p.id)} {@const rider = riders.getById(p.rider)} {@const done = times.getByRider(p.rider).filter((t) => t.status === 'finished').length} goto(riderPath(p.rider))}> {p.number || '—'} {#if rider && riderName(rider)} {riderName(rider)} {:else} — ohne Name — {/if} {PARTICIPANT_STATUS_LABEL[p.status] ?? p.status} {#if event.timing} {done} von {eventStages.length} Stages {/if} e.stopPropagation()}> {#if canManage} {#if p.status === 'angefragt'} {:else if p.status === 'zugesagt'} {:else} {/if} {:else if p.id === ownEntry?.id} {/if} {/each} {/if}
{#if event.timing}

Stages ({eventStages.length})

Klick auf eine Stage öffnet die Zeitnahme

{#if eventStages.length === 0}

Noch keine Stages

Lege den ersten Lauf an.

{:else} Bezeichnung Zeiten Aktionen {#each eventStages as stage (stage.id)} {@const stageTimes = times.getByStage(stage.id)} {@const active = stageTimes.filter((t) => t.status === 'active').length} {@const ranked = stageTimes.filter((t) => t.status === 'finished').length} goto(stagePath(stage.id))}> {stage.description} {#if active > 0} {active} laufend {/if} {ranked} gewertet e.stopPropagation()}> {/each} {/if}
{/if}
{/if} Startnummer ändern Die Startnummer gilt nur für „{event?.name}".

Gilt je Event. Ohne Zeitnahme braucht es sie meist gar nicht.

{#if formError}

{formError}

{/if}
Teilnehmer eintragen Aus dem Kader des Teams. Die Startnummer gilt je Event und kann leer bleiben.
{#if available.length === 0}

Der ganze Kader ist schon eingetragen.

{:else}
{#each addFiltered as r (r.id)}
(picks = { ...picks, [r.id]: { number: picks[r.id]?.number ?? '', chosen: e.currentTarget.checked, }, })} /> (picks = { ...picks, [r.id]: { chosen: picks[r.id]?.chosen ?? false, number: e.currentTarget.value, }, })} />
{:else}

Kein Treffer.

{/each}
{/if} {#if addError}

{addError}

{/if}
{stageEdit ? 'Stage bearbeiten' : 'Neue Stage'} Stage für „{event?.name}"
{ e.preventDefault() saveStage() }} class="space-y-4" >