port search tries vlan edge port match first
This commit is contained in:
@@ -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;
|
1;
|
||||||
|
|
||||||
|
|||||||
@@ -234,10 +234,16 @@ ajax '/ajax/content/search/vlan' => sub {
|
|||||||
|
|
||||||
# device ports with a description (er, name) matching
|
# device ports with a description (er, name) matching
|
||||||
ajax '/ajax/content/search/port' => sub {
|
ajax '/ajax/content/search/port' => sub {
|
||||||
my $name = param('q');
|
my $q = param('q');
|
||||||
return unless $name;
|
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;
|
return unless $set->count;
|
||||||
|
|
||||||
content_type('text/html');
|
content_type('text/html');
|
||||||
|
|||||||
@@ -14,13 +14,13 @@
|
|||||||
<tr>
|
<tr>
|
||||||
<td>
|
<td>
|
||||||
[% IF row.up_admin == 'down' %]
|
[% IF row.up_admin == 'down' %]
|
||||||
<span class="nd_legendlabel label">s</span>
|
<span class="label">s</span>
|
||||||
[% ELSIF row.stp == 'blocking' %]
|
[% 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) %]
|
[% 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' %]
|
[% ELSIF row.up_admin == 'up' AND row.up == 'down' %]
|
||||||
<span class="nd_legendlabel label warning">d</span>
|
<span class="label warning">d</span>
|
||||||
[% END %]
|
[% END %]
|
||||||
</td>
|
</td>
|
||||||
[% IF params.c_port %]
|
[% IF params.c_port %]
|
||||||
|
|||||||
Reference in New Issue
Block a user