Adopt shared WebUI layout primitives
This commit is contained in:
@@ -1079,7 +1079,7 @@ export default function FileConnectorSettingsPanel({
|
|||||||
open={Boolean(credentialDraft)}
|
open={Boolean(credentialDraft)}
|
||||||
title={editingCredentialId ? "i18n:govoplan-files.edit_file_credential.bc49d44f" : "i18n:govoplan-files.new_file_credential.4c061082"}
|
title={editingCredentialId ? "i18n:govoplan-files.edit_file_credential.bc49d44f" : "i18n:govoplan-files.new_file_credential.4c061082"}
|
||||||
onClose={closeCredentialDialog}
|
onClose={closeCredentialDialog}
|
||||||
className="file-connector-dialog adaptive-config-dialog"
|
className="file-connector-dialog"
|
||||||
bodyClassName="adaptive-config-dialog-body"
|
bodyClassName="adaptive-config-dialog-body"
|
||||||
closeDisabled={saving}
|
closeDisabled={saving}
|
||||||
footer={credentialDraft ?
|
footer={credentialDraft ?
|
||||||
@@ -1243,7 +1243,7 @@ export default function FileConnectorSettingsPanel({
|
|||||||
open={Boolean(draft)}
|
open={Boolean(draft)}
|
||||||
title={editingProfileId ? "i18n:govoplan-files.edit_file_connection.78698154" : "i18n:govoplan-files.new_file_connection.2ec6eb56"}
|
title={editingProfileId ? "i18n:govoplan-files.edit_file_connection.78698154" : "i18n:govoplan-files.new_file_connection.2ec6eb56"}
|
||||||
onClose={closeProfileDialog}
|
onClose={closeProfileDialog}
|
||||||
className="file-connector-dialog adaptive-config-dialog"
|
className="file-connector-dialog"
|
||||||
bodyClassName="adaptive-config-dialog-body"
|
bodyClassName="adaptive-config-dialog-body"
|
||||||
closeDisabled={saving}
|
closeDisabled={saving}
|
||||||
footer={draft ?
|
footer={draft ?
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
import { MetricGrid } from "@govoplan/core-webui";
|
||||||
import { useEffect, useMemo, useState } from "react";
|
import { useEffect, useMemo, useState } from "react";
|
||||||
import {
|
import {
|
||||||
AdminPageLayout,
|
AdminPageLayout,
|
||||||
@@ -424,12 +425,12 @@ export default function FileIntegrityPanel({ settings, canWrite }: Props) {
|
|||||||
|
|
||||||
{selectedScan && (
|
{selectedScan && (
|
||||||
<>
|
<>
|
||||||
<div className="metric-grid">
|
<MetricGrid>
|
||||||
<MetricCard label="Verified blobs" value={selectedScan.verified_blob_count} tone="good" />
|
<MetricCard label="Verified blobs" value={selectedScan.verified_blob_count} tone="good" />
|
||||||
<MetricCard label="Quarantined blobs" value={selectedScan.quarantined_blob_count} tone={selectedScan.quarantined_blob_count ? "danger" : "neutral"} />
|
<MetricCard label="Quarantined blobs" value={selectedScan.quarantined_blob_count} tone={selectedScan.quarantined_blob_count ? "danger" : "neutral"} />
|
||||||
<MetricCard label="Orphan objects" value={selectedScan.orphan_object_count} tone={selectedScan.orphan_object_count ? "warning" : "neutral"} />
|
<MetricCard label="Orphan objects" value={selectedScan.orphan_object_count} tone={selectedScan.orphan_object_count ? "warning" : "neutral"} />
|
||||||
<MetricCard label="Open findings" value={findings.filter((finding) => finding.state === "open").length} tone={findings.some((finding) => finding.state === "open") ? "warning" : "good"} />
|
<MetricCard label="Open findings" value={findings.filter((finding) => finding.state === "open").length} tone={findings.some((finding) => finding.state === "open") ? "warning" : "good"} />
|
||||||
</div>
|
</MetricGrid>
|
||||||
{selectedScan.last_error && (
|
{selectedScan.last_error && (
|
||||||
<DismissibleAlert tone="warning" dismissible={false} compact>
|
<DismissibleAlert tone="warning" dismissible={false} compact>
|
||||||
The last batch failed with {selectedScan.last_error}. Verify storage availability, then resume from the recorded cursor.
|
The last batch failed with {selectedScan.last_error}. Verify storage availability, then resume from the recorded cursor.
|
||||||
|
|||||||
Reference in New Issue
Block a user