feat(verlauf): Filter, Wiederholen und Aufräumen

Verlauf filterbar (URL, API, proxdeploy history); Wiederholen füllt den Assistenten aus einem alten Auftrag; Aufräumen löscht nach Fehlschlag oder Abbruch den halb angelegten Gast – nur, wenn dessen Beschreibung auf den Auftrag verweist. Deshalb setzt das Klonen die Beschreibung jetzt sofort. Auf pve-demo geprüft (CT 109).

Closes #014

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-12 16:39:58 +02:00
co-authored by Claude Opus 5.5
parent 8dca30e254
commit 7f6cf00a0e
32 changed files with 1488 additions and 53 deletions
+10
View File
@@ -164,6 +164,9 @@ export const AuftragSicht = z.looseObject({
gestartetAm: Zeit.nullable(),
beendetAm: Zeit.nullable(),
abschluss: Abschluss.nullable(),
aufraeumbar: z
.looseObject({ typ: z.enum(["VM", "LXC"]), vmid: z.number().int(), knoten: z.string().nullable() })
.nullable(),
phasen: z.array(PhaseSicht),
});
@@ -190,3 +193,10 @@ export const Plan = z.looseObject({
automatisch: z.array(z.string()),
ok: z.boolean(),
});
export const Verlauf = z.looseObject({
eintraege: z.array(AuftragSicht),
gesamt: z.number().int(),
seite: z.number().int(),
seiten: z.number().int(),
});
+2
View File
@@ -22,6 +22,8 @@ export type AuftragSicht = {
beendetAm: string | null;
/** Abschlussbox, sobald der Auftrag fertig ist. */
abschluss: Abschluss | null;
/** Bei Fehlschlag/Abbruch: was „Aufräumen“ löschen würde. */
aufraeumbar: { typ: "VM" | "LXC"; vmid: number; knoten: string | null } | null;
phasen: Array<{
schluessel: string;
titel: string;