From a01d29e1bfa007399711c58a0c9655dca28956d9 Mon Sep 17 00:00:00 2001 From: levinse Date: Fri, 4 Feb 2011 08:23:46 +0000 Subject: [PATCH] torrus SS first pass, RT10574 --- FS/FS/ClientAPI/MyAccount.pm | 3 +- fs_selfservice/FS-SelfService/cgi/selfservice.cgi | 59 ++++++++++++++-------- .../FS-SelfService/cgi/view_port_graph.html | 15 ++++++ fs_selfservice/FS-SelfService/cgi/view_usage.html | 2 +- 4 files changed, 56 insertions(+), 23 deletions(-) create mode 100644 fs_selfservice/FS-SelfService/cgi/view_port_graph.html diff --git a/FS/FS/ClientAPI/MyAccount.pm b/FS/FS/ClientAPI/MyAccount.pm index be1146e47..33143e290 100644 --- a/FS/FS/ClientAPI/MyAccount.pm +++ b/FS/FS/ClientAPI/MyAccount.pm @@ -1149,7 +1149,8 @@ sub port_graph { sub _port_graph { my($svc_port, $begin, $end) = @_; my @usage = (); - push @usage, 999; + my $pngOrError = $svc_port->graph_png( start=>$begin, end=> $end ); + push @usage, { 'png' => $pngOrError }; (@usage); } diff --git a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi index 1db0c585b..0e8b990da 100644 --- a/fs_selfservice/FS-SelfService/cgi/selfservice.cgi +++ b/fs_selfservice/FS-SelfService/cgi/selfservice.cgi @@ -111,6 +111,8 @@ my @actions = ( qw( view_usage_details view_cdr_details view_support_details + view_port_graph + real_port_graph change_password process_change_password customer_suspend_pkg @@ -802,26 +804,34 @@ sub view_usage { ); } -sub view_usage_details { - my $svcnum = $cgi->param('svcnum'); - - # for svc_port graphs - if($cgi->param($svcnum.'_start') && $cgi->param($svcnum.'_end')) { - return port_graph( +sub real_port_graph { + my $svcnum = $cgi->param('svcnum'); + my $res = port_graph( 'session_id' => $session_id, 'svcnum' => $svcnum, - 'start' => str2time($cgi->param($svcnum.'_start')), - 'end' => str2time($cgi->param($svcnum.'_end')), + 'beginning' => str2time($cgi->param('start')." 00:00:00"), + 'ending' => str2time($cgi->param('end')." 23:59:59"), ); + my @usage = @{$res->{'usage'}}; + my $png = $usage[0]->{'png'}; + { 'content' => $png, 'format' => 'png' }; +} + +sub view_port_graph { + my $svcnum = $cgi->param('svcnum'); + { 'svcnum' => $svcnum, + 'start' => $cgi->param($svcnum.'_start'), + 'end' => $cgi->param($svcnum.'_end'), } - else { - return list_svc_usage( +} + +sub view_usage_details { + list_svc_usage( 'session_id' => $session_id, - 'svcnum' => $svcnum, + 'svcnum' => $cgi->param('svcnum'), 'beginning' => $cgi->param('beginning') || '', 'ending' => $cgi->param('ending') || '', ); - } } sub view_cdr_details { @@ -892,15 +902,7 @@ sub do_template { : {}; $fill_in->{$_} = $access_info->{$_} foreach keys %$access_info; - my $source = "$template_dir/$name.html"; - #warn "creating template for $source\n"; - my $template = new Text::Template( TYPE => 'FILE', - SOURCE => $source, - DELIMITERS => [ '<%=', '%>' ], - UNTAINT => 1, - ) - or die $Text::Template::ERROR; - + if($result && ref($result) && $result->{'format'} && $result->{'content'} && $result->{'format'} eq 'csv') { print $cgi->header('-expires' => 'now', @@ -918,7 +920,22 @@ sub do_template { ), $result->{'content'}; } + elsif($result && ref($result) && $result->{'format'} && $result->{'content'} + && $result->{'format'} eq 'png') { + print $cgi->header('-expires' => 'now', + '-Content-Type' => 'image/png', + ), + $result->{'content'}; + } else { + my $source = "$template_dir/$name.html"; + my $template = new Text::Template( TYPE => 'FILE', + SOURCE => $source, + DELIMITERS => [ '<%=', '%>' ], + UNTAINT => 1, + ) + or die $Text::Template::ERROR; + my $data = $template->fill_in( PACKAGE => 'FS::SelfService::_selfservicecgi', HASH => $fill_in, diff --git a/fs_selfservice/FS-SelfService/cgi/view_port_graph.html b/fs_selfservice/FS-SelfService/cgi/view_port_graph.html new file mode 100644 index 000000000..d42f405b9 --- /dev/null +++ b/fs_selfservice/FS-SelfService/cgi/view_port_graph.html @@ -0,0 +1,15 @@ +<%= $url = "$selfurl?session=$session_id;action="; ''; %> +<%= include('header', "Service usage details for $start - $end") %> + +<%= if ( $error ) { + $OUT .= qq!$error

!; +} +else { + $OUT .= qq! !; +} +$OUT .= ''; +%> + +
+ +<%= include('footer') %> diff --git a/fs_selfservice/FS-SelfService/cgi/view_usage.html b/fs_selfservice/FS-SelfService/cgi/view_usage.html index beb1c2e74..170237a6b 100644 --- a/fs_selfservice/FS-SelfService/cgi/view_usage.html +++ b/fs_selfservice/FS-SelfService/cgi/view_usage.html @@ -118,7 +118,7 @@ foreach my $svc_port ( @svc_port ) { $OUT .= ''. $svc_port->{'label'}. ': '. $svc_port->{'value'}.''; $OUT .= qq!
- + !; $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) -- 2.11.0