From b8690bf214f2af460dcf1558878aa86246f1e929 Mon Sep 17 00:00:00 2001 From: Brian Read <brianr@koozali.org> Date: Mon, 3 Mar 2025 15:54:20 +0000 Subject: [PATCH] * Mon Mar 03 2025 Brian Read <brianr@koozali.org> 11.0.0-7.sme - Enhance UPS Status screen [SME: ] --- .../lib/SrvMngr/Controller/Nutups-Custom.pm | 12 +++++- .../templates/partials/_nut_STATUS.html.ep | 6 ++- .../partials/_nut_UPS_STATUS.html.ep | 39 +++++++++---------- smeserver-nutUPS.spec | 5 ++- 4 files changed, 38 insertions(+), 24 deletions(-) diff --git a/root/usr/share/smanager/lib/SrvMngr/Controller/Nutups-Custom.pm b/root/usr/share/smanager/lib/SrvMngr/Controller/Nutups-Custom.pm index c24b370..9631996 100644 --- a/root/usr/share/smanager/lib/SrvMngr/Controller/Nutups-Custom.pm +++ b/root/usr/share/smanager/lib/SrvMngr/Controller/Nutups-Custom.pm @@ -77,7 +77,7 @@ my $cdb = esmith::ConfigDB->open() || die("Couldn't open config db"); #'Data1'=>'Data for STATUS', #Example # fields from Inputs in STATUS $fields['STATUS'] 'UPSStatus'=>$c->get_ups_status(), - + 'ups_data' => $c->get_ups_status_as_hash() ); return %ret; } @@ -239,6 +239,16 @@ sub get_ups_status { } } +sub get_ups_status_as_hash { + $c = shift; + $string = $c->get_ups_status(); + my %hash; + while ($string =~ /^(.+?):\s*(.+)$/mg) { + $hash{$1} = $2; + } + return \%hash +} + sub get_status_from_device { my ($c,$device) = @_; my $command = '/usr/bin/upsc'; diff --git a/root/usr/share/smanager/themes/default/templates/partials/_nut_STATUS.html.ep b/root/usr/share/smanager/themes/default/templates/partials/_nut_STATUS.html.ep index 68bc844..5c6f435 100644 --- a/root/usr/share/smanager/themes/default/templates/partials/_nut_STATUS.html.ep +++ b/root/usr/share/smanager/themes/default/templates/partials/_nut_STATUS.html.ep @@ -35,13 +35,17 @@ <p class='paragraph para1'> %=l('nut_Descriptive_paragraph') </p> - + +<!-- <span class=label> %=l('nut_Status_(from_upsc)') </span><span class=data> % param 'UPSStatus' => $nut_data->{UPSStatus} unless param 'UPSStatus'; %= text_area 'UPSStatus', cols=>55, rows=>35, Readonly=>'true' </span><br> +--> + + %= include 'partials/_nut_UPS_STATUS' %# Probably finally by a submit. %end diff --git a/root/usr/share/smanager/themes/default/templates/partials/_nut_UPS_STATUS.html.ep b/root/usr/share/smanager/themes/default/templates/partials/_nut_UPS_STATUS.html.ep index 7de670f..76b5e53 100644 --- a/root/usr/share/smanager/themes/default/templates/partials/_nut_UPS_STATUS.html.ep +++ b/root/usr/share/smanager/themes/default/templates/partials/_nut_UPS_STATUS.html.ep @@ -1,6 +1,3 @@ -% layout 'default'; -% title 'UPS Status'; - <h1>UPS Status</h1> %= stylesheet '/css/nut_ups-status-page.css' <div class="ups-status-page"> @@ -8,42 +5,42 @@ <div class="card"> <h2>Device Information</h2> <table> - <tr><td>Manufacturer:</td><td><%= $ups_data->{'device.mfr'} %></td></tr> - <tr><td>Model:</td><td><%= $ups_data->{'device.model'} %></td></tr> - <tr><td>Serial:</td><td><%= $ups_data->{'device.serial'} %></td></tr> - <tr><td>Type:</td><td><%= $ups_data->{'device.type'} %></td></tr> + <tr><td>Manufacturer:</td><td><%= $nut_data->{'ups_data'}->{'device.mfr'} %></td></tr> + <tr><td>Model:</td><td><%= $nut_data->{'ups_data'}->{'device.model'} %></td></tr> + <tr><td>Serial:</td><td><%= $nut_data->{'ups_data'}->{'device.serial'} %></td></tr> + <tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'device.type'} %></td></tr> </table> </div> <div class="card"> <h2>Battery Status</h2> <table> - <tr><td>Charge:</td><td><%= $ups_data->{'battery.charge'} %>%</td></tr> - <tr><td>Runtime:</td><td><%= sprintf("%.2f", $ups_data->{'battery.runtime'} / 60) %> minutes</td></tr> - <tr><td>Voltage:</td><td><%= $ups_data->{'battery.voltage'} %>V</td></tr> - <tr><td>Type:</td><td><%= $ups_data->{'battery.type'} %></td></tr> + <tr><td>Charge:</td><td><%= $nut_data->{'ups_data'}->{'battery.charge'} %>%</td></tr> + <tr><td>Runtime:</td><td><%= sprintf("%.2f", $nut_data->{'ups_data'}->{'battery.runtime'} / 60) %> minutes</td></tr> + <tr><td>Voltage:</td><td><%= $nut_data->{'ups_data'}->{'battery.voltage'} %>V</td></tr> + <tr><td>Type:</td><td><%= $nut_data->{'ups_data'}->{'battery.type'} %></td></tr> </table> </div> <div class="card"> <h2>Input Power</h2> <table> - <tr><td>Voltage:</td><td><%= $ups_data->{'input.voltage'} %>V</td></tr> - <tr><td>Nominal Voltage:</td><td><%= $ups_data->{'input.voltage.nominal'} %>V</td></tr> - <tr><td>Sensitivity:</td><td><%= $ups_data->{'input.sensitivity'} %></td></tr> - <tr><td>Transfer High:</td><td><%= $ups_data->{'input.transfer.high'} %>V</td></tr> - <tr><td>Transfer Low:</td><td><%= $ups_data->{'input.transfer.low'} %>V</td></tr> + <tr><td>Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage'} %>V</td></tr> + <tr><td>Nominal Voltage:</td><td><%= $nut_data->{'ups_data'}->{'input.voltage.nominal'} %>V</td></tr> + <tr><td>Sensitivity:</td><td><%= $nut_data->{'ups_data'}->{'input.sensitivity'} %></td></tr> + <tr><td>Transfer High:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.high'} %>V</td></tr> + <tr><td>Transfer Low:</td><td><%= $nut_data->{'ups_data'}->{'input.transfer.low'} %>V</td></tr> </table> </div> <div class="card"> <h2>UPS Status</h2> <table> - <tr><td>Status:</td><td><%= $ups_data->{'ups.status'} %></td></tr> - <tr><td>Load:</td><td><%= $ups_data->{'ups.load'} %>%</td></tr> - <tr><td>Beeper:</td><td><%= $ups_data->{'ups.beeper.status'} %></td></tr> - <tr><td>Firmware:</td><td><%= $ups_data->{'ups.firmware'} %></td></tr> - <tr><td>Test Result:</td><td><%= $ups_data->{'ups.test.result'} %></td></tr> + <tr><td>Status:</td><td><%= $nut_data->{'ups_data'}->{'ups.status'} %></td></tr> + <tr><td>Load:</td><td><%= $nut_data->{'ups_data'}->{'ups.load'} %>%</td></tr> + <tr><td>Beeper:</td><td><%= $nut_data->{'ups_data'}->{'ups.beeper.status'} %></td></tr> + <tr><td>Firmware:</td><td><%= $nut_data->{'ups_data'}->{'ups.firmware'} %></td></tr> + <tr><td>Test Result:</td><td><%= $nut_data->{'ups_data'}->{'ups.test.result'} %></td></tr> </table> </div> </div> diff --git a/smeserver-nutUPS.spec b/smeserver-nutUPS.spec index 0ecab99..740bf9a 100644 --- a/smeserver-nutUPS.spec +++ b/smeserver-nutUPS.spec @@ -4,7 +4,7 @@ Summary: SME server - nut UPS interaction module %define name smeserver-nutUPS Name: %{name} %define version 11.0.0 -%define release 6 +%define release 7 Version: %{version} Release: %{release}%{?dist} License: GPL @@ -25,6 +25,9 @@ A module which configures the Network UPS Tools suite for operation with the SME server software. %changelog +* Mon Mar 03 2025 Brian Read <brianr@koozali.org> 11.0.0-7.sme +- Enhance UPS Status screen [SME: ] + * Mon Mar 03 2025 Brian Read <brianr@koozali.org> 11.0.0-6.sme - Add in SM2 NutUPS configuration and status panel [SME: 12949]