зеркало из https://github.com/mozilla/gecko-dev.git
Bug 117515 - describekeywords.cgi templatisation.
This commit is contained in:
Родитель
b1d1b04044
Коммит
264ee8e711
|
@ -19,74 +19,41 @@
|
|||
# Rights Reserved.
|
||||
#
|
||||
# Contributor(s): Terry Weissman <terry@mozilla.org>
|
||||
# Contributor(s): Gervase Markham <gerv@gerv.net>
|
||||
|
||||
use diagnostics;
|
||||
use strict;
|
||||
|
||||
use lib qw(.);
|
||||
use lib ".";
|
||||
|
||||
require "CGI.pl";
|
||||
|
||||
# Use the global template variables.
|
||||
use vars qw($vars $template);
|
||||
|
||||
ConnectToDatabase();
|
||||
|
||||
print "Content-type: text/html\n\n";
|
||||
|
||||
PutHeader("Bugzilla keyword description");
|
||||
|
||||
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;
|
||||
my $line_count = 0;
|
||||
my $max_table_size = 50;
|
||||
quietly_check_login();
|
||||
|
||||
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
|
||||
GROUP BY keyworddefs.id
|
||||
ORDER BY keyworddefs.name");
|
||||
|
||||
my @keywords;
|
||||
|
||||
while (MoreSQLData()) {
|
||||
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>
|
||||
};
|
||||
my ($name, $description, $bugs) = FetchSQLData();
|
||||
|
||||
push (@keywords, { name => $name,
|
||||
description => $description,
|
||||
bugcount => $bugs });
|
||||
}
|
||||
|
||||
$vars->{'keywords'} = \@keywords;
|
||||
$vars->{'caneditkeywords'} = UserInGroup("editkeywords");
|
||||
|
||||
print "</TABLE><P>\n";
|
||||
|
||||
quietly_check_login();
|
||||
|
||||
if (UserInGroup("editkeywords")) {
|
||||
print "<p><a href=editkeywords.cgi>Edit keywords</a><p>\n";
|
||||
}
|
||||
|
||||
PutFooter();
|
||||
print "Content-type: text/html\n\n";
|
||||
$template->process("info/describe-keywords.html.tmpl", $vars)
|
||||
|| DisplayError("Template process failed: " . $template->error())
|
||||
&& exit;
|
||||
|
|
|
@ -0,0 +1,72 @@
|
|||
[%# 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 %]
|
Загрузка…
Ссылка в новой задаче