From 9c7964da21d17f5d4d9c05c49a78845d2e99ee60 Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" <> Date: Wed, 20 Feb 2002 07:32:04 +0000 Subject: Bug 117515 - describekeywords.cgi templatisation. --- describekeywords.cgi | 75 +++++++---------------- template/default/info/describe-keywords.html.tmpl | 72 ++++++++++++++++++++++ 2 files changed, 93 insertions(+), 54 deletions(-) create mode 100644 template/default/info/describe-keywords.html.tmpl diff --git a/describekeywords.cgi b/describekeywords.cgi index 3475fb6eb..d588100c6 100755 --- a/describekeywords.cgi +++ b/describekeywords.cgi @@ -19,74 +19,41 @@ # Rights Reserved. # # Contributor(s): Terry Weissman +# Contributor(s): Gervase Markham use diagnostics; use strict; - -use lib qw(.); +use lib "."; require "CGI.pl"; -ConnectToDatabase(); - -print "Content-type: text/html\n\n"; +# Use the global template variables. +use vars qw($vars $template); -PutHeader("Bugzilla keyword description"); - -my $tableheader = qq{ - - - - - - -}; +ConnectToDatabase(); -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"); -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{$bugs}; - } else { - $bugs = "none"; - } - if ($line_count == $max_table_size) { - print "
NameDescriptionBugs
\n$tableheader"; - $line_count = 0; - } - $line_count++; - print qq{ - -$name -$description -$bugs - -}; -} +my @keywords; -print "

\n"; - -quietly_check_login(); - -if (UserInGroup("editkeywords")) { - print "

Edit keywords

\n"; +while (MoreSQLData()) { + my ($name, $description, $bugs) = FetchSQLData(); + + push (@keywords, { name => $name, + description => $description, + bugcount => $bugs }); } + +$vars->{'keywords'} = \@keywords; +$vars->{'caneditkeywords'} = UserInGroup("editkeywords"); -PutFooter(); +print "Content-type: text/html\n\n"; +$template->process("info/describe-keywords.html.tmpl", $vars) + || DisplayError("Template process failed: " . $template->error()) + && exit; diff --git a/template/default/info/describe-keywords.html.tmpl b/template/default/info/describe-keywords.html.tmpl new file mode 100644 index 000000000..7e7742334 --- /dev/null +++ b/template/default/info/describe-keywords.html.tmpl @@ -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 + #%] + +[%# 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 %] + + [% END %] + + + + + + + + [% END %] + + + + + + +[% END %] + +
NameDescriptionBugs
+ + [% keyword.name FILTER html %] + [% keyword.description %] + [% IF keyword.bugcount > 0 %] + + [% keyword.bugcount %] + [% ELSE %] + none + [% END %] +
+ +[% IF caneditkeywords %] +

+ Edit keywords. +

+[% END %] + +[% INCLUDE global/footer %] -- cgit v1.2.3-24-g4f1b