From 5165451c5225ec5bda61b4cf184eaa640075a510 Mon Sep 17 00:00:00 2001 From: "Eric A. Miller" Date: Sun, 22 Sep 2013 11:56:53 -0400 Subject: [PATCH] add csv output to access point radios channel and power report --- .../Web/Plugin/Report/ApRadioChannelPower.pm | 11 ++++++++-- .../ajax/report/apradiochannelpower_csv.tt | 22 +++++++++++++++++++ 2 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 Netdisco/share/views/ajax/report/apradiochannelpower_csv.tt diff --git a/Netdisco/lib/App/Netdisco/Web/Plugin/Report/ApRadioChannelPower.pm b/Netdisco/lib/App/Netdisco/Web/Plugin/Report/ApRadioChannelPower.pm index e294d718..af0fee8d 100644 --- a/Netdisco/lib/App/Netdisco/Web/Plugin/Report/ApRadioChannelPower.pm +++ b/Netdisco/lib/App/Netdisco/Web/Plugin/Report/ApRadioChannelPower.pm @@ -11,6 +11,7 @@ register_report( { category => 'Wireless', tag => 'apradiochannelpower', label => 'Access Point Radios Channel and Power', + provides_csv => 1, } ); @@ -47,16 +48,22 @@ sub port_tree { return \%ports; } -ajax '/ajax/content/report/apradiochannelpower' => require_login sub { +get '/ajax/content/report/apradiochannelpower' => require_login sub { my @set = schema('netdisco')->resultset('Virtual::ApRadioChannelPower')->all; my $results = port_tree( \@set ); return unless scalar %$results; - content_type('text/html'); + if (request->is_ajax) { template 'ajax/report/apradiochannelpower.tt', { results => $results, }, { layout => undef }; + } + else { + header( 'Content-Type' => 'text/comma-separated-values' ); + template 'ajax/report/apradiochannelpower_csv.tt', { results => $results, }, + { layout => undef }; + } }; true; diff --git a/Netdisco/share/views/ajax/report/apradiochannelpower_csv.tt b/Netdisco/share/views/ajax/report/apradiochannelpower_csv.tt new file mode 100644 index 00000000..bac27864 --- /dev/null +++ b/Netdisco/share/views/ajax/report/apradiochannelpower_csv.tt @@ -0,0 +1,22 @@ +[% USE CSV -%] +[% CSV.dump([ 'Device' 'Model' 'Device Location' 'Port' ' Port Name' + 'Port Description' 'Channel' 'Tx Power mW' 'Tx Power dBm' ]) %] + +[% FOREACH row IN results.keys.sort %] + [% mydlist = [] %] + [% mydevice = results.$row.device.dns || results.$row.device.name %] + [% mydlist.push(mydevice) %] + [% mydlist.push(results.$row.device.model) %] + [% mydlist.push(results.$row.device.location) %] + [% FOREACH p IN results.$row.ports %] + [% myplist = [] %] + [% NEXT UNLESS p.channel # No channel port is admin down %] + [% FOREACH col IN [ p.port p.name p.descr p.channel p.power + p.power2 ] %] + [% myplist.push(col) %] + [% END %] + [% CALL mydlist.splice(3, 6, myplist ) %] + [% CSV.dump(mydlist) %] + + [% END %] +[%END%]