Skip to content

Commit fed29f2

Browse files
committed
Resolving Issue #102
Syslog statistics filter problem - select program
1 parent 5881a91 commit fed29f2

2 files changed

Lines changed: 33 additions & 16 deletions

File tree

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ The sylog plugin has been in development for well over a decade with increasing
7979

8080
--- develop ---
8181

82+
* issue#102: Syslog statistics filter problem - select program
8283
* issue#100: Fix odd/even classes generation in report
8384
* issue#96: Syslog filtering does not work with some international characters
8485
* issue#87: Program data is not sync with syslog_incoming under PHP 7.2

syslog.php

Lines changed: 32 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,8 @@
4040

4141
if (get_request_var('action') == 'ajax_programs') {
4242
return get_ajax_programs(true);
43+
} elseif (get_request_var('action') == 'ajax_programs_wnone') {
44+
return get_ajax_programs(true, true);
4345
}
4446

4547
$title = __('Syslog Viewer', 'syslog');
@@ -194,19 +196,17 @@ function syslog_statistics() {
194196
'default' => '',
195197
),
196198
'facility' => array(
197-
'filter' => FILTER_CALLBACK,
199+
'filter' => FILTER_VALIDATE_INT,
198200
'pageset' => true,
199201
'default' => '',
200-
'options' => array('options' => 'sanitize_search_string')
201202
),
202203
'priority' => array(
203-
'filter' => FILTER_CALLBACK,
204+
'filter' => FILTER_VALIDATE_INT,
204205
'pageset' => true,
205206
'default' => '',
206-
'options' => array('options' => 'sanitize_search_string')
207207
),
208-
'eprogram' => array(
209-
'filter' => FILTER_CALLBACK,
208+
'program' => array(
209+
'filter' => FILTER_VALIDATE_INT,
210210
'pageset' => true,
211211
'default' => '',
212212
'options' => array('options' => 'sanitize_search_string')
@@ -482,7 +482,7 @@ function syslog_stats_filter() {
482482
?>
483483
</select>
484484
</td>
485-
<?php print html_program_filter(get_request_var('eprogram'));?>
485+
<?php print html_program_filter(get_request_var('program'), true, 'ajax_programs_wnone');?>
486486
<td>
487487
<span>
488488
<input id='go' type='button' value='<?php print __esc('Go', 'syslog');?>'>
@@ -563,10 +563,11 @@ function clearFilter() {
563563

564564
function applyFilter() {
565565
strURL = 'syslog.php?header=false';
566+
strURL += '&none=true';
566567
strURL += '&facility=' + $('#facility').val();
567568
strURL += '&host=' + $('#host').val();
568569
strURL += '&priority=' + $('#priority').val();
569-
strURL += '&program=' + $('#program').val();
570+
strURL += '&program=' + $('#eprogram').val();
570571
strURL += '&timespan=' + $('#timespan').val();
571572
strURL += '&filter=' + $('#filter').val();
572573
strURL += '&rows=' + $('#rows').val();
@@ -662,10 +663,9 @@ function syslog_request_validation($current_tab, $force = false) {
662663
'options' => array('options' => 'sanitize_search_string')
663664
),
664665
'eprogram' => array(
665-
'filter' => FILTER_CALLBACK,
666+
'filter' => FILTER_VALIDATE_INT,
666667
'pageset' => true,
667668
'default' => read_user_setting('syslog_eprogram', '-1', $force),
668-
'options' => array('options' => 'sanitize_search_string')
669669
),
670670
'filter' => array(
671671
'filter' => FILTER_DEFAULT,
@@ -1363,7 +1363,7 @@ function timeshiftFilterRight() {
13631363
<table class='filterTable'>
13641364
<tr>
13651365
<?php api_plugin_hook('syslog_extend_filter');?>
1366-
<?php html_program_filter(get_request_var('eprogram'));?>
1366+
<?php html_program_filter(get_request_var('eprogram'), false);?>
13671367
<td>
13681368
<?php print __('Facility', 'syslog');?>
13691369
</td>
@@ -1735,7 +1735,7 @@ function save_settings() {
17351735
syslog_request_validation($current_tab, true);
17361736
}
17371737

1738-
function html_program_filter($program_id = '-1', $call_back = 'applyFilter', $sql_where = '') {
1738+
function html_program_filter($program_id = '-1', $none_entry, $action = 'ajax_programs', $call_back = 'applyFilter', $sql_where = '') {
17391739
if (strpos($call_back, '()') === false) {
17401740
$call_back .= '()';
17411741
}
@@ -1744,6 +1744,8 @@ function html_program_filter($program_id = '-1', $call_back = 'applyFilter', $sq
17441744
$program = syslog_db_fetch_cell("SELECT program
17451745
FROM syslog_programs
17461746
WHERE program_id = $program_id");
1747+
} elseif ($program_id == -2) {
1748+
$program = __('None', 'syslog');
17471749
} else {
17481750
$program = __('All Programs', 'syslog');
17491751
}
@@ -1753,15 +1755,21 @@ function html_program_filter($program_id = '-1', $call_back = 'applyFilter', $sq
17531755
print '</td>';
17541756
print '<td>';
17551757

1758+
if ($none_entry) {
1759+
$none_entry = __('None', 'syslog');
1760+
} else {
1761+
$none_entry = '';
1762+
}
1763+
17561764
syslog_form_callback(
17571765
'eprogram',
17581766
'SELECT DISTINCT program_id, program FROM syslog_programs AS spr ORDER BY program',
17591767
'program',
17601768
'program_id',
1761-
'ajax_programs',
1769+
$action,
17621770
$program_id,
17631771
$program,
1764-
__('All Programs', 'syslog'),
1772+
$none_entry,
17651773
__('All Programs', 'syslog'),
17661774
'',
17671775
$call_back
@@ -1770,7 +1778,7 @@ function html_program_filter($program_id = '-1', $call_back = 'applyFilter', $sq
17701778
print '</td>';
17711779
}
17721780

1773-
function get_ajax_programs($include_any = true, $sql_where = '') {
1781+
function get_ajax_programs($include_any = true, $include_none = false, $sql_where = '') {
17741782
$return = array();
17751783

17761784
$term = get_filter_request_var('term', FILTER_CALLBACK, array('options' => 'sanitize_search_string'));
@@ -1786,6 +1794,14 @@ function get_ajax_programs($include_any = true, $sql_where = '') {
17861794
'id' => '-1'
17871795
);
17881796
}
1797+
1798+
if ($include_none) {
1799+
$return[] = array(
1800+
'label' => __('None', 'syslog'),
1801+
'value' => __('None', 'syslog'),
1802+
'id' => '-2'
1803+
);
1804+
}
17891805
}
17901806

17911807
$programs = syslog_db_fetch_assoc("SELECT program_id, program
@@ -1834,7 +1850,7 @@ function syslog_form_callback($form_name, $classic_sql, $column_display, $column
18341850
print "<select id='" . html_escape($form_name) . "' name='" . html_escape($form_name) . "'" . $class . ($on_change != '' ? "onChange='$on_change'":'') . '>';
18351851

18361852
if (!empty($none_entry)) {
1837-
print "<option value='-1'" . (empty($previous_value) ? ' selected' : '') . ">$none_entry</option>";
1853+
print "<option value='-2'" . (empty($previous_value) ? ' selected' : '') . ">$none_entry</option>";
18381854
}
18391855

18401856
$form_data = syslog_db_fetch_assoc($classic_sql);

0 commit comments

Comments
 (0)