#882 option to display vlan names instead of numbers in device ports table

This commit is contained in:
Oliver Gorwits
2022-07-26 09:49:07 +01:00
parent a9b0d58b79
commit 7566e64886
5 changed files with 61 additions and 26 deletions

View File

@@ -108,10 +108,11 @@ get '/ajax/content/device/ports' => require_login sub {
my $vlans = $set->search({}, {
select => [
'port',
{ array_agg => 'port_vlans.vlan', -as => 'vlan_set' },
{ count => 'port_vlans.vlan', -as => 'vlan_count' },
{ array_agg => 'port_vlans.vlan', -as => 'vlan_set' },
{ array_agg => 'vlan_entry.description', -as => 'vlan_name_set' },
],
join => 'port_vlans',
join => {'port_vlans' => 'vlan_entry'},
group_by => 'me.port',
});
@@ -119,12 +120,21 @@ get '/ajax/content/device/ports' => require_login sub {
$vlans = { map {(
$_->port => {
# DBIC smart enough to work out this should be an arrayref :)
vlan_set => $_->get_column('vlan_set'),
vlan_count => $_->get_column('vlan_count'),
vlan_set => $_->get_column('vlan_set'),
vlan_name_set => $_->get_column('vlan_name_set'),
},
)} $vlans->all };
}
if (param('c_vlan_names')) {
$set = $set->search({}, {
'join' => 'native_vlan',
'+select' => [qw/native_vlan.description/],
'+as' => [qw/native_vlan_name/],
});
}
# get aggregate master status (self join)
$set = $set->search({}, {
'join' => 'agg_master',