From 9f7179af83a62716cf58539107c9ab9eb37f7a40 Mon Sep 17 00:00:00 2001 From: "gerv%gerv.net" Date: Fri, 25 Jan 2002 22:40:04 +0000 Subject: [PATCH] quips.cgi rewrite and templatisation. --- webtools/bugzilla/quips.cgi | 76 ++++++++++++------- .../bugzilla/template/default/info/quips.tmpl | 64 ++++++++++++++++ 2 files changed, 113 insertions(+), 27 deletions(-) create mode 100644 webtools/bugzilla/template/default/info/quips.tmpl diff --git a/webtools/bugzilla/quips.cgi b/webtools/bugzilla/quips.cgi index d6fff6cfa68d..f1a41b4b9441 100755 --- a/webtools/bugzilla/quips.cgi +++ b/webtools/bugzilla/quips.cgi @@ -19,6 +19,7 @@ # Rights Reserved. # # Contributor(s): Owen Taylor +# Gervase Markham use diagnostics; use strict; @@ -28,40 +29,61 @@ use lib qw(.); require "CGI.pl"; -print "Content-type: text/html\n\n"; +# Use the template toolkit (http://www.template-toolkit.org/) +use Template; -PutHeader("Quips for the impatient", "Add your own clever headline"); +# Create the global template object that processes templates +my $template = Template->new( +{ + INCLUDE_PATH => "template/custom:template/default", + RELATIVE => 1, + PRE_CHOMP => 1, +}); -print qq{ -The buglist picks a random quip for the headline, and -you can extend the quip list. Type in something clever or -funny or boring and bonk on the button. - -
-
- -
+# Define the global variables and functions that will be passed to the UI +# template. +my $vars = +{ + 'Param' => \&Param, + 'PerformSubsts' => \&PerformSubsts, }; -if (exists $::FORM{show_quips}) { - - print qq{ -

Existing headlines

-}; +my $action = $::FORM{'action'} || ""; +if ($action eq "show") { + # Read in the entire quip list if (open (COMMENTS, ") { - print $_,"
\n"; - } + my @quips; + push (@quips, $_) while (); close COMMENTS; + + $vars->{'quips'} = \@quips; + $vars->{'show_quips'} = 1; } - print "

"; -} else { - print qq{ -For the impatient, you can -view the whole quip list. -}; - print "

"; } -PutFooter(); +if ($action eq "add") { + # Add the quip + my $comment = $::FORM{"quip"}; + if (!$comment) { + DisplayError("Please enter a quip in the text field."); + exit(); + } + + if ($comment =~ m/>data/comments"); + print COMMENTS $comment . "\n"; + close(COMMENTS); + + $vars->{'added_quip'} = $comment; +} + +print "Content-type: text/html\n\n"; +$template->process("info/quips.tmpl", $vars) + || DisplayError("Template process failed: " . $template->error()) + && exit; diff --git a/webtools/bugzilla/template/default/info/quips.tmpl b/webtools/bugzilla/template/default/info/quips.tmpl new file mode 100644 index 000000000000..b48bb631afff --- /dev/null +++ b/webtools/bugzilla/template/default/info/quips.tmpl @@ -0,0 +1,64 @@ +[%# 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 + #%] + +[% INCLUDE global/header + title = "Bugzilla Quip System" + h1 = "Add your own clever headline" + %] + +[% IF added_quip %] +

+ + Your quip '[% added_quip %]' has been added. + +

+[% END %] + +

+ Bugzilla will pick a random quip for the headline on each bug list, and + you can extend the quip list. Type in something clever or funny or boring + (but not obscene or offensive, please) and bonk on the button. +

+ +
+ + +

+ +

+
+ +[% IF show_quips %] +

+ Existing quips: +

+
    + [% FOREACH quip = quips %] +
  • [% quip %]
  • + [% END %] +
+[% ELSE %] +

+ Those who like their wisdom in large doses can + view the whole quip list. +

+[% END %] + +[% INCLUDE global/footer %]