Commit 9c7964da authored by gerv%gerv.net's avatar gerv%gerv.net

Bug 117515 - describekeywords.cgi templatisation.

parent 05a0b649
...@@ -19,74 +19,41 @@ ...@@ -19,74 +19,41 @@
# Rights Reserved. # Rights Reserved.
# #
# Contributor(s): Terry Weissman <terry@mozilla.org> # Contributor(s): Terry Weissman <terry@mozilla.org>
# Contributor(s): Gervase Markham <gerv@gerv.net>
use diagnostics; use diagnostics;
use strict; use strict;
use lib ".";
use lib qw(.);
require "CGI.pl"; require "CGI.pl";
ConnectToDatabase(); # Use the global template variables.
use vars qw($vars $template);
print "Content-type: text/html\n\n";
PutHeader("Bugzilla keyword description"); ConnectToDatabase();
my $tableheader = qq{
<TABLE BORDER=1 CELLPADDING=4 CELLSPACING=0>
<TR BGCOLOR="#6666FF">
<TH ALIGN="left">Name</TH>
<TH ALIGN="left">Description</TH>
<TH ALIGN="left">Bugs</TH>
</TR>
};
print $tableheader; quietly_check_login();
my $line_count = 0;
my $max_table_size = 50;
SendSQL("SELECT keyworddefs.name, keyworddefs.description, SendSQL("SELECT keyworddefs.name, keyworddefs.description,
COUNT(keywords.bug_id), keywords.bug_id COUNT(keywords.bug_id)
FROM keyworddefs LEFT JOIN keywords ON keyworddefs.id=keywords.keywordid FROM keyworddefs LEFT JOIN keywords ON keyworddefs.id=keywords.keywordid
GROUP BY keyworddefs.id GROUP BY keyworddefs.id
ORDER BY keyworddefs.name"); ORDER BY keyworddefs.name");
while (MoreSQLData()) { my @keywords;
my ($name, $description, $bugs, $onebug) = FetchSQLData();
if ($bugs && $onebug) {
# This 'onebug' stuff is silly hackery for old versions of
# MySQL that seem to return a count() of 1 even if there are
# no matching. So, we ask for an actual bug number. If it
# can't find any bugs that match the keyword, then we set the
# count to be zero, ignoring what it had responded.
my $q = url_quote($name);
$bugs = qq{<A HREF="buglist.cgi?keywords=$q">$bugs</A>};
} else {
$bugs = "none";
}
if ($line_count == $max_table_size) {
print "</table>\n$tableheader";
$line_count = 0;
}
$line_count++;
print qq{
<TR>
<TH><a name="}
.value_quote($name).
qq{">$name</A></TH>
<TD>$description</TD>
<TD ALIGN="right">$bugs</TD>
</TR>
};
}
print "</TABLE><P>\n"; while (MoreSQLData()) {
my ($name, $description, $bugs) = FetchSQLData();
quietly_check_login();
if (UserInGroup("editkeywords")) { push (@keywords, { name => $name,
print "<p><a href=editkeywords.cgi>Edit keywords</a><p>\n"; description => $description,
bugcount => $bugs });
} }
PutFooter(); $vars->{'keywords'} = \@keywords;
$vars->{'caneditkeywords'} = UserInGroup("editkeywords");
print "Content-type: text/html\n\n";
$template->process("info/describe-keywords.html.tmpl", $vars)
|| DisplayError("Template process failed: " . $template->error())
&& exit;
[%# The contents of this file are subject to the Mozilla Public
# License Version 1.1 (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): Gervase Markham <gerv@gerv.net>
#%]
[%# INTERFACE:
# keywords: array of hashes. May be empty. Each has has three members:
# name: the name of the keyword
# description: keyword description. May be HTML.
# bugcount: number of bugs with that keyword
# caneditkeywords: boolean. True if this user can edit keywords
%]
[% INCLUDE global/header
title = "Bugzilla Keyword Descriptions"
%]
[% FOREACH keyword = keywords %]
[% IF loop.index % 50 == 0 %]
[% IF loop.index != 0 %]
</table>
[% END %]
<table border="1" cellpadding="4" cellspacing="0">
<tr bgcolor="#6666FF">
<th align="left">Name</th>
<th align="left">Description</th>
<th align="left">Bugs</th>
</tr>
[% END %]
<tr>
<th>
<a name="[% keyword.name FILTER html %]">
[% keyword.name FILTER html %]</a>
</th>
<td>[% keyword.description %]</td>
<td align="right">
[% IF keyword.bugcount > 0 %]
<A HREF="buglist.cgi?keywords=[% keyword.name FILTER uri %]">
[% keyword.bugcount %]</a>
[% ELSE %]
none
[% END %]
</td>
</tr>
[% END %]
</table>
[% IF caneditkeywords %]
<p>
<a href="editkeywords.cgi">Edit keywords</a>.
</p>
[% END %]
[% INCLUDE global/footer %]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment