From f662ce0b7a87919aae54220897f7162f08b53c6e Mon Sep 17 00:00:00 2001 From: MacRimi Date: Sun, 19 Oct 2025 17:16:35 +0200 Subject: [PATCH] Update AppImage --- AppImage/components/virtual-machines.tsx | 187 ++++++++++++++++------- AppImage/public/apple-touch-icon.png | Bin 9163 -> 8596 bytes AppImage/public/apple-touch-icon2.png | Bin 4035 -> 0 bytes 3 files changed, 133 insertions(+), 54 deletions(-) delete mode 100644 AppImage/public/apple-touch-icon2.png diff --git a/AppImage/components/virtual-machines.tsx b/AppImage/components/virtual-machines.tsx index c052002..9f97efc 100644 --- a/AppImage/components/virtual-machines.tsx +++ b/AppImage/components/virtual-machines.tsx @@ -20,6 +20,7 @@ import { Container, } from "lucide-react" import useSWR from "swr" +import { MetricsDialog } from "./metrics-dialog" interface VMData { vmid: number @@ -184,6 +185,8 @@ export function VirtualMachines() { const [controlLoading, setControlLoading] = useState(false) const [detailsLoading, setDetailsLoading] = useState(false) const [vmConfigs, setVmConfigs] = useState>({}) + const [metricsDialogOpen, setMetricsDialogOpen] = useState(false) + const [selectedMetric, setSelectedMetric] = useState<"cpu" | "memory" | "disk" | "network" | null>(null) useEffect(() => { const fetchLXCIPs = async () => { @@ -540,37 +543,65 @@ export function VirtualMachines() {
CPU Usage
-
- {cpuPercent}% +
{ + setSelectedMetric("cpu") + setMetricsDialogOpen(true) + }} + > +
+ {cpuPercent}% +
+
-
Memory
-
- {memGB} / {maxMemGB} GB +
{ + setSelectedMetric("memory") + setMetricsDialogOpen(true) + }} + > +
+ {memGB} / {maxMemGB} GB +
+
-
Disk Usage
{ + setSelectedMetric("disk") + setMetricsDialogOpen(true) + }} > - {diskGB} / {maxDiskGB} GB +
+ {diskGB} / {maxDiskGB} GB +
+
-
@@ -718,37 +749,62 @@ export function VirtualMachines() {
CPU Usage
-
- {(selectedVM.cpu * 100).toFixed(1)}% +
{ + setSelectedMetric("cpu") + setMetricsDialogOpen(true) + }} + > +
+ {(selectedVM.cpu * 100).toFixed(1)}% +
+
-
Memory
{ + setSelectedMetric("memory") + setMetricsDialogOpen(true) + }} > - {(selectedVM.mem / 1024 ** 3).toFixed(1)} / {(selectedVM.maxmem / 1024 ** 3).toFixed(1)} GB +
+ {(selectedVM.mem / 1024 ** 3).toFixed(1)} / {(selectedVM.maxmem / 1024 ** 3).toFixed(1)} GB +
+
-
Disk
{ + setSelectedMetric("disk") + setMetricsDialogOpen(true) + }} > - {(selectedVM.disk / 1024 ** 3).toFixed(1)} / {(selectedVM.maxdisk / 1024 ** 3).toFixed(1)} GB +
+ {(selectedVM.disk / 1024 ** 3).toFixed(1)} / {(selectedVM.maxdisk / 1024 ** 3).toFixed(1)}{" "} + GB +
+
-
Uptime
@@ -756,23 +812,39 @@ export function VirtualMachines() {
Disk I/O
-
-
- ↓ {formatBytes(selectedVM.diskread)} +
{ + setSelectedMetric("disk") + setMetricsDialogOpen(true) + }} + > +
+ + {((selectedVM.diskread || 0) / 1024 ** 2).toFixed(2)} MB
-
- ↑ {formatBytes(selectedVM.diskwrite)} +
+ + {((selectedVM.diskwrite || 0) / 1024 ** 2).toFixed(2)} MB
Network I/O
-
-
- ↓ {formatBytes(selectedVM.netin)} +
{ + setSelectedMetric("network") + setMetricsDialogOpen(true) + }} + > +
+ + {((selectedVM.netin || 0) / 1024 ** 2).toFixed(2)} MB
-
- ↑ {formatBytes(selectedVM.netout)} +
+ + {((selectedVM.netout || 0) / 1024 ** 2).toFixed(2)} MB
@@ -978,18 +1050,25 @@ export function VirtualMachines() { Force Stop -
+ + {/* MetricsDialog component usage */} + {selectedVM && selectedMetric && ( + { + setMetricsDialogOpen(false) + setSelectedMetric(null) + }} + vmid={selectedVM.vmid} + vmName={selectedVM.name} + vmType={selectedVM.type} + metricType={selectedMetric} + /> + )}
) } diff --git a/AppImage/public/apple-touch-icon.png b/AppImage/public/apple-touch-icon.png index e685b280c5b493f0e85fa4abfeac449877818b18..78534526fd0dacb554c1521043dcb7741d5b1681 100644 GIT binary patch literal 8596 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 VwIbBHfi?gD002ovPDHLkV1lct)M5Yt diff --git a/AppImage/public/apple-touch-icon2.png b/AppImage/public/apple-touch-icon2.png deleted file mode 100644 index fcdbf439a9c8b6135401671cfda50416c3293af9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4035 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