1package App::Netdisco::Web::Plugin::Device::Details;
2
3use Dancer ':syntax';
4use Dancer::Plugin::Ajax;
5use Dancer::Plugin::DBIC;
6use Dancer::Plugin::Auth::Extensible;
7
8use App::Netdisco::Web::Plugin;
9
10register_device_tab({ tag => 'details', label => 'Details' });
11
12# device details table
13ajax '/ajax/content/device/details' => require_login sub {
14    my $q = param('q');
15    my $device = schema('netdisco')->resultset('Device')
16      ->search_for_device($q) or send_error('Bad device', 400);
17
18    my @results
19        = schema('netdisco')->resultset('Device')
20        ->search( { 'me.ip' => $device->ip } )->with_times()
21        ->hri->all;
22
23    my @power
24        = schema('netdisco')->resultset('DevicePower')
25        ->search( { 'me.ip' => $device->ip } )->with_poestats->hri->all;
26
27    content_type('text/html');
28    template 'ajax/device/details.tt', {
29      d => $results[0], p => \@power
30    }, { layout => undef };
31};
32
331;
34