{error}
{/if} {#if msg}{msg}
{/if} {#if topTab === 'dashboard'}Projects
{#each dash.projects as p} {:else}No projects yet.
{/each}Open tickets
{#each dash.openTickets as t} {:else}Nothing open.
{/each}Time by project
| Project | Time |
|---|---|
| {p.name} | {formatDuration(p.durationNs)} |
Projekte
Wähle links ein Projekt oder lege ein neues an.
{projectName}
{#each boardStatuses as [st, label]}
onColumnDragOver(e, st)}
ondragleave={(e) => onColumnDragLeave(e, st)}
ondrop={(e) => onColumnDrop(e, st)}
role="list"
aria-label={label}
>
{/each}
{label}
{#each byStatus(st) as t} onTicketDragStart(e, t)}
ondragend={onTicketDragEnd}
>
{:else}
Drop hier
{/each}
Time
| When | Duration | Source | |
|---|---|---|---|
|
|
|||
| {e.start ? new Date(e.start).toLocaleString() : '—'} | {formatDuration(e.duration)} | {e.source} | |
| No time yet. | |||
History
| Rev | Op | At | |
|---|---|---|---|
| {rev.rev} | {rev.op} | {new Date(rev.at).toLocaleString()} |
Report — {projectName}
{#each [['ticket', 'Ticket'], ['status', 'Status'], ['day', 'Day']] as [g, label]}
{/each}
{report.entryCount} entries · total {formatDuration(report.totalDurationNs)}
Summary
| Group | Duration |
|---|---|
| {row.label} | {formatDuration(row.durationNs)} |
| No time logged. | |
Entries
| When | Ticket | Duration | Source | Note | |
|---|---|---|---|---|---|
|
|
|||||
| {e.start ? new Date(e.start).toLocaleString() : '—'} | {ticketTitle(e.ticketId)} | {formatDuration(e.duration)} | {e.source} | {e.note || ''} | |
| No entries for this filter. | |||||
Settings — {projectName}
{#if groups.length}Gruppen verwalten
{#each groups as g}
{g.name}
{/each}
API tokens (for TUI)
Create a write token, then in `tm`: project edit → backend taskmaster → URL, token, this project id.
{#if newTokenSecret}
New token (shown once)
{/if}
{newTokenSecret}
| Name | Scope | Created | |
|---|---|---|---|
| {t.name}{#if t.revokedAt} (revoked){/if} | {t.scope} | {new Date(t.createdAt).toLocaleString()} | {#if !t.revokedAt} {/if} |
Members — {projectName}
| User | Role | |
|---|---|---|
| {m.username} | {m.role} |
Users
| Username | Admin | |
|---|---|---|
| {u.username} | {#if u.id !== user.id} {/if} |
Create user
Settings
Globale Einstellungen folgen hier später.