summaryrefslogtreecommitdiffstats
path: root/src/usr/local
diff options
context:
space:
mode:
authorNOYB <Al_Stu@Frontier.com>2016-01-25 00:39:58 -0800
committerStephen Beaver <sbeaver@netgate.com>2016-01-25 10:22:41 -0500
commit91b2212f1c49a3198105cfe9b938081fef8186ba (patch)
tree0ce748c2f3cd34ef511b773fd262db2049c37afc /src/usr/local
parent556d26c829fb8feef48004be993830688159c930 (diff)
downloadpfsense-91b2212f1c49a3198105cfe9b938081fef8186ba.zip
pfsense-91b2212f1c49a3198105cfe9b938081fef8186ba.tar.gz
Widget - Firewall Log - Tweaks
Add a table row when there are no entries to prevent scroll bars after ajax update. Add no logs to display message. Add update interval configuration setting. Add configuration form placeholders. Don't include ':' when no port such as for ICMP. Remove unused block of code. AJAX is using get method.
Diffstat (limited to 'src/usr/local')
-rw-r--r--src/usr/local/www/widgets/widgets/log.widget.php60
1 files changed, 43 insertions, 17 deletions
diff --git a/src/usr/local/www/widgets/widgets/log.widget.php b/src/usr/local/www/widgets/widgets/log.widget.php
index 4455ab0..967d9dd 100644
--- a/src/usr/local/www/widgets/widgets/log.widget.php
+++ b/src/usr/local/www/widgets/widgets/log.widget.php
@@ -63,8 +63,12 @@ require_once("functions.inc");
/* In an effort to reduce duplicate code, many shared functions have been moved here. */
require_once("filter_log.inc");
-if (is_numeric($_POST['filterlogentries'])) {
- $config['widgets']['filterlogentries'] = $_POST['filterlogentries'];
+if ($_POST) {
+ if (is_numeric($_POST['filterlogentries'])) {
+ $config['widgets']['filterlogentries'] = $_POST['filterlogentries'];
+ } else {
+ unset($config['widgets']['filterlogentries']);
+ }
$acts = array();
if ($_POST['actpass']) {
@@ -90,6 +94,12 @@ if (is_numeric($_POST['filterlogentries'])) {
unset($config['widgets']['filterlogentriesinterfaces']);
}
+ if (is_numeric($_POST['filterlogentriesinterval'])) {
+ $config['widgets']['filterlogentriesinterval'] = $_POST['filterlogentriesinterval'];
+ } else {
+ unset($config['widgets']['filterlogentriesinterval']);
+ }
+
write_config(gettext("Saved Filter Log Entries via Dashboard"));
Header("Location: /");
exit(0);
@@ -106,20 +116,11 @@ $filterfieldsarray = array(
"interface" => $nentriesinterfaces
);
-$filter_logfile = "{$g['varlog_path']}/filter.log";
+$nentriesinterval = isset($config['widgets']['filterlogentriesinterval']) ? $config['widgets']['filterlogentriesinterval'] : 60;
-/* AJAX related routines */
-if (isset($_POST['lastsawtime'])) {
- $filterlog = conv_log_filter($filter_logfile, $nentries, $nentries + 20);
+$filter_logfile = "{$g['varlog_path']}/filter.log";
- foreach ($filterlog as $idx => $row) {
- if (strtotime($log_row['time']) <= $_POST['lastsawtime']) {
- unset($filterlog[$idx]);
- }
- }
-} else {
- $filterlog = conv_log_filter($filter_logfile, $nentries, 50, $filterfieldsarray);
-}
+$filterlog = conv_log_filter($filter_logfile, $nentries, 50, $filterfieldsarray);
?>
<script type="text/javascript">
//<![CDATA[
@@ -178,12 +179,24 @@ if (isset($_POST['lastsawtime'])) {
title="<?=gettext("Reverse Resolve with DNS");?>"><?=$srcIP?></a>
</td>
<td><a href="diag_dns.php?host=<?=$filterent['dstip']?>"
- title="<?=gettext("Reverse Resolve with DNS");?>"><?=$dstIP?></a>:<?=htmlspecialchars($filterent['dstport'])?>
+ title="<?=gettext("Reverse Resolve with DNS");?>"><?=$dstIP?></a><?php
+ if ($filterent['dstport']) {
+ print ':' . htmlspecialchars($filterent['dstport']);
+ }
+ ?>
</td>
</tr>
<?php
endforeach;
?>
+<?php
+ if (count($filterlog) == 0) {
+ print '<tr class="text-nowrap"><td colspan=5 class="text-center">';
+ print gettext('No logs to display');
+ print '</td></tr>';
+ }
+?>
+
</tbody>
</table>
@@ -214,7 +227,7 @@ function logWidgetUpdateFromServer(){
}
events.push(function(){
- setInterval('logWidgetUpdateFromServer()', 60*1000);
+ setInterval('logWidgetUpdateFromServer()', <?=$nentriesinterval?>*1000);
});
//]]>
</script>
@@ -223,12 +236,16 @@ events.push(function(){
</div>
<div id="widget-<?=$widgetname?>_panel-footer" class="panel-footer collapse">
+<?php
+$pconfig['nentries'] = isset($config['widgets']['filterlogentries']) ? $config['widgets']['filterlogentries'] : '';
+$pconfig['nentriesinterval'] = isset($config['widgets']['filterlogentriesinterval']) ? $config['widgets']['filterlogentriesinterval'] : '';
+?>
<form action="/widgets/widgets/log.widget.php" method="post"
class="form-horizontal">
<div class="form-group">
<label for="filterlogentries" class="col-sm-4 control-label"><?=gettext('Number of entries')?></label>
<div class="col-sm-6">
- <input type="number" name="filterlogentries" id="filterlogentries" value="<?=$nentries?>"
+ <input type="number" name="filterlogentries" id="filterlogentries" value="<?=$pconfig['nentries']?>" placeholder="5"
min="1" max="20" class="form-control" />
</div>
</div>
@@ -267,6 +284,15 @@ events.push(function(){
</div>
<div class="form-group">
+ <label for="filterlogentriesinterval" class="col-sm-4 control-label"><?=gettext('Update interval')?></label>
+ <div class="col-sm-4">
+ <input type="number" name="filterlogentriesinterval" id="filterlogentriesinterval" value="<?=$pconfig['nentriesinterval']?>" placeholder="60"
+ min="1" class="form-control" />
+ </div>
+ <?=gettext('Seconds');?>
+ </div>
+
+ <div class="form-group">
<div class="col-sm-offset-4 col-sm-6">
<button type="submit" class="btn btn-default"><?=gettext('Save')?></button>
</div>
OpenPOWER on IntegriCloud