From 669333d490b8b490cdd2a602db89281927fc396e Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Thu, 29 May 2014 23:00:28 -0400 Subject: [PATCH] Datatables for IP Phones discovered through LLDP/CDP report --- .../Web/Plugin/Report/PhonesDiscovered.pm | 24 ++++--- .../views/ajax/report/phonesdiscovered.tt | 70 +++++++++++++------ .../views/ajax/report/phonesdiscovered_csv.tt | 2 +- 3 files changed, 63 insertions(+), 33 deletions(-) diff --git a/Netdisco/lib/App/Netdisco/Web/Plugin/Report/PhonesDiscovered.pm b/Netdisco/lib/App/Netdisco/Web/Plugin/Report/PhonesDiscovered.pm index b351b5ac..130f2718 100644 --- a/Netdisco/lib/App/Netdisco/Web/Plugin/Report/PhonesDiscovered.pm +++ b/Netdisco/lib/App/Netdisco/Web/Plugin/Report/PhonesDiscovered.pm @@ -7,26 +7,30 @@ use Dancer::Plugin::Auth::Extensible; use App::Netdisco::Web::Plugin; register_report( - { category => 'Node', - tag => 'phonesdiscovered', - label => 'IP Phones discovered through LLDP/CDP', + { category => 'Node', + tag => 'phonesdiscovered', + label => 'IP Phones discovered through LLDP/CDP', provides_csv => 1, } ); get '/ajax/content/report/phonesdiscovered' => require_login sub { - my $set = schema('netdisco')->resultset('Virtual::PhonesDiscovered'); - return unless $set->count; + my @results = schema('netdisco')->resultset('Virtual::PhonesDiscovered') + ->hri->all; - if (request->is_ajax) { - template 'ajax/report/phonesdiscovered.tt', { results => $set, }, + return unless scalar @results; + + if ( request->is_ajax ) { + my $json = to_json( \@results ); + template 'ajax/report/phonesdiscovered.tt', { results => $json }, { layout => undef }; } else { header( 'Content-Type' => 'text/comma-separated-values' ); - template 'ajax/report/phonesdiscovered_csv.tt', { results => $set, }, - { layout => undef }; + template 'ajax/report/phonesdiscovered_csv.tt', + { results => \@results }, + { layout => undef }; } }; -true; +1; diff --git a/Netdisco/share/views/ajax/report/phonesdiscovered.tt b/Netdisco/share/views/ajax/report/phonesdiscovered.tt index f7d5b6e3..5b167e07 100644 --- a/Netdisco/share/views/ajax/report/phonesdiscovered.tt +++ b/Netdisco/share/views/ajax/report/phonesdiscovered.tt @@ -1,28 +1,54 @@ - +
- - - - - - + + + + + + - - [% WHILE (row = results.next) %] - - - - - - - - - [% END %] -
DevicePortRemote IDRemote IPRemote PortRemote TypeDevicePortRemote IDRemote IPRemote PortRemote Type
[% row.dns || row.name || row.ip | html_entity %] - [% row.port | html_entity %][% row.remote_id | html_entity %][% row.remote_ip | html_entity %][% row.remote_port | html_entity %][% row.remote_type | html_entity %]
+ diff --git a/Netdisco/share/views/ajax/report/phonesdiscovered_csv.tt b/Netdisco/share/views/ajax/report/phonesdiscovered_csv.tt index c6c23ec5..4a266f14 100644 --- a/Netdisco/share/views/ajax/report/phonesdiscovered_csv.tt +++ b/Netdisco/share/views/ajax/report/phonesdiscovered_csv.tt @@ -1,7 +1,7 @@ [% USE CSV -%] [% CSV.dump([ 'Device' 'Port' 'Remote ID' 'Remote IP' 'Remote Port' 'Remote Type']) %] -[% WHILE (row = results.next) %] +[% FOREACH row IN results %] [% mylist = [] %] [% device = row.dns || row.name || row.ip %] [% FOREACH col IN [ device row.port row.remote_id row.remote_ip row.remote_port row.remote_type ] %]