From cff24e483444e39abacaad53f6b1419c41956216 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Wed, 28 May 2014 23:44:33 -0400 Subject: [PATCH] DataTables for NetBIOS inventory report --- .../App/Netdisco/Web/Plugin/Report/Netbios.pm | 9 +- Netdisco/share/views/ajax/report/netbios.tt | 91 ++++++++++++++----- .../share/views/ajax/report/netbios_csv.tt | 4 +- 3 files changed, 75 insertions(+), 29 deletions(-) diff --git a/Netdisco/lib/App/Netdisco/Web/Plugin/Report/Netbios.pm b/Netdisco/lib/App/Netdisco/Web/Plugin/Report/Netbios.pm index 3b5aba00..4363d0bd 100644 --- a/Netdisco/lib/App/Netdisco/Web/Plugin/Report/Netbios.pm +++ b/Netdisco/lib/App/Netdisco/Web/Plugin/Report/Netbios.pm @@ -58,16 +58,19 @@ get '/ajax/content/report/netbios' => require_login sub { } - return unless $rs->has_rows; + my @results = $rs->all; + return unless scalar @results; if ( request->is_ajax ) { - template 'ajax/report/netbios.tt', { results => $rs, opt => $domain }, + my $json = to_json( \@results ); + template 'ajax/report/netbios.tt', + { results => $json, opt => $domain }, { layout => undef }; } else { header( 'Content-Type' => 'text/comma-separated-values' ); template 'ajax/report/netbios_csv.tt', - { results => $rs, opt => $domain }, + { results => \@results, opt => $domain }, { layout => undef }; } }; diff --git a/Netdisco/share/views/ajax/report/netbios.tt b/Netdisco/share/views/ajax/report/netbios.tt index 60377789..5668a0f5 100644 --- a/Netdisco/share/views/ajax/report/netbios.tt +++ b/Netdisco/share/views/ajax/report/netbios.tt @@ -1,7 +1,5 @@ -[% USE date(format = '%Y-%m-%d %H:%M') %] -[% USE Number.Format %] [% IF opt %] - +
@@ -12,34 +10,79 @@ - - [% WHILE (row = results.next) %] - - - - - - - - - [% END %] -
DomainLast Seen
[% row.domain | html_entity %][% row.mac.upper | html_entity %][% IF row.domain %]\\[% row.domain | html_entity %]\[% END %][% row.nbname | html_entity %][% row.nbuser || '[No User]' | html_entity %]@[% row.ip | html_entity %][% date.format(row.time_first) | html_entity %][% date.format(row.time_last) | html_entity %]
[% ELSE %] - +
- - [% WHILE (row = results.next) %] - - - - - [% END %] -
Domain Count
[% row.domain || '(Blank Domain)' | html_entity %][% row.count | format_number %]
[% END %] + + + diff --git a/Netdisco/share/views/ajax/report/netbios_csv.tt b/Netdisco/share/views/ajax/report/netbios_csv.tt index 9f7dc70f..1362398a 100644 --- a/Netdisco/share/views/ajax/report/netbios_csv.tt +++ b/Netdisco/share/views/ajax/report/netbios_csv.tt @@ -3,7 +3,7 @@ [% IF opt %] [% CSV.dump(['Domain' 'Node' 'Name' 'User' 'First Seen' 'Last Seen']) %] - [% WHILE (row = results.next) %] + [% FOREACH row IN results %] [% mylist = [] %] [% device = row.device.dns || row.device.name || row.device.ip %] [% FOREACH col IN [ row.domain row.mac.upper row.nbname row.nbuser date.format(row.time_first) date.format(row.time_last) ] %] @@ -15,7 +15,7 @@ [% ELSE %] [% CSV.dump(['Domain' 'Count']) %] - [% WHILE (row = results.next) %] + [% FOREACH row IN results %] [% mylist = [] %] [% domain = row.domain || '(Blank Domain)' %] [% FOREACH col IN [ domain row.count ] %]