From c649101a71c7df7b3c312c571e411e2d2b3278c8 Mon Sep 17 00:00:00 2001 From: "mcafee%netscape.com" Date: Mon, 3 Dec 2001 08:56:28 +0000 Subject: [PATCH] Adding &days=n argument. --- webtools/graph/xulwinopen/query.cgi | 36 +++++++++++++++++++++++++---- 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/webtools/graph/xulwinopen/query.cgi b/webtools/graph/xulwinopen/query.cgi index 26b0bdfdcc0c..bf8bbda55d90 100755 --- a/webtools/graph/xulwinopen/query.cgi +++ b/webtools/graph/xulwinopen/query.cgi @@ -1,11 +1,13 @@ #!/usr/bin/perl use CGI::Carp qw(fatalsToBrowser); use CGI::Request; +use Date::Calc qw(Add_Delta_Days); # http://www.engelschall.com/u/sb/download/Date-Calc/ my $req = new CGI::Request; my $TBOX = lc($req->param('tbox')); my $AUTOSCALE = lc($req->param('autoscale')); +my $DAYS = lc($req->param('days')); my $DATAFILE = "db/$TBOX"; sub make_machine_list { @@ -57,7 +59,29 @@ sub show_graph { die "Can't find gnuplot."; } - # Auto-scale y-axis? + # Set scaling for x-axis (time) + my $xscale; + my $today; + my $n_days_ago; + + # Get current time, $today. + my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdat) = localtime(); + $year += 1900; + $mon += 1; + $today = sprintf "%04d:%02d:%02d:%02d:%02d:%02d", $year, $mon, $mday, $hour, $min, $sec; + + # Calculate date $DAYS before $today. + my ($year2, $mon2, $mday2) = Add_Delta_Days($year, $mon, $mday, -$DAYS); + $n_days_ago= sprintf "%04d:%02d:%02d:%02d:%02d:%02d", $year2, $mon2, $mday2, $hour, $min, $sec; + + if($DAYS) { + # Assume we want to see 7 days on the graph, so we set the max value also. + $xscale = "set xrange [\"$n_days_ago\" : \"$today\"]"; + } else { + $xscale = ""; + } + + # Set scaling for y-axis. my $yscale; if($AUTOSCALE) { $yscale = ""; @@ -76,18 +100,22 @@ sub show_graph { set linestyle 2 lt 1 lw 1 pt 7 ps 1 set data style points set timefmt "%Y:%m:%d:%H:%M:%S" - $yscale set xdata time - set ylabel "XUL Window Open time (msec.)" + $xscale + $yscale + set ylabel "XUL Window Open time (ms)" set timestamp "Generated: %d/%b/%y %H:%M" 0,0 set format x "%h %d" set grid plot "$DATAFILE" using 1:2 with points ls 1, "$DATAFILE" using 1:2 with lines ls 2 }; + # Set up command string for gnuplot open (GNUPLOT, "| $gnuplot") || die "can't fork: $!"; print GNUPLOT $cmds; - close (GNUPLOT) || die "can't close: $!"; + close (GNUPLOT) || die "Empty data set? Gnuplot failed to set up the plot command string : $!"; + + # Actually do the gnuplot command. open (GNUPLOT, "< $PNGFILE") || die "can't read: $!"; { local $/; $blob = ; } close (GNUPLOT) || die "can't close: $!";