[#66] Fix display of vlan membership
This commit is contained in:
@@ -21,8 +21,8 @@ hook 'before' => sub {
|
||||
{ name => 'c_speed', label => 'Speed', default => '' },
|
||||
{ name => 'c_mac', label => 'Port MAC', default => '' },
|
||||
{ name => 'c_mtu', label => 'MTU', default => '' },
|
||||
{ name => 'c_vlan', label => 'Native VLAN', default => 'on' },
|
||||
{ name => 'c_vmember', label => 'Tagged VLANs', default => 'on' },
|
||||
{ name => 'c_pvid', label => 'Native VLAN', default => 'on' },
|
||||
{ name => 'c_vmember', label => 'VLAN Membership', default => 'on' },
|
||||
{ name => 'c_power', label => 'PoE', default => '' },
|
||||
{ name => 'c_nodes', label => 'Connected Nodes', default => '' },
|
||||
{ name => 'c_neighbors', label => 'Connected Devices', default => 'on' },
|
||||
|
||||
@@ -27,18 +27,18 @@ get '/ajax/content/device/ports' => require_login sub {
|
||||
if (param('invert')) {
|
||||
$set = $set->search({
|
||||
'me.vlan' => { '!=' => $f },
|
||||
'port_vlans_tagged.vlan' => [
|
||||
'port_vlans.vlan' => [
|
||||
'-or' => { '!=' => $f }, { '=' => undef }
|
||||
],
|
||||
}, { join => 'port_vlans_tagged' });
|
||||
}, { join => 'port_vlans' });
|
||||
}
|
||||
else {
|
||||
$set = $set->search({
|
||||
-or => {
|
||||
'me.vlan' => $f,
|
||||
'port_vlans_tagged.vlan' => $f,
|
||||
'port_vlans.vlan' => $f,
|
||||
},
|
||||
}, { join => 'port_vlans_tagged' });
|
||||
}, { join => 'port_vlans' });
|
||||
}
|
||||
|
||||
return unless $set->count;
|
||||
@@ -116,7 +116,7 @@ get '/ajax/content/device/ports' => require_login sub {
|
||||
|
||||
# run single collapsed query for all relations, but only if we're not
|
||||
# also fetching archived data (tests show it's better this way)
|
||||
$set = $set->search_rs({}, { prefetch => [{ port_vlans_tagged => 'vlan'}] })
|
||||
$set = $set->search_rs({}, { prefetch => 'all_port_vlans' })
|
||||
if param('c_vmember') and not (param('c_nodes') and param('n_archived'));
|
||||
|
||||
# what kind of nodes are we interested in?
|
||||
|
||||
@@ -18,7 +18,7 @@ ajax '/ajax/portcontrol' => require_role port_control => sub {
|
||||
'contact' => 'contact',
|
||||
'c_port' => 'portcontrol',
|
||||
'c_name' => 'portname',
|
||||
'c_vlan' => 'vlan',
|
||||
'c_pvid' => 'vlan',
|
||||
'c_power' => 'power',
|
||||
);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user