summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorSteve Beaver <sbeaver@netgate.com>2017-08-16 08:00:00 -0400
committerSteve Beaver <sbeaver@netgate.com>2017-08-16 08:00:00 -0400
commit0022b1131d19315adfdb4575791bd38f468d4fc0 (patch)
tree68b6958c3dc59ff22dd7e763f87553056621d4bf /src
parent27e6d494698c898e6ef44cb72cb0e86b573efe63 (diff)
downloadpfsense-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.php50
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>
OpenPOWER on IntegriCloud