1package App::Netdisco::Web::Plugin::Report::ApChannelDist; 2 3use Dancer ':syntax'; 4use Dancer::Plugin::DBIC; 5use Dancer::Plugin::Auth::Extensible; 6 7use App::Netdisco::Web::Plugin; 8 9register_report( 10 { category => 'Wireless', 11 tag => 'apchanneldist', 12 label => 'Access Point Channel Distribution', 13 provides_csv => 1, 14 api_endpoint => 1, 15 } 16); 17 18get '/ajax/content/report/apchanneldist' => require_login sub { 19 my @results = schema('netdisco')->resultset('DevicePortWireless')->search( 20 { channel => { '!=', '0' } }, 21 { select => [ 'channel', { count => 'channel' } ], 22 as => [qw/ channel ch_count /], 23 group_by => [qw/channel/], 24 order_by => { -desc => [qw/count/] }, 25 }, 26 )->hri->all; 27 28 return unless scalar @results; 29 30 if ( request->is_ajax ) { 31 my $json = to_json( \@results ); 32 template 'ajax/report/apchanneldist.tt', { results => $json }; 33 } 34 else { 35 header( 'Content-Type' => 'text/comma-separated-values' ); 36 template 'ajax/report/apchanneldist_csv.tt', { results => \@results }; 37 } 38}; 39 401; 41