summaryrefslogtreecommitdiff
path: root/httemplate
diff options
context:
space:
mode:
authorlevinse <levinse>2011-01-29 02:50:27 +0000
committerlevinse <levinse>2011-01-29 02:50:27 +0000
commit6877b0f1447c211f1a992487eeaf9bda787c4b71 (patch)
treeccedb0a2bc7589064abeb86285842c03ac8b5836 /httemplate
parent7a30043712c15f9db1604ea1c3acd7db203d14c2 (diff)
torrus, RT10574
Diffstat (limited to 'httemplate')
-rw-r--r--httemplate/misc/nms-add_iface.html2
-rw-r--r--httemplate/view/port_graph.html40
-rw-r--r--httemplate/view/svc_port.cgi91
3 files changed, 132 insertions, 1 deletions
diff --git a/httemplate/misc/nms-add_iface.html b/httemplate/misc/nms-add_iface.html
index ab4cb178b..ef4b4eb46 100644
--- a/httemplate/misc/nms-add_iface.html
+++ b/httemplate/misc/nms-add_iface.html
@@ -19,6 +19,6 @@ my $host = $cgi->param('host');
die 'invalid host' unless $host =~ /^[0-9.a-zA-Z\-]+$/;
my $iface = $cgi->param('iface');
-die 'invalid iface' unless $iface =~ /^[0-9A-Za-z_]+$/;
+die 'invalid iface' unless $iface =~ /^[0-9A-Za-z_\-.]+$/;
</%init>
diff --git a/httemplate/view/port_graph.html b/httemplate/view/port_graph.html
new file mode 100644
index 000000000..fc5d0db3f
--- /dev/null
+++ b/httemplate/view/port_graph.html
@@ -0,0 +1,40 @@
+% if ($error) { warn $error; }
+% else {
+<% $png %>
+% }
+<%init>
+
+# NOTE: the weird warn/die stuff here is because this file is accessed as
+# IMG SRC="port_graph.html" - easier than hacking an uglier solution
+
+unless ( $FS::CurrentUser::CurrentUser->access_right('View customer services') ) {
+ warn "access denied";
+ die;
+}
+
+my $svcnum = $cgi->param('svcnum');
+unless ( $svcnum =~ /^\d+$/ ) {
+ warn 'invalid svcnum';
+ die;
+}
+
+my $start = $cgi->param('start');
+my $end = $cgi->param('end');
+unless ( $start =~ /^\d+$/ && $end =~ /^\d+$/ ) {
+ warn 'invalid start and/or end times';
+ die;
+}
+
+my $svc_port = qsearchs('svc_port', { 'svcnum' => $svcnum });
+unless($svc_port) {
+ warn 'invalid svc_port';
+ die;
+}
+
+my $error = '';
+my $png = $svc_port->graph_png('start' => $start, 'end' => $end);
+$error = 'error from graph_png: '.$png if length($png) < 200;
+
+http_header('Content-Type' => 'image/png') unless($error);
+
+</%init>
diff --git a/httemplate/view/svc_port.cgi b/httemplate/view/svc_port.cgi
new file mode 100644
index 000000000..84d0e49e3
--- /dev/null
+++ b/httemplate/view/svc_port.cgi
@@ -0,0 +1,91 @@
+<% include('elements/svc_Common.html',
+ 'table' => 'svc_port',
+ 'fields' => \@fields,
+ 'labels' => \%labels,
+ 'html_foot' => $html_foot,
+ )
+%>
+<%init>
+
+use Date::Parse 'str2time';
+
+my $conf = new FS::Conf;
+my $date_format = $conf->config('date_format') || '%m/%d/%Y';
+
+my $fields = FS::svc_port->table_info->{'fields'};
+my %labels = map { $_ => ( ref($fields->{$_})
+ ? $fields->{$_}{'label'}
+ : $fields->{$_}
+ );
+ } keys %$fields;
+my @fields = keys %$fields;
+
+my $svcnum;
+if ( $cgi->param('svcnum') ) {
+ $cgi->param('svcnum') =~ /^(\d+)$/ or die "unparsable svcnum";
+ $svcnum = $1;
+} else {
+ my($query) = $cgi->keywords;
+ $query =~ /^(\d+)$/ or die "no svcnum";
+ $svcnum = $1;
+}
+
+my $start = '';
+my $end = '';
+if ( $cgi->param('start') && $cgi->param('end') ) {
+ $start = $cgi->param('start');
+ $end = $cgi->param('end');
+}
+
+sub preset_range {
+ my($start,$end,$label,$date_format) = (shift,shift,shift,shift);
+ warn "$start $end $date_format";
+ $start = time2str($date_format,$start);
+ $end = time2str($date_format,$end);
+ return '<A HREF="javascript:void(0);" onclick="preset_range(\''
+ .$start.'\',\''.$end.'\')">'.$label.'</A>';
+}
+
+my $html_foot = sub {
+ my $default_end = time;
+ my $default_start = $default_end-86400;
+ my $graph = '';
+
+ if($start && $end) {
+ $graph = "<BR><BR><IMG SRC=${p}/view/port_graph.html?svcnum=$svcnum;".
+ "start=".str2time($start).";end=".str2time($end).">";
+ }
+
+ return '
+ <script type="text/javascript">
+ function preset_range(start,end){
+ document.getElementById(\'start_text\').value = start;
+ document.getElementById(\'end_text\').value = end;
+ }
+ </script>
+ <FORM ACTION=? METHOD="GET">
+ <INPUT TYPE="HIDDEN" NAME="svcnum" VALUE="'.$svcnum.'">
+ <B>Bandwidth Graph</B><BR>
+&nbsp; '.preset_range($default_start,$default_end,'Last Day',$date_format)
+ .' | '.preset_range($default_end-86400*7,$default_end,'Last Week',$date_format)
+ .' | '.preset_range($default_end-86400*30,$default_end,'Last Month',$date_format)
+ .' | '.preset_range($default_end-86400*365,$default_end,'Last Year',$date_format)
+ .' <BR>
+ <TABLE>'
+ . include('/elements/tr-input-date-field.html', {
+ 'name' => 'start',
+ 'label' => 'Start Date',
+ 'value' => $start,
+ })
+ . include('/elements/tr-input-date-field.html', {
+ 'name' => 'end',
+ 'label' => 'End Date',
+ 'noinit' => 1,
+ 'value' => $end,
+ })
+ . '<TR><TD colspan="2"><input type="submit" value="Display"></TR>
+ </TABLE>
+ </FORM>'.$graph;
+};
+
+</%init>