summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorErik Kristensen <ekristen@pfsense.org>2005-09-11 06:17:32 +0000
committerErik Kristensen <ekristen@pfsense.org>2005-09-11 06:17:32 +0000
commitd772ac32580e088437a9bbedfc2a348d2760a5aa (patch)
tree76e18857992df67b3e5c5582f23603c8f32cd237
parent8bf392242477d3e3317448d8fd6b64152dc89d33 (diff)
downloadpfsense-d772ac32580e088437a9bbedfc2a348d2760a5aa.zip
pfsense-d772ac32580e088437a9bbedfc2a348d2760a5aa.tar.gz
Added SAJAX support.
System Meters are updated via AJAX now. Started XHTML/CSS cleanup.
-rwxr-xr-xusr/local/www/head.inc19
-rw-r--r--usr/local/www/includes/functions.inc.php98
-rw-r--r--usr/local/www/includes/sajax.class.php261
-rwxr-xr-xusr/local/www/index.php418
-rw-r--r--usr/local/www/javascript/index/sajax.js37
-rwxr-xr-xusr/local/www/sajax/index.sajax.php9
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
OpenPOWER on IntegriCloud