summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Botelho <renato@netgate.com>2017-01-11 09:35:43 -0200
committerRenato Botelho <renato@netgate.com>2017-01-11 09:35:43 -0200
commitb38e0fbdb0de562efef1733e4843d3660827e3f7 (patch)
tree0edb6fc05afe39647b51f591cb6e786b621a0baf
parent92838b02b696c8fcd4059f107ae04656ab2f5c42 (diff)
parent70719baf259665872316a90e21d964fc38a909a5 (diff)
downloadpfsense-b38e0fbdb0de562efef1733e4843d3660827e3f7.zip
pfsense-b38e0fbdb0de562efef1733e4843d3660827e3f7.tar.gz
Merge pull request #3367 from derelict-pf/require_state_filter
-rw-r--r--src/etc/inc/pfsense-utils.inc20
-rw-r--r--src/usr/local/www/diag_dump_states.php13
-rw-r--r--src/usr/local/www/system.php4
3 files changed, 34 insertions, 3 deletions
diff --git a/src/etc/inc/pfsense-utils.inc b/src/etc/inc/pfsense-utils.inc
index 847826b..de0b998 100644
--- a/src/etc/inc/pfsense-utils.inc
+++ b/src/etc/inc/pfsense-utils.inc
@@ -366,6 +366,26 @@ function gen_user_settings_fields(&$section, $pconfig) {
gen_pagenamefirst_field($section, $pconfig['pagenamefirst']);
}
+/****f* pfsense-utils/gen_requirestatefilter_field
+ * NAME
+ * gen_requirestatefilter_field
+ * INPUTS
+ * Pointer to section object
+ * Initial value for the field
+ * RESULT
+ * no return value, section object is updated
+ ******/
+function gen_requirestatefilter_field(&$section, $value) {
+ $section->addInput(new Form_Checkbox(
+ 'requirestatefilter',
+ 'Require State Filter',
+ 'Do not display state table without a filter',
+ $value
+ ))->setHelp('By default, the entire state table is displayed when entering '.
+ 'Diagnostics > States. This option requires a filter to be entered '.
+ 'before the states are displayed. Useful for systems with large state tables.');
+}
+
function hardware_offloading_applyflags($iface) {
global $config;
diff --git a/src/usr/local/www/diag_dump_states.php b/src/usr/local/www/diag_dump_states.php
index 342d8f5..879617b 100644
--- a/src/usr/local/www/diag_dump_states.php
+++ b/src/usr/local/www/diag_dump_states.php
@@ -205,10 +205,14 @@ print $form;
$arr[] = array("filter" => $_POST['filter']);
}
- if (count($arr) > 0) {
- $res = pfSense_get_pf_states($arr);
+ if (isset($_POST['filter']) || !isset($config['system']['webgui']['requirestatefilter'])) {
+ if (count($arr) > 0) {
+ $res = pfSense_get_pf_states($arr);
+ } else {
+ $res = pfSense_get_pf_states();
+ }
} else {
- $res = pfSense_get_pf_states();
+ $res = NULL;
}
$states = 0;
@@ -261,6 +265,9 @@ print $form;
if ($states == 0) {
if (isset($_POST['filter']) && !empty($_POST['filter'])) {
$errmsg = gettext('No states were found that match the current filter.');
+ } else if (!isset($_POST['filter']) && isset($config['system']['webgui']['requirestatefilter'])) {
+ $errmsg = gettext('State display suppressed without filter submission. '.
+ 'See System > General Setup, Require State Filter.');
} else {
$errmsg = gettext('No states were found.');
}
diff --git a/src/usr/local/www/system.php b/src/usr/local/www/system.php
index 86b9d76..858ca00 100644
--- a/src/usr/local/www/system.php
+++ b/src/usr/local/www/system.php
@@ -68,6 +68,7 @@ $pconfig['webguihostnamemenu'] = $config['system']['webgui']['webguihostnamemenu
$pconfig['dnslocalhost'] = isset($config['system']['dnslocalhost']);
$pconfig['dashboardperiod'] = isset($config['widgets']['period']) ? $config['widgets']['period']:"10";
$pconfig['loginshowhost'] = isset($config['system']['webgui']['loginshowhost']);
+$pconfig['requirestatefilter'] = isset($config['system']['webgui']['requirestatefilter']);
if (!$pconfig['timezone']) {
if (isset($g['default_timezone']) && !empty($g['default_timezone'])) {
@@ -177,6 +178,8 @@ if ($_POST) {
unset($config['system']['webgui']['dashboardcolumns']);
}
+ $config['system']['webgui']['requirestatefilter'] = $_POST['requirestatefilter'] ? true : false;
+
if ($_POST['hostname']) {
if (!is_hostname($_POST['hostname'])) {
$input_errors[] = gettext("The hostname can only contain the characters A-Z, 0-9 and '-'. It may not start or end with '-'.");
@@ -519,6 +522,7 @@ gen_associatedpanels_fields(
$pconfig['systemlogsfilterpanel'],
$pconfig['systemlogsmanagelogpanel'],
$pconfig['statusmonitoringsettingspanel']);
+gen_requirestatefilter_field($section, $pconfig['requirestatefilter']);
gen_webguileftcolumnhyper_field($section, $pconfig['webguileftcolumnhyper']);
$section->addInput(new Form_Checkbox(
OpenPOWER on IntegriCloud