summaryrefslogtreecommitdiffstats
path: root/usr/local/www/diag_system_pftop.php
diff options
context:
space:
mode:
authorWarren Baker <warren@decoy.co.za>2013-01-09 22:24:24 +0200
committerWarren Baker <warren@decoy.co.za>2013-01-09 22:24:24 +0200
commitc668eaed5c4418784c67f7e33cc5bfad515bdf27 (patch)
treebd7976f317affc074535a68eea23026bd0a50f8e /usr/local/www/diag_system_pftop.php
parentb13a841bc2a83061e42ecbc5c9a73fd133f054fd (diff)
downloadpfsense-c668eaed5c4418784c67f7e33cc5bfad515bdf27.zip
pfsense-c668eaed5c4418784c67f7e33cc5bfad515bdf27.tar.gz
Rework the pfTOP page to provide the ability to select the view. Also provide better dropdown labels and remove the annoying onClick submit - its not needed since ajax will handle the post of the new value in the background
Diffstat (limited to 'usr/local/www/diag_system_pftop.php')
-rw-r--r--usr/local/www/diag_system_pftop.php89
1 files changed, 63 insertions, 26 deletions
diff --git a/usr/local/www/diag_system_pftop.php b/usr/local/www/diag_system_pftop.php
index ee233a8..4caa1f8 100644
--- a/usr/local/www/diag_system_pftop.php
+++ b/usr/local/www/diag_system_pftop.php
@@ -44,30 +44,42 @@ $pfSversion = str_replace("\n", "", file_get_contents("/etc/version"));
$pgtitle = gettext("Diagnostics: pfTop");
+$sorttypes = array('age', 'bytes', 'dest', 'dport', 'exp', 'none', 'peak', 'pkt', 'rate', 'size', 'sport', 'src');
+$viewtypes = array('default', 'label', 'long', 'queue', 'rules', 'size', 'speed', 'state', 'time');
+
if($_REQUEST['getactivity']) {
- if($_REQUEST['sorttype'])
+ if($_REQUEST['sorttype'] && in_array($_REQUEST['sorttype'], array_keys($sorttypes))
+ && $_REQUEST['viewtype'] && in_array($_REQUEST['viewtype'], array_keys($viewtypes))) {
$sorttype = escapeshellarg($_REQUEST['sorttype']);
- else
- $sorttype = gettext("bytes");
- $text = `pftop -b -a -o {$sorttype}`;
+ $viewtype = escapeshellarg($_REQUEST['viewtype']);
+ } else {
+ $sorttype = gettext("bytes");
+ $viewtype = gettext("default");
+ }
+
+ $text = `pftop -b -a -o {$sorttype} -v {$viewtype}`;
echo $text;
exit;
}
include("head.inc");
-if($_REQUEST['sorttype'])
+if($_REQUEST['sorttype'] && in_array($_REQUEST['sorttype'], array_keys($sorttypes))
+ && $_REQUEST['viewtype'] && in_array($_REQUEST['viewtype'], array_keys($viewtypes))) {
$sorttype = htmlentities($_REQUEST['sorttype']);
-else
+ $viewtype = htmlentities($_REQUEST['viewtype']);
+} else {
$sorttype = gettext("bytes");
+ $viewtype = gettext("default");
+}
?>
<body link="#0000CC" vlink="#0000CC" alink="#0000CC">
<form method="post" action="diag_system_pftop.php">
<script type="text/javascript">
- function getcpuactivity() {
+ function getpftopactivity() {
var url = "/diag_system_pftop.php";
- var pars = 'getactivity=yes&sorttype=' + jQuery('#sorttype').val();
+ var pars = 'getactivity=yes&sorttype=' + jQuery('#sorttype').val() + '&viewtype=' + jQuery('#viewtype').val();
jQuery.ajax(
url,
{
@@ -77,10 +89,10 @@ else
});
}
function activitycallback(transport) {
- jQuery('#cpuactivitydiv').html('<font face="Courier"><font size="2"><b><pre style="text-align:left;">' + transport.responseText + '</pre></font>');
- setTimeout('getcpuactivity()', 2500);
+ jQuery('#pftopactivitydiv').html('<font face="Courier"><font size="2"><b><pre style="text-align:left;">' + transport.responseText + '</pre></font>');
+ setTimeout('getpftopactivity()', 2500);
}
- setTimeout('getcpuactivity()', 1000);
+ setTimeout('getpftopactivity()', 1000);
</script>
<div id='maincontent'>
<?php
@@ -96,21 +108,32 @@ else
print_input_errors($input_errors);
?>
<form method="post">
+ <?=gettext("View type:"); ?>
+ <select name='viewtype' id='viewtype'>
+ <option value='default' <?php echo ($viewtype == "default") ? "selected" : ""; ?>><?=gettext("Default");?></option>
+ <option value='label' <?php echo ($viewtype == "label") ? "selected" : ""; ?>><?=gettext("Label");?></option>
+ <option value='long' <?php echo ($viewtype == "long") ? "selected" : ""; ?>><?=gettext("Long");?></option>
+ <option value='queue' <?php echo ($viewtype == "queue") ? "selected" : ""; ?>><?=gettext("Queue");?></option>
+ <option value='rules' <?php echo ($viewtype == "rules") ? "selected" : ""; ?>><?=gettext("Rules");?></option>
+ <option value='size' <?php echo ($viewtype == "size") ? "selected" : ""; ?>><?=gettext("Size");?></option>
+ <option value='speed' <?php echo ($viewtype == "speed") ? "selected" : ""; ?>><?=gettext("Speed");?></option>
+ <option value='state' <?php echo ($viewtype == "state") ? "selected" : ""; ?>><?=gettext("State");?></option>
+ <option value='time' <?php echo ($viewtype == "time") ? "selected" : ""; ?>><?=gettext("Time");?></option>
+ </select>
<?=gettext("Sort type:"); ?>
- <select name='sorttype' id='sorttype' onChange='this.form.submit();'>
- <option value='<?=$sorttype?>'><?=$sorttype?></option>
- <option value='age'><?=gettext("age");?></option>
- <option value='bytes'><?=gettext("bytes");?></option>
- <option value='dest'><?=gettext("dest");?></option>
- <option value='dport'><?=gettext("dport");?></option>
- <option value='exp'><?=gettext("exp");?></option>
- <option value='none'><?=gettext("none");?></option>
- <option value='peak'><?=gettext("peak");?></option>
- <option value='pkt'><?=gettext("pkt");?></option>
- <option value='rate'><?=gettext("rate");?></option>
- <option value='size'><?=gettext("size");?></option>
- <option value='sport'><?=gettext("sport");?></option>
- <option value='src'><?=gettext("src");?></option>
+ <select name='sorttype' id='sorttype'>
+ <option value='age' <?php echo ($sorttype == "age") ? "selected" : ""; ?>><?=gettext("Age");?></option>
+ <option value='bytes' <?php echo ($sorttype == "bytes") ? "selected" : ""; ?>><?=gettext("Bytes");?></option>
+ <option value='dest' <?php echo ($sorttype == "dest") ? "selected" : ""; ?>><?=gettext("Destination Address");?></option>
+ <option value='dport' <?php echo ($sorttype == "dport") ? "selected" : ""; ?>><?=gettext("Destination Port");?></option>
+ <option value='exp' <?php echo ($sorttype == "exp") ? "selected" : ""; ?>><?=gettext("Expiry");?></option>
+ <option value='none' <?php echo ($sorttype == "none") ? "selected" : ""; ?>><?=gettext("None");?></option>
+ <option value='peak' <?php echo ($sorttype == "peak") ? "selected" : ""; ?>><?=gettext("Peak");?></option>
+ <option value='pkt' <?php echo ($sorttype == "pkt") ? "selected" : ""; ?>><?=gettext("Packet");?></option>
+ <option value='rate' <?php echo ($sorttype == "rate") ? "selected" : ""; ?>><?=gettext("Rate");?></option>
+ <option value='size' <?php echo ($sorttype == "size") ? "selected" : ""; ?>><?=gettext("Size");?></option>
+ <option value='sport' <?php echo ($sorttype == "sport") ? "selected" : ""; ?>><?=gettext("Source Port");?></option>
+ <option value='src' <?php echo ($sorttype == "src") ? "selected" : ""; ?>><?=gettext("Source Address");?></option>
</select>
<p/>
<table width="100%" border="0" cellpadding="0" cellspacing="0">
@@ -122,7 +145,7 @@ else
<center>
<table>
<tr><td>
- <div name='cpuactivitydiv' id='cpuactivitydiv'>
+ <div name='pftopactivitydiv' id='pftopactivitydiv'>
<b><?=gettext("Gathering pfTOP activity, please wait...");?>
</div>
</td></tr>
@@ -136,5 +159,19 @@ else
</table>
</form>
<?php include("fend.inc"); ?>
+<script language="JavaScript">
+jQuery("#viewtype").change(function() {
+ var selected = jQuery("#viewtype option:selected");
+ switch(selected.val()) {
+ case "queue":
+ case "label":
+ case "rules":
+ jQuery("#sorttype").hide();
+ break;
+ default:
+ jQuery("#sorttype").show();
+ }
+});
+</script>
</body>
</html>
OpenPOWER on IntegriCloud