summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorjim-p <jimp@pfsense.org>2017-04-03 14:55:54 -0400
committerjim-p <jimp@pfsense.org>2017-04-03 14:55:54 -0400
commitf0875a7e6af8862ddd71b91b52194a96ff385d3b (patch)
tree68648d562112726f2dee880c1184e8bd2b23cd3b /src
parent916168fdbb3628516a6887fe8384889ee40a42b9 (diff)
parent1d3510cf6cc471b179d52e03f4cfe77e23b4b20b (diff)
downloadpfsense-f0875a7e6af8862ddd71b91b52194a96ff385d3b.zip
pfsense-f0875a7e6af8862ddd71b91b52194a96ff385d3b.tar.gz
Merge pull request #3685 from phil-davis/sort-if-names
Diffstat (limited to 'src')
-rw-r--r--src/etc/inc/auth.inc2
-rw-r--r--src/etc/inc/pfsense-utils.inc20
-rw-r--r--src/etc/inc/util.inc9
-rw-r--r--src/usr/local/www/head.inc8
-rw-r--r--src/usr/local/www/system.php5
-rw-r--r--src/usr/local/www/system_user_settings.php8
-rw-r--r--src/usr/local/www/system_usermanager.php8
7 files changed, 56 insertions, 4 deletions
diff --git a/src/etc/inc/auth.inc b/src/etc/inc/auth.inc
index 59114d6..168af38 100644
--- a/src/etc/inc/auth.inc
+++ b/src/etc/inc/auth.inc
@@ -1580,6 +1580,7 @@ function get_user_settings($username) {
$settings['webgui']['dashboardcolumns'] = $config['system']['webgui']['dashboardcolumns'];
$settings['webgui']['webguihostnamemenu'] = $config['system']['webgui']['webguihostnamemenu'];
$settings['webgui']['webguicss'] = $config['system']['webgui']['webguicss'];
+ $settings['webgui']['interfacessort'] = isset($config['system']['webgui']['interfacessort']);
$settings['webgui']['dashboardavailablewidgetspanel'] = isset($config['system']['webgui']['dashboardavailablewidgetspanel']);
$settings['webgui']['webguifixedmenu'] = isset($config['system']['webgui']['webguifixedmenu']);
$settings['webgui']['webguileftcolumnhyper'] = isset($config['system']['webgui']['webguileftcolumnhyper']);
@@ -1604,6 +1605,7 @@ function get_user_settings($username) {
if (isset($user['webguihostnamemenu'])) {
$settings['webgui']['webguihostnamemenu'] = $user['webguihostnamemenu'];
}
+ $settings['webgui']['interfacessort'] = isset($user['interfacessort']);
$settings['webgui']['dashboardavailablewidgetspanel'] = isset($user['dashboardavailablewidgetspanel']);
$settings['webgui']['webguifixedmenu'] = isset($user['webguifixedmenu']);
$settings['webgui']['webguileftcolumnhyper'] = isset($user['webguileftcolumnhyper']);
diff --git a/src/etc/inc/pfsense-utils.inc b/src/etc/inc/pfsense-utils.inc
index 81a2ea3..ded6b3f 100644
--- a/src/etc/inc/pfsense-utils.inc
+++ b/src/etc/inc/pfsense-utils.inc
@@ -255,6 +255,25 @@ function gen_dashboardcolumns_field(&$section, $value) {
));
}
+/****f* pfsense-utils/gen_interfacessort_field
+ * NAME
+ * gen_interfacessort_field
+ * INPUTS
+ * Pointer to section object
+ * Initial value for the field
+ * RESULT
+ * no return value, section object is updated
+ ******/
+function gen_interfacessort_field(&$section, $value) {
+
+ $section->addInput(new Form_Checkbox(
+ 'interfacessort',
+ 'Interfaces Sort',
+ 'Sort Alphabetically',
+ $value
+ ))->setHelp('If selected, lists of interfaces will be sorted by description, otherwise they are listed wan,lan,optn...');
+}
+
/****f* pfsense-utils/gen_associatedpanels_fields
* NAME
* gen_associatedpanels_fields
@@ -375,6 +394,7 @@ function gen_user_settings_fields(&$section, $pconfig) {
gen_webguifixedmenu_field($section, $pconfig['webguifixedmenu']);
gen_webguihostnamemenu_field($section, $pconfig['webguihostnamemenu']);
gen_dashboardcolumns_field($section, $pconfig['dashboardcolumns']);
+ gen_interfacessort_field($section, $pconfig['interfacessort']);
gen_associatedpanels_fields(
$section,
$pconfig['dashboardavailablewidgetspanel'],
diff --git a/src/etc/inc/util.inc b/src/etc/inc/util.inc
index 4e3af5d..d294d1d 100644
--- a/src/etc/inc/util.inc
+++ b/src/etc/inc/util.inc
@@ -1409,7 +1409,7 @@ function get_configured_interface_list_by_realif($only_opt = false, $withdisable
/* return the configured interfaces list with their description. */
function get_configured_interface_with_descr($only_opt = false, $withdisabled = false) {
- global $config;
+ global $config, $user_settings;
$iflist = array();
@@ -1426,8 +1426,11 @@ function get_configured_interface_with_descr($only_opt = false, $withdisabled =
}
}
}
-
- asort($iflist);
+
+ if ($user_settings['webgui']['interfacessort']) {
+ asort($iflist);
+ }
+
return $iflist;
}
diff --git a/src/usr/local/www/head.inc b/src/usr/local/www/head.inc
index 27fb8f7..5943a55 100644
--- a/src/usr/local/www/head.inc
+++ b/src/usr/local/www/head.inc
@@ -275,8 +275,14 @@ foreach ($opts as $oif => $odescr) {
}
}
+$interfaces_bottom = array_merge($interfaces_bottom, return_ext_menu("Interfaces"));
+
+if ($user_settings['webgui']['interfacessort']) {
+ $interfaces_bottom = msort($interfaces_bottom, 0);
+}
+
// Combine the top section, the divider and the bottom section of this menu
-$interfaces_menu = array_merge($interfaces_top, [array(0 => "-DIVIDER-")], msort(array_merge($interfaces_bottom, return_ext_menu("Interfaces")), 0));
+$interfaces_menu = array_merge($interfaces_top, [array(0 => "-DIVIDER-")], $interfaces_bottom);
// Firewall
$firewall_menu = array();
diff --git a/src/usr/local/www/system.php b/src/usr/local/www/system.php
index 5766499..53fbf80 100644
--- a/src/usr/local/www/system.php
+++ b/src/usr/local/www/system.php
@@ -62,6 +62,7 @@ $pconfig['language'] = $config['system']['language'];
$pconfig['webguicss'] = $config['system']['webgui']['webguicss'];
$pconfig['webguifixedmenu'] = $config['system']['webgui']['webguifixedmenu'];
$pconfig['dashboardcolumns'] = $config['system']['webgui']['dashboardcolumns'];
+$pconfig['interfacessort'] = isset($config['system']['webgui']['interfacessort']);
$pconfig['webguileftcolumnhyper'] = isset($config['system']['webgui']['webguileftcolumnhyper']);
$pconfig['disablealiaspopupdetail'] = isset($config['system']['webgui']['disablealiaspopupdetail']);
$pconfig['dashboardavailablewidgetspanel'] = isset($config['system']['webgui']['dashboardavailablewidgetspanel']);
@@ -272,6 +273,9 @@ if ($_POST) {
set_language();
}
+ unset($config['system']['webgui']['interfacessort']);
+ $config['system']['webgui']['interfacessort'] = $_POST['interfacessort'] ? true : false;
+
unset($config['system']['webgui']['webguileftcolumnhyper']);
$config['system']['webgui']['webguileftcolumnhyper'] = $_POST['webguileftcolumnhyper'] ? true : false;
@@ -576,6 +580,7 @@ gen_webguicss_field($section, $pconfig['webguicss']);
gen_webguifixedmenu_field($section, $pconfig['webguifixedmenu']);
gen_webguihostnamemenu_field($section, $pconfig['webguihostnamemenu']);
gen_dashboardcolumns_field($section, $pconfig['dashboardcolumns']);
+gen_interfacessort_field($section, $pconfig['interfacessort']);
gen_associatedpanels_fields(
$section,
$pconfig['dashboardavailablewidgetspanel'],
diff --git a/src/usr/local/www/system_user_settings.php b/src/usr/local/www/system_user_settings.php
index 03d8355..ebcdc78 100644
--- a/src/usr/local/www/system_user_settings.php
+++ b/src/usr/local/www/system_user_settings.php
@@ -42,6 +42,7 @@ if (isset($id) && $a_user[$id]) {
$pconfig['webguifixedmenu'] = $a_user[$id]['webguifixedmenu'];
$pconfig['webguihostnamemenu'] = $a_user[$id]['webguihostnamemenu'];
$pconfig['dashboardcolumns'] = $a_user[$id]['dashboardcolumns'];
+ $pconfig['interfacessort'] = isset($a_user[$id]['interfacessort']);
$pconfig['dashboardavailablewidgetspanel'] = isset($a_user[$id]['dashboardavailablewidgetspanel']);
$pconfig['systemlogsfilterpanel'] = isset($a_user[$id]['systemlogsfilterpanel']);
$pconfig['systemlogsmanagelogpanel'] = isset($a_user[$id]['systemlogsmanagelogpanel']);
@@ -84,6 +85,13 @@ if (isset($_POST['save'])) {
$pconfig['dashboardcolumns'] = $userent['dashboardcolumns'] = $_POST['dashboardcolumns'];
+ if ($_POST['interfacessort']) {
+ $pconfig['interfacessort'] = $userent['interfacessort'] = true;
+ } else {
+ $pconfig['interfacessort'] = false;
+ unset($userent['interfacessort']);
+ }
+
if ($_POST['dashboardavailablewidgetspanel']) {
$pconfig['dashboardavailablewidgetspanel'] = $userent['dashboardavailablewidgetspanel'] = true;
} else {
diff --git a/src/usr/local/www/system_usermanager.php b/src/usr/local/www/system_usermanager.php
index abf9d82..6770297 100644
--- a/src/usr/local/www/system_usermanager.php
+++ b/src/usr/local/www/system_usermanager.php
@@ -63,6 +63,7 @@ if (isset($id) && $a_user[$id]) {
$pconfig['webguifixedmenu'] = $a_user[$id]['webguifixedmenu'];
$pconfig['webguihostnamemenu'] = $a_user[$id]['webguihostnamemenu'];
$pconfig['dashboardcolumns'] = $a_user[$id]['dashboardcolumns'];
+ $pconfig['interfacessort'] = isset($a_user[$id]['interfacessort']);
$pconfig['dashboardavailablewidgetspanel'] = isset($a_user[$id]['dashboardavailablewidgetspanel']);
$pconfig['systemlogsfilterpanel'] = isset($a_user[$id]['systemlogsfilterpanel']);
$pconfig['systemlogsmanagelogpanel'] = isset($a_user[$id]['systemlogsmanagelogpanel']);
@@ -330,6 +331,12 @@ if ($_POST['save']) {
unset($userent['webguihostnamemenu']);
}
+ if ($_POST['interfacessort']) {
+ $userent['interfacessort'] = true;
+ } else {
+ unset($userent['interfacessort']);
+ }
+
if ($_POST['dashboardavailablewidgetspanel']) {
$userent['dashboardavailablewidgetspanel'] = true;
} else {
@@ -976,6 +983,7 @@ events.push(function() {
hideInput('webguifixedmenu', !adv);
hideInput('webguihostnamemenu', !adv);
hideInput('dashboardcolumns', !adv);
+ hideCheckbox('interfacessort', !adv);
hideCheckbox('dashboardavailablewidgetspanel', !adv);
hideCheckbox('systemlogsfilterpanel', !adv);
hideCheckbox('systemlogsmanagelogpanel', !adv);
OpenPOWER on IntegriCloud