diff --git a/Netdisco/lib/Netdisco/DB/Result/DeviceIp.pm b/Netdisco/lib/Netdisco/DB/Result/DeviceIp.pm index 97667f05..ae1de223 100644 --- a/Netdisco/lib/Netdisco/DB/Result/DeviceIp.pm +++ b/Netdisco/lib/Netdisco/DB/Result/DeviceIp.pm @@ -35,5 +35,7 @@ __PACKAGE__->set_primary_key("ip", "alias"); # DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:/ugGtBSGyrJ7s6yqJ9bclQ __PACKAGE__->belongs_to( device => 'Netdisco::DB::Result::Device', 'ip' ); +__PACKAGE__->belongs_to( device_port => 'Netdisco::DB::Result::DevicePort', + { 'foreign.port' => 'self.port', 'foreign.ip' => 'self.ip' } ); 1; diff --git a/Netdisco/lib/Netdisco/Web.pm b/Netdisco/lib/Netdisco/Web.pm index 98dd9720..560ea63c 100644 --- a/Netdisco/lib/Netdisco/Web.pm +++ b/Netdisco/lib/Netdisco/Web.pm @@ -88,6 +88,20 @@ ajax '/ajax/content/device/:thing' => sub { return "
Hello, this is where the ". param('thing') ." content goes.
"; }; +# device interface addresses +ajax '/ajax/content/device/addresses' => sub { + my $ip = param('ip'); + return unless $ip; + + my $set = schema('netdisco')->resultset('DeviceIp')->search({ip => $ip}, { order_by => 'alias' }); + return unless $set->count; + + content_type('text/html'); + template 'ajax/device/addresses.tt', { + results => $set, + }, { layout => undef }; +}; + # device ports with a description (er, name) matching ajax '/ajax/content/device/ports' => sub { my $ip = param('ip'); diff --git a/Netdisco/public/css/style.css b/Netdisco/public/css/style.css index 9ed3feb5..1070a6b8 100644 --- a/Netdisco/public/css/style.css +++ b/Netdisco/public/css/style.css @@ -47,7 +47,7 @@ form .clearfix.success input { /* icolour for device name and ip in sidebar */ .device_label { - color: #0069D6; + color: #660033; } /* nudge content in the sidebar closer to the left */ diff --git a/Netdisco/views/ajax/device/addresses.tt b/Netdisco/views/ajax/device/addresses.tt new file mode 100644 index 00000000..1db6fe8f --- /dev/null +++ b/Netdisco/views/ajax/device/addresses.tt @@ -0,0 +1,25 @@ +| Address | +DNS | +Interface | +Description | +Prefix | +
|---|---|---|---|---|
| [% row.alias %] + | [% row.dns.remove(settings.domain_suffix) %] + | [% row.port %] | +[% row.device_port.name %] | +[% row.subnet %] | +