#!/usr/bin/perl -w
#
#
# This is the HTML form for selecting projects for QA Metrics
#
use lib qw(/tools/local/lib/perl5);
use CGI qw(:standard);
use CGI::Carp qw(fatalsToBrowser);
use DBI;
use GD::Graph::linespoints;
$cgi= new CGI;
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=>'07/03/2009',
-size=>9,
-maxlength=>80);
print $cgi->br;
print $cgi->br;
print "Enter End Date [dd/mm/yyyy]
";
print $cgi->textfield(-name=>'end_date',
-default=>'08/01/2010',
-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->checkbox_group(-name=>'bug_status',
-value=>[
'new',
'open',
'reopen',
'fixed',
'verified',
'closed'],
-default=>['new', 'open', 'reopen','fixed']);
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'],
-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 $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 $end_date = param('end_date');
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('bug_status');
my $num_data_on = @turned_on;
#print "Content-type: text/html\n\n";
#print @selected[0], @turned_on[0], $num_data_on;
my $which_radio_button = param('P1P2_bugs');
#
#Decide the rec_type based on the Radio button selection
if ($which_radio_button eq 'P1') {
$rec_type= '3';
$y_label = 'Open P1 Bugs';
} elsif ($which_radio_button eq 'P2') {
$rec_type = '4';
$y_label = 'Open P2 Bugs';
} elsif ($which_radio_button eq 'P1-P2') {
$rec_type = '2';
$y_label = 'Open P1-P2 Bugs';
};
my $project_name1 = @selected[0];
my $num_selected = @selected;
#
# Check what data types are selcted and set flags for plotting the data
#
my $new_flag =0;
my $open_flag =0;
my $reopen_flag = 0;
my $fixed_flag = 0;
my $verified_flag = 0;
my $closed_flag = 0;
if($num_data_on eq 0) {
print "Content-type: text/html\n\n";
print "Please select at least one Data type";
} else {
foreach $data_type (@turned_on) {
if ($data_type eq "new") { $new_flag = 1;}
if ($data_type eq "open") { $open_flag = 1;}
if ($data_type eq "reopen") { $reopen_flag = 1;}
if ($data_type eq "fixed") { $fixed_flag = 1;}
if ($data_type eq "verified") { $verified_flag = 1;}
if ($data_type eq "closed") { $closed_flag = 1;}
}
}
#print "Content-type: text/html\n\n";
#print @selected[0],@turned_on[0], $new_flag, $open_flag, $reopen_flag, $closed_flag;
if ($num_selected eq 1) {
# if (@selected[0] eq "ARES") {
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 "