aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--packages/nut/status_nut.php89
1 files changed, 70 insertions, 19 deletions
diff --git a/packages/nut/status_nut.php b/packages/nut/status_nut.php
index 8410406e..42d5979e 100644
--- a/packages/nut/status_nut.php
+++ b/packages/nut/status_nut.php
@@ -32,7 +32,56 @@ require("guiconfig.inc");
$nut_config = $config['installedpackages']['nut']['config'][0];
-/* Defaults to this page but if no settings are present, redirect to setup page */
+/* functions */
+
+function tblrow ($name, $value) {
+ print(<<<EOD
+<tr>
+ <td class="vncellreq" width="100px">{$name}</td>
+ <td class="vtable">{$value}</td>
+<tr>
+EOD
+ ."\n");
+}
+
+function tblrowbar ($name, $value, $red, $yellow, $green) {
+ $red = explode('-',$red);
+ $yellow = explode('-',$yellow);
+ $green = explode('-',$green);
+
+ sort($red);
+ sort($yellow);
+ sort($green);
+
+ if($value >= $red[0] && $value <= $red[1]) {
+ $color = 'white';
+ $bgcolor = 'red';
+ }
+ if($value >= $yellow[0] && $value <= $yellow[1]) {
+ $color = 'black';
+ $bgcolor = 'yellow';
+ }
+ if($value >= $green[0] && $value <= $green[1]) {
+ $color = 'white';
+ $bgcolor = 'green';
+ }
+
+ print(<<<EOD
+<tr>
+ <td class="vncellreq" width="100px">{$name}</td>
+ <td class="vtable">
+ <div style="width: 125px; height: 12px; border-top: thin solid gray; border-bottom: thin solid gray;">
+ <div style="width: {$value}%; height: 12px; background-color: {$bgcolor};">
+ <div style="text-align: center; color: {$color}">{$value}%</div>
+ </div>
+ </div>
+ </td>
+<tr>
+EOD
+ ."\n");
+}
+
+/* defaults to this page but if no settings are present, redirect to setup page */
if(!$nut_config['monitor'])
Header("Location: /pkg_edit.php?xml=nut.xml&id=0");
@@ -64,10 +113,10 @@ include("head.inc");
<table width="100%" class="tabcont" cellspacing="0" cellpadding="6">
<?php
if($nut_config['monitor'] == 'local') {
- print("<tr><td width=\"100px\" class=\"vncellreq\">Monitoring:</td><td class=\"vtable\">Local UPS</td><tr>\n");
+ tblrow('Monitoring:','Local UPS');
$handle = popen("upsc {$nut_config['name']}@localhost","r");
} elseif($nut_config['monitor'] == 'remote') {
- print("<tr><td width=\"100px\" class=\"vncellreq\">Monitoring:</td><td class=\"vtable\">Remote UPS</td><tr>\n");
+ tblrow('Monitoring:','Remote UPS');
$handle = popen("upsc {$nut_config['remotename']}@{$nut_config['remoteaddr']}","r");
}
@@ -82,38 +131,40 @@ include("head.inc");
$line = explode(':', $line);
$ups[$line[0]] = trim($line[1]);
}
-
- print("<tr><td class=\"vncellreq\">Model:</td><td class=\"vtable\">{$ups['ups.model']}</td><tr>\n");
- print('<tr><td class="vncellreq">Status:</td><td class="vtable">');
+ tblrow('Model:',$ups['ups.model']);
+
$status = explode(' ',$ups['ups.status']);
foreach($status as $condition) {
switch ($condition) {
case WAIT:
- print('Waiting... ');
+ $disp_status .= 'Waiting... ';
break;
case OL:
- print('On Line ');
+ $disp_status .= 'On Line ';
+ break;
+ case OB:
+ $disp_status .= 'On Battery ';
break;
case LB:
- print('Battery Low ');
+ $disp_status .= 'Battery Low ';
break;
default:
- print("{$condition} ");
+ $disp_status .= $condition.' ';
break;
}
}
- print("</td><tr>\n");
-
- print("<tr><td class=\"vncellreq\">Load:</td><td class=\"vtable\">{$ups['ups.load']}%</td><tr>\n");
- print("<tr><td class=\"vncellreq\">Battery Charge:</td><td class=\"vtable\">{$ups['battery.charge']}%</td><tr>\n");
- print("<tr><td class=\"vncellreq\">Battery Voltage:</td><td class=\"vtable\">{$ups['battery.voltage']}</td><tr>\n");
- print("<tr><td class=\"vncellreq\">Input Voltage:</td><td class=\"vtable\">{$ups['input.voltage']}V</td><tr>\n");
- print("<tr><td class=\"vncellreq\">Output Voltage:</td><td class=\"vtable\">{$ups['output.voltage']}V</td><tr>\n");
- print("<tr><td class=\"vncellreq\">Temperature:</td><td class=\"vtable\">{$ups['ups.temperature']}</td><tr>\n");
+ tblrow('Status:',$disp_status);
+
+ tblrowbar('Load:',$ups['ups.load'],'100-80','79-60','59-0');
+ tblrowbar('Battery Charge:',$ups['battery.charge'],'0-29','30-79','80-100');
+ tblrow('Battery Voltage:',$ups['battery.voltage'].'V');
+ tblrow('Input Voltage:',$ups['input.voltage'].'V');
+ tblrow('Output Voltage:',$ups['output.voltage'].'V');
+ tblrow('Temperature:',$ups['ups.temperature'].'&deg;');
} else {
/* display error */
- print("<tr><td class=\"vncellreq\">ERROR:</td><td class=\"vtable\">Can\'t parse data from upsc!</td><tr>\n");
+ tblrow('ERROR:','Can\'t parse data from upsc!');
}
?>
</table>