From 3d81f3e5f6c4ff62e896c1be7d546de1b8d83186 Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Wed, 3 Aug 2022 06:22:51 +0100 Subject: [PATCH] make hide1002 and vlan_names true sidebar options and move to port properties section --- lib/App/Netdisco/Web/Device.pm | 6 ++++++ lib/App/Netdisco/Web/Plugin/Device/Ports.pm | 4 ++-- share/config.yml | 4 ++-- share/environments/deployment.yml | 7 +++++++ share/views/ajax/device/ports.tt | 8 ++++---- share/views/ajax/device/ports_csv.tt | 6 +++--- share/views/sidebar/device/ports.tt | 9 +++++---- 7 files changed, 29 insertions(+), 15 deletions(-) diff --git a/lib/App/Netdisco/Web/Device.pm b/lib/App/Netdisco/Web/Device.pm index 924b3fd9..008c407f 100644 --- a/lib/App/Netdisco/Web/Device.pm +++ b/lib/App/Netdisco/Web/Device.pm @@ -16,6 +16,12 @@ set('connected_properties' => [ grep { $_ =~ m/^n_/ } keys %{ setting('sidebar_defaults')->{'device_ports'} } ]); +set('port_display_properties' => [ + sort { $a->{idx} <=> $b->{idx} } + map {{ name => $_, %{ setting('sidebar_defaults')->{'device_ports'}->{$_} } }} + grep { $_ =~ m/^p_/ } keys %{ setting('sidebar_defaults')->{'device_ports'} } +]); + hook 'before_template' => sub { my $tokens = shift; diff --git a/lib/App/Netdisco/Web/Plugin/Device/Ports.pm b/lib/App/Netdisco/Web/Plugin/Device/Ports.pm index a48524b7..afa1bebc 100644 --- a/lib/App/Netdisco/Web/Plugin/Device/Ports.pm +++ b/lib/App/Netdisco/Web/Plugin/Device/Ports.pm @@ -106,7 +106,7 @@ get '/ajax/content/device/ports' => require_login sub { # get vlans on the port # leave this query dormant (lazy) unless c_vmember is set or vlan filtering my $vlans = $set->search( - { param('hide1002') ? + { param('p_hide1002') ? (-or => ['port_vlans.vlan' => {'<', '1002'}, 'port_vlans.vlan' => {'>', '1005'}]) : () }, { @@ -131,7 +131,7 @@ get '/ajax/content/device/ports' => require_login sub { )} $vlans->all }; } - if (param('c_vlan_names')) { + if (param('p_vlan_names')) { $set = $set->search({}, { 'join' => 'native_vlan', '+select' => [qw/native_vlan.description/], diff --git a/share/config.yml b/share/config.yml index 390450d1..e894fe40 100644 --- a/share/config.yml +++ b/share/config.yml @@ -126,7 +126,6 @@ sidebar_defaults: c_mtu: { label: 'MTU', default: null, idx: 12 } c_pvid: { label: 'Native VLAN', default: checked, idx: 13 } c_vmember: { label: 'VLAN Membership', default: checked, idx: 14 } - c_vlan_names: { label: 'use VLAN Names', default: null, idx: 15 } c_power: { label: 'PoE', default: null, idx: 16 } c_ssid: { label: 'SSID', default: null, idx: 17 } c_nodes: { label: 'Connected Nodes', default: null, idx: 18 } @@ -145,7 +144,8 @@ sidebar_defaults: n_archived: { label: 'Archived Data', default: null, idx: 8 } age_num: { default: 3 } age_unit: { default: months } - hide1002: { default: checked } + p_vlan_names: { label: 'Use VLAN Names', default: null, idx: 0 } + p_hide1002: { label: 'Hide VLAN 1002-1005', default: null, idx: 1 } device_netmap: showips: { default: null } showspeed: { default: null } diff --git a/share/environments/deployment.yml b/share/environments/deployment.yml index 019ec201..6f517354 100644 --- a/share/environments/deployment.yml +++ b/share/environments/deployment.yml @@ -56,6 +56,13 @@ device_auth: #discover_waps: true #discover_phones: false +# show VLAN names instead of VLAN numbers in Device Ports table. +# hide VLAN 1002-1005 in Device Ports (useful for older Cisco). +#sidebar_defaults: +# device_ports: +# p_vlan_names: { default: checked } +# p_hide1002: { default: checked } + # this is the schedule for automatically keeping netdisco up-to-date; # these are good defaults, so only uncomment if needing to change. # (or set "schedule: null" if you wish to disable the scheduler) diff --git a/share/views/ajax/device/ports.tt b/share/views/ajax/device/ports.tt index 3d395645..efc069a1 100644 --- a/share/views/ajax/device/ports.tt +++ b/share/views/ajax/device/ports.tt @@ -4,7 +4,7 @@ [% FOREACH item IN settings.port_columns %] - [% NEXT IF item.name == 'c_admin' OR item.name == 'c_vlan_names' %] + [% NEXT IF item.name == 'c_admin' %] [% NEXT IF item.name == 'c_nodes' AND params.c_nodes AND params.c_neighbors %] [% NEXT UNLESS params.${item.name} %] [% SET th_class = '' %] @@ -204,7 +204,7 @@ [% IF row.vlan AND row.vlan > 0 %] [% row.get_column('native_vlan_name') | html_entity %] [% ELSE %] @@ -218,10 +218,10 @@ [% IF params.c_vmember %] - [% IF vlans.exists($portname) %] + [% IF vlans.$portname.size %] [% IF vlans.$portname.vlan_count <= settings.devport_vlan_limit %] [% SET vlan_count = vlans.$portname.vlan_count %] - [% IF params.c_vlan_names %][% SET vlanlist = vlans.$portname.vlan_name_set %] + [% IF params.p_vlan_names %][% SET vlanlist = vlans.$portname.vlan_name_set %] [% ELSE %][% SET vlanlist = vlans.$portname.vlan_set %][% END %] [% IF vlan_count > 10 %] [%# TODO make this a settable variable %]
([% vlan_count %])
diff --git a/share/views/ajax/device/ports_csv.tt b/share/views/ajax/device/ports_csv.tt index 0a0ae82a..23956362 100644 --- a/share/views/ajax/device/ports_csv.tt +++ b/share/views/ajax/device/ports_csv.tt @@ -3,7 +3,7 @@ [% SET headers = [] %] [% SET c_nodes_pos = -1 %] [% FOREACH item IN settings.port_columns %] - [% NEXT IF item.name == 'c_admin' OR item.name == 'c_vlan_names' %] + [% NEXT IF item.name == 'c_admin' %] [% NEXT UNLESS params.${item.name} %] [% IF item.name == 'c_nodes' %] @@ -108,13 +108,13 @@ [% END %] [% IF params.c_pvid %] - [% myport.push(params.c_vlan_names ? row.get_column('native_vlan_name') : row.vlan) %] + [% myport.push(params.p_vlan_names ? row.get_column('native_vlan_name') : row.vlan) %] [% END %] [% IF params.c_vmember %] [% SET portname = row.port %] [% SET output = '' %] - [% IF params.c_vlan_names %][% SET vlanlist = vlans.$portname.vlan_name_set %] + [% IF params.p_vlan_names %][% SET vlanlist = vlans.$portname.vlan_name_set %] [% ELSE %][% SET vlanlist = vlans.$portname.vlan_set %][% END %] [% FOREACH vlan IN vlanlist %] [% SET output = output _ ',' IF NOT loop.first %] diff --git a/share/views/sidebar/device/ports.tt b/share/views/sidebar/device/ports.tt index 4a928cb5..5046aedd 100644 --- a/share/views/sidebar/device/ports.tt +++ b/share/views/sidebar/device/ports.tt @@ -70,8 +70,6 @@ name="[% item.name | html_entity %]"[% ' checked="checked"' IF vars.sidebar_defaults.device_ports.${item.name} %] /> [% IF item.name == 'c_admin' %] [% item.label | html_entity %] - [% ELSIF item.name == 'c_vlan_names' %] - [% item.label | html_entity %] [% ELSE %] [% item.label | html_entity %] [% END %] @@ -139,12 +137,15 @@ + [% FOREACH item IN settings.port_display_properties %]
  • + [% END %]