mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-26 06:11:37 +00:00
Patch by Ramon Felciano <felciano@ingenuity.com>, with many tweaks by
me. Added a footer to every page. Add some options to do things like display checkboxes instead of scrolling lists, and a new formatting for email diffs, and show list items capitalized instead of all upper case.
This commit is contained in:
parent
c81ab876a3
commit
f5e622daa8
@ -190,6 +190,7 @@ sub CheckFormField (\%$;\@) {
|
||||
|
||||
print "A legal $fieldname was not set; ";
|
||||
print Param("browserbugmessage");
|
||||
PutFooter();
|
||||
exit 0;
|
||||
}
|
||||
}
|
||||
@ -204,6 +205,7 @@ sub CheckFormFieldDefined (\%$) {
|
||||
if ( !defined $formRef->{$fieldname} ) {
|
||||
print "$fieldname was not defined; ";
|
||||
print Param("browserbugmessage");
|
||||
PutFooter();
|
||||
exit 0;
|
||||
}
|
||||
}
|
||||
@ -217,6 +219,7 @@ sub CheckPosInt($) {
|
||||
if ( $number !~ /^[1-9][0-9]*$/ ) {
|
||||
print "Received string \"$number\" when postive integer expected; ";
|
||||
print Param("browserbugmessage");
|
||||
PutFooter();
|
||||
exit 0;
|
||||
}
|
||||
}
|
||||
@ -269,6 +272,142 @@ sub navigation_header {
|
||||
print " <A HREF=enter_bug.cgi>Enter new bug</A>\n"
|
||||
}
|
||||
|
||||
sub make_checkboxes {
|
||||
my ($src,$default,$isregexp,$name) = (@_);
|
||||
my $last = "";
|
||||
my $capitalized = "";
|
||||
my $popup = "";
|
||||
my $found = 0;
|
||||
$default = "" if !defined $default;
|
||||
|
||||
if ($src) {
|
||||
foreach my $item (@$src) {
|
||||
if ($item eq "-blank-" || $item ne $last) {
|
||||
if ($item eq "-blank-") {
|
||||
$item = "";
|
||||
}
|
||||
$last = $item;
|
||||
$capitalized = $item;
|
||||
$capitalized =~ tr/A-Z/a-z/;
|
||||
$capitalized =~ s/^(.?)(.*)/\u$1$2/;
|
||||
if ($isregexp ? $item =~ $default : $default eq $item) {
|
||||
$popup .= "<INPUT NAME=$name TYPE=CHECKBOX VALUE=\"$item\" SELECTED>$capitalized<br>";
|
||||
$found = 1;
|
||||
} else {
|
||||
$popup .= "<INPUT NAME=$name TYPE=CHECKBOX VALUE=\"$item\">$capitalized<br>";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$found && $default ne "") {
|
||||
$popup .= "<INPUT NAME=$name TYPE=CHECKBOX SELECTED>$default";
|
||||
}
|
||||
return $popup;
|
||||
}
|
||||
|
||||
#
|
||||
# make_selection_widget: creates an HTML selection widget from a list of text strings.
|
||||
# $groupname is the name of the setting (form value) that this widget will control
|
||||
# $src is the list of options
|
||||
# you can specify a $default value which is either a string or a regex pattern to match to
|
||||
# identify the default value
|
||||
# $capitalize lets you optionally capitalize the option strings; the default is the value
|
||||
# of Param("capitalizelists")
|
||||
# $multiple is 1 if several options are selectable (default), 0 otherwise.
|
||||
# $size is used for lists to control how many items are shown. The default is 7. A list of
|
||||
# size 1 becomes a popup menu.
|
||||
# $preferLists is 1 if selection lists should be used in favor of radio buttons and
|
||||
# checkboxes, and 0 otherwise. The default is the value of Param("preferlists").
|
||||
#
|
||||
# The actual widget generated depends on the parameter settings:
|
||||
#
|
||||
# MULTIPLE PREFERLISTS SIZE RESULT
|
||||
# 0 (single) 0 =1 Popup Menu (normal for list of size 1)
|
||||
# 0 (single) 0 >1 Radio buttons
|
||||
# 0 (single) 1 =1 Popup Menu (normal for list of size 1)
|
||||
# 0 (single) 1 n>1 List of size n, single selection
|
||||
# 1 (multi) 0 n/a Check boxes; size ignored
|
||||
# 1 (multi) 1 n/a List of size n, multiple selection, of size n
|
||||
#
|
||||
sub make_selection_widget {
|
||||
my ($groupname,$src,$default,$isregexp,$multiple, $size, $capitalize, $preferLists) = (@_);
|
||||
my $last = "";
|
||||
my $popup = "";
|
||||
my $found = 0;
|
||||
my $displaytext = "";
|
||||
$groupname = "" if !defined $groupname;
|
||||
$default = "" if !defined $default;
|
||||
$capitalize = Param("capitalizelists") if !defined $capitalize;
|
||||
$multiple = 1 if !defined $multiple;
|
||||
$preferLists = Param("preferlists") if !defined $preferLists;
|
||||
$size = 7 if !defined $size;
|
||||
my $type = "LIST";
|
||||
if (!$preferLists) {
|
||||
if ($multiple) {
|
||||
$type = "CHECKBOX";
|
||||
} else {
|
||||
if ($size > 1) {
|
||||
$type = "RADIO";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if ($type eq "LIST") {
|
||||
$popup .= "<SELECT NAME=\"$groupname\"";
|
||||
if ($multiple) {
|
||||
$popup .= " MULTIPLE";
|
||||
}
|
||||
$popup .= " SIZE=$size>\n";
|
||||
}
|
||||
if ($src) {
|
||||
foreach my $item (@$src) {
|
||||
if ($item eq "-blank-" || $item ne $last) {
|
||||
if ($item eq "-blank-") {
|
||||
$item = "";
|
||||
}
|
||||
$last = $item;
|
||||
$displaytext = $item;
|
||||
if ($capitalize) {
|
||||
$displaytext =~ tr/A-Z/a-z/;
|
||||
$displaytext =~ s/^(.?)(.*)/\u$1$2/;
|
||||
}
|
||||
|
||||
if ($isregexp ? $item =~ $default : $default eq $item) {
|
||||
if ($type eq "CHECKBOX") {
|
||||
$popup .= "<INPUT NAME=$groupname type=checkbox VALUE=\"$item\" CHECKED>$displaytext<br>";
|
||||
} elsif ($type eq "RADIO") {
|
||||
$popup .= "<INPUT NAME=$groupname type=radio VALUE=\"$item\" check>$displaytext<br>";
|
||||
} else {
|
||||
$popup .= "<OPTION SELECTED VALUE=\"$item\">$displaytext";
|
||||
}
|
||||
$found = 1;
|
||||
} else {
|
||||
if ($type eq "CHECKBOX") {
|
||||
$popup .= "<INPUT NAME=$groupname type=checkbox VALUE=\"$item\">$displaytext<br>";
|
||||
} elsif ($type eq "RADIO") {
|
||||
$popup .= "<INPUT NAME=$groupname type=radio VALUE=\"$item\">$displaytext<br>";
|
||||
} else {
|
||||
$popup .= "<OPTION VALUE=\"$item\">$displaytext";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!$found && $default ne "") {
|
||||
if ($type eq "CHECKBOX") {
|
||||
$popup .= "<INPUT NAME=$groupname type=checkbox CHECKED>$default";
|
||||
} elsif ($type eq "RADIO") {
|
||||
$popup .= "<INPUT NAME=$groupname type=radio checked>$default";
|
||||
} else {
|
||||
$popup .= "<OPTION SELECTED>$default";
|
||||
}
|
||||
}
|
||||
if ($type eq "LIST") {
|
||||
$popup .= "</SELECT>";
|
||||
}
|
||||
return $popup;
|
||||
}
|
||||
|
||||
|
||||
$::CheckOptionValues = 1;
|
||||
|
||||
@ -303,6 +442,7 @@ sub make_options {
|
||||
"Please send mail to " . Param("maintainer") . " with " .
|
||||
"details of what you were doing when this message " .
|
||||
"appeared. Thank you.\n";
|
||||
PutFooter();
|
||||
exit 0;
|
||||
|
||||
} else {
|
||||
@ -393,6 +533,7 @@ sub CheckEmailSyntax {
|
||||
print "syntax checking for a legal email address.\n";
|
||||
print Param('emailregexpdesc');
|
||||
print "<p>Please click <b>back</b> and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@ -459,6 +600,7 @@ sub confirm_login {
|
||||
print "Content-type: text/html\n\n";
|
||||
PutHeader("Password has been emailed");
|
||||
MailPassword($enteredlogin, $realpwd);
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -468,6 +610,7 @@ sub confirm_login {
|
||||
PutHeader("Login failed");
|
||||
print "The username or password you entered is not valid.\n";
|
||||
print "Please click <b>Back</b> and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
$::COOKIE{"Bugzilla_login"} = $enteredlogin;
|
||||
@ -539,6 +682,7 @@ name=PleaseMailAPassword>
|
||||
SendSQL("delete from logincookies where to_days(now()) - to_days(lastused) > 30");
|
||||
|
||||
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -567,32 +711,38 @@ sub PutHeader {
|
||||
|
||||
print PerformSubsts(Param("bannerhtml"), undef);
|
||||
|
||||
print "<TABLE BORDER=0 CELLPADDING=12 CELLSPACING=0 WIDTH=\"100%\">\n";
|
||||
print "<TABLE BORDER=0 CELLSPACING=0 WIDTH=\"100%\">\n";
|
||||
print " <TR>\n";
|
||||
print " <TD>\n";
|
||||
print " <TD WIDTH=10% VALIGN=TOP ALIGN=LEFT>\n";
|
||||
print " <TABLE BORDER=0 CELLPADDING=0 CELLSPACING=2>\n";
|
||||
print " <TR><TD VALIGN=TOP ALIGN=CENTER NOWRAP>\n";
|
||||
print " <FONT SIZE=\"+3\"><B><NOBR>$h1</NOBR></B></FONT>\n";
|
||||
print " </TD></TR><TR><TD VALIGN=TOP ALIGN=CENTER>\n";
|
||||
print " <B>$h2</B>\n";
|
||||
print " <TR><TD VALIGN=TOP ALIGN=LEFT NOWRAP>\n";
|
||||
print " <FONT SIZE=+1><B>$h1</B></FONT>";
|
||||
print " </TD></TR>\n";
|
||||
print " </TABLE>\n";
|
||||
print " </TD>\n";
|
||||
print " <TD>\n";
|
||||
print " <TD VALIGN=CENTER> </TD>\n";
|
||||
print " <TD VALIGN=CENTER ALIGN=LEFT>\n";
|
||||
|
||||
print Param("blurbhtml");
|
||||
print "$h2\n";
|
||||
print "</TD></TR></TABLE>\n";
|
||||
|
||||
print "</TD></TR></TABLE>\n";
|
||||
|
||||
if (Param("shutdownhtml")) {
|
||||
if (!$ignoreshutdown) {
|
||||
print Param("shutdownhtml");
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
sub PutFooter {
|
||||
print PerformSubsts(Param("footerhtml"));
|
||||
}
|
||||
|
||||
|
||||
sub DumpBugActivity {
|
||||
my ($id, $starttime) = (@_);
|
||||
my $datepart = "";
|
||||
@ -650,6 +800,54 @@ sub warnBanner( $ )
|
||||
}
|
||||
|
||||
|
||||
sub GetCommandMenu {
|
||||
my $loggedin = quietly_check_login();
|
||||
my $html = qq{<FORM METHOD=GET ACTION="show_bug.cgi">};
|
||||
$html .= "<a href='enter_bug.cgi'>New</a> | <a href='query.cgi'>Query</a>";
|
||||
if (-e "query2.cgi") {
|
||||
$html .= "[<a href='query2.cgi'>beta</a>]";
|
||||
}
|
||||
|
||||
$html .= qq{| <INPUT TYPE=SUBMIT VALUE="Find"> bug \# <INPUT NAME=id SIZE=6>};
|
||||
|
||||
$html .= " | <a href='reports.cgi'>Reports</a>";
|
||||
if ($loggedin) {
|
||||
my $mybugstemplate = Param("mybugstemplate");
|
||||
my %substs;
|
||||
$substs{'userid'} = $::COOKIE{"Bugzilla_login"};
|
||||
my $mybugsurl = PerformSubsts($mybugstemplate, \%substs);
|
||||
$html = $html . " | <a href='$mybugsurl'>My Bugs</a>";
|
||||
}
|
||||
|
||||
$html = $html . " | <a href=\"createaccount.cgi\"><NOBR>New account</NOBR></a>\n";
|
||||
|
||||
my $onLogPage = 0;
|
||||
if (defined $ENV{"HTTP_REFERER"}) {
|
||||
#my $referrer = $ENV{"HTTP_REFERER"};
|
||||
#my @parts = split("/",$referrer);
|
||||
#my $called_from = $parts[@parts-1];
|
||||
#confirm_login($called_from);
|
||||
}
|
||||
|
||||
if ($loggedin) {
|
||||
$html .= "| <NOBR>Edit <a href='changepassword.cgi'>prefs</a></NOBR>";
|
||||
if (UserInGroup("tweakparams")) {
|
||||
$html .= ", <a href=editparams.cgi>parameters</a>";
|
||||
}
|
||||
if (UserInGroup("editcomponents")) {
|
||||
$html .= ", <a href=editproducts.cgi>components</a>\n";
|
||||
}
|
||||
if (UserInGroup("editkeywords")) {
|
||||
$html .= ", <a href=editkeywords.cgi>keywords</a>\n";
|
||||
}
|
||||
$html = $html . " | <NOBR><a href=relogin.cgi>Log out</a> $::COOKIE{'Bugzilla_login'}</NOBR>";
|
||||
} else {
|
||||
$html = $html . " | <NOBR><a href=query.cgi?GoAheadAndLogIn=1>Log in</a></NOBR>";
|
||||
}
|
||||
$html .= "</FORM>";
|
||||
return $html;
|
||||
}
|
||||
|
||||
############# Live code below here (that is, not subroutine defs) #############
|
||||
|
||||
|
||||
|
@ -521,4 +521,6 @@ print "
|
||||
|
||||
navigation_header();
|
||||
|
||||
PutFooter();
|
||||
|
||||
1;
|
||||
|
@ -77,6 +77,7 @@ OK, the <B>$::FORM{'namedcmd'}</B> query is gone.
|
||||
<P>
|
||||
<A HREF=query.cgi>Go back to the query page.</A>
|
||||
";
|
||||
PutFooter();
|
||||
exit;
|
||||
};
|
||||
/^asnamed$/ && do {
|
||||
@ -103,6 +104,7 @@ Query names can only have letters, digits, spaces, or underbars. You entered
|
||||
Click the <B>Back</B> button and type in a valid name for this query.
|
||||
";
|
||||
}
|
||||
PutFooter();
|
||||
exit;
|
||||
};
|
||||
/^asdefault$/ && do {
|
||||
@ -116,6 +118,7 @@ individual query.
|
||||
|
||||
<P><A HREF=query.cgi>Go back to the query page, using the new default.</A>
|
||||
";
|
||||
PutFooter();
|
||||
exit;
|
||||
};
|
||||
}
|
||||
@ -195,6 +198,7 @@ if (defined $::FORM{'votes'}) {
|
||||
print "\n\n<P>The 'At least ___ votes' field must be a simple ";
|
||||
print "number. You entered \"$c\", which doesn't cut it.";
|
||||
print "<P>Please click the <B>Back</B> button and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
$minvotes = $c;
|
||||
@ -305,6 +309,7 @@ if ($::FORM{'keywords'}) {
|
||||
print "<P>The legal keyword names are <A HREF=describekeywords.cgi>";
|
||||
print "listed here</A>.\n";
|
||||
print "<P>Please click the <B>Back</B> button and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@ -367,6 +372,7 @@ foreach my $id ("1", "2") {
|
||||
if (!$foundone) {
|
||||
print "\n\n<P>You must specify one or more fields in which to search for <tt>$email</tt>.\n";
|
||||
print "<P>Please click the <B>Back</B> button and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
if ($lead eq " or ") {
|
||||
@ -385,6 +391,7 @@ if (defined $::FORM{'changedin'}) {
|
||||
print "\n\n<P>The 'changed in last ___ days' field must be a simple ";
|
||||
print "number. You entered \"$c\", which doesn't cut it.";
|
||||
print "<P>Please click the <B>Back</B> button and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
$query .= "and to_days(now()) - to_days(bugs.delta_ts) <= $c ";
|
||||
@ -408,6 +415,7 @@ sub SqlifyDate {
|
||||
if (!defined $date) {
|
||||
print "\n\n<P>The string '<tt>$str</tt>' is not a legal date.\n";
|
||||
print "<P>Please click the <B>Back</B> button and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
return time2str("'%Y/%m/%d %H:%M:%S'", $date);
|
||||
@ -545,7 +553,7 @@ if ($dotweak) {
|
||||
pnl "<FORM NAME=changeform METHOD=POST ACTION=\"process_bug.cgi\">";
|
||||
}
|
||||
|
||||
my $tablestart = "<TABLE CELLSPACING=0 CELLPADDING=2>
|
||||
my $tablestart = "<TABLE CELLSPACING=0 CELLPADDING=4 WIDTH=100%>
|
||||
<TR ALIGN=LEFT><TH>
|
||||
<A HREF=\"buglist.cgi?$fields&order=bugs.bug_id\">ID</A>";
|
||||
|
||||
@ -577,6 +585,18 @@ my %prodhash;
|
||||
my %statushash;
|
||||
my $buggroupset = "";
|
||||
|
||||
my $pricol = -1;
|
||||
my $sevcol = -1;
|
||||
for (my $colcount = 0 ; $colcount < @collist ; $colcount++) {
|
||||
my $colname = $collist[$colcount];
|
||||
if ($colname eq "priority") {
|
||||
$pricol = $colcount;
|
||||
}
|
||||
if ($colname eq "severity") {
|
||||
$sevcol = $colcount;
|
||||
}
|
||||
}
|
||||
|
||||
while (@row = FetchSQLData()) {
|
||||
my $bug_id = shift @row;
|
||||
my $g = shift @row; # Bug's group set.
|
||||
@ -596,7 +616,30 @@ while (@row = FetchSQLData()) {
|
||||
pnl "</TABLE>$tablestart";
|
||||
}
|
||||
push @bugarray, $bug_id;
|
||||
pnl "<TR VALIGN=TOP ALIGN=LEFT><TD>";
|
||||
|
||||
# retrieve this bug's priority and severity, if available,
|
||||
# by looping through all column names -- gross but functional
|
||||
my $priority = "unknown";
|
||||
my $severity;
|
||||
if ($pricol >= 0) {
|
||||
$priority = $row[$pricol];
|
||||
}
|
||||
if ($sevcol >= 0) {
|
||||
$severity = $row[$sevcol];
|
||||
}
|
||||
my $customstyle = "";
|
||||
if ($severity) {
|
||||
if ($severity eq "enhan") {
|
||||
$customstyle = "style='font-style:italic ! important'";
|
||||
}
|
||||
if ($severity eq "block") {
|
||||
$customstyle = "style='color:red ! important; font-weight:bold ! important'";
|
||||
}
|
||||
if ($severity eq "criti") {
|
||||
$customstyle = "style='color:red; ! important'";
|
||||
}
|
||||
}
|
||||
pnl "<TR VALIGN=TOP ALIGN=LEFT CLASS=$priority $customstyle><TD>";
|
||||
if ($dotweak) {
|
||||
pnl "<input type=checkbox name=id_$bug_id>";
|
||||
}
|
||||
@ -613,7 +656,7 @@ while (@row = FetchSQLData()) {
|
||||
} else {
|
||||
$value = "<nobr>$value</nobr>";
|
||||
}
|
||||
pnl "<td>$value";
|
||||
pnl "<td class=$c>$value";
|
||||
} elsif ($c eq "keywords") {
|
||||
my $query =
|
||||
$::db->query("SELECT keyworddefs.name
|
||||
@ -917,6 +960,8 @@ if ($count > 0) {
|
||||
}
|
||||
print "</FORM>\n";
|
||||
}
|
||||
PutFooter();
|
||||
|
||||
if ($serverpush) {
|
||||
print "\n--thisrandomstring--\n";
|
||||
}
|
||||
|
@ -87,13 +87,14 @@ On which of these bugs would you like email notification of changes?</td>
|
||||
<a href=\"showvotes.cgi\">Review your votes</a>
|
||||
<hr>
|
||||
";
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
if ($::FORM{'pwd1'} ne $::FORM{'pwd2'}) {
|
||||
print "<H1>Try again.</H1>
|
||||
The two passwords you entered did not match. Please click <b>Back</b> and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -113,6 +114,7 @@ Please choose a password that is between 3 and 15 characters long, and that
|
||||
contains only numbers, letters, hyphens, or underlines.
|
||||
<p>
|
||||
Please click <b>Back</b> and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -145,5 +147,5 @@ PutHeader("Preferences updated.");
|
||||
print "
|
||||
Your preferences have been updated.
|
||||
<p>";
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
|
||||
|
@ -116,3 +116,4 @@ print "<INPUT TYPE=HIDDEN NAME=rememberedquery VALUE=$::buffer>\n";
|
||||
print "<INPUT TYPE=HIDDEN NAME=resetit VALUE=1>\n";
|
||||
print "<INPUT TYPE=\"submit\" VALUE=\"Reset to Bugzilla default\">\n";
|
||||
print "</FORM>\n";
|
||||
PutFooter();
|
||||
|
@ -53,6 +53,7 @@ if (defined $login) {
|
||||
print "exists. If you have forgotten the password for it, then\n";
|
||||
print "<a href=query.cgi?GoAheadAndLogIn>click here</a> and use\n";
|
||||
print "the <b>E-mail me a password</b> button.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
PutHeader("Account created");
|
||||
@ -63,6 +64,7 @@ if (defined $login) {
|
||||
print "received, you may <a href=query.cgi?GoAheadAndLogIn>click\n";
|
||||
print "here</a> and log in. Or, you can just <a href=\"\">go back to\n";
|
||||
print "the top</a>.";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -87,3 +89,4 @@ as well.
|
||||
<input type=submit>
|
||||
};
|
||||
|
||||
PutFooter();
|
||||
|
@ -31,6 +31,7 @@ use vars %::COOKIE, %::FILENAME;
|
||||
sub Punt {
|
||||
my ($str) = (@_);
|
||||
print "$str<P>Please hit <b>Back</b> and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -108,5 +109,5 @@ What kind of file is this?
|
||||
print "<TD><A HREF=\"show_bug.cgi?id=$id\">Go Back to BUG# $id</A></TABLE>\n";
|
||||
}
|
||||
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
|
||||
|
@ -121,6 +121,22 @@ sub check_urlbase {
|
||||
return "";
|
||||
}
|
||||
|
||||
DefParam("preferlists",
|
||||
"If this is on, Bugzilla will display most selection options as selection lists. If this is off, Bugzilla will use radio buttons and checkboxes instead.",
|
||||
"b",
|
||||
1);
|
||||
|
||||
DefParam("prettyasciimail",
|
||||
"If this is on, Bugzilla will send email reports formatted (assuming 76 character monospace font display). If this is off, email reports are sent using the old 'one-item-per-line' format.",
|
||||
"b",
|
||||
0);
|
||||
|
||||
DefParam("capitalizelists",
|
||||
"If this is on, Bugzilla will capitalize list entries, checkboxes, and radio buttons. If this is off, Bugzilla will leave these items untouched.",
|
||||
"b",
|
||||
0);
|
||||
|
||||
|
||||
DefParam("usequip",
|
||||
"If this is on, Bugzilla displays a silly quip at the beginning of buglists, and lets users add to the list of quips.",
|
||||
"b",
|
||||
@ -152,6 +168,18 @@ DefParam("headerhtml",
|
||||
"l",
|
||||
'');
|
||||
|
||||
DefParam("footerhtml",
|
||||
"HTML to add to the bottom of every page. By default it displays the blurbhtml, and %commandmenu%, a menu of useful commands. You probably really want either headerhtml or footerhtml to include %commandmenu%.",
|
||||
"l",
|
||||
'<TABLE BORDER="0"><TR><TD BGCOLOR="#000000" VALIGN="TOP">
|
||||
<TABLE BORDER="0" CELLPADDING="10" CELLSPACING="0" WIDTH="100%" BGCOLOR="lightyellow">
|
||||
<TR><TD>
|
||||
%blurbhtml%
|
||||
<BR>
|
||||
%commandmenu%
|
||||
</TD></TR></TABLE></TD></TR></TABLE>');
|
||||
|
||||
|
||||
|
||||
DefParam("bannerhtml",
|
||||
"The html that gets emitted at the head of every Bugzilla page.
|
||||
@ -174,7 +202,10 @@ information about what Bugzilla is and what it can do, see
|
||||
<A HREF=\"http://www.mozilla.org/bugs/\"><B>bug pages</B></A>.");
|
||||
|
||||
|
||||
|
||||
DefParam("mybugstemplate",
|
||||
"This is the URL to use to bring up a simple 'all of my bugs' list for a user. %userid% will get replaced with the login name of a user.",
|
||||
"t",
|
||||
"buglist.cgi?bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&assigned_to=%userid%");
|
||||
|
||||
DefParam("shutdownhtml",
|
||||
"If this field is non-empty, then Bugzilla will be completely disabled and this text will be displayed instead of all the Bugzilla pages.",
|
||||
@ -386,11 +417,13 @@ DefParam("allowbugdeletion",
|
||||
"b",
|
||||
0);
|
||||
|
||||
|
||||
DefParam("strictvaluechecks",
|
||||
"Do stricter integrity checking on both form submission values and values read in from the database.",
|
||||
"b",
|
||||
0);
|
||||
|
||||
|
||||
DefParam("browserbugmessage",
|
||||
"If strictvaluechecks is on, and the bugzilla gets unexpected data from the browser, in addition to displaying the cause of the problem, it will output this HTML as well.",
|
||||
"l",
|
||||
|
@ -49,6 +49,7 @@ Product: <SELECT NAME=product>
|
||||
<INPUT TYPE=\"submit\" VALUE=\"Submit\">
|
||||
</FORM>
|
||||
";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -95,3 +96,5 @@ while (MoreSQLData()) {
|
||||
}
|
||||
|
||||
print "<tr><td colspan=$cols><hr></td></tr></table>\n";
|
||||
|
||||
PutFooter();
|
||||
|
@ -76,4 +76,4 @@ if (UserInGroup("editkeywords")) {
|
||||
print "<p><a href=editkeywords.cgi>Edit keywords</a><p>\n";
|
||||
}
|
||||
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
|
@ -39,6 +39,7 @@ print "Content-type: text/html\n\n";
|
||||
if (!UserInGroup("tweakparams")) {
|
||||
print "<H1>Sorry, you aren't a member of the 'tweakparams' group.</H1>\n";
|
||||
print "And so, you aren't allowed to edit the parameters.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -58,6 +59,7 @@ foreach my $i (@::param_list) {
|
||||
if ($ok ne "") {
|
||||
print "New value for $i is invalid: $ok<p>\n";
|
||||
print "Please hit <b>Back</b> and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@ -75,3 +77,4 @@ print "OK, done.<p>\n";
|
||||
print "<a href=editparams.cgi>Edit the params some more.</a><p>\n";
|
||||
print "<a href=query.cgi>Go back to the query page.</a>\n";
|
||||
|
||||
PutFooter();
|
||||
|
@ -39,7 +39,7 @@ if ($who ne $::FORM{'who'}) {
|
||||
print "The login info got confused. If you want to adjust the votes\n";
|
||||
print "for <tt>$::COOKIE{'Bugzilla_login'}</tt>, then please\n";
|
||||
print "<a href=showvotes.cgi?user=$who>click here</a>.<hr>\n";
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
exit();
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ my @buglist = grep {/^\d+$/} keys(%::FORM);
|
||||
if (0 == @buglist) {
|
||||
PutHeader("Oops?");
|
||||
print "Something got confused. Please click <b>Back</b> and try again.";
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
exit();
|
||||
}
|
||||
|
||||
@ -58,7 +58,7 @@ foreach my $id (@buglist) {
|
||||
PutHeader("Numbers only, please");
|
||||
print "Only use numeric values for your bug votes.\n";
|
||||
print "Please click <b>Back</b> and try again.<hr>\n";
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@ -82,7 +82,7 @@ foreach my $prod (keys(%prodcount)) {
|
||||
print "You may only use $::prodmaxvotes{$prod} votes for bugs in the\n";
|
||||
print "<tt>$prod</tt> product, but you are using $prodcount{$prod}.\n";
|
||||
print "Please click <b>Back</b> and try again.<hr>\n";
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
exit();
|
||||
}
|
||||
}
|
||||
@ -114,7 +114,7 @@ SendSQL("unlock tables");
|
||||
PutHeader("Voting tabulated", "Voting tabulated", $::COOKIE{'Bugzilla_login'});
|
||||
print "Your votes have been recorded.\n";
|
||||
print qq{<p><a href="showvotes.cgi?user=$who">Review your votes</a><hr>\n};
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
exit();
|
||||
|
||||
|
||||
|
@ -171,7 +171,7 @@ sub PutTrailer (@)
|
||||
}
|
||||
$num++;
|
||||
}
|
||||
print "</BODY>\n</HTML>\n";
|
||||
PutFooter();
|
||||
}
|
||||
|
||||
|
||||
|
@ -52,7 +52,7 @@ sub PutTrailer (@)
|
||||
}
|
||||
$num++;
|
||||
}
|
||||
print "</BODY>\n</HTML>\n";
|
||||
PutFooter();
|
||||
}
|
||||
|
||||
|
||||
|
@ -38,6 +38,7 @@ print "Content-type: text/html\n\n";
|
||||
if (!UserInGroup("tweakparams")) {
|
||||
print "<H1>Sorry, you aren't a member of the 'tweakparams' group.</H1>\n";
|
||||
print "And so, you aren't allowed to edit the parameters.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -105,3 +106,4 @@ print "<input type=submit value=\"Submit changes\">\n";
|
||||
print "</form>\n";
|
||||
|
||||
print "<p><a href=query.cgi>Skip all this, and go back to the query page</a>\n";
|
||||
PutFooter();
|
||||
|
@ -129,7 +129,7 @@ sub PutTrailer (@)
|
||||
}
|
||||
$num++;
|
||||
}
|
||||
print "</BODY>\n</HTML>\n";
|
||||
PutFooter();
|
||||
}
|
||||
|
||||
|
||||
@ -637,8 +637,8 @@ if ($action eq 'update') {
|
||||
if ($description ne $descriptionold) {
|
||||
unless ($description) {
|
||||
print "Sorry, I can't delete the description.";
|
||||
PutTrailer($localtrailer);
|
||||
SendSQL("UNLOCK TABLES");
|
||||
PutTrailer($localtrailer);
|
||||
exit;
|
||||
}
|
||||
SendSQL("UPDATE products
|
||||
@ -665,14 +665,14 @@ if ($action eq 'update') {
|
||||
if ($product ne $productold) {
|
||||
unless ($product) {
|
||||
print "Sorry, I can't delete the product name.";
|
||||
PutTrailer($localtrailer);
|
||||
SendSQL("UNLOCK TABLES");
|
||||
PutTrailer($localtrailer);
|
||||
exit;
|
||||
}
|
||||
if (TestProduct($product)) {
|
||||
print "Sorry, product name '$product' is already in use.";
|
||||
PutTrailer($localtrailer);
|
||||
SendSQL("UNLOCK TABLES");
|
||||
PutTrailer($localtrailer);
|
||||
exit;
|
||||
}
|
||||
|
||||
|
@ -129,7 +129,7 @@ sub PutTrailer (@)
|
||||
}
|
||||
$num++;
|
||||
}
|
||||
print "</BODY></HTML>\n";
|
||||
PutFooter();
|
||||
}
|
||||
|
||||
|
||||
|
@ -141,7 +141,7 @@ sub PutTrailer (@)
|
||||
}
|
||||
$num++;
|
||||
}
|
||||
print "</BODY>\n</HTML>\n";
|
||||
PutFooter();
|
||||
}
|
||||
|
||||
|
||||
|
@ -12,14 +12,24 @@
|
||||
# rights and limitations under the License.
|
||||
#
|
||||
# The Original Code is the Bugzilla Bug Tracking System.
|
||||
#
|
||||
#
|
||||
# The Initial Developer of the Original Code is Netscape Communications
|
||||
# Corporation. Portions created by Netscape are
|
||||
# Copyright (C) 1998 Netscape Communications Corporation. All
|
||||
# Rights Reserved.
|
||||
#
|
||||
# Corporation. Portions created by Netscape are Copyright (C) 1998
|
||||
# Netscape Communications Corporation. All Rights Reserved.
|
||||
#
|
||||
# Contributor(s): Terry Weissman <terry@mozilla.org>
|
||||
|
||||
|
||||
########################################################################
|
||||
#
|
||||
# enter_bug.cgi
|
||||
# -------------
|
||||
# Displays bug entry form. Bug fields are specified through popup menus,
|
||||
# drop-down lists, or text fields. Default for these values can be passed
|
||||
# in as parameters to the cgi.
|
||||
#
|
||||
########################################################################
|
||||
|
||||
use diagnostics;
|
||||
use strict;
|
||||
|
||||
@ -56,6 +66,7 @@ if (!defined $::FORM{'product'}) {
|
||||
print "</tr>";
|
||||
}
|
||||
print "</table>\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
$::FORM{'product'} = $prodlist[0];
|
||||
@ -184,7 +195,7 @@ my $opsys_popup = make_popup('op_sys', \@::legal_opsys, pickos(), 0);
|
||||
my $component_popup = make_popup('component', $::components{$product},
|
||||
formvalue('component'), 1);
|
||||
|
||||
PutHeader ("Enter Bug");
|
||||
PutHeader ("Enter Bug","Enter Bug","This page lets you enter a new bug into Bugzilla.");
|
||||
|
||||
print "
|
||||
<FORM METHOD=POST ACTION=\"post_bug.cgi\">
|
||||
@ -231,7 +242,7 @@ print "
|
||||
<TR>";
|
||||
if (Param('letsubmitterchoosepriority')) {
|
||||
print "
|
||||
<TD ALIGN=RIGHT><B><A HREF=\"bug_status.html#priority\">Priority</A>:</B></TD>
|
||||
<TD ALIGN=RIGHT><B><A HREF=\"bug_status.html#priority\">Resolution<br>Priority</A>:</B></TD>
|
||||
<TD>$priority_popup</TD>";
|
||||
} else {
|
||||
print '<INPUT TYPE=HIDDEN NAME=priority VALUE="' .
|
||||
@ -277,7 +288,7 @@ print "
|
||||
<tr>
|
||||
<td></td>
|
||||
<td colspan=5>
|
||||
<INPUT TYPE=\"submit\" VALUE=\" Commit \">
|
||||
<INPUT TYPE=\"submit\" VALUE=\" Commit \" ONCLICK=\"if (this.form.short_desc.value =='') { alert('Please enter a summary sentence for this bug.'); return false; }\">
|
||||
|
||||
<INPUT TYPE=\"reset\" VALUE=\"Reset\">
|
||||
|
||||
@ -302,5 +313,7 @@ print "
|
||||
<INPUT TYPE=hidden name=form_name VALUE=enter_bug>
|
||||
</FORM>\n";
|
||||
|
||||
PutFooter();
|
||||
|
||||
print "</BODY></HTML>\n";
|
||||
|
||||
|
@ -33,8 +33,10 @@ sub globals_pl_sillyness {
|
||||
$zz = @main::db_errstr;
|
||||
$zz = @main::default_column_list;
|
||||
$zz = @main::dontchange;
|
||||
$zz = %main::keywordsbyname;
|
||||
$zz = @main::legal_bug_status;
|
||||
$zz = @main::legal_components;
|
||||
$zz = @main::legal_keywords;
|
||||
$zz = @main::legal_opsys;
|
||||
$zz = @main::legal_platform;
|
||||
$zz = @main::legal_priority;
|
||||
@ -576,12 +578,19 @@ sub RemoveVotes {
|
||||
}
|
||||
|
||||
|
||||
|
||||
sub Param {
|
||||
my ($value) = (@_);
|
||||
if (defined $::param{$value}) {
|
||||
return $::param{$value};
|
||||
}
|
||||
|
||||
# See if it is a dynamically-determined param (can't be changed by user).
|
||||
if ($value eq "commandmenu") {
|
||||
return GetCommandMenu();
|
||||
}
|
||||
if ($value eq "settingsmenu") {
|
||||
return GetSettingsMenu();
|
||||
}
|
||||
# Um, maybe we haven't sourced in the params at all yet.
|
||||
if (stat("data/params")) {
|
||||
# Write down and restore the version # here. That way, we get around
|
||||
@ -607,7 +616,6 @@ sub Param {
|
||||
die "Can't find param named $value";
|
||||
}
|
||||
|
||||
|
||||
sub PerformSubsts {
|
||||
my ($str, $substs) = (@_);
|
||||
$str =~ s/%([a-z]*)%/(defined $substs->{$1} ? $substs->{$1} : Param($1))/eg;
|
||||
|
@ -49,6 +49,7 @@ if (defined $::FORM{'maketemplate'}) {
|
||||
print "If you put a bookmark <a href=\"$url\">to this link</a>, it will\n";
|
||||
print "bring up the submit-a-new-bug page with the fields initialized\n";
|
||||
print "as you've requested.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -61,12 +62,14 @@ if (!defined $::FORM{'component'} || $::FORM{'component'} eq "") {
|
||||
print "You must choose a component that corresponds to this bug. If\n";
|
||||
print "necessary, just guess. But please hit the <B>Back</B> button\n";
|
||||
print "and choose a component.\n";
|
||||
PutFooter();
|
||||
exit 0
|
||||
}
|
||||
|
||||
if (!defined $::FORM{'short_desc'} || trim($::FORM{'short_desc'}) eq "") {
|
||||
print "You must enter a summary for this bug. Please hit the\n";
|
||||
print "<B>Back</B> button and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -173,4 +176,5 @@ print "<BR><A HREF=\"createattachment.cgi?id=$id\">Attach a file to this bug</a>
|
||||
|
||||
navigation_header();
|
||||
|
||||
PutFooter();
|
||||
exit;
|
||||
|
@ -97,6 +97,7 @@ if ($::FORM{'product'} ne $::dontchange) {
|
||||
print "</form>\n";
|
||||
print "</hr>\n";
|
||||
print "<a href=query.cgi>Cancel all this and go to the query page.</a>\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
@ -196,6 +197,7 @@ sub CheckonComment( $ ) {
|
||||
"<p>" .
|
||||
"Please press <b>Back</b> and give some words " .
|
||||
"on the reason of the your change.\n" );
|
||||
PutFooter();
|
||||
exit( 0 );
|
||||
} else {
|
||||
$ret = 0;
|
||||
@ -294,6 +296,7 @@ SWITCH: for ($::FORM{'knob'}) {
|
||||
trim($::FORM{'assigned_to'}) eq "") {
|
||||
print "You cannot reassign to a bug to noone. Unless you intentionally cleared out the \"Reassign bug to\" field, ";
|
||||
print Param("browserbugmessage");
|
||||
PutFooter();
|
||||
exit 0;
|
||||
}
|
||||
}
|
||||
@ -305,11 +308,13 @@ SWITCH: for ($::FORM{'knob'}) {
|
||||
if ($::FORM{'product'} eq $::dontchange) {
|
||||
print "You must specify a product to help determine the new\n";
|
||||
print "owner of these bugs.\n";
|
||||
PutFooter();
|
||||
exit 0
|
||||
}
|
||||
if ($::FORM{'component'} eq $::dontchange) {
|
||||
print "You must specify a component whose owner should get\n";
|
||||
print "assigned these bugs.\n";
|
||||
PutFooter();
|
||||
exit 0
|
||||
}
|
||||
ChangeStatus('NEW');
|
||||
@ -344,11 +349,13 @@ SWITCH: for ($::FORM{'knob'}) {
|
||||
if ($num !~ /^[0-9]*$/) {
|
||||
print "You must specify a bug number of which this bug is a\n";
|
||||
print "duplicate. The bug has not been changed.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
if (defined($::FORM{'id'}) && $::FORM{'dup_id'} == $::FORM{'id'}) {
|
||||
print "Nice try, $::FORM{'who'}. But it doesn't really make sense to mark a\n";
|
||||
print "bug as a duplicate of itself, does it?\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
AppendComment($::FORM{'dup_id'}, $::FORM{'who'}, "*** Bug $::FORM{'id'} has been marked as a duplicate of this bug. ***");
|
||||
@ -365,6 +372,7 @@ SWITCH: for ($::FORM{'knob'}) {
|
||||
};
|
||||
# default
|
||||
print "Unknown action $::FORM{'knob'}!\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -372,6 +380,7 @@ SWITCH: for ($::FORM{'knob'}) {
|
||||
if ($#idlist < 0) {
|
||||
print "You apparently didn't choose any bugs to modify.\n";
|
||||
print "<p>Click <b>Back</b> and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -388,6 +397,7 @@ if ($::FORM{'keywords'}) {
|
||||
print "<P>The legal keyword names are <A HREF=describekeywords.cgi>";
|
||||
print "listed here</A>.\n";
|
||||
print "<P>Please click the <B>Back</B> button and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
if (!$keywordseen{$i}) {
|
||||
@ -403,7 +413,8 @@ if ($::comma eq "" && 0 == @keywordlist && $keywordaction ne "makeexact") {
|
||||
if (!defined $::FORM{'comment'} || $::FORM{'comment'} =~ /^\s*$/) {
|
||||
print "Um, you apparently did not change anything on the selected\n";
|
||||
print "bugs. <p>Click <b>Back</b> and try again.\n";
|
||||
exit
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
}
|
||||
|
||||
@ -501,7 +512,7 @@ The changes made were:
|
||||
print ", except for the changes to the description";
|
||||
}
|
||||
print qq{.</form>\n<li><a href="show_bug.cgi?id=$id">Throw away my changes, and go revisit bug $id</a></ul>\n};
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -523,6 +534,7 @@ The changes made were:
|
||||
if ($comp ne $i) {
|
||||
print "<H1>$i is not a legal bug number</H1>\n";
|
||||
print "<p>Click <b>Back</b> and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
if (!exists $seen{$i}) {
|
||||
@ -541,6 +553,7 @@ The changes made were:
|
||||
print "The change you are making to dependencies\n";
|
||||
print "has caused a circular dependency chain.\n";
|
||||
print "<p>Click <b>Back</b> and try again.\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
if (!exists $seen{$t}) {
|
||||
@ -717,4 +730,5 @@ if (defined $::next_bug) {
|
||||
do "bug_form.pl";
|
||||
} else {
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
}
|
||||
|
@ -212,8 +212,36 @@ sub GetBugText {
|
||||
$::bug{'cclist'} = join(',', @cclist);
|
||||
$::bug{'voterlist'} = join(',', @voterlist);
|
||||
|
||||
if (Param("prettyasciimail")) {
|
||||
my $temp = formline <<'END',$::bug{'short_desc'},$id,$::bug{'product'},$::bug{'bug_status'},$::bug{'version'},$::bug{'resolution'},$::bug{'rep_platform'},$::bug{'bug_severity'},$::bug{'op_sys'},$::bug{'priority'},$::bug{'component'},$::bug{'assigned_to'},$::bug{'reporter'},$qa_contact,DescCC(\@cclist),$target_milestone,${status_whiteboard},$::bug{'bug_file_loc'},DescDependencies($id);
|
||||
+============================================================================+
|
||||
| @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
|
||||
+----------------------------------------------------------------------------+
|
||||
| Bug #: @<<<<<<<<<<< Product: @<<<<<<<<<<<<<<<<<<<<<< |
|
||||
| Status: @<<<<<<<<<<<<<<<<<< Version: @<<<<<<<<<<<<<<<<<<<<<< |
|
||||
| Resolution: @<<<<<<<<<<<<<<<<<< Platform: @<<<<<<<<<<<<<<<<<<<<<< |
|
||||
| Severity: @<<<<<<<<<<<<<<<<<< OS/Version: @<<<<<<<<<<<<<<<<<<<<<< |
|
||||
| Priority: @<<<<<<<<<<<<<<<<<< Component: @<<<<<<<<<<<<<<<<<<<<<< |
|
||||
+----------------------------------------------------------------------------+
|
||||
| Assigned To: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
|
||||
| Reported By: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
|
||||
| ~QA Contact: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
|
||||
| ~ CC list: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
|
||||
+----------------------------------------------------------------------------+
|
||||
| ~ Milestone: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
|
||||
|~ Whiteboard: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
|
||||
| URL: @<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
|
||||
|~Dependencies: ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< |
|
||||
+============================================================================+
|
||||
| DESCRIPTION |
|
||||
END
|
||||
|
||||
return "Bug\#: $id
|
||||
my $prettymail = $^A . $::bug{'long_desc'};
|
||||
return $prettymail;
|
||||
|
||||
|
||||
} else {
|
||||
return "Bug\#: $id
|
||||
Product: $::bug{'product'}
|
||||
Version: $::bug{'version'}
|
||||
Platform: $::bug{'rep_platform'}
|
||||
@ -230,6 +258,7 @@ $qa_contact$target_milestone${status_whiteboard}URL: $::bug{'bug_file_loc'}
|
||||
" . DescDependencies($id) . "
|
||||
$::bug{'long_desc'}
|
||||
";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -313,6 +342,7 @@ sub ProcessOneBug {
|
||||
if ($tolist ne "" || $cclist ne "") {
|
||||
my %substs;
|
||||
|
||||
$substs{"fullbugreport"} = $text; # added ability to include the full bug report
|
||||
$substs{"to"} = $tolist;
|
||||
$substs{"cc"} = $cclist;
|
||||
$substs{"bugid"} = $i;
|
||||
@ -331,6 +361,7 @@ sub ProcessOneBug {
|
||||
# harmless.
|
||||
open(SENDMAIL, "|/usr/lib/sendmail -t") ||
|
||||
die "Can't open sendmail";
|
||||
|
||||
print SENDMAIL $msg;
|
||||
close SENDMAIL;
|
||||
$logstr = "$logstr; mail sent to $tolist, $cclist";
|
||||
|
@ -360,7 +360,7 @@ function selectProduct(f) {
|
||||
# set legal_product [concat $default{"product"} [lreplace $legal_product $w $w]]
|
||||
# }
|
||||
|
||||
PutHeader("Bugzilla Query Page", "Query Page", "",
|
||||
PutHeader("Bugzilla Query Page", "Query", "This page lets you search the database for recorded bugs.",
|
||||
q{onLoad="selectProduct(document.forms[0]);"});
|
||||
|
||||
push @::legal_resolution, "---"; # Oy, what a hack.
|
||||
@ -387,34 +387,29 @@ print "
|
||||
</tr>
|
||||
<tr>
|
||||
<td align=left valign=top>
|
||||
<SELECT NAME=\"bug_status\" MULTIPLE SIZE=7>
|
||||
@{[make_options(\@::legal_bug_status, $default{'bug_status'}, $type{'bug_status'})]}
|
||||
</SELECT>
|
||||
|
||||
@{[make_selection_widget(\"bug_status\",\@::legal_bug_status,$default{'bug_status'}, $type{'bug_status'}, 1)]}
|
||||
|
||||
</td>
|
||||
<td align=left valign=top>
|
||||
<SELECT NAME=\"resolution\" MULTIPLE SIZE=7>
|
||||
@{[make_options(\@::legal_resolution, $default{'resolution'}, $type{'resolution'})]}
|
||||
</SELECT>
|
||||
@{[make_selection_widget(\"resolution\",\@::legal_resolution,$default{'resolution'}, $type{'resolution'}, 1)]}
|
||||
|
||||
</td>
|
||||
<td align=left valign=top>
|
||||
<SELECT NAME=\"rep_platform\" MULTIPLE SIZE=7>
|
||||
@{[make_options(\@::legal_platform, $default{'rep_platform'}, $type{'rep_platform'})]}
|
||||
</SELECT>
|
||||
@{[make_selection_widget(\"platform\",\@::legal_platform,$default{'platform'}, $type{'platform'}, 1)]}
|
||||
|
||||
</td>
|
||||
<td align=left valign=top>
|
||||
<SELECT NAME=\"op_sys\" MULTIPLE SIZE=7>
|
||||
@{[make_options(\@::legal_opsys, $default{'op_sys'}, $type{'op_sys'})]}
|
||||
</SELECT>
|
||||
@{[make_selection_widget(\"op_sys\",\@::legal_platform,$default{'op_sys'}, $type{'op_sys'}, 1)]}
|
||||
|
||||
</td>
|
||||
<td align=left valign=top>
|
||||
<SELECT NAME=\"priority\" MULTIPLE SIZE=7>
|
||||
@{[make_options(\@::legal_priority, $default{'priority'}, $type{'priority'})]}
|
||||
</SELECT>
|
||||
@{[make_selection_widget(\"priority\",\@::legal_priority,$default{'priority'}, $type{'priority'}, 1)]}
|
||||
|
||||
</td>
|
||||
<td align=left valign=top>
|
||||
<SELECT NAME=\"bug_severity\" MULTIPLE SIZE=7>
|
||||
@{[make_options(\@::legal_severity, $default{'bug_severity'}, $type{'bug_severity'})]}
|
||||
</SELECT>
|
||||
@{[make_selection_widget(\"bug_severity\",\@::legal_severity,$default{'bug_severity'}, $type{'bug_severity'}, 1)]}
|
||||
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@ -626,3 +621,5 @@ print "<a href=changepassword.cgi>Change your password or preferences.</a><br>\n
|
||||
print "<a href=\"enter_bug.cgi\">Create a new bug.</a><br>\n";
|
||||
print "<a href=\"createaccount.cgi\">Open a new Bugzilla account</a><br>\n";
|
||||
print "<a href=\"reports.cgi\">Bug reports</a><br>\n";
|
||||
|
||||
PutFooter();
|
||||
|
@ -40,7 +40,7 @@ do an action that requires a login, you will be prompted for it.
|
||||
<p>
|
||||
";
|
||||
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
|
||||
exit;
|
||||
|
||||
|
@ -96,6 +96,7 @@ else
|
||||
print "<font color=blue>$_</font> : " .
|
||||
($::FORM{$_} ? $::FORM{$_} : "undef") . "<br>\n";
|
||||
}
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -104,10 +105,10 @@ else
|
||||
|
||||
print <<FIN;
|
||||
<p>
|
||||
</body>
|
||||
</html>
|
||||
FIN
|
||||
|
||||
PutFooter();
|
||||
|
||||
##################################
|
||||
# user came in with no form data #
|
||||
##################################
|
||||
@ -308,6 +309,7 @@ FIN
|
||||
if ($bugs_count == 0)
|
||||
{
|
||||
print "No bugs found!\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -524,6 +526,7 @@ $msg
|
||||
<p>
|
||||
FIN
|
||||
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
|
@ -241,3 +241,4 @@ while (@row = FetchSQLData()) {
|
||||
|
||||
|
||||
Status("Sanity check completed.");
|
||||
PutFooter();
|
||||
|
@ -35,3 +35,5 @@ ConnectToDatabase();
|
||||
DumpBugActivity($::FORM{'id'});
|
||||
|
||||
print "<hr><a href=show_bug.cgi?id=$::FORM{'id'}>Back to bug $::FORM{'id'}</a>\n";
|
||||
|
||||
PutFooter();
|
||||
|
@ -41,6 +41,7 @@ if (!defined $::FORM{'id'} || $::FORM{'id'} !~ /^\s*\d+\s*$/) {
|
||||
print "<INPUT NAME=id>\n";
|
||||
print "<INPUT TYPE=\"submit\" VALUE=\"Show Me This Bug\">\n";
|
||||
print "</FORM>\n";
|
||||
PutFooter();
|
||||
exit;
|
||||
}
|
||||
|
||||
@ -53,6 +54,4 @@ print "<HR>\n";
|
||||
|
||||
$! = 0;
|
||||
do "bug_form.pl" || die "Error doing bug_form.pl: $!";
|
||||
print "</BODY>";
|
||||
print "</HTML>\n";
|
||||
|
||||
|
@ -180,4 +180,4 @@ dependencies</td>
|
||||
</form>
|
||||
";
|
||||
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
|
@ -100,4 +100,4 @@ print "<h1>Bugs that depend on bug $linkedid</h1>";
|
||||
undef %seen;
|
||||
DumpKids($id, "dependson", "blocked");
|
||||
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
|
@ -120,5 +120,5 @@ if (defined $::FORM{'bug_id'}) {
|
||||
|
||||
print qq{<a href="votehelp.html">Help! I don't understand this voting stuff</a>};
|
||||
|
||||
navigation_header();
|
||||
PutFooter();
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user