X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fsearch%2Fsqlradius.cgi;h=22984731a8a5cacf5083f0e903cae1c454aea4fc;hb=54a357b171aa44f9399b4c146acd2afd3b686075;hp=cca12117929e82cd4fd01cd6d178320bd530f7ca;hpb=b5c4237a34aef94976bc343c8d9e138664fc3984;p=freeside.git diff --git a/httemplate/search/sqlradius.cgi b/httemplate/search/sqlradius.cgi index cca121179..22984731a 100644 --- a/httemplate/search/sqlradius.cgi +++ b/httemplate/search/sqlradius.cgi @@ -51,12 +51,13 @@ % @{ $part_export->usage_sessions( { % 'stoptime_start' => $beginning, % 'stoptime_end' => $ending, -% 'open_sessions' => $open_sessions, +% 'session_status' => $status, % 'starttime_start' => $starttime_beginning, % 'starttime_end' => $starttime_ending, % 'svc_acct' => $cgi_svc_acct, % 'ip' => $ip, % 'prefix' => $prefix, +% 'summarize' => $summarize, % } ) % } % ) { @@ -96,6 +97,9 @@ die "access denied" # parse cgi params ### +my $summarize = 0; +$summarize = 1 if $cgi->param('summarize') eq 'Y'; + #sort of false laziness w/cust_pay.cgi my( $beginning, $ending ) = ( '', '' ); if ( $cgi->param('stoptime_beginning') @@ -113,9 +117,9 @@ if ( $cgi->param('end') && $cgi->param('end') =~ /^(\d+)$/ ) { $ending = $1; } -my $open_sessions = ''; -if ( $cgi->param('open_sessions') =~ /^(\d*)$/ ) { - $open_sessions = $1; +my $status = ''; +if ( $cgi->param('session_status') =~ /^(closed|open)$/ ) { + $status = $1; } my( $starttime_beginning, $starttime_ending ) = ( '', '' ); @@ -238,8 +242,15 @@ my $time_format = sub { $pretty; }; +my $time_format_or_open = sub { + my $time = shift; + return '
OPEN
' if $time == 0; + &{$time_format}($time); +}; + my $duration_format = sub { my $seconds = shift; + return '' if $seconds eq ''; # open session my $hour = int($seconds/3600); my $min = int( ($seconds%3600) / 60 ); my $sec = $seconds%60; @@ -265,7 +276,42 @@ my $octets_format = sub { # the fields ### -tie my %fields, 'Tie::IxHash', +my %fields; +if ( $summarize ) { +tie %fields, 'Tie::IxHash', + 'username' => { + name => 'User', + attrib => 'UserName', + fmt => $user_format, + align => 'left', + }, + 'dummy' => { + name => 'Customer', + attrib => '', + fmt => $customer_format, + align => 'left', + }, + 'acctsessiontime' => { + name => 'Duration', + attrib => 'Acct-Session-Time', + fmt => $duration_format, + align => 'right', + }, + 'acctinputoctets' => { + name => 'Upload', # (from user)', + attrib => 'Acct-Input-Octets', + fmt => $octets_format, + align => 'right', + }, + 'acctoutputoctets' => { + name => 'Download', # (to user)', + attrib => 'Acct-Output-Octets', + fmt => $octets_format, + align => 'right', + }, +; +} else { +tie %fields, 'Tie::IxHash', 'username' => { name => 'User', attrib => 'UserName', @@ -300,7 +346,7 @@ tie my %fields, 'Tie::IxHash', 'acctstoptime' => { name => 'End time', attrib => 'Acct-Stop-Time', - fmt => $time_format, + fmt => $time_format_or_open, align => 'left', }, 'acctsessiontime' => { @@ -322,6 +368,7 @@ tie my %fields, 'Tie::IxHash', align => 'right', }, ; +} $fields{$_}->{fmt} ||= sub { length($_[0]) ? shift : ' '; } foreach keys %fields;