diff options
author | Erik Kristensen <ekristen@pfsense.org> | 2005-09-11 06:17:32 +0000 |
---|---|---|
committer | Erik Kristensen <ekristen@pfsense.org> | 2005-09-11 06:17:32 +0000 |
commit | d772ac32580e088437a9bbedfc2a348d2760a5aa (patch) | |
tree | 76e18857992df67b3e5c5582f23603c8f32cd237 | |
parent | 8bf392242477d3e3317448d8fd6b64152dc89d33 (diff) | |
download | pfsense-d772ac32580e088437a9bbedfc2a348d2760a5aa.zip pfsense-d772ac32580e088437a9bbedfc2a348d2760a5aa.tar.gz |
Added SAJAX support.
System Meters are updated via AJAX now.
Started XHTML/CSS cleanup.
-rwxr-xr-x | usr/local/www/head.inc | 19 | ||||
-rw-r--r-- | usr/local/www/includes/functions.inc.php | 98 | ||||
-rw-r--r-- | usr/local/www/includes/sajax.class.php | 261 | ||||
-rwxr-xr-x | usr/local/www/index.php | 418 | ||||
-rw-r--r-- | usr/local/www/javascript/index/sajax.js | 37 | ||||
-rwxr-xr-x | usr/local/www/sajax/index.sajax.php | 9 |
6 files changed, 571 insertions, 271 deletions
diff --git a/usr/local/www/head.inc b/usr/local/www/head.inc index 9e71869..04a55b0 100755 --- a/usr/local/www/head.inc +++ b/usr/local/www/head.inc @@ -13,9 +13,9 @@ else <html> <head> <title><?=gentitle($pgtitle);?></title> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> + <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <link rel="stylesheet" href="/themes/<?php echo $g['theme']; ?>/all.css" media="all" /> - <link rel="stylesheet" type="text/css" href="/niftycssprintCode.css" media="print"> + <link rel="stylesheet" type="text/css" href="/niftycssprintCode.css" media="print" /> <script type="text/javascript" src="/themes/<?php echo $g['theme']; ?>/loader.js"></script> <script type="text/javascript">var theme = "<?php echo $g['theme']; ?>"</script> @@ -26,31 +26,22 @@ else * Coded by: Erik Kristensen */ - ## Make Sure $page_filename has been set ## - ## if it hasn't been don't bother ... :P ## - /* - if ($page_filename) { - include('includes/javascript.inc.php'); - - foreach ($top_javascript_files["$page_filename"] as $file) { - echo '<script type="text/javascript" src="/javascript/'.$file.'"></script>'; - } - } - */ $dir = trim(basename($_SERVER["PHP_SELF"]), '.php'); $path = "/usr/local/www/javascript/" . $dir . "/"; if (is_dir($path)) { if ($dh = opendir($path)) { while (($file = readdir($dh)) !== false) { - "here<br>"; if (is_dir($file)) continue; echo "\t".'<script type="text/javascript" src="/javascript/'.$dir.'/'.$file.'"></script>'."\n"; } closedir($dh); } } + ?> + + <?php if (!isset($closehead)){ ?> </head> <?php } ?> diff --git a/usr/local/www/includes/functions.inc.php b/usr/local/www/includes/functions.inc.php new file mode 100644 index 0000000..88465ab --- /dev/null +++ b/usr/local/www/includes/functions.inc.php @@ -0,0 +1,98 @@ +<? +function cpu_usage() { + return get_cpuusage(get_cputicks(), get_cputicks()); +} + + +function get_uptime() { + exec("/sbin/sysctl -n kern.boottime", $boottime); + preg_match("/sec = (\d+)/", $boottime[0], $matches); + $boottime = $matches[1]; + $uptime = time() - $boottime; + + if ($uptime > 60) + $uptime += 30; + $updays = (int)($uptime / 86400); + $uptime %= 86400; + $uphours = (int)($uptime / 3600); + $uptime %= 3600; + $upmins = (int)($uptime / 60); + + $uptimestr = ""; + if ($updays > 1) + $uptimestr .= "$updays days, "; + else if ($updays > 0) + $uptimestr .= "1 day, "; + $uptimestr .= sprintf("%02d:%02d", $uphours, $upmins); + return $uptimestr; +} + +function get_cputicks() { + $cputicks = explode(" ", `/sbin/sysctl -n kern.cp_time`); + return $cputicks; +} + +function get_cpuusage($cpuTicks, $cpuTicks2) { + + $diff = array(); + $diff['user'] = ($cpuTicks2[0] - $cpuTicks[0])+1; + $diff['nice'] = ($cpuTicks2[1] - $cpuTicks[1])+1; + $diff['sys'] = ($cpuTicks2[2] - $cpuTicks[2])+1; + $diff['intr'] = ($cpuTicks2[3] - $cpuTicks[3])+1; + $diff['idle'] = ($cpuTicks2[4] - $cpuTicks[4])+1; + + //echo "<!-- user: {$diff['user']} nice {$diff['nice']} sys {$diff['sys']} intr {$diff['intr']} idle {$diff['idle']} -->"; + $totalDiff = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] + $diff['idle']; + $totalused = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] - 1; + $cpuUsage = round(100 * ($totalused / $totalDiff), 0); + + #$totalDiff = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] + $diff['idle']; + #$cpuUsage = round(100 * (1 - $diff['idle'] / $totalDiff), 0); + + return $cpuUsage; +} + +function get_pfstate() { + global $config; + if (isset($config['system']['maximumstates']) and $config['system']['maximumstates'] > 0) + $maxstates="/{$config['system']['maximumstates']}"; + else + $maxstates="/10000"; + $curentries = `/sbin/pfctl -si |grep current`; + if (preg_match("/([0-9]+)/", $curentries, $matches)) { + $curentries = $matches[1]; + } + return $curentries . $maxstates; +} + + +function disk_usage() +{ + exec("df -h | grep -w '/' | awk '{ print $5 }' | cut -d '%' -f 1", $dfout); + $diskusage = trim($dfout[0]); + + return $diskusage; +} + +function swap_usage() +{ + $swapUsage = `/usr/sbin/swapinfo | cut -c45-55 | grep "%"`; + $swapUsage = ereg_replace('%', "", $swapUsage); + $swapUsage = ereg_replace(' ', "", $swapUsage); + $swapUsage = rtrim($swapUsage); + + return $swapUsage; +} + +function mem_usage() +{ + exec("/sbin/sysctl -n vm.stats.vm.v_active_count vm.stats.vm.v_inactive_count " . + "vm.stats.vm.v_wire_count vm.stats.vm.v_cache_count vm.stats.vm.v_free_count", $memory); + + $totalMem = $memory[0] + $memory[1] + $memory[2] + $memory[3] + $memory[4]; + $freeMem = $memory[4]; + $usedMem = $totalMem - $freeMem; + $memUsage = round(($usedMem * 100) / $totalMem, 0); + + return $memUsage; +}
\ No newline at end of file diff --git a/usr/local/www/includes/sajax.class.php b/usr/local/www/includes/sajax.class.php new file mode 100644 index 0000000..3274e49 --- /dev/null +++ b/usr/local/www/includes/sajax.class.php @@ -0,0 +1,261 @@ +<?php + + +class sajax { + + var $sajax_debug_mode = 0; + var $sajax_export_list = array(); + var $sajax_request_type = "GET"; + var $sajax_remote_uri = ""; + var $sajax_js_has_been_shown = 0; + + + /** + * PHP 5 Constructor + * + * @param string $remoteURI + */ + function __construct($remoteURI = NULL) + { + if (!isset($remoteURL)) + $this->sajax_remote_uri = $this->sajax_get_my_uri(); + } + + + /** + * PHP 4 Constructor + * + * @param string $remoteURI + */ + function sajax($remoteURI = NULL) + { + $this->__construct($$remoteURI); + } + + + /** + * + * + */ + function sajax_get_my_uri() + { + global $REQUEST_URI; + + return $REQUEST_URI; + } + + + + function sajax_handle_client_request() { + + $mode = ""; + + if (! empty($_GET["rs"])) + $mode = "get"; + + if (!empty($_POST["rs"])) + $mode = "post"; + + if (empty($mode)) + return; + + if ($mode == "get") { + // Bust cache in the head + header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Date in the past + header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); + // always modified + header ("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1 + header ("Pragma: no-cache"); // HTTP/1.0 + $func_name = $_GET["rs"]; + if (! empty($_GET["rsargs"])) + $args = $_GET["rsargs"]; + else + $args = array(); + } + else { + $func_name = $_POST["rs"]; + if (! empty($_POST["rsargs"])) + $args = $_POST["rsargs"]; + else + $args = array(); + } + + if (! in_array($func_name, $this->sajax_export_list)) + echo "-:$func_name not callable"; + else { + echo "+:"; + $result = call_user_func_array($func_name, $args); + echo $result; + } + exit; + } // End sajax_handle_client_request() function ... + + + function sajax_get_common_js() { + + $t = strtoupper($this->sajax_request_type); + if ($t != "GET" && $t != "POST") + return "// Invalid type: $t.. \n\n"; + + ob_start(); + ?> + + // remote scripting library + // (c) copyright 2005 modernmethod, inc + var sajax_debug_mode = <?php echo $this->sajax_debug_mode ? "true" : "false"; ?>; + var sajax_request_type = "<?php echo $t; ?>"; + + function sajax_debug(text) { + if (sajax_debug_mode) + alert("RSD: " + text) + } + function sajax_init_object() { + sajax_debug("sajax_init_object() called..") + + var A; + try { + A=new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + A=new ActiveXObject("Microsoft.XMLHTTP"); + } catch (oc) { + A=null; + } + } + if(!A && typeof XMLHttpRequest != "undefined") + A = new XMLHttpRequest(); + if (!A) + sajax_debug("Could not create connection object."); + return A; + } + function sajax_do_call(func_name, args) { + var i, x, n; + var uri; + var post_data; + + uri = "<?php echo $this->sajax_remote_uri; ?>"; + if (sajax_request_type == "GET") { + if (uri.indexOf("?") == -1) + uri = uri + "?rs=" + escape(func_name); + else + uri = uri + "&rs=" + escape(func_name); + for (i = 0; i < args.length-1; i++) + uri = uri + "&rsargs[]=" + escape(args[i]); + uri = uri + "&rsrnd=" + new Date().getTime(); + post_data = null; + } else { + post_data = "rs=" + escape(func_name); + for (i = 0; i < args.length-1; i++) + post_data = post_data + "&rsargs[]=" + escape(args[i]); + } + + x = sajax_init_object(); + x.open(sajax_request_type, uri, true); + if (sajax_request_type == "POST") { + x.setRequestHeader("Method", "POST " + uri + " HTTP/1.1"); + x.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); + } + x.onreadystatechange = function() { + if (x.readyState != 4) + return; + sajax_debug("received " + x.responseText); + + var status; + var data; + status = x.responseText.charAt(0); + data = x.responseText.substring(2); + if (status == "-") + alert("Error: " + data); + else + args[args.length-1](data); + } + x.send(post_data); + sajax_debug(func_name + " uri = " + uri + "/post = " + post_data); + sajax_debug(func_name + " waiting.."); + delete x; + } + + <?php + $html = ob_get_contents(); + ob_end_clean(); + return $html; + } + + + function sajax_show_common_js() + { + echo $this->sajax_get_common_js(); + } + + + function sajax_esc($val) + { + return str_replace('"', '\\\\"', $val); + } + + + /** + * sajax_get_one_stub + * + * @param string $func_name + */ + function sajax_get_one_stub($func_name) + { + ob_start(); + ?> + + // wrapper for <?php echo $func_name; ?> + + function x_<?php echo $func_name; ?>() { + sajax_do_call("<?php echo $func_name; ?>", + x_<?php echo $func_name; ?>.arguments); + } + + <?php + $html = ob_get_contents(); + ob_end_clean(); + return $html; + } + + + function sajax_show_one_stub($func_name) { + echo sajax_get_one_stub($func_name); + } + + + /** + * export user functions to sajax ... + * + */ + function sajax_export() { + $n = func_num_args(); + for ($i = 0; $i < $n; $i++) { + $this->sajax_export_list[] = func_get_arg($i); + } + } + + + function sajax_get_javascript() + { + $html = ""; + if (! $this->sajax_js_has_been_shown) { + $html .= $this->sajax_get_common_js(); + $this->sajax_js_has_been_shown = 1; + } + foreach ($this->sajax_export_list as $func) { + $html .= $this->sajax_get_one_stub($func); + } + return $html; + } + + + function sajax_show_javascript() + { + echo $this->sajax_get_javascript(); + } + + +} // End sajax class + + +?> diff --git a/usr/local/www/index.php b/usr/local/www/index.php index d81dccf..bf6c2e2 100755 --- a/usr/local/www/index.php +++ b/usr/local/www/index.php @@ -32,34 +32,51 @@ POSSIBILITY OF SUCH DAMAGE. */ -require_once("guiconfig.inc"); -require_once("notices.inc"); +require_once('guiconfig.inc'); +require_once('notices.inc'); + + +require_once('includes/functions.inc.php'); + + + +/* SAJAX STUFF */ +require_once('includes/sajax.class.php'); + +$oSajax = new sajax(); +$oSajax->sajax_remote_uri = 'sajax/index.sajax.php'; +$oSajax->sajax_request_type = 'POST'; +$oSajax->sajax_export("mem_usage","cpu_usage","get_uptime","get_pfstate"); +$oSajax->sajax_handle_client_request(); +/***************/ + + $swapinfo = `/usr/sbin/swapinfo`; -if(stristr($swapinfo,"%") == true) $showswap=true; +if(stristr($swapinfo,'%') == true) $showswap=true; /* User recently restored his config. If packages are installed lets resync */ -if(file_exists("/needs_package_sync")) { - if($config['installedpackages'] <> "") { +if(file_exists('/needs_package_sync')) { + if($config['installedpackages'] <> '') { conf_mount_rw(); - unlink("/needs_package_sync"); - header("Location: pkg_mgr_install.php?mode=reinstallall"); + unlink('/needs_package_sync'); + header('Location: pkg_mgr_install.php?mode=reinstallall'); exit; } } -if(file_exists("/trigger_initial_wizard")) { +if(file_exists('/trigger_initial_wizard')) { conf_mount_rw(); - unlink("/trigger_initial_wizard"); + unlink('/trigger_initial_wizard'); conf_mount_ro(); -$pgtitle = "pfSense first time setup"; -include("head.inc"); +$pgtitle = 'pfSense first time setup'; +include('head.inc'); ?> -<body link="#0000CC" vlink="#0000CC" alink="#0000CC"> +<body link='#0000CC' vlink='#0000CC' alink='#0000CC'> <form> <?php echo "<center>\n"; @@ -92,66 +109,7 @@ if ($fd) { fclose($fd); } -function get_uptime() { - exec("/sbin/sysctl -n kern.boottime", $boottime); - preg_match("/sec = (\d+)/", $boottime[0], $matches); - $boottime = $matches[1]; - $uptime = time() - $boottime; - - if ($uptime > 60) - $uptime += 30; - $updays = (int)($uptime / 86400); - $uptime %= 86400; - $uphours = (int)($uptime / 3600); - $uptime %= 3600; - $upmins = (int)($uptime / 60); - - $uptimestr = ""; - if ($updays > 1) - $uptimestr .= "$updays days, "; - else if ($updays > 0) - $uptimestr .= "1 day, "; - $uptimestr .= sprintf("%02d:%02d", $uphours, $upmins); - return $uptimestr; -} - -function get_cputicks() { - $cputicks = explode(" ", `/sbin/sysctl -n kern.cp_time`); - return $cputicks; -} - -function get_cpuusage($cpuTicks, $cpuTicks2) { - -$diff = array(); -$diff['user'] = ($cpuTicks2[0] - $cpuTicks[0])+1; -$diff['nice'] = ($cpuTicks2[1] - $cpuTicks[1])+1; -$diff['sys'] = ($cpuTicks2[2] - $cpuTicks[2])+1; -$diff['intr'] = ($cpuTicks2[3] - $cpuTicks[3])+1; -$diff['idle'] = ($cpuTicks2[4] - $cpuTicks[4])+1; -//echo "<!-- user: {$diff['user']} nice {$diff['nice']} sys {$diff['sys']} intr {$diff['intr']} idle {$diff['idle']} -->"; -$totalDiff = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] + $diff['idle']; -$totalused = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] - 1; -$cpuUsage = round(100 * ($totalused / $totalDiff), 0); - -#$totalDiff = $diff['user'] + $diff['nice'] + $diff['sys'] + $diff['intr'] + $diff['idle']; -#$cpuUsage = round(100 * (1 - $diff['idle'] / $totalDiff), 0); - -return $cpuUsage; -} - -function get_pfstate() { - global $config; - if (isset($config['system']['maximumstates']) and $config['system']['maximumstates'] > 0) - $maxstates="/{$config['system']['maximumstates']}"; - else - $maxstates="/10000"; - $curentries = `/sbin/pfctl -si |grep current`; - if (preg_match("/([0-9]+)/", $curentries, $matches)) { - $curentries = $matches[1]; - } - return $curentries . $maxstates; -} $pgtitle = "pfSense webGUI"; /* include header and other code */ @@ -160,6 +118,10 @@ include("head.inc"); ?> <body link="#0000CC" vlink="#0000CC" alink="#0000CC"> +<script language="javascript" type="text/javascript"> + <?php $oSajax->sajax_show_javascript(); ?> +</script> + <form> <?php @@ -169,180 +131,115 @@ include("fbegin.inc"); ?> <p class="pgtitle">System Overview</p> - <div id="niftyOutter" width="650"> - <table bgcolor="#990000" width="100%" border="0" cellspacing="0" cellpadding="0"> - <tr> - <td colspan="2" class="listtopic">System information</td> - </tr> - <tr> - <td width="25%" class="vncellt">Name</td> - <td width="75%" class="listr"> - <?php echo $config['system']['hostname'] . "." . $config['system']['domain']; ?> - </td> - </tr> - <tr> - <td width="25%" valign="top" class="vncellt">Version</td> - <td width="75%" class="listr"> <strong> - <?php readfile("/etc/version"); ?> - </strong><br> - built on - <?php readfile("/etc/version.buildtime"); ?> - </td> - </tr> - <tr> - <td width="25%" class="vncellt">Platform</td> - <td width="75%" class="listr"> - <?=htmlspecialchars($g['platform']);?> - </td> - </tr><?php if ($hwcrypto): ?> - <tr> - <td width="25%" class="vncellt">Hardware crypto</td> - <td width="75%" class="listr"> - <?=htmlspecialchars($hwcrypto);?> - </td> - </tr><?php endif; ?> - <tr> - <td width="25%" class="vncellt">Uptime</td> - <td width="75%" class="listr"> - <?php - echo "<input style='border: 0px solid white;' size='30' name='uptime' id='uptime' value='" .htmlspecialchars(get_uptime()) . "'>"; - ?> - </td> - </tr><?php if ($config['lastchange']): ?> - <tr> - <td width="25%" class="vncellt">Last config change</td> - <td width="75%" class="listr"> - <?=htmlspecialchars(date("D M j G:i:s T Y", $config['revision']['time']));?> - </td> - </tr><?php endif; ?> - <tr> - <td width="25%" class="vncellt">State table size</td> - <td width="75%" class="listr"> - <?php - echo "<input style='border: 0px solid white;' size='30' name='pfstate' id='pfstate' value='" .htmlspecialchars(get_pfstate()) . "'>"; - ?> - <br> - <a href="diag_dump_states.php">Show states</a> - </td> - </tr> - <tr> - <td width="25%" class="vncellt">CPU usage</td> - <td width="75%" class="listr"> -<?php -if (preg_match("/MSIE/i", $_SERVER['HTTP_USER_AGENT'])) { - $seconds = "30"; -} else { - $seconds = "3"; -} - -$cpuUsage = get_cpuusage(get_cputicks(), get_cputicks()); - -echo "<img src='./themes/".$g['theme']."/images/misc/bar_left.gif' height='15' width='4' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_blue.gif' height='15' name='cpuwidtha' id='cpuwidtha' width='" . $cpuUsage . "' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_gray.gif' height='15' name='cpuwidthb' id='cpuwidthb' width='" . (100 - $cpuUsage) . "' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_right.gif' height='15' width='5' border='0' align='absmiddle'> "; -echo "<input style='border: 0px solid white;' size='30' name='cpumeter' id='cpumeter' value='{$cpuUsage}% (Updating in $seconds seconds)'>"; -//echo $cpuUsage . "%"; -?> - </td> - </tr> - <tr> - <td width="25%" class="vncellt">Memory usage</td> - <td width="75%" class="listr"> -<?php - -exec("/sbin/sysctl -n vm.stats.vm.v_active_count vm.stats.vm.v_inactive_count " . - "vm.stats.vm.v_wire_count vm.stats.vm.v_cache_count vm.stats.vm.v_free_count", $memory); - -$totalMem = $memory[0] + $memory[1] + $memory[2] + $memory[3] + $memory[4]; -$freeMem = $memory[4]; -$usedMem = $totalMem - $freeMem; -$memUsage = round(($usedMem * 100) / $totalMem, 0); - -echo " <img src='./themes/".$g['theme']."/images/misc/bar_left.gif' height='15' width='4' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_blue.gif' height='15' name='memwidtha' id='memwidtha' width='" . $memUsage . "' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_gray.gif' height='15' name='memwidthb' id='memwidthb' width='" . (100 - $memUsage) . "' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_right.gif' height='15' width='5' border='0' align='absmiddle'> "; -echo "<input style='border: 0px solid white;' size='30' name='memusagemeter' id='memusagemeter' value='{$memUsage}%'>"; -//echo $memUsage . "%"; -?> - </td> - </tr> - -<?php if($showswap == true): ?> - <tr> - <td width="25%" class="vncellt">SWAP usage</td> - <td width="75%" class="listr"> - -<?php - -$swapUsage = `/usr/sbin/swapinfo | cut -c45-55 | grep "%"`; -$swapUsage = ereg_replace('%', "", $swapUsage); -$swapUsage = ereg_replace(' ', "", $swapUsage); -$swapUsage = rtrim($swapUsage); - -echo "<img src='./themes/".$g['theme']."/images/misc/bar_left.gif' height='15' width='4' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_blue.gif' height='15' width='" . $swapUsage . "' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_gray.gif' height='15' width='" . (100 - $swapUsage) . "' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_right.gif' height='15' width='5' border='0' align='absmiddle'> "; -echo "<input style='border: 0px solid white;' size='30' name='swapusagemeter' id='swapusagemeter' value='{$swapUsage}%'>"; -//echo $swapUsage . "%"; - -?> - </td> - </tr> -<?php endif; ?> - -<?php - /* XXX - Stub in the HW monitor for net4801 - needs to use platform var's once we start using them */ - $is4801 = `/sbin/dmesg -a | grep NET4801`; - if($is4801 <> "") { -echo " <tr>"; -echo " <td width='25%' class='vncellt'>Temperature </td>"; -echo " <td width='75%' class='listr'>"; -// Initialize hw monitor -exec("/usr/local/sbin/env4801 -i"); -$Temp = rtrim(`/usr/local/sbin/env4801 | grep Temp |cut -c24-25`); -echo "<img src='./themes/".$g['theme']."/images/misc/bar_left.gif' height='15' width='4' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_blue.gif' height='15' name='Tempwidtha' id='tempwidtha' width='" . $Temp . "' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_gray.gif' height='15' name='Tempwidthb' id='tempwidthb' width='" . (100 - $Temp) . "' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_right.gif' height='15' width='5' border='0' align='absmiddle'> "; -echo "<input style='border: 0px solid white;' size='30' name='Tempmeter' id='Tempmeter' value='{$Temp}C'>"; -echo " </td>"; -echo " </tr>"; - } -?> - <tr> - <td width="25%" class="vncellt">Disk usage</td> +<div id="niftyOutter" width="650"> +<table bgcolor="#990000" width="100%" border="0" cellspacing="0" cellpadding="0"> + <tbody> + <tr> + <td colspan="2" class="listtopic">System information</td> + </tr> + <tr> + <td width="25%" class="vncellt">Name</td> + <td width="75%" class="listr"><?php echo $config['system']['hostname'] . "." . $config['system']['domain']; ?></td> + </tr> + <tr> + <td width="25%" valign="top" class="vncellt">Version</td> + <td width="75%" class="listr"> + <strong><?php readfile("/etc/version"); ?></strong> + <br /> + built on <?php readfile("/etc/version.buildtime"); ?> + </td> + </tr> + <tr> + <td width="25%" class="vncellt">Platform</td> + <td width="75%" class="listr"><?=htmlspecialchars($g['platform']);?></td> + </tr> + <?php if ($hwcrypto): ?> + <tr> + <td width="25%" class="vncellt">Hardware crypto</td> + <td width="75%" class="listr"><?=htmlspecialchars($hwcrypto);?></td> + </tr> + <?php endif; ?> + <tr> + <td width="25%" class="vncellt">Uptime</td> + <td width="75%" class="listr"><input style="border: 0px solid white;" size="30" name="uptime" id="uptime" value="<?= htmlspecialchars(get_uptime()); ?>" /></td> + </tr> + <?php if ($config['lastchange']): ?> + <tr> + <td width="25%" class="vncellt">Last config change</td> + <td width="75%" class="listr"><?= htmlspecialchars(date("D M j G:i:s T Y", $config['revision']['time']));?></td> + </tr> + <?php endif; ?> + <tr> + <td width="25%" class="vncellt">State table size</td> + <td width="75%" class="listr"> + <input style="border: 0px solid white;" size="30" name="pfstate" id="pfstate" value="<?= htmlspecialchars(get_pfstate()); ?>" /> + <br /> + <a href="diag_dump_states.php">Show states</a> + </td> + </tr> + <tr> + <td width="25%" class="vncellt">CPU usage</td> <td width="75%" class="listr"> + <?php $cpuUsage = get_cpuusage(get_cputicks(), get_cputicks()); ?> + <img src="./themes/<?= $g['theme']; ?>/images/misc/bar_left.gif" height="15" width="4" border="0" align="absmiddle" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_blue.gif" height="15" name="cpuwidtha" id="cpuwidtha" width="<?= $cpuUsage; ?>" border="0" align="absmiddle" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_gray.gif" height="15" name="cpuwidthb" id="cpuwidthb" width="<?= (100 - $cpuUsage); ?>" border="0" align="absmiddle" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_right.gif" height="15" width="5" border="0" align="absmiddle" /><input style="border: 0px solid white;" size="30" name="cpumeter" id="cpumeter" value="<?= $cpuUsage.'%'; ?> (Updating in 3 seconds)" /> + </td> + </tr> + <tr> + <td width="25%" class="vncellt">Memory usage</td> + <td width="75%" class="listr"> + <?php $memUsage = mem_usage(); ?> + <img src="./themes/<?= $g['theme']; ?>/images/misc/bar_left.gif" height="15" width="4" border="0" align="absmiddle" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_blue.gif" height="15" name="memwidtha" id="memwidtha" width="<?= $memUsage; ?>" border="0" align="absmiddle" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_gray.gif" height="15" name="memwidthb" id="memwidthb" width="<?= (100 - $memUsage); ?>" border="0" align="absmiddle" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_right.gif" height="15" width="5" border="0" align="absmiddle" /><input style="border: 0px solid white;" size="30" name="memusagemeter" id="memusagemeter" value="<?= $memUsage.'%'; ?>" /> + </td> + </tr> + <?php if($showswap == true): ?> + <tr> + <td width="25%" class="vncellt">SWAP usage</td> + <td width="75%" class="listr"> + <?php $swapusage = swap_usage(); ?> + <img src="./themes/<?= $g['theme']; ?>/images/misc/bar_left.gif" height="15" width="4" border="0" align="absmiddle" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_blue.gif" height="15" width="<?= $swapUsage; ?>" border="0" align="absmiddle" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_gray.gif" height="15" width="<?= (100 - $swapUsage); ?>" border="0" align="absmiddle" /><img src="./themes/<?= $g['theme']; ?>/images/misc/bar_right.gif" height="15" width="5" border="0" align="absmiddle" /><input style="border: 0px solid white;" size="30" name="swapusagemeter" id="swapusagemeter" value="<?= $swapusage.'%'; ?>" /> + </td> + </tr> + <?php endif; ?> <?php -exec("df -h | grep -w '/' | awk '{ print $5 }' | cut -d '%' -f 1", $dfout); -$diskusage = trim($dfout[0]); - -echo "<img src='./themes/".$g['theme']."/images/misc/bar_left.gif' height='15' width='4' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_blue.gif' height='15' width='" . $diskusage . "' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_gray.gif' height='15' width='" . (100 - $diskusage) . "' border='0' align='absmiddle'>"; -echo "<img src='./themes/".$g['theme']."/images/misc/bar_right.gif' height='15' width='5' border='0' align='absmiddle'> "; -echo $diskusage . "%"; + /* XXX - Stub in the HW monitor for net4801 - needs to use platform var's once we start using them */ + $is4801 = `/sbin/dmesg -a | grep NET4801`; + if($is4801 <> ""): + exec("/usr/local/sbin/env4801 -i"); + $Temp = rtrim(`/usr/local/sbin/env4801 | grep Temp |cut -c24-25`); ?> + <tr> + <td width='25%' class='vncellt'>Temperature</td> + <td width='75%' class='listr'> + <img src="./themes/<?= $g["theme"]; ?>/images/misc/bar_left.gif" height="15" width="4" border="0" align="absmiddle" /><img src="./themes/<?= $g["theme"]; ?>/images/misc/bar_blue.gif" height="15" name="Tempwidtha" id="tempwidtha" width="<?= $temp; ?>" border="0" align="absmiddle" /><img src="./themes/<?= $g["theme"]; ?>/images/misc/bar_gray.gif" height="15" name="Tempwidthb" id="tempwidthb" width="<?= (100 - $temp); ?>" border="0" align="absmiddle" /><img src="./themes/<?= $g["theme"]; ?>/images/misc/bar_right.gif" height="15" width="5" border="0" align="absmiddle" /><input style="border: 0px solid white;" size="30" name="Tempmeter" id="Tempmeter" value="<?= $temp."C"; ?>" /> </td> - </tr> - + </tr> + <?php endif; ?> + <tr> + <td width="25%" class="vncellt">Disk usage</td> + <td width="75%" class="listr"> + <?php $diskusage = disk_usage(); ?> + <img src="./themes/<?= $g["theme"]; ?>/images/misc/bar_left.gif" height="15" width="4" border="0" align="absmiddle" /><img src="./themes/<?= $g["theme"]; ?>/images/misc/bar_blue.gif" height="15" width="<?= $diskusage; ?>" border="0" align="absmiddle" /><img src="./themes/<?= $g["theme"]; ?>/images/misc/bar_gray.gif" height="15" width="<?= (100 - $diskusage); ?>" border="0" align="absmiddle" /><img src="./themes/<?= $g["theme"]; ?>/images/misc/bar_right.gif" height="15" width="5" border="0" align="absmiddle" /> + <?php echo $diskusage . "%"; ?> + </td> + </tr> + </tbody> +</table> +</div> - </table> - </div> - <?php include("fend.inc"); ?> +<?php include("fend.inc"); ?> <script type="text/javascript"> -NiftyCheck(); -Rounded("div#nifty","top","#FFF","#EEEEEE","smooth"); + NiftyCheck(); + Rounded("div#nifty","top","#FFF","#EEEEEE","smooth"); </script> </form> </body> </html> <?php -if (preg_match("/MSIE/i", $_SERVER['HTTP_USER_AGENT'])) { +#exit; +/* +if (preg_match("/MSIE/i", $_SERVER["HTTP_USER_AGENT"])) { echo "<meta http-equiv=\"refresh\" content=\"30;url=index.php\">"; exit; } @@ -350,15 +247,17 @@ if (preg_match("/MSIE/i", $_SERVER['HTTP_USER_AGENT'])) { $counter = 0; While(!Connection_Aborted()) { - +*/ /* Update CPU meter */ +/* sleep(1); $cpuTicks = get_cputicks(); sleep(2); $cpuTicks2 = get_cputicks(); $cpuUsage = get_cpuusage($cpuTicks, $cpuTicks2); - +*/ /* Update memory usage */ +/* exec("/sbin/sysctl -n vm.stats.vm.v_active_count vm.stats.vm.v_inactive_count " . "vm.stats.vm.v_wire_count vm.stats.vm.v_cache_count vm.stats.vm.v_free_count", $memory); @@ -367,53 +266,58 @@ While(!Connection_Aborted()) { $usedMem = $totalMem - $freeMem; $memUsage = round(($usedMem * 100) / $totalMem, 0); - echo "<script language='javascript'>\n"; - echo "document.forms[0].uptime.value = '" . get_uptime() . "';\n"; - echo "document.forms[0].pfstate.value = '" . get_pfstate() . "';\n"; + echo "<script language="javascript">\n"; + echo "document.forms[0].uptime.value = "" . get_uptime() . "";\n"; + echo "document.forms[0].pfstate.value = "" . get_pfstate() . "";\n"; - echo "document.cpuwidtha.style.width='" . $cpuUsage . "px';\n"; - echo "document.cpuwidthb.style.width='" . (100 - $cpuUsage) . "px';\n"; - echo "document.forms[0].cpumeter.value = '" . $cpuUsage . "%';\n"; + echo "document.cpuwidtha.style.width="" . $cpuUsage . "px";\n"; + echo "document.cpuwidthb.style.width="" . (100 - $cpuUsage) . "px";\n"; + echo "document.forms[0].cpumeter.value = "" . $cpuUsage . "%";\n"; - echo "document.memwidtha.style.width='" . $memUsage . "px';\n"; - echo "document.memwidthb.style.width='" . (100 - $memUsage) . "px';\n"; - echo "document.forms[0].memusagemeter.value = '" . $memUsage . "%';\n"; + echo "document.memwidtha.style.width="" . $memUsage . "px";\n"; + echo "document.memwidthb.style.width="" . (100 - $memUsage) . "px";\n"; + echo "document.forms[0].memusagemeter.value = "" . $memUsage . "%";\n"; if (file_exists("/etc/48xx")) { +*/ /* Update temp. meter */ +/* $Temp = rtrim(`/usr/local/sbin/env4801 | grep Temp |cut -c24-25`); - echo "document.Tempwidtha.style.width='" . $Temp . "px';\n"; - echo "document.Tempwidthb.style.width='" . (100 - $Temp) . "px';\n"; - echo "document.forms[0].Tempmeter.value = '" . $Temp . "C';\n"; + echo "document.Tempwidtha.style.width="" . $Temp . "px";\n"; + echo "document.Tempwidthb.style.width="" . (100 - $Temp) . "px";\n"; + echo "document.forms[0].Tempmeter.value = "" . $Temp . "C";\n"; } - +*/ /* - exec("df -h | grep -w '/' | awk '{ print $5 }' | cut -d '%' -f 1", $dfout); + exec("df -h | grep -w "/" | awk "{ print $5 }" | cut -d "%" -f 1", $dfout); $diskusage = trim($dfout[0]); - echo "document.Diskwidtha.style.width='" . $diskusage . "px';\n"; - echo "document.Diskwidthb.style.width='" . (100 - $diskusage) . "px';\n"; - echo "document.forms[0].Diskmeter.value = '" . $diskusage . "%';\n"; + echo "document.Diskwidtha.style.width="" . $diskusage . "px";\n"; + echo "document.Diskwidthb.style.width="" . (100 - $diskusage) . "px";\n"; + echo "document.forms[0].Diskmeter.value = "" . $diskusage . "%";\n'; */ - - echo "</script>\n"; +/* + echo '</script>\n'; if(are_notices_pending() == true and $found_notices == false) { +*/ /* found a notice, lets redirect so they can see the notice */ +/* $counter = 500; } - + */ /* * prevent user from running out of ram. * firefox and ie can be a bear on ram usage! */ +/* $counter++; if($counter > 120) { - echo "Redirecting to <a href=\"index.php\">Main Status</a>.<p>"; - echo "<meta http-equiv=\"refresh\" content=\"1;url=index.php\">"; + echo 'Redirecting to <a href=\'index.php\'>Main Status</a>.<p>'; + echo '<meta http-equiv=\'refresh\' content=\'1;url=index.php\'>'; exit; } } - +*/ ?> diff --git a/usr/local/www/javascript/index/sajax.js b/usr/local/www/javascript/index/sajax.js new file mode 100644 index 0000000..f871393 --- /dev/null +++ b/usr/local/www/javascript/index/sajax.js @@ -0,0 +1,37 @@ +function updateMeters() +{ + x_cpu_usage(updateCPU); + x_mem_usage(updateMemory); + x_get_uptime(updateUptime); + x_get_pfstate(updateState); + + window.setTimeout('updateMeters()', 1500); +} + +function updateMemory(x) +{ + document.getElementById("memusagemeter").value = x + '%'; + + document.getElementById("memwidtha").style.width = x + 'px'; + document.getElementById("memwidthb").style.width = (100 - x) + 'px'; +} + +function updateCPU(x) +{ + document.getElementById("cpumeter").value = x + '%'; + + document.getElementById("cpuwidtha").style.width = x + 'px'; + document.getElementById("cpuwidthb").style.width = (100 - x) + 'px'; +} + +function updateUptime(x) +{ + document.getElementById("uptime").value = x; +} + +function updateState(x) +{ + document.getElementById("pfstate").value = x; +} + +window.setTimeout('updateMeters()', 1500);
\ No newline at end of file diff --git a/usr/local/www/sajax/index.sajax.php b/usr/local/www/sajax/index.sajax.php new file mode 100755 index 0000000..baa2913 --- /dev/null +++ b/usr/local/www/sajax/index.sajax.php @@ -0,0 +1,9 @@ +#!/usr/local/bin/php +<? + require("../includes/sajax.class.php"); + require("../includes/functions.inc.php"); + + $oSajax = new sajax(); + $oSajax->sajax_export("mem_usage","cpu_usage","get_uptime","get_pfstate"); + $oSajax->sajax_handle_client_request(); +?>
\ No newline at end of file |