summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorterry%netscape.com <>1999-02-05 02:13:51 +0100
committerterry%netscape.com <>1999-02-05 02:13:51 +0100
commit28ace6f018eb70180f4766e8f924efdc004f62cd (patch)
treea7ba8207122ef03a6afe1172a473ac9bccf8f5aa
parent1f785439a2789a31d0c2e828283171026849b6ab (diff)
downloadbugzilla-28ace6f018eb70180f4766e8f924efdc004f62cd.tar.gz
bugzilla-28ace6f018eb70180f4766e8f924efdc004f62cd.tar.xz
Added a page which describes all the components in a product.
-rw-r--r--CHANGES7
-rw-r--r--bug_form.pl3
-rwxr-xr-xdescribecomponents.cgi96
-rwxr-xr-xenter_bug.cgi3
-rwxr-xr-xmakecomponenttable.sh31
-rwxr-xr-xquery.cgi2
6 files changed, 124 insertions, 18 deletions
diff --git a/CHANGES b/CHANGES
index 3c2ec1307..72b7ae898 100644
--- a/CHANGES
+++ b/CHANGES
@@ -10,6 +10,13 @@ query the CVS tree. For example,
will tell you what has been changed in the last week.
+2/4/99 Added a new column "description" to the components table, and added
+links to a new page which will use this to describe the components of a
+given product. Feed this to MySQL:
+
+ alter table components add column description mediumtext not null;
+
+
2/3/99 Added a new column "initialqacontact" to the components table that gives
an initial QA contact field. It may be empty if you wish the initial qa
contact to be empty. If you're not using the QA contact field, you don't need
diff --git a/bug_form.pl b/bug_form.pl
index 0adcaac1c..d56d6b42a 100644
--- a/bug_form.pl
+++ b/bug_form.pl
@@ -138,7 +138,8 @@ print "
<TD>$bug{'resolution'}</TD>
<TD ALIGN=RIGHT><B><A HREF=\"bug_status.html#severity\">Severity:</A></B></TD>
<TD><SELECT NAME=bug_severity>$sev_popup</SELECT></TD>
- <TD ALIGN=RIGHT><B>Component:</B></TD>
+ <TD ALIGN=RIGHT><B><A HREF=\"describecomponents.cgi?product=" .
+ url_quote($bug{'product'}) . "\">Component:</A></B></TD>
<TD><SELECT NAME=component>$component_popup</SELECT></TD>
</TR><TR>
<TD ALIGN=RIGHT><B><A HREF=\"bug_status.html#assigned_to\">Assigned&nbsp;To:
diff --git a/describecomponents.cgi b/describecomponents.cgi
new file mode 100755
index 000000000..bce7577d2
--- /dev/null
+++ b/describecomponents.cgi
@@ -0,0 +1,96 @@
+#!/usr/bonsaitools/bin/perl -w
+# -*- Mode: perl; indent-tabs-mode: nil -*-
+#
+# The contents of this file are subject to the Mozilla Public License
+# Version 1.0 (the "License"); you may not use this file except in
+# compliance with the License. You may obtain a copy of the License at
+# http://www.mozilla.org/MPL/
+#
+# Software distributed under the License is distributed on an "AS IS"
+# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+# License for the specific language governing 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.
+#
+# Contributor(s): Terry Weissman <terry@mozilla.org>
+
+use vars %::FORM;
+
+use diagnostics;
+use strict;
+
+require "CGI.pl";
+
+ConnectToDatabase();
+GetVersionTable();
+
+print "Content-type: text/html\n\n";
+
+my $product = $::FORM{'product'};
+if (!defined $product || lsearch(\@::legal_product, $product) < 0) {
+
+ PutHeader("Bugzilla component description");
+ print "
+<FORM>
+Please specify the product whose components you want described.
+<P>
+Product: <SELECT NAME=product>
+";
+ print make_options(\@::legal_product);
+ print "
+</SELECT>
+<P>
+<INPUT TYPE=\"submit\" VALUE=\"Submit\">
+</FORM>
+";
+ exit;
+}
+
+
+PutHeader("Bugzilla component description", "Bugzilla component description",
+ $product);
+
+print "
+<TABLE>
+<tr>
+<th align=left>Component</th>
+<th align=left>Default owner</th>
+";
+
+my $useqacontact = Param("useqacontact");
+
+my $cols = 2;
+if ($useqacontact) {
+ print "<th align=left>Default qa contact</th>";
+ $cols++;
+}
+
+my $colbut1 = $cols - 1;
+
+print "</tr>";
+
+SendSQL("select value, initialowner, initialqacontact, description from components where program = " . SqlQuote($product));
+
+while (MoreSQLData()) {
+ my @row = FetchSQLData();
+ my ($component, $initialowner, $initialqacontact, $description) = (@row);
+
+ print qq|
+<tr><td colspan=$cols><hr></td></tr>
+<tr><td rowspan=2>$component</td>
+<td><a href="mailto:$initialowner">$initialowner</a></td>
+|;
+ if ($useqacontact) {
+ print qq|
+<td><a href="mailto:$initialqacontact">$initialqacontact</a></td>
+|;
+ }
+ print "</tr><tr><td colspan=$colbut1>$description</td></tr>\n";
+}
+
+print "<tr><td colspan=$cols><hr></td></tr></table>\n";
diff --git a/enter_bug.cgi b/enter_bug.cgi
index 605890556..9b3651522 100755
--- a/enter_bug.cgi
+++ b/enter_bug.cgi
@@ -183,7 +183,8 @@ print "
<TR>
<td ALIGN=right valign=top><B>Version:</B></td>
<td>" . Version_element(pickversion(), $product) . "</td>
- <td align=right valign=top><b>Component:</b></td>
+ <td align=right valign=top><b><a href=\"describecomponents.cgi?product=" .
+ url_quote($product) . "\">Component:</b></td>
<td>$component_popup</td>
</TR>
<tr><td>&nbsp<td> <td> <td> <td> <td> </tr>
diff --git a/makecomponenttable.sh b/makecomponenttable.sh
index 1bedbd7d0..46d4936bf 100755
--- a/makecomponenttable.sh
+++ b/makecomponenttable.sh
@@ -31,7 +31,8 @@ create table components (
value tinytext,
program tinytext,
initialowner tinytext not null, # Should arguably be a mediumint!
-initialqacontact tinytext not null # Should arguably be a mediumint!
+initialqacontact tinytext not null, # Should arguably be a mediumint!
+description mediumtext not null
);
@@ -60,14 +61,14 @@ insert into components (value, program, initialowner, initialqacontact) values (
insert into components (value, program, initialowner, initialqacontact) values ("LDAP Tools", "Directory", "chuckb@netscape.com", "");
-insert into components (value, program, initialowner, initialqacontact) values ("Networking", "MailNews", "mscott@netscape.com", "lchiang@netscape.com");
-insert into components (value, program, initialowner, initialqacontact) values ("Database", "MailNews", "davidmc@netscape.com", "lchiang@netscape.com");
-insert into components (value, program, initialowner, initialqacontact) values ("MIME", "MailNews", "rhp@netscape.com", "lchiang@netscape.com");
-insert into components (value, program, initialowner, initialqacontact) values ("Security", "MailNews", "jefft@netscape.com", "lchiang@netscape.com");
-insert into components (value, program, initialowner, initialqacontact) values ("Composition", "MailNews", "ducarroz@netscape.com", "lchiang@netscape.com");
-insert into components (value, program, initialowner, initialqacontact) values ("Address Book", "MailNews", "putterman@netscape.com", "lchiang@netscape.com");
-insert into components (value, program, initialowner, initialqacontact) values ("Front End", "MailNews", "phil@netscape.com", "lchiang@netscape.com");
-insert into components (value, program, initialowner, initialqacontact) values ("Back End", "MailNews", "phil@netscape.com", "lchiang@netscape.com");
+insert into components (value, program, initialowner, initialqacontact, description) values ("Networking", "MailNews", "mscott@netscape.com", "lchiang@netscape.com", "Integration with libnet, protocol support for POP3, IMAP4, SMTP, NNTP and LDAP");
+insert into components (value, program, initialowner, initialqacontact, description) values ("Database", "MailNews", "davidmc@netscape.com", "lchiang@netscape.com", "Persistent storage of address books and mail/news summary files");
+insert into components (value, program, initialowner, initialqacontact, description) values ("MIME", "MailNews", "rhp@netscape.com", "lchiang@netscape.com", "Parsing the MIME structure");
+insert into components (value, program, initialowner, initialqacontact, description) values ("Security", "MailNews", "jefft@netscape.com", "lchiang@netscape.com", "SSL, S/MIME for mail");
+insert into components (value, program, initialowner, initialqacontact, description) values ("Composition", "MailNews", "ducarroz@netscape.com", "lchiang@netscape.com", "Front-end and back-end of message composition and sending");
+insert into components (value, program, initialowner, initialqacontact, description) values ("Address Book", "MailNews", "putterman@netscape.com", "lchiang@netscape.com", "Names, email addresses, phone numbers, etc.");
+insert into components (value, program, initialowner, initialqacontact, description) values ("Front End", "MailNews", "phil@netscape.com", "lchiang@netscape.com", "Three pane view, sidebar contents, toolbars, dialogs, etc.");
+insert into components (value, program, initialowner, initialqacontact, description) values ("Back End", "MailNews", "phil@netscape.com", "lchiang@netscape.com", "RDF data sources and application logic for local mail, news, IMAP and LDAP");
insert into components (value, program, initialowner, initialqacontact) values ("Internationalization", "MailNews", "nhotta@netscape.com", "momoi@netscape.com");
insert into components (value, program, initialowner, initialqacontact) values ("Localization", "MailNews", "rchen@netscape.com", "momoi@netscape.com");
@@ -156,12 +157,12 @@ insert into components (value, program, initialowner, initialqacontact) values (
insert into components (value, program, initialowner, initialqacontact) values ("Localization", "NGLayout", "rchen@netscape.com", "teruko@netscape.com");
-insert into components (value, program, initialowner, initialqacontact) values ("Bonsai", "Webtools", "terry@mozilla.org", "");
-insert into components (value, program, initialowner, initialqacontact) values ("Bugzilla", "Webtools", "terry@mozilla.org", "");
-insert into components (value, program, initialowner, initialqacontact) values ("Despot", "Webtools", "terry@mozilla.org", "");
-insert into components (value, program, initialowner, initialqacontact) values ("LXR", "Webtools", "endico@mozilla.org", "");
-insert into components (value, program, initialowner, initialqacontact) values ("Mozbot", "Webtools", "terry@netscape.com", "");
-insert into components (value, program, initialowner, initialqacontact) values ("Tinderbox", "Webtools", "terry@mozilla.org", "");
+insert into components (value, program, initialowner, initialqacontact, description) values ("Bonsai", "Webtools", "terry@mozilla.org", "", 'Web based <a href="http://www.mozilla.org/bonsai.html">Tree control system</a> for watching the up-to-the-minute goings-on in a CVS repository');
+insert into components (value, program, initialowner, initialqacontact, description) values ("Bugzilla", "Webtools", "terry@mozilla.org", "", "Use this component to report bugs in the bug system itself");
+insert into components (value, program, initialowner, initialqacontact, description) values ("Despot", "Webtools", "terry@mozilla.org", "", "mozilla.org's <a href=http://cvs-mirror.mozilla.org/webtools/despot.cgi>account management</a> system");
+insert into components (value, program, initialowner, initialqacontact, description) values ("LXR", "Webtools", "endico@mozilla.org", "", 'Source code <a href="http://cvs-mirror.mozilla.org/webtools/lxr/">cross reference</a> system');
+insert into components (value, program, initialowner, initialqacontact, description) values ("Mozbot", "Webtools", "terry@mozilla.org", "", 'IRC robot that watches tinderbox and other things');
+insert into components (value, program, initialowner, initialqacontact, description) values ("Tinderbox", "Webtools", "terry@mozilla.org", "", 'Tree-watching system to monitor <a href="http://www.mozilla.org/tinderbox.html">continuous builds</a> that we run on multiple platforms.');
select * from components;
diff --git a/query.cgi b/query.cgi
index c417802cd..f782bd5c1 100755
--- a/query.cgi
+++ b/query.cgi
@@ -259,7 +259,7 @@ $emailinput2<p>
<tr>
<TH ALIGN=LEFT VALIGN=BOTTOM>Program:</th>
<TH ALIGN=LEFT VALIGN=BOTTOM>Version:</th>
-<TH ALIGN=LEFT VALIGN=BOTTOM>Component:</th>
+<TH ALIGN=LEFT VALIGN=BOTTOM><A HREF=describecomponents.cgi>Component:<a></th>
";
if (Param("usetargetmilestone")) {