diff --git a/pve-mod-gui-sensors.sh b/pve-mod-gui-sensors.sh
index 02d88f7..da7f9df 100644
--- a/pve-mod-gui-sensors.sh
+++ b/pve-mod-gui-sensors.sh
@@ -1372,32 +1372,34 @@ generate_ups_widget() {
// If objValue is null or empty, return N/A
if (!objValue || Object.keys(objValue).length === 0) {
- return '
N/A
';
+ return 'N/A
';
}
// Helper function to get status color
+ // Returns a CSS color string for non-default states, or null for default (no inline color)
function getStatusColor(status) {
if (!status) return '#999';
const statusUpper = status.toUpperCase();
- if (statusUpper.includes('OL')) return 'white'; // White for online
+ if (statusUpper.includes('OL')) return null; // default (no explicit color)
if (statusUpper.includes('OB')) return '#d9534f'; // Red for on battery
if (statusUpper.includes('LB')) return '#d9534f'; // Red for low battery
return '#f0ad4e'; // Orange for other states
}
// Helper function to get load/charge color
+ // Returns null for default/good values so no inline style is emitted
function getPercentageColor(value, isLoad = false) {
if (!value || isNaN(value)) return '#999';
const num = parseFloat(value);
if (isLoad) {
if (num >= 80) return '#d9534f'; // Red for high load
if (num >= 60) return '#f0ad4e'; // Orange for medium load
- return 'white'; // White for low load
+ return null; // default (no explicit color)
} else {
// For battery charge
if (num <= 20) return '#d9534f'; // Red for low charge
if (num <= 50) return '#f0ad4e'; // Orange for medium charge
- return 'white'; // White for good charge
+ return null; // default (no explicit color)
}
}
@@ -1425,12 +1427,12 @@ generate_ups_widget() {
// Build the status display
let displayItems = [];
- // First line: Model info
+ // First line: Model info (no explicit color for default)
let modelLine = '';
if (upsModel) {
- modelLine = `${upsModel}`;
+ modelLine = `${upsModel}`;
} else {
- modelLine = `N/A`;
+ modelLine = `N/A`;
}
displayItems.push(modelLine);
@@ -1445,7 +1447,7 @@ generate_ups_widget() {
if (statusUpper.includes('OL')) {
statusText = 'Online';
- statusColor = 'white'; // White for good status
+ statusColor = null; // default (no explicit color)
} else if (statusUpper.includes('OB')) {
statusText = 'On Battery';
statusColor = '#d9534f'; // Red for on battery
@@ -1457,27 +1459,30 @@ generate_ups_widget() {
statusColor = '#f0ad4e'; // Orange for unknown status
}
- statusLine += `Status: ${statusText}`;
+ let statusStyle = statusColor ? ('color: ' + statusColor + ';') : '';
+ statusLine += 'Status: ' + statusText + '';
} else {
- statusLine += `Status: N/A`;
+ statusLine += 'Status: N/A';
}
// Battery charge
if (statusLine) statusLine += ' | ';
if (batteryCharge) {
const chargeColor = getPercentageColor(batteryCharge, false);
- statusLine += `Battery: ${batteryCharge}%`;
+ let chargeStyle = chargeColor ? ('color: ' + chargeColor + ';') : '';
+ statusLine += 'Battery: ' + batteryCharge + '%';
} else {
- statusLine += `Battery: N/A`;
+ statusLine += 'Battery: N/A';
}
// Load percentage
if (statusLine) statusLine += ' | ';
if (upsLoad) {
const loadColor = getPercentageColor(upsLoad, true);
- statusLine += `Load: ${upsLoad}%`;
+ let loadStyle = loadColor ? ('color: ' + loadColor + ';') : '';
+ statusLine += 'Load: ' + upsLoad + '%';
} else {
- statusLine += `Load: N/A`;
+ statusLine += 'Load: N/A';
}
// Runtime
@@ -1485,21 +1490,21 @@ generate_ups_widget() {
if (batteryRuntime) {
const runtime = parseInt(batteryRuntime);
const runtimeLowThreshold = batteryRuntimeLow ? parseInt(batteryRuntimeLow) : 600;
- let runtimeColor = 'white';
+ let runtimeColor = null;
if (runtime <= runtimeLowThreshold / 2) runtimeColor = '#d9534f'; // Red if less than half of low threshold
else if (runtime <= runtimeLowThreshold) runtimeColor = '#f0ad4e'; // Orange if at low threshold
-
- statusLine += `Runtime: ${formatRuntime(runtime)}`;
+ let runtimeStyle = runtimeColor ? ('color: ' + runtimeColor + ';') : '';
+ statusLine += 'Runtime: ' + formatRuntime(runtime) + '';
} else {
- statusLine += `Runtime: N/A`;
+ statusLine += 'Runtime: N/A';
}
// Input voltage
if (statusLine) statusLine += ' | ';
if (inputVoltage) {
- statusLine += `Input: ${parseFloat(inputVoltage).toFixed(0)}V`;
+ statusLine += 'Input: ' + parseFloat(inputVoltage).toFixed(0) + 'V';
} else {
- statusLine += `Input: N/A`;
+ statusLine += 'Input: N/A';
}
// Calculate actual watt usage
@@ -1515,9 +1520,9 @@ generate_ups_widget() {
// Real power (calculated watt usage)
if (actualWattage !== null) {
- statusLine += `Output: ${actualWattage}W`;
+ statusLine += 'Output: ' + actualWattage + 'W';
} else {
- statusLine += `Output: N/A`;
+ statusLine += 'Output: N/A';
}
displayItems.push(statusLine);
@@ -1525,16 +1530,17 @@ generate_ups_widget() {
// Combined battery and test line
let batteryTestLine = '';
if (batteryMfrDate) {
- batteryTestLine += `Battery MFD: ${batteryMfrDate}`;
+ batteryTestLine += 'Battery MFD: ' + batteryMfrDate + '';
} else {
- batteryTestLine += `Battery MFD: N/A`;
+ batteryTestLine += 'Battery MFD: N/A';
}
if (testResult && !testResult.toLowerCase().includes('no test')) {
- const testColor = testResult.toLowerCase().includes('passed') ? 'white' : '#d9534f';
- batteryTestLine += ` | Test: ${testResult}`;
+ const testColor = testResult.toLowerCase().includes('passed') ? null : '#d9534f';
+ let testStyle = testColor ? ('color: ' + testColor + ';') : '';
+ batteryTestLine += ' | Test: ' + testResult + '';
} else {
- batteryTestLine += ` | Test: N/A`;
+ batteryTestLine += ' | Test: N/A';
}
displayItems.push(batteryTestLine);