#!/usr/bin/perl
#
#
# This is the HTML form for selecting projects for QA Metrics
#
use lib qw(/tools/local/lib/perl5);
use strict;
use warnings;
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use DBI;
use GD::Graph::linespoints;
my $cgi = new CGI;
my @timedata = localtime(time);
#print "Content-type: text/html\n\n";
#print "@timedata[0]\n, @timedata[1]\n, @timedata[2]\n,@timedata[3]\n,@timedata[4]\n,@timedata[5]\n,@timedata[6]";
my $day = $timedata[3];
my $month = $timedata[4] + 1;
my $year = 1900 + $timedata[5];
my $def_start_date = '31/3/2009';
my $today_date = join( '/', $day, $month, $year );
my $def_end_date = $today_date;
#print "Content-type: text/html\n\n";
#print "$def_end_date";
if ( !$cgi->param ) {
print $cgi->header;
print $cgi->start_html(
-title => 'Project Selection',
-style => { 'src' => 'http://wwwin.telegent.com/sqametrics/style1.css' }
);
print $cgi->startform;
print $cgi->h3('Select Project to view QA Metrics');
print $cgi->br;
print $cgi->br;
print "Enter Start Date [dd/mm/yyyy]
";
print $cgi->textfield(
-name => 'start_date',
-default => $def_start_date,
-size => 9,
-maxlength => 80
);
print $cgi->br;
print $cgi->br;
print "Enter End Date [dd/mm/yyyy]
";
print $cgi->textfield(
-name => 'end_date',
-default => $def_end_date,
-override => 'true',
-size => 9,
-maxlength => 80
);
print $cgi->br;
print $cgi->br;
print $cgi->br;
print "Select Project and DataType to View QA Metrics
";
print $cgi->br;
print $cgi->scrolling_list(
-name => 'Projects',
-value => [
'ARES', 'POSEIDON_SW', 'DEIMOS', 'MIMAS',
'JUPITER', 'POSEIDON', 'DIONYSUS'
],
-size => 7,
-multiple => 'false',
-default => 'ARES'
);
print $cgi->br;
print $cgi->br;
print $cgi->br;
print "Select Check Box for Plotting Verified, Closed Bug Data
";
print $cgi->br;
print $cgi->checkbox(
-name => 'verified_closed',
-checked => 0,
-value => 'verified-closed'
);
print $cgi->br;
print $cgi->br;
print "Select from P1, P2, or P1+P2 Bugs Data
";
print $cgi->br;
print $cgi->radio_group(
-name => 'P1P2_bugs',
-values => [ 'P1', 'P2', 'P1-P2', 'Daily-Snapshot' ],
-default => ['P1'],
-linebreak => 'true'
);
print $cgi->br;
print $cgi->submit( -value => 'Submit Project' );
print $cgi->endform;
print $cgi->end_html;
}
else {
my $start_date = param('start_date');
my $end_date = param('end_date');
my $error_msg = "";
$error_msg = &validate_date( $start_date, $end_date, $today_date );
#print "Content-type: text/html\n\n";
#print $today_date;
# my $error_msg = "";
# if (!$start_date){
# $error_msg1 = "The Start Date Field is Blank. Please use Browser Back button and enter a Valid Start Date"};
# if (!$end_date){
# $error_msg2 = "The End Date Field is Blank. Please use Browser Back button and enter a Valid End Date"};
#
if ( !$error_msg ) {
#my $start_date_newfrmt = &date_format($start_date);
my @date_array = split( /\//, $start_date );
my $start_date_newfrmt =
join( '-', $date_array[2], $date_array[1], $date_array[0] );
my @date_array1 = split( /\//, $end_date );
my $end_date_newfrmt =
join( '-', $date_array1[2], $date_array1[1], $date_array1[0] );
my @selected = param('Projects');
my $turned_on = param('verified_closed');
#print "Content-type: text/html\n\n";
#print $turned_on;
my $which_radio_button = param('P1P2_bugs');
#
#Decide the rec_type based on the Radio button selection
if ( $which_radio_button eq 'P1' ) {
my $rec_type = '3';
my $y_label = 'Open P1 Bugs';
}
elsif ( $which_radio_button eq 'P2' ) {
my $rec_type = '4';
my $y_label = 'Open P2 Bugs';
}
elsif ( $which_radio_button eq 'P1-P2' ) {
my $rec_type = '2';
my $y_label = 'Open P1-P2 Bugs';
}
elsif ( $which_radio_button eq 'Daily-Snapshot' ) {
my $rec_type = '1';
my $y_label = 'Daily-Snapshot';
}
my $project_name1 = $selected[0];
my $num_selected = @selected;
#
# Check what data types are selcted and set flags for plotting the data
#
#print "Content-type: text/html\n\n";
#print @selected[0],@turned_on[0], $new_flag, $open_flag, $reopen_flag, $closed_flag;
my $rec_type;
my $dbh = DBI->connect( 'dbi:mysql:bugz:bugzilla.telegent.com:3306',
'swqa', 'sImANten' )
or die "Connection Error: $DBI::errstr\n";
my $sql =
"Select log_date, new_cnt, open_cnt, reopen_cnt, fixed_cnt, verified_cnt, closed_cnt from swqa.Poseidon where product like '%$project_name1%' and 'rec_type'=$rec_type and log_date between '$start_date_newfrmt' and '$end_date_newfrmt'";
my $sth = $dbh->prepare($sql);
$sth->execute or die "SQL Error: $DBI::errstr\n";
my @log_date = ();
my @new_bugs = ();
my @open_bugs = ();
my @reopen_bugs = ();
my @fixed_bugs = ();
my @verified_bugs = ();
my @closed_bugs = ();
while ( my @row = $sth->fetchrow_array ) {
# print "