84d0e49e306859a3d622df46c28b43009e89daa3
[freeside.git] / httemplate / view / svc_port.cgi
1 <% include('elements/svc_Common.html',
2             'table'     => 'svc_port',
3             'fields'    => \@fields,
4             'labels'    => \%labels,
5             'html_foot' => $html_foot,
6           )
7 %>
8 <%init>
9
10 use Date::Parse 'str2time';
11
12 my $conf = new FS::Conf;
13 my $date_format = $conf->config('date_format') || '%m/%d/%Y';
14
15 my $fields = FS::svc_port->table_info->{'fields'};
16 my %labels = map { $_ =>  ( ref($fields->{$_})
17                              ? $fields->{$_}{'label'}
18                              : $fields->{$_}
19                          );
20                  } keys %$fields;
21 my @fields = keys %$fields;
22
23 my $svcnum;
24 if ( $cgi->param('svcnum') ) {
25   $cgi->param('svcnum') =~ /^(\d+)$/ or die "unparsable svcnum";
26   $svcnum = $1;
27 } else {
28   my($query) = $cgi->keywords;
29   $query =~ /^(\d+)$/ or die "no svcnum";
30   $svcnum = $1;
31 }
32
33 my $start = '';
34 my $end = '';
35 if ( $cgi->param('start') && $cgi->param('end') ) {
36     $start = $cgi->param('start');
37     $end = $cgi->param('end');
38 }
39
40 sub preset_range {
41     my($start,$end,$label,$date_format) = (shift,shift,shift,shift);
42     warn "$start $end $date_format";
43     $start = time2str($date_format,$start);
44     $end = time2str($date_format,$end);
45     return '<A HREF="javascript:void(0);" onclick="preset_range(\''
46             .$start.'\',\''.$end.'\')">'.$label.'</A>';
47 }
48
49 my $html_foot = sub {
50     my $default_end = time;
51     my $default_start = $default_end-86400;
52     my $graph = '';
53
54     if($start && $end) {
55         $graph = "<BR><BR><IMG SRC=${p}/view/port_graph.html?svcnum=$svcnum;".
56                 "start=".str2time($start).";end=".str2time($end).">";
57     }
58
59     return '
60     <script type="text/javascript">
61         function preset_range(start,end){
62             document.getElementById(\'start_text\').value = start;
63             document.getElementById(\'end_text\').value = end;
64         }
65     </script>
66     <FORM ACTION=? METHOD="GET">
67     <INPUT TYPE="HIDDEN" NAME="svcnum" VALUE="'.$svcnum.'">
68     <B>Bandwidth Graph</B><BR>
69 &nbsp; '.preset_range($default_start,$default_end,'Last Day',$date_format)
70     .' | '.preset_range($default_end-86400*7,$default_end,'Last Week',$date_format)
71     .' | '.preset_range($default_end-86400*30,$default_end,'Last Month',$date_format)
72     .' | '.preset_range($default_end-86400*365,$default_end,'Last Year',$date_format)
73     .' <BR>
74     <TABLE>'
75         . include('/elements/tr-input-date-field.html', { 
76                 'name' => 'start',
77                 'label' => 'Start Date',
78                 'value' => $start,
79             }) 
80         . include('/elements/tr-input-date-field.html', { 
81                 'name' => 'end',
82                 'label' => 'End Date',
83                 'noinit' => 1,
84                 'value' => $end,
85             }) 
86         . '<TR><TD colspan="2"><input type="submit" value="Display"></TR>
87     </TABLE>
88     </FORM>'.$graph;
89 };
90
91 </%init>