From cc4442b1408b271dc04b92f062b683096b04a723 Mon Sep 17 00:00:00 2001 From: Jamie Cameron Date: Tue, 9 Dec 2014 17:02:34 -0800 Subject: [PATCH] Show charts --- gray-theme/right.cgi | 235 ++++--------------------------------------- 1 file changed, 19 insertions(+), 216 deletions(-) diff --git a/gray-theme/right.cgi b/gray-theme/right.cgi index 03595d564..26a4ab1ad 100755 --- a/gray-theme/right.cgi +++ b/gray-theme/right.cgi @@ -28,223 +28,26 @@ foreach my $info (@info) { if ($info->{'type'} eq 'table') { foreach my $t (@{$info->{'table'}}) { my $chart = ""; + if ($t->{'chart'}) { + my @c = @{$t->{'chart'}}; + if (@c == 2) { + $chart = &bar_chart_three( + $c[0], $c[1], 0, $c[0]-$c[1]); + } + else { + $chart = &bar_chart_three( + $c[0], $c[1], $c[2], + $c[0]-$c[1]-$c[2]); + } + $chart = "
".$chart; + } print &ui_table_row($t->{'desc'}, $t->{'value'}.$chart); } } print &ui_table_end(); } -if ($level == 0) { - # Show general system information - print &ui_table_start(undef, undef, 2); - - # Ask status module for collected info - &foreign_require("system-status"); - $info = &system_status::get_collected_info(); - - # Hostname - $ip = $info && $info->{'ips'} ? $info->{'ips'}->[0]->[0] : - &to_ipaddress(get_system_hostname()); - $ip = " ($ip)" if ($ip); - $host = &get_system_hostname().$ip; - if (&foreign_available("net")) { - $host = "$host"; - } - print &ui_table_row($text{'right_host'}, - $host); - - # Operating system - print &ui_table_row($text{'right_os'}, - $gconfig{'os_version'} eq '*' ? - $gconfig{'real_os_type'} : - $gconfig{'real_os_type'}." ".$gconfig{'real_os_version'}); - - # Webmin version - print &ui_table_row($text{'right_webmin'}, - &get_webmin_version()); - - # System time - $tm = localtime(time()); - print &ui_table_row($text{'right_time'}, - &foreign_available("time") ? "$tm" : $tm); - - # Kernel and CPU - if ($info->{'kernel'}) { - print &ui_table_row($text{'right_kernel'}, - &text('right_kernelon', - $info->{'kernel'}->{'os'}, - $info->{'kernel'}->{'version'}, - $info->{'kernel'}->{'arch'})); - } - - # CPU type and cores - if ($info->{'load'}) { - @c = @{$info->{'load'}}; - if (@c > 3) { - print &ui_table_row($text{'right_cpuinfo'}, - &text('right_cputype', @c)); - } - } - - # Temperatures, if available - if ($info->{'cputemps'}) { - my @temps; - foreach my $t (@{$info->{'cputemps'}}) { - push(@temps, $t->{'core'}.": ". - int($t->{'temp'})."℃"); - } - print &ui_table_row($text{'right_cputemps'}, - join(", ", @temps)); - } - if ($info->{'drivetemps'}) { - my @temps; - foreach my $t (@{$info->{'drivetemps'}}) { - my $short = $t->{'device'}; - $short =~ s/^\/dev\///; - my $emsg; - if ($t->{'errors'}) { - $emsg .= " (". - &text('right_driveerr', $t->{'errors'}). - ")"; - } - elsif ($t->{'failed'}) { - $emsg .= " (". - $text{'right_drivefailed'}. - ")"; - } - push(@temps, $short.": ".$t->{'temp'}."℃".$emsg); - } - print &ui_table_row($text{'right_drivetemps'}, - join(", ", @temps)); - } - - # System uptime - &foreign_require("proc"); - my $uptime; - my ($d, $h, $m) = &proc::get_system_uptime(); - if ($d) { - $uptime = &text('right_updays', $d, $h, $m); - } - elsif ($m) { - $uptime = &text('right_uphours', $h, $m); - } - elsif ($m) { - $uptime = &text('right_upmins', $m); - } - if ($uptime) { - if (&foreign_available("init")) { - $uptime = "$uptime"; - } - print &ui_table_row($text{'right_uptime'}, $uptime); - } - - # Running processes - if (&foreign_check("proc")) { - @procs = &proc::list_processes(); - $pr = scalar(@procs); - print &ui_table_row($text{'right_procs'}, - &foreign_available("proc") ? "$pr" - : $pr); - } - - # Load averages - if ($info->{'load'}) { - @c = @{$info->{'load'}}; - if (@c) { - print &ui_table_row($text{'right_cpu'}, - &text('right_load', @c)); - } - } - - # CPU usage - if ($info->{'cpu'}) { - @c = @{$info->{'cpu'}}; - print &ui_table_row($text{'right_cpuuse'}, - &text('right_cpustats', @c)); - } - - # Memory usage - if ($info->{'mem'}) { - @m = @{$info->{'mem'}}; - if (@m && $m[0] && $m[5]) { - # Show memory usage with bursting - $real = &text('right_used2', - &nice_size($m[0]*1024), - &nice_size(($m[0]-$m[1])*1024), - &nice_size($m[5]*1024))."
\n". - &bar_chart_three($m[5], $m[1], $m[0]-$m[1], - $m[5]-$m[0]); - } - elsif (@m && $m[0] && !$m[5]) { - # Show memory usage on a regular system - $real = &text('right_used', - &nice_size($m[0]*1024), - &nice_size(($m[0]-$m[1])*1024))."
\n". - &bar_chart($m[0], $m[0]-$m[1], 1); - } - else { - # No memory info available - $real = undef; - } - if ($real) { - if (&foreign_available("proc")) { - $real = "$real"; - } - print &ui_table_row($text{'right_real'}, $real); - } - - if (@m && $m[2]) { - print &ui_table_row($text{'right_virt'}, - &text('right_used', - &nice_size($m[2]*1024), - &nice_size(($m[2]-$m[3])*1024))."
\n". - &bar_chart($m[2], $m[2]-$m[3], 1)); - } - } - - # Disk space on local drives - if ($info->{'disk_total'}) { - ($total, $free) = ($info->{'disk_total'}, $info->{'disk_free'}); - $disk = &text('right_used', - &nice_size($total), - &nice_size($total-$free)); - if (&foreign_available("mount")) { - $disk = "$disk"; - } - print &ui_table_row($text{'right_disk'}, - $disk."
\n". - &bar_chart($total, $total-$free, 1)); - } - - # Package updates - if ($info->{'poss'}) { - @poss = @{$info->{'poss'}}; - @secs = grep { $_->{'security'} } @poss; - if (@poss && @secs) { - $msg = &text('right_upsec', scalar(@poss), - scalar(@secs)); - } - elsif (@poss) { - $msg = &text('right_upneed', scalar(@poss)); - } - else { - $msg = $text{'right_upok'}; - } - if (&foreign_available("package-updates")) { - $msg = "$msg"; - } - print &ui_table_row($text{'right_updates'}, $msg); - } - - print &ui_table_end(); - - # Show other webmin-generated notifications - if (&foreign_check("webmin")) { - &foreign_require("webmin", "webmin-lib.pl"); - &webmin::show_webmin_notifications(); - } - } -elsif ($level == 3) { +if ($level == 3) { # Show Usermin user's information print "

$text{'right_header5'}

\n"; print &ui_table_start(undef, undef, 2); @@ -322,11 +125,11 @@ return $rv; # Returns HTML for a bar chart of three values, stacked sub bar_chart_three { -local ($total, $used1, $used2, $used3) = @_; -local $rv; -local $w1 = int($bar_width*$used1/$total)+1; -local $w2 = int($bar_width*$used2/$total); -local $w3 = int($bar_width*$used3/$total); +my ($total, $used1, $used2, $used3) = @_; +my $rv; +my $w1 = int($bar_width*$used1/$total)+1; +my $w2 = int($bar_width*$used2/$total); +my $w3 = int($bar_width*$used3/$total); $rv .= sprintf "", $w1; $rv .= sprintf "", $w2; $rv .= sprintf "", $w3;