[#66] Fix display of vlan membership

This commit is contained in:
Oliver Gorwits
2014-01-11 09:44:35 +00:00
parent 1e0c6b9598
commit 862f2ba5b1
10 changed files with 53 additions and 63 deletions

View File

@@ -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' },

View File

@@ -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?

View File

@@ -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',
);