diff options
author | Warren Baker <warren@decoy.co.za> | 2013-01-09 22:24:24 +0200 |
---|---|---|
committer | Warren Baker <warren@decoy.co.za> | 2013-01-09 22:24:24 +0200 |
commit | c668eaed5c4418784c67f7e33cc5bfad515bdf27 (patch) | |
tree | bd7976f317affc074535a68eea23026bd0a50f8e /usr/local/www/diag_system_pftop.php | |
parent | b13a841bc2a83061e42ecbc5c9a73fd133f054fd (diff) | |
download | pfsense-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.php | 89 |
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> |