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
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 = '.';
view_usage_details
view_cdr_details
view_support_details
+ view_port_graph
+ real_port_graph
change_password
process_change_password
customer_suspend_pkg
sub view_usage {
list_svcs(
'session_id' => $session_id,
- 'svcdb' => [ 'svc_acct', 'svc_phone' ],
+ 'svcdb' => [ 'svc_acct', 'svc_phone', 'svc_port', ],
'ncancelled' => 1,
);
}
+sub real_port_graph {
+ my $svcnum = $cgi->param('svcnum');
+ my $res = port_graph(
+ 'session_id' => $session_id,
+ 'svcnum' => $svcnum,
+ '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'),
+ }
+}
+
sub view_usage_details {
- list_svc_usage(
- 'session_id' => $session_id,
- 'svcnum' => $cgi->param('svcnum'),
- 'beginning' => $cgi->param('beginning') || '',
- 'ending' => $cgi->param('ending') || '',
- );
+ list_svc_usage(
+ 'session_id' => $session_id,
+ 'svcnum' => $cgi->param('svcnum'),
+ 'beginning' => $cgi->param('beginning') || '',
+ 'ending' => $cgi->param('ending') || '',
+ );
}
sub view_cdr_details {
: {};
$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',
),
$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,