diff options
author | Steve Beaver <sbeaver@netgate.com> | 2017-08-16 08:00:00 -0400 |
---|---|---|
committer | Steve Beaver <sbeaver@netgate.com> | 2017-08-16 08:00:00 -0400 |
commit | 0022b1131d19315adfdb4575791bd38f468d4fc0 (patch) | |
tree | 68b6958c3dc59ff22dd7e763f87553056621d4bf /src | |
parent | 27e6d494698c898e6ef44cb72cb0e86b573efe63 (diff) | |
download | pfsense-0022b1131d19315adfdb4575791bd38f468d4fc0.zip pfsense-0022b1131d19315adfdb4575791bd38f468d4fc0.tar.gz |
Convert firewall log widget to centralized refresh system
Diffstat (limited to 'src')
-rw-r--r-- | src/usr/local/www/widgets/widgets/log.widget.php | 50 |
1 files changed, 32 insertions, 18 deletions
diff --git a/src/usr/local/www/widgets/widgets/log.widget.php b/src/usr/local/www/widgets/widgets/log.widget.php index 48e82b1..23cb91c 100644 --- a/src/usr/local/www/widgets/widgets/log.widget.php +++ b/src/usr/local/www/widgets/widgets/log.widget.php @@ -29,7 +29,7 @@ require_once("functions.inc"); /* In an effort to reduce duplicate code, many shared functions have been moved here. */ require_once("filter_log.inc"); -if ($_POST['widgetkey']) { +if ($_REQUEST['widgetkey'] && !$_REQUEST['ajax']) { set_customwidgettitle($user_settings); if (is_numeric($_POST['filterlogentries'])) { @@ -99,6 +99,8 @@ $filter_logfile = "{$g['varlog_path']}/filter.log"; $filterlog = conv_log_filter($filter_logfile, $nentries, 50, $filterfieldsarray); $widgetkey_nodash = str_replace("-", "", $widgetkey); + +if (!$_REQUEST['ajax']) { ?> <script type="text/javascript"> //<![CDATA[ @@ -106,6 +108,8 @@ $widgetkey_nodash = str_replace("-", "", $widgetkey); //]]> </script> +<?php } ?> + <table class="table table-striped table-hover"> <thead> <tr> @@ -179,31 +183,41 @@ $widgetkey_nodash = str_replace("-", "", $widgetkey); <?php /* for AJAX response, we only need the panel-body */ -if (isset($_GET['lastsawtime'])) { +if ($_REQUEST['ajax']) { exit; } ?> <script type="text/javascript"> //<![CDATA[ -function logWidgetUpdateFromServer<?=$widgetkey_nodash?>() { - $.ajax({ - type: 'get', - url: '/widgets/widgets/log.widget.php', - data: { lastsawtime: logWidgetLastRefresh<?=$widgetkey_nodash?>, widgetkey: "<?=$widgetkey?>"}, - dataFilter: function(raw){ - // We reload the entire widget, strip this block of javascript from it - return raw.replace(/<script>([\s\S]*)<\/script>/gi, ''); - }, - dataType: 'html', - success: function(data){ - $('#widget-<?=$widgetkey?> .panel-body').html(data); - } - }); -} events.push(function(){ - setInterval('logWidgetUpdateFromServer<?=$widgetkey_nodash?>()', <?=$nentriesinterval?>*1000); + // --------------------- EXPERIMENTAL centralized widget refresh system ------------------------------ + + // Callback function called by refresh system when data is retrieved + function logs_callback(s) { + $('#widget-<?=$widgetkey?> .panel-body').html(s); + } + + // POST data to send via AJAX + var postdata = { + ajax: "ajax", + widgetkey : "<?=$widgetkey?>", + lastsawtime: logWidgetLastRefresh<?=$widgetkey_nodash?> + }; + + // Create an object defining the widget refresh AJAX call + var logsObject = new Object(); + logsObject.name = "Gateways"; + logsObject.url = "/widgets/widgets/log.widget.php"; + logsObject.callback = logs_callback; + logsObject.parms = postdata; + logsObject.freq = <?=$nentriesinterval?>/5; + + // Register the AJAX object + register_ajax(logsObject); + + // --------------------------------------------------------------------------------------------------- }); //]]> </script> |