Initial curated Unraid-AppOps-Gateway source from 3bd6f6fee310125bfbb4d4650389a817f498724d
This commit is contained in:
commit
1dfbca08a1
528 files changed
+131054
No files matched your search
@@ -0,0 +1,68 @@
|
||||
export type SafetyActionFeedbackTone = "success" | "warning" | "error";
|
||||
|
||||
export interface SafetyActionFeedbackLink {
|
||||
label: string;
|
||||
href: string;
|
||||
}
|
||||
|
||||
export interface SafetyActionFeedback {
|
||||
tone: SafetyActionFeedbackTone;
|
||||
title: string;
|
||||
description: string;
|
||||
links: SafetyActionFeedbackLink[];
|
||||
}
|
||||
|
||||
export interface SafetyPlanResult {
|
||||
success: boolean;
|
||||
status: string;
|
||||
href?: string;
|
||||
executable?: boolean;
|
||||
planId?: string | null;
|
||||
}
|
||||
|
||||
export const buildSafetyStateFeedback = (
|
||||
kind: "finding" | "recommendation",
|
||||
id: string,
|
||||
status: string,
|
||||
): SafetyActionFeedback => ({
|
||||
tone: "success",
|
||||
title: kind === "finding" ? "Finding status bijgewerkt" : "Recommendation verborgen",
|
||||
description: `${id} staat nu op ${status}. Dit is metadata-only governance; er is geen externe connectoractie uitgevoerd.`,
|
||||
links: [
|
||||
{ label: "Open audit", href: `/audit?query=${encodeURIComponent(id)}` },
|
||||
{ label: "Refresh safety", href: "/safety" },
|
||||
],
|
||||
});
|
||||
|
||||
export const buildSafetyPlanFeedback = (
|
||||
recommendationId: string,
|
||||
result: SafetyPlanResult,
|
||||
): SafetyActionFeedback => {
|
||||
if (!result.success) {
|
||||
return {
|
||||
tone: "error",
|
||||
title: "Remediation plan niet aangemaakt",
|
||||
description: `${recommendationId} kon niet naar een niet-uitvoerend remediation plan worden omgezet.`,
|
||||
links: [{ label: "Open planner", href: "/ai/remediation-planner" }],
|
||||
};
|
||||
}
|
||||
|
||||
return {
|
||||
tone: result.executable ? "warning" : "success",
|
||||
title: "Remediation plan gekoppeld",
|
||||
description: result.executable
|
||||
? "Plan is aangemaakt. Controleer execution-instellingen voordat je iets uitvoert."
|
||||
: "Plan is aangemaakt als niet-uitvoerend advies. Er zijn geen connector-, policy- of infrastructuurmutaties uitgevoerd.",
|
||||
links: [
|
||||
{ label: "Open plan", href: result.href || "/ai/remediation-planner" },
|
||||
{ label: "Open audit", href: `/audit?query=${encodeURIComponent(result.planId || recommendationId)}` },
|
||||
],
|
||||
};
|
||||
};
|
||||
|
||||
export const buildSafetyActionErrorFeedback = (label: string, error: unknown): SafetyActionFeedback => ({
|
||||
tone: "error",
|
||||
title: `${label} mislukt`,
|
||||
description: error instanceof Error ? error.message : "Safety actie kon niet worden verwerkt.",
|
||||
links: [{ label: "Open audit", href: "/audit" }],
|
||||
});
|
||||
Reference in new issue
Block a user