diff --git a/src/www/widgets/api/plugins/system.inc b/src/www/widgets/api/plugins/system.inc index 74a30074a..a60b05c66 100644 --- a/src/www/widgets/api/plugins/system.inc +++ b/src/www/widgets/api/plugins/system.inc @@ -98,6 +98,43 @@ function system_api_kernel() return $result; } +function system_api_disk() +{ + $result = array(); + $result['swap'] = array(); + $result['swap']['device'] = null; + $result['swap']['total'] = null; + $result['swap']['used'] = null; + exec("/usr/sbin/swapinfo -k", $swap_info); + foreach ($swap_info as $line) { + if (strpos($line,'/dev/') !== false) { + $parts = preg_split('/\s+/', $line); + $result['swap']['device'] = $parts[0]; + $result['swap']['total'] = $parts[1]; + $result['swap']['used'] = $parts[2]; + } + } + + $result['devices'] = array(); + exec("/bin/df -Tht ufs,tmpfs,zfs,cd9660", $disk_info); + foreach ($disk_info as $line) { + if (strpos($line,'/dev/') !== false) { + $parts = preg_split('/\s+/', $line); + $diskItem = array(); + $diskItem['device'] = $parts[0]; + $diskItem['type'] = $parts[1]; + $diskItem['size'] = $parts[2]; + $diskItem['used'] = $parts[3]; + $diskItem['available'] = $parts[4]; + $diskItem['capacity'] = $parts[5]; + $diskItem['mountpoint'] = $parts[6]; + $result['devices'][] = $diskItem; + } + } + + return $result; +} + /** * widget system data */ @@ -111,6 +148,7 @@ function system_api() $result['date_frmt'] = date("D M j G:i:s T Y"); $result['config'] = system_api_config(); $result['kernel'] = system_api_kernel(); + $result['disk'] = system_api_disk(); return $result; } diff --git a/src/www/widgets/widgets/system_information.widget.php b/src/www/widgets/widgets/system_information.widget.php index 1c7ecd322..83c9b30f9 100644 --- a/src/www/widgets/widgets/system_information.widget.php +++ b/src/www/widgets/widgets/system_information.widget.php @@ -34,15 +34,6 @@ require_once("pfsense-utils.inc"); require_once("system.inc"); require_once("stats.inc"); -## Check to see if we have a swap space, -## if true, display, if false, hide it ... -$swapinfo = `/usr/sbin/swapinfo`; -if (stristr($swapinfo, '%')) { - $showswap = true; -} else { - $showswap = false; -} - if (isset($_POST['getupdatestatus'])) { $pkg_json = trim(configd_run('firmware check')); @@ -116,7 +107,9 @@ $filesystems = get_mounted_filesystems(); */ function system_information_widget_update(sender, data) { + // update cpu usage chart system_information_widget_cpu_update(sender, data); + $("#system_information_widget_cpu_type").html(data['cpu']['model'] + ' ( '+data['cpu']['cpus']+' cores )'); var uptime_days = parseInt(moment.duration(parseInt(data['uptime']), 'seconds').asDays()); var uptime_str = ""; @@ -147,6 +140,33 @@ $filesystems = get_mounted_filesystems(); mem_text += parseInt(data['kernel']['memory']['total']/1024/1024) + " MB )" $("#system_information_widget_memory .state_text").html(mem_text); + + // swap usage + if (data['disk']['swap']['used'] != "") { + var swap_perc = parseInt(data['disk']['swap']['used'] / data['disk']['swap']['total']*100); + $("#system_information_widget_swap .progress-bar").css("width", swap_perc + "%").attr("aria-valuenow", swap_perc + "%"); + var swap_text = swap_perc + " % " + "( " + parseInt(data['disk']['swap']['used']/1024) + "/"; + swap_text += parseInt(data['disk']['swap']['total']/1024) + " MB )" + $("#system_information_widget_swap .state_text").html(swap_text); + $("#system_information_widget_swap").show(); + } else { + $("#system_information_widget_swap").hide(); + } + + // disk usage + counter = 0; + $("#system_information_widget_disk .disk_devices").html(""); + data['disk']['devices'].map(function(device) { + var html = $("#system_information_widget_disk .disk_template").html(); + html = html.replace('disk_id_sequence', 'system_information_widget_disk_'+counter); + $("#system_information_widget_disk .disk_devices").html($("#system_information_widget_disk .disk_devices").html() + html); + var disk_perc = device['capacity'].replace('%', ''); + $("#system_information_widget_disk_"+counter+' .progress-bar').css("width", disk_perc + "%").attr("aria-valuenow", disk_perc + "%"); + var disk_text = device['capacity'] + ' ' + device['mountpoint'] + ' ['+device['type']+'] (' + device['used'] +'/' + device['size'] + ')'; + $("#system_information_widget_disk_"+counter+" .state_text").html(disk_text); + counter += 1; + }); + } /** @@ -247,41 +267,29 @@ $filesystems = get_mounted_filesystems(); - - - - + - -
-
- -
+
+ +
- used MB - - - - -
-
- + + +
-
- - : used
'; - } -endforeach; ?>