summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--FS/FS/ClientAPI/MyAccount.pm3
-rw-r--r--fs_selfservice/FS-SelfService/cgi/selfservice.cgi59
-rw-r--r--fs_selfservice/FS-SelfService/cgi/view_port_graph.html15
-rw-r--r--fs_selfservice/FS-SelfService/cgi/view_usage.html2
4 files changed, 56 insertions, 23 deletions
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!<FONT SIZE="+1" COLOR="#ff0000">$error</FONT><BR><BR>!;
+}
+else {
+ $OUT .= qq! <IMG SRC="${url}real_port_graph;svcnum=$svcnum;start=$start;end=$end"> !;
+}
+$OUT .= '';
+%>
+
+<BR>
+
+<%= 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 .= '<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="action" value="view_port_graph">
<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)