diff --git a/Netdisco/lib/App/Netdisco/Web/Plugin/Report/DuplexMismatch.pm b/Netdisco/lib/App/Netdisco/Web/Plugin/Report/DuplexMismatch.pm index 35806b48..dbb92405 100644 --- a/Netdisco/lib/App/Netdisco/Web/Plugin/Report/DuplexMismatch.pm +++ b/Netdisco/lib/App/Netdisco/Web/Plugin/Report/DuplexMismatch.pm @@ -7,26 +7,30 @@ use Dancer::Plugin::Auth::Extensible; use App::Netdisco::Web::Plugin; register_report( - { category => 'Port', - tag => 'duplexmismatch', - label => 'Duplex Mismatches Between Devices', + { category => 'Port', + tag => 'duplexmismatch', + label => 'Duplex Mismatches Between Devices', provides_csv => 1, } ); get '/ajax/content/report/duplexmismatch' => require_login sub { - my $set = schema('netdisco')->resultset('Virtual::DuplexMismatch'); - return unless $set->count; + my @results + = schema('netdisco')->resultset('Virtual::DuplexMismatch')->hri->all; - if (request->is_ajax) { - template 'ajax/report/duplexmismatch.tt', { results => $set, }, + return unless scalar @results; + + if ( request->is_ajax ) { + my $json = to_json( \@results ); + template 'ajax/report/duplexmismatch.tt', { results => $json, }, { layout => undef }; } else { header( 'Content-Type' => 'text/comma-separated-values' ); - template 'ajax/report/duplexmismatch_csv.tt', { results => $set, }, - { layout => undef }; + template 'ajax/report/duplexmismatch_csv.tt', + { results => \@results, }, + { layout => undef }; } }; -true; +1; diff --git a/Netdisco/share/views/ajax/report/duplexmismatch.tt b/Netdisco/share/views/ajax/report/duplexmismatch.tt index 1d9ad1c4..f07bf2b9 100644 --- a/Netdisco/share/views/ajax/report/duplexmismatch.tt +++ b/Netdisco/share/views/ajax/report/duplexmismatch.tt @@ -1,30 +1,55 @@ - +
- - - - - - + + + + + + - - [% WHILE (row = results.next) %] - - - - - - - - - [% END %] -
Left DevicePortDuplexRight DevicePortDuplexLeft DevicePortDuplexRight DevicePortDuplex
[% row.left_dns || row.left_ip | html_entity %] - [% row.left_port | html_entity %][% row.left_duplex.ucfirst | html_entity %][% row.right_dns || row.right_ip | html_entity %] - - [% row.right_port | html_entity %][% row.right_duplex.ucfirst | html_entity %]
+ + diff --git a/Netdisco/share/views/ajax/report/duplexmismatch_csv.tt b/Netdisco/share/views/ajax/report/duplexmismatch_csv.tt index aff1075c..934c5cbd 100644 --- a/Netdisco/share/views/ajax/report/duplexmismatch_csv.tt +++ b/Netdisco/share/views/ajax/report/duplexmismatch_csv.tt @@ -1,7 +1,7 @@ [% USE CSV -%] [% CSV.dump([ 'Left Device' 'Port' 'Duplex' 'Right Device' 'Port' 'Duplex' ]) %] -[% WHILE (row = results.next) %] +[% FOREACH row IN results %] [% mylist = [] %] [% device_left = row.left_dns || row.left_ip %] [% device_right = row.right_dns || row.right_ip %]