port search tries vlan edge port match first

This commit is contained in:
Oliver Gorwits
2012-01-12 19:24:54 +00:00
parent 8f6376be08
commit c6cea82685
3 changed files with 30 additions and 7 deletions

View File

@@ -61,5 +61,22 @@ sub by_name {
);
}
# should match edge ports only
sub by_vlan {
my ($set, $vlan) = @_;
return $set unless $vlan and $vlan =~ m/^\d+$/;;
return $set->search(
{
'me.vlan' => $vlan,
},
{
order_by => [qw/ me.ip me.port /],
columns => [qw/ ip port descr name vlan device.dns /],
join => 'device',
},
);
}
1;

View File

@@ -234,10 +234,16 @@ ajax '/ajax/content/search/vlan' => sub {
# device ports with a description (er, name) matching
ajax '/ajax/content/search/port' => sub {
my $name = param('q');
return unless $name;
my $q = param('q');
return unless $q;
my $set;
my $set = schema('netdisco')->resultset('DevicePort')->by_name($name);
if ($q =~ m/^\d+$/) {
$set = schema('netdisco')->resultset('DevicePort')->by_vlan($q);
}
else {
$set = schema('netdisco')->resultset('DevicePort')->by_name($q);
}
return unless $set->count;
content_type('text/html');

View File

@@ -14,13 +14,13 @@
<tr>
<td>
[% IF row.up_admin == 'down' %]
<span class="nd_legendlabel label">s</span>
<span class="label">s</span>
[% ELSIF row.stp == 'blocking' %]
<span class="nd_legendlabel label notice">b</span>
<span class="label notice">b</span>
[% ELSIF row.is_free(params.age_num, params.age_unit) %]
<span class="nd_legendlabel label success">f</span>
<span class="label success">f</span>
[% ELSIF row.up_admin == 'up' AND row.up == 'down' %]
<span class="nd_legendlabel label warning">d</span>
<span class="label warning">d</span>
[% END %]
</td>
[% IF params.c_port %]