diff --git a/AppImage/components/virtual-machines.tsx b/AppImage/components/virtual-machines.tsx index 5e365de7..a4e14d21 100644 --- a/AppImage/components/virtual-machines.tsx +++ b/AppImage/components/virtual-machines.tsx @@ -1302,7 +1302,13 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => {
{/* CPU Usage */}
-
CPU Usage
+
+ + CPU Usage + {vmDetails?.config?.cores && ( + ({vmDetails.config.cores} cores) + )} +
{(selectedVM.cpu * 100).toFixed(1)}%
@@ -1314,7 +1320,10 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => { {/* Memory */}
-
Memory
+
+ + Memory +
@@ -1329,7 +1338,10 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => { {/* Disk */}
-
Disk
+
+ + Disk +
@@ -1344,7 +1356,10 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => { {/* Disk I/O */}
-
Disk I/O
+
+ + Disk I/O +
@@ -1359,7 +1374,10 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => { {/* Network I/O */}
-
Network I/O
+
+ + Network I/O +
@@ -1508,19 +1526,28 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => {
{vmDetails.config.cores && (
-
CPU Cores
+
+ + CPU Cores +
{vmDetails.config.cores}
)} {vmDetails.config.memory && (
-
Memory
+
+ + Memory +
{vmDetails.config.memory} MB
)} - {vmDetails.config.swap && ( + {vmDetails.config.swap !== undefined && (
-
Swap
+
+ + Swap +
{vmDetails.config.swap} MB
)} @@ -1529,7 +1556,8 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => { {/* IP Addresses with proper keys */} {selectedVM?.type === "lxc" && vmDetails?.lxc_ip_info && (
-

+

+ IP Addresses

@@ -1632,7 +1660,8 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => {
{selectedVM?.type === "lxc" && vmDetails?.hardware_info && (
-

+

+ Container Configuration

@@ -1640,7 +1669,10 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => { {vmDetails.hardware_info.privileged !== null && vmDetails.hardware_info.privileged !== undefined && (
-
Privilege Level
+
+ + Privilege Level +
{ {vmDetails.hardware_info.gpu_passthrough && vmDetails.hardware_info.gpu_passthrough.length > 0 && (
-
GPU Passthrough
+
+ + GPU Passthrough +
{vmDetails.hardware_info.gpu_passthrough.map((gpu, index) => ( { {vmDetails.hardware_info.devices && vmDetails.hardware_info.devices.length > 0 && (
-
Hardware Devices
+
+ + Hardware Devices +
{vmDetails.hardware_info.devices.map((device, index) => ( { {/* Hardware Section */}
-

+

+ Hardware

@@ -1802,7 +1841,8 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => { {/* Storage Section */}
-

+

+ Storage

@@ -1867,7 +1907,8 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => { {/* Network Section */}
-

+

+ Network

@@ -1916,7 +1957,8 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => { {/* PCI Devices with proper keys */} {Object.keys(vmDetails.config).some((key) => key.match(/^hostpci\d+$/)) && (
-

+

+ PCI Passthrough

@@ -1939,7 +1981,8 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => { {/* USB Devices with proper keys */} {Object.keys(vmDetails.config).some((key) => key.match(/^usb\d+$/)) && (
-

+

+ USB Devices

@@ -1962,7 +2005,8 @@ const handleDownloadLogs = async (vmid: number, vmName: string) => { {/* Serial Ports with proper keys */} {Object.keys(vmDetails.config).some((key) => key.match(/^serial\d+$/)) && (
-

+

+ Serial Ports

diff --git a/AppImage/scripts/notification_templates.py b/AppImage/scripts/notification_templates.py index 86c2cef2..382534c4 100644 --- a/AppImage/scripts/notification_templates.py +++ b/AppImage/scripts/notification_templates.py @@ -1454,7 +1454,7 @@ TITLE: ✅success ❌failed 💥crash 🆘critical 📦updates 🆕pve-update 🚀 = something STARTS (VM/CT start, backup start, server boot, task begin) Combine: 💾🚀backup-start 🖥️🚀system-boot 🚀VM/CT-start -BODY: 🏷️VM/CT name ✔️ok ❌error 💽size 💾total ⏱️duration 🗄️storage 📊summary +BODY: 🏷️VM/CT name ✔️ok ❌error 💽size ����total ⏱️duration 🗄️storage 📊summary 📦updates 🔒security 🔄proxmox ⚙️kernel 🗂️packages 💿disk 📝reason 🌐IP 👤user 🌡️temp 🔥CPU 💧RAM 🎯target 🔹current 🟢new 📌item