show port error disable state in device ports view
This commit is contained in:
@@ -175,8 +175,7 @@ device port.
|
||||
|
||||
__PACKAGE__->might_have( properties => 'App::Netdisco::DB::Result::DevicePortProperties', {
|
||||
'foreign.ip' => 'self.ip', 'foreign.port' => 'self.port',
|
||||
}, { join_type => 'LEFT OUTER' }
|
||||
);
|
||||
});
|
||||
|
||||
=head2 ssid
|
||||
|
||||
@@ -308,6 +307,15 @@ ID assigned to untagged frames received on the port).
|
||||
|
||||
sub native { return (shift)->vlan }
|
||||
|
||||
=head2 error_disable_cause
|
||||
|
||||
Returns the textual reason given by the device if the port is in an error
|
||||
state, or else `undef` if the port is not in an error state.
|
||||
|
||||
=cut
|
||||
|
||||
sub error_disable_cause { return (shift)->get_column('properties_error_disable_cause') }
|
||||
|
||||
=head2 vlan_count
|
||||
|
||||
Returns the number of VLANs active on this device port. Enable this column by
|
||||
|
||||
@@ -104,6 +104,32 @@ sub only_free_ports {
|
||||
);
|
||||
}
|
||||
|
||||
=head2 with_properties
|
||||
|
||||
This is a modifier for any C<search()> which
|
||||
will add the following additional synthesized columns to the result set:
|
||||
|
||||
=over 4
|
||||
|
||||
=item error_disable_cause
|
||||
|
||||
=back
|
||||
|
||||
=cut
|
||||
|
||||
sub with_properties {
|
||||
my ($rs, $cond, $attrs) = @_;
|
||||
|
||||
return $rs
|
||||
->search_rs($cond, $attrs)
|
||||
->search({},
|
||||
{
|
||||
'+select' => ['properties.error_disable_cause'],
|
||||
'+as' => ['properties_error_disable_cause'],
|
||||
join => 'properties',
|
||||
});
|
||||
}
|
||||
|
||||
=head2 with_vlan_count
|
||||
|
||||
This is a modifier for any C<search()> (including the helpers below) which
|
||||
|
||||
@@ -18,7 +18,7 @@ get '/ajax/content/device/ports' => require_login sub {
|
||||
|
||||
my $device = schema('netdisco')->resultset('Device')
|
||||
->search_for_device($q) or send_error('Bad device', 400);
|
||||
my $set = $device->ports;
|
||||
my $set = $device->ports->with_properties;
|
||||
|
||||
# refine by ports if requested
|
||||
my $f = param('f');
|
||||
|
||||
@@ -25,7 +25,9 @@
|
||||
[% IF row.up_admin != 'up' %]
|
||||
<i class="icon-remove"></i>
|
||||
[% ELSIF row.up == 'up' AND row.stp == 'blocking' AND vlans.$portname.vlan_count < 2 %]
|
||||
<i class="icon-fullscreen text-info"></i>
|
||||
<i class="icon-ban-circle text-info"></i>
|
||||
[% ELSIF row.error_disable_cause %]
|
||||
<i class="icon-exclamation-sign text-error"></i>
|
||||
[% ELSIF row.has_column_loaded('is_free') AND row.is_free %]
|
||||
<i class="icon-arrow-down text-success"></i>
|
||||
[% ELSIF row.up_admin == 'up' AND (row.up != 'up' AND row.up != 'dormant') %]
|
||||
|
||||
@@ -36,7 +36,8 @@
|
||||
<li><i class="icon-li icon-arrow-down text-error"></i> Link Down</li>
|
||||
<li><i class="icon-li icon-arrow-down text-success"></i> Port Free</li>
|
||||
<li><i class="icon-li icon-remove"></i> Admin Disabled</li>
|
||||
<li><i class="icon-li icon-fullscreen text-info"></i> Blocking</li>
|
||||
<li><i class="icon-li icon-exclamation-sign text-error"></i> Error Disabled</li>
|
||||
<li><i class="icon-li icon-ban-circle text-info"></i> Blocking</li>
|
||||
<li><i class="icon-li icon-link text-warning"></i> Manual Topology</li>
|
||||
<li><i class="icon-li icon-link"></i> Neighbor Device</li>
|
||||
<li><i class="icon-li icon-unlink text-error"></i> Neighbor Inacessible</li>
|
||||
|
||||
Reference in New Issue
Block a user