diff --git a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php index 03abb278b..5094a0960 100644 --- a/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php +++ b/src/opnsense/mvc/app/controllers/OPNsense/Diagnostics/Api/LogController.php @@ -74,7 +74,8 @@ class LogController extends ApiControllerBase $searchPhrase, $module, $scope, - $severities + $severities, + $this->request->getPost('validFrom', null, '0') ]); $result = json_decode($response, true); if ($result != null) { @@ -119,7 +120,7 @@ class LogController extends ApiControllerBase return $this->configdStream( 'system diag log_live', - [$offset, $searchPhrase, $module, $scope, $severities], + [$offset, $searchPhrase, $module, $scope, $severities, $this->request->get('validFrom', null, '0')], [ 'Content-Type: text/event-stream', 'Cache-Control: no-cache' diff --git a/src/opnsense/mvc/app/views/OPNsense/Diagnostics/log.volt b/src/opnsense/mvc/app/views/OPNsense/Diagnostics/log.volt index dce66df6e..199510bb8 100644 --- a/src/opnsense/mvc/app/views/OPNsense/Diagnostics/log.volt +++ b/src/opnsense/mvc/app/views/OPNsense/Diagnostics/log.volt @@ -43,6 +43,7 @@ } else { s_filter_val = localStorage.getItem('log_severity_{{module}}_{{scope}}') ? localStorage.getItem('log_severity_{{module}}_{{scope}}').split(',') : s_filter_val; } + $("#validFrom_filter").val(localStorage.getItem('log_validFrom_filter_{{module}}_{{scope}}') ? localStorage.getItem('log_validFrom_filter_{{module}}_{{scope}}') : 'day'); } switch_mode(s_filter_val); @@ -71,14 +72,24 @@ // get selected severities or severities below or equal to selected request['severity'] = filter_exact ? selectedSeverity : severities.slice(0,severities.indexOf(selectedSeverity) + 1); } + let time_offsets = { + 'day': 60*60*24, + 'week': 7*60*60*24, + 'month': 31*60*60*24, + } + if ($("#validFrom_filter").val().length > 0 && time_offsets[$("#validFrom_filter").val()]) { + let now = Date.now() / 1000; + request['validFrom'] = now - time_offsets[$("#validFrom_filter").val()]; + } return request; }, }, search:'/api/diagnostics/log/{{module}}/{{scope}}' }); - $("#severity_filter").change(function(){ + $(".filter_act").change(function(){ if (window.localStorage) { localStorage.setItem('log_severity_{{module}}_{{scope}}', $("#severity_filter").val()); + localStorage.setItem('log_validFrom_filter_{{module}}_{{scope}}', $("#validFrom_filter").val()); } $('#grid-log').bootgrid('reload'); }); @@ -144,7 +155,8 @@ updateServiceControlUI('{{service}}'); // move filter into action header - $("#severity_filter_container").detach().prependTo('#grid-log-header > .row > .actionBar > .actions'); + $("#filter_container").detach().prependTo('#grid-log-header > .row > .actionBar > .actions'); + $(".filter_act").tooltip(); function switch_mode(value) { @@ -198,8 +210,8 @@