diff options
Diffstat (limited to 'fs_selfservice/FS-SelfService/cgi')
-rw-r--r-- | fs_selfservice/FS-SelfService/cgi/selfservice.cgi | 30 | ||||
-rw-r--r-- | fs_selfservice/FS-SelfService/cgi/view_usage.html | 57 |
2 files changed, 79 insertions, 8 deletions
diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi index 5b2d2980c..1db0c585b 100644 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -8,6 +8,7 @@ use CGI::Carp qw(fatalsToBrowser); use Text::Template; use HTML::Entities; use Date::Format; +use Date::Parse 'str2time'; use Number::Format 1.50; use FS::SelfService qw( access_info login_info login customer_info edit_info invoice @@ -17,7 +18,7 @@ use FS::SelfService qw( unprovision_svc change_pkg suspend_pkg domainselector list_svcs list_svc_usage list_cdr_usage list_support_usage myaccount_passwd list_invoices create_ticket get_ticket did_report - mason_comp + mason_comp port_graph ); $template_dir = '.'; @@ -796,18 +797,31 @@ sub delete_svc { sub view_usage { list_svcs( 'session_id' => $session_id, - 'svcdb' => [ 'svc_acct', 'svc_phone' ], + 'svcdb' => [ 'svc_acct', 'svc_phone', 'svc_port', ], 'ncancelled' => 1, ); } sub view_usage_details { - list_svc_usage( - 'session_id' => $session_id, - 'svcnum' => $cgi->param('svcnum'), - 'beginning' => $cgi->param('beginning') || '', - 'ending' => $cgi->param('ending') || '', - ); + my $svcnum = $cgi->param('svcnum'); + + # for svc_port graphs + if($cgi->param($svcnum.'_start') && $cgi->param($svcnum.'_end')) { + return port_graph( + 'session_id' => $session_id, + 'svcnum' => $svcnum, + 'start' => str2time($cgi->param($svcnum.'_start')), + 'end' => str2time($cgi->param($svcnum.'_end')), + ); + } + else { + return list_svc_usage( + 'session_id' => $session_id, + 'svcnum' => $svcnum, + 'beginning' => $cgi->param('beginning') || '', + 'ending' => $cgi->param('ending') || '', + ); + } } sub view_cdr_details { diff --git a/fs_selfservice/FS-SelfService/cgi/view_usage.html b/fs_selfservice/FS-SelfService/cgi/view_usage.html index 69437632b..beb1c2e74 100644 --- a/fs_selfservice/FS-SelfService/cgi/view_usage.html +++ b/fs_selfservice/FS-SelfService/cgi/view_usage.html @@ -1,6 +1,7 @@ <%= $url = "$selfurl?session=$session_id;action="; @svc_acct = grep { $_->{svcdb} eq 'svc_acct' } @svcs; @svc_phone = grep { $_->{svcdb} eq 'svc_phone' } @svcs; + @svc_port = grep { $_->{svcdb} eq 'svc_port' } @svcs; ''; %> <%= include('header', 'Account usage') %> @@ -81,5 +82,61 @@ <%= scalar(@svc_phone) ? '</TABLE><BR><BR>' : '' %> +<%= if ( @svc_port ) { + $OUT.= '<FONT SIZE="4">Bandwidth Graphs</FONT><BR><BR> + <script type="text/javascript"> + function preset_range(start,end,prefix){ + document.getElementById(prefix+\'_start\').value = start; + document.getElementById(prefix+\'_end\').value = end; + } + </script> + <TABLE BGCOLOR="#cccccc"> + <TR> + <TH ALIGN="left">Service</TH> + <TH ALIGN="right"> + </TH> + </TR>'; + } + $OUT .= ''; +%> + +<%= + +sub preset_range { + my($start,$end,$label,$date_format,$prefix) = (shift,shift,shift,shift,shift); + $start = Date::Format::time2str($date_format,$start); + $end = Date::Format::time2str($date_format,$end); + return '<A HREF="javascript:void(0);" onclick="preset_range(\'' + .$start.'\',\''.$end.'\',\''.$prefix.'\')">'.$label.'</A>'; +} + +foreach my $svc_port ( @svc_port ) { + $svcnum = $svc_port->{'svcnum'}; + $default_end = time; + $default_start = $default_end-86400; + + $OUT .= '<TR><TD>'. $svc_port->{'label'}. ': '. $svc_port->{'value'}.'</TD>'; + $OUT .= qq! <TD><FORM ACTION="$url" METHOD="GET"> + <INPUT TYPE="hidden" name="svcnum" value="$svcnum"> + <INPUT TYPE="hidden" name="action" value="view_usage_details"> + <INPUT TYPE="hidden" name="session" value="$session_id"> !; + $OUT .= preset_range($default_start,$default_end,'Last Day',$date_format,$svcnum) + .' | '.preset_range($default_end-86400*7,$default_end,'Last Week',$date_format,$svcnum) + .' | '.preset_range($default_end-86400*30,$default_end,'Last Month',$date_format,$svcnum) + .' | '.preset_range($default_end-86400*365,$default_end,'Last Year',$date_format,$svcnum); + + $OUT .= qq! <BR> + Start Date <INPUT TYPE="TEXT" id="${svcnum}_start" name="${svcnum}_start" SIZE="10" MAXLENGTH="10"> + End Date <INPUT TYPE="TEXT" id="${svcnum}_end" name="${svcnum}_end" SIZE="10" MAXLENGTH="10"> + <BR> + <INPUT TYPE="submit" value="Display"> !; + + $OUT .= '</FORM></TD></TR>'; +} +%> + +<%= scalar(@svc_port) ? '</TABLE><BR><BR>' : '' %> + + </TD></TR></TABLE> <%= include('footer') %> |