aufträge und „Alle aktualisieren“: beendete lassen sich ausblenden
User 25.09.: Die Karten waren „immer da“ und ließen sich weder bestätigen noch wegklicken. Beendete Aufträge der KI-Box und das letzte „Alle aktualisieren“ im Homelab haben jetzt einen Knopf „Ausblenden“ (quittiert wird auf dem Server, gilt also auf allen Geräten; das Protokoll behält alles). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
0df593c05a
commit
54a3649d5e
@@ -143,7 +143,8 @@ function useAktion<V, E extends AktionsErgebnis | Record<string, unknown>>(
|
||||
const ergebnis = e as AktionsErgebnis
|
||||
if (ergebnis && ergebnis.ok === false) {
|
||||
melden("fehler", opt.fehler?.(v, ergebnis) ?? fehlerText(ergebnis))
|
||||
} else {
|
||||
} else if (opt.erfolg(v, e)) {
|
||||
// Leerer Text: keine Erfolgsmeldung (etwa beim Ausblenden — da sieht man es ja).
|
||||
melden("erfolg", opt.erfolg(v, e))
|
||||
}
|
||||
for (const k of opt.neuLaden) qc.invalidateQueries({ queryKey: [k] })
|
||||
@@ -189,6 +190,13 @@ export const useJobAbbrechen = () =>
|
||||
neuLaden: ["jobs"],
|
||||
})
|
||||
|
||||
/** Einen beendeten Auftrag ausblenden (seit 25.09.2026; vorher blieb er 24 Stunden stehen). */
|
||||
export const useJobQuittieren = () =>
|
||||
useAktion((id: string) => post<AktionsErgebnis>(`/api/jobs/${encodeURIComponent(id)}/quittieren`), {
|
||||
erfolg: () => "",
|
||||
neuLaden: ["jobs"],
|
||||
})
|
||||
|
||||
/** Ein Modell von Hugging Face holen (Hintergrund-Auftrag, mit optionaler Rolle nach dem Download). */
|
||||
export const useInstallieren = () =>
|
||||
useAktion(
|
||||
@@ -414,6 +422,13 @@ export const useAlleAktualisieren = () =>
|
||||
neuLaden: ["homelab-sammellauf", "homelab-laeufe", "homelab"],
|
||||
})
|
||||
|
||||
/** Ein beendetes „Alle aktualisieren“ ausblenden (das Protokoll behält es). */
|
||||
export const useSammellaufQuittieren = () =>
|
||||
useAktion((id: string) => post<AktionsErgebnis>(`/api/homelab/sammellauf/${encodeURIComponent(id)}/quittieren`), {
|
||||
erfolg: () => "",
|
||||
neuLaden: ["homelab-sammellauf"],
|
||||
})
|
||||
|
||||
export const useHomelabProtokoll = (aktiv: boolean, berichte: boolean) =>
|
||||
useQuery({
|
||||
queryKey: ["homelab-protokoll", berichte],
|
||||
|
||||
@@ -173,6 +173,8 @@ export interface Job {
|
||||
started_at: number
|
||||
finished_at: number | null
|
||||
canceled?: boolean
|
||||
/** Vom Nutzer ausgeblendet (seit 25.09.2026). */
|
||||
quittiert?: boolean
|
||||
/** Nur bei Downloads: Fortschritt 0…100 und die Bytes dazu. */
|
||||
progress?: number | null
|
||||
total_bytes?: number
|
||||
|
||||
@@ -128,7 +128,7 @@ export function letzteMeldung(j: Pick<Job, "log">): string | null {
|
||||
export function sichtbareJobs(jobs: Job[], jetzt = Date.now() / 1000): Job[] {
|
||||
const laufend = jobs.filter(laeuftNoch).sort((a, b) => a.started_at - b.started_at)
|
||||
const beendet = jobs
|
||||
.filter((j) => !laeuftNoch(j) && jetzt - (j.finished_at ?? j.started_at) < 86_400)
|
||||
.filter((j) => !laeuftNoch(j) && !j.quittiert && jetzt - (j.finished_at ?? j.started_at) < 86_400)
|
||||
.sort((a, b) => (b.finished_at ?? b.started_at) - (a.finished_at ?? a.started_at))
|
||||
.slice(0, 3)
|
||||
return [...laufend, ...beendet]
|
||||
|
||||
Reference in New Issue
Block a user