From e1235d08fc52ff4cb914efecda9b15c2b7943f5a Mon Sep 17 00:00:00 2001 From: "bbaetz%student.usyd.edu.au" <> Date: Wed, 13 Feb 2002 10:27:20 +0000 Subject: Bug 100094 - use generic template handling code r=mattyt, afranke --- Attachment.pm | 35 +++++++-------------- Bugzilla/Attachment.pm | 35 +++++++-------------- attachment.cgi | 34 +++------------------ colchange.cgi | 42 ++++---------------------- createaccount.cgi | 26 +++------------- editattachstatuses.cgi | 34 +++------------------ enter_bug.cgi | 4 --- globals.pl | 17 +++++++++-- index.cgi | 35 +++------------------ query.cgi | 82 ++++++++++++-------------------------------------- quips.cgi | 26 ++++------------ sidebar.cgi | 36 +++------------------- 12 files changed, 93 insertions(+), 313 deletions(-) diff --git a/Attachment.pm b/Attachment.pm index 4b4b19ec3..1b6d74062 100644 --- a/Attachment.pm +++ b/Attachment.pm @@ -27,25 +27,15 @@ use diagnostics; use strict; +use vars qw( + $template + $vars +); + package Attachment; -# Use the template toolkit (http://www.template-toolkit.org/) to generate -# the user interface (HTML pages and mail messages) using templates in the -# "templates/" subdirectory. -use Template; - -# This is the global template object that gets used one or more times by -# the script when it needs to process a template and return the results. -# Configuration parameters can be specified here that apply to all templates -# processed in this file. -my $template = Template->new( - { - # Colon-separated list of directories containing templates. - INCLUDE_PATH => 'template/custom:template/default' , - # Allow templates to be specified with relative paths. - RELATIVE => 1 - } -); +my $template = $::template; +my $vars = $::vars; # This module requires that its caller have said "require CGI.pl" to import # relevant functions from that script and its companion globals.pl. @@ -99,16 +89,13 @@ sub list push @attachments, \%a; } - my $vars = - { - 'bugid' => $bugid , - 'attachments' => \@attachments , - 'Param' => \&::Param , # for retrieving global parameters - 'PerformSubsts' => \&::PerformSubsts # for processing global parameters - }; + $vars->{'bugid'} = $bugid; + $vars->{'attachments'} = \@attachments; $template->process("attachment/list.atml", $vars) || &::DisplayError("Template process failed: " . $template->error()) && exit; } + +1; diff --git a/Bugzilla/Attachment.pm b/Bugzilla/Attachment.pm index 4b4b19ec3..1b6d74062 100644 --- a/Bugzilla/Attachment.pm +++ b/Bugzilla/Attachment.pm @@ -27,25 +27,15 @@ use diagnostics; use strict; +use vars qw( + $template + $vars +); + package Attachment; -# Use the template toolkit (http://www.template-toolkit.org/) to generate -# the user interface (HTML pages and mail messages) using templates in the -# "templates/" subdirectory. -use Template; - -# This is the global template object that gets used one or more times by -# the script when it needs to process a template and return the results. -# Configuration parameters can be specified here that apply to all templates -# processed in this file. -my $template = Template->new( - { - # Colon-separated list of directories containing templates. - INCLUDE_PATH => 'template/custom:template/default' , - # Allow templates to be specified with relative paths. - RELATIVE => 1 - } -); +my $template = $::template; +my $vars = $::vars; # This module requires that its caller have said "require CGI.pl" to import # relevant functions from that script and its companion globals.pl. @@ -99,16 +89,13 @@ sub list push @attachments, \%a; } - my $vars = - { - 'bugid' => $bugid , - 'attachments' => \@attachments , - 'Param' => \&::Param , # for retrieving global parameters - 'PerformSubsts' => \&::PerformSubsts # for processing global parameters - }; + $vars->{'bugid'} = $bugid; + $vars->{'attachments'} = \@attachments; $template->process("attachment/list.atml", $vars) || &::DisplayError("Template process failed: " . $template->error()) && exit; } + +1; diff --git a/attachment.cgi b/attachment.cgi index f58844835..ea17c29e5 100755 --- a/attachment.cgi +++ b/attachment.cgi @@ -31,41 +31,17 @@ use strict; use lib qw(.); +use vars qw( + $template + $vars +); + # Include the Bugzilla CGI and general utility library. require "CGI.pl"; # Establish a connection to the database backend. ConnectToDatabase(); -# Use the template toolkit (http://www.template-toolkit.org/) to generate -# the user interface (HTML pages and mail messages) using templates in the -# "template/" subdirectory. -use Template; - -# Create the global template object that processes templates and specify -# configuration parameters that apply to all templates processed in this script. -my $template = Template->new( - { - # Colon-separated list of directories containing templates. - INCLUDE_PATH => "template/custom:template/default" , - # Allow templates to be specified with relative paths. - RELATIVE => 1 - } -); - -# Define the global variables and functions that will be passed to the UI -# template. Individual functions add their own values to this hash before -# sending them to the templates they process. -my $vars = - { - # Function for retrieving global parameters. - 'Param' => \&Param , - - # Function for processing global parameters that contain references - # to other global parameters. - 'PerformSubsts' => \&PerformSubsts - }; - # Check whether or not the user is logged in and, if so, set the $::userid # and $::usergroupset variables. quietly_check_login(); diff --git a/colchange.cgi b/colchange.cgi index 5d3222afc..f2ac55aa9 100755 --- a/colchange.cgi +++ b/colchange.cgi @@ -25,45 +25,15 @@ use strict; use lib qw(.); -sub sillyness { # shut up "used only once" warnings - my $zz = @::legal_keywords; - $zz = $::buffer; -} +use vars qw( + @legal_keywords + $buffer + $template + $vars +); require "CGI.pl"; -# Use the template toolkit (http://www.template-toolkit.org/) to generate -# the user interface (HTML pages and mail messages) using templates in the -# "template/" subdirectory. -use Template; - -# Create the global template object that processes templates and specify -# configuration parameters that apply to all templates processed in this script. -my $template = Template->new( -{ - # Colon-separated list of directories containing templates. - INCLUDE_PATH => "template/custom:template/default", - # Allow templates to be specified with relative paths. - RELATIVE => 1, - PRE_CHOMP => 1, -}); - -# Define the global variables and functions that will be passed to the UI -# template. Individual functions add their own values to this hash before -# sending them to the templates they process. -my $vars = -{ - # Function for retrieving global parameters. - 'Param' => \&Param, - - # Function for processing global parameters that contain references - # to other global parameters. - 'PerformSubsts' => \&PerformSubsts, - - # Function to search an array for a value - 'lsearch' => \&lsearch, -}; - print "Content-type: text/html\n"; # The master list not only says what fields are possible, but what order diff --git a/createaccount.cgi b/createaccount.cgi index 86a994483..ecf3a68f6 100755 --- a/createaccount.cgi +++ b/createaccount.cgi @@ -32,27 +32,11 @@ use lib qw(.); require "CGI.pl"; # Shut up misguided -w warnings about "used only once": -use vars %::FORM; - -# Use the template toolkit (http://www.template-toolkit.org/) -use Template; - -# Create the global template object that processes templates -my $template = Template->new( -{ - # Colon-separated list of directories containing templates. - INCLUDE_PATH => "template/custom:template/default", - RELATIVE => 1, - PRE_CHOMP => 1, -}); - -# Define the global variables and functions that will be passed to the UI -# template. -my $vars = -{ - 'Param' => \&Param, - 'PerformSubsts' => \&PerformSubsts, -}; +use vars qw( + %FORM + $template + $vars +); ConnectToDatabase(); diff --git a/editattachstatuses.cgi b/editattachstatuses.cgi index 6596a79c9..0642d6bb8 100755 --- a/editattachstatuses.cgi +++ b/editattachstatuses.cgi @@ -29,41 +29,17 @@ use diagnostics; use strict; +use vars qw( + $template + $vars +); + # Include the Bugzilla CGI and general utility library. require "CGI.pl"; # Establish a connection to the database backend. ConnectToDatabase(); -# Use the template toolkit (http://www.template-toolkit.org/) to generate -# the user interface (HTML pages and mail messages) using templates in the -# "template/" subdirectory. -use Template; - -# Create the global template object that processes templates and specify -# configuration parameters that apply to all templates processed in this script. -my $template = Template->new( - { - # Colon-separated list of directories containing templates. - INCLUDE_PATH => "template/custom:template/default" , - # Allow templates to be specified with relative paths. - RELATIVE => 1 - } -); - -# Define the global variables and functions that will be passed to the UI -# template. Individual functions add their own values to this hash before -# sending them to the templates they process. -my $vars = - { - # Function for retrieving global parameters. - 'Param' => \&Param , - - # Function for processing global parameters that contain references - # to other global parameters. - 'PerformSubsts' => \&PerformSubsts - }; - # Make sure the user is logged in and is allowed to edit products # (i.e. the user has "editcomponents" privileges), since attachment # statuses are product-specific. diff --git a/enter_bug.cgi b/enter_bug.cgi index eea2947bd..0ab18d9a9 100755 --- a/enter_bug.cgi +++ b/enter_bug.cgi @@ -51,10 +51,6 @@ use vars qw( %MFORM ); -# Use template variables -my $template = $::template; -my $vars = $::vars; - # If we're using bug groups to restrict bug entry, we need to know who the # user is right from the start. confirm_login() if (Param("usebuggroupsentry")); diff --git a/globals.pl b/globals.pl index f88347f13..e1f3302f3 100644 --- a/globals.pl +++ b/globals.pl @@ -1578,9 +1578,6 @@ $::template = Template->new( # Colon-separated list of directories containing templates. INCLUDE_PATH => "template/custom:template/default" , - # Allow templates to be specified with relative paths. - RELATIVE => 1 , - # Remove white-space before template directives (PRE_CHOMP) and at the # beginning and end of templates and template blocks (TRIM) for better # looking, more compact content. Use the plus sign at the beginning @@ -1593,6 +1590,17 @@ $::template = Template->new( { # Render text in strike-through style. strike => sub { return "" . $_[0] . "" } , + + # Returns the text with backslashes, single/double quotes, + # and newlines/carriage returns escaped for use in JS strings. + js => sub + { + my ($var) = @_; + $var =~ s/([\\\'\"])/\\$1/g; + $var =~ s/\n/\\n/g; + $var =~ s/\r/\\r/g; + return $var; + } } , } ); @@ -1652,6 +1660,9 @@ $::vars = # Function for processing global parameters that contain references # to other global parameters. 'PerformSubsts' => \&PerformSubsts , + + # Generic linear search function + 'lsearch' => \&lsearch , }; 1; diff --git a/index.cgi b/index.cgi index 5c300992d..2fe393391 100755 --- a/index.cgi +++ b/index.cgi @@ -37,38 +37,13 @@ use strict; use lib "."; require "CGI.pl"; -# Establish a connection to the database backend. -ConnectToDatabase(); - -# Use the template toolkit (http://www.template-toolkit.org/) to generate -# the user interface (HTML pages and mail messages) using templates in the -# "template/" subdirectory. -use Template; - -# Create the global template object that processes templates and specify -# configuration parameters that apply to all templates processed in this script. -my $template = Template->new( - { - # Colon-separated list of directories containing templates. - INCLUDE_PATH => "template/custom:template/default", - # Allow templates to be specified with relative paths. - RELATIVE => 1, - POST_CHOMP => 1, - } +use vars qw( + $template + $vars ); -# Define the global variables and functions that will be passed to the UI -# template. Individual functions add their own values to this hash before -# sending them to the templates they process. -my $vars = - { - # Function for retrieving global parameters. - 'Param' => \&Param , - - # Function for processing global parameters that contain references - # to other global parameters. - 'PerformSubsts' => \&PerformSubsts - }; +# Establish a connection to the database backend. +ConnectToDatabase(); # Check whether or not the user is logged in and, if so, set the $::userid # and $::usergroupset variables. diff --git a/query.cgi b/query.cgi index 3149d07b7..b41620d36 100755 --- a/query.cgi +++ b/query.cgi @@ -34,68 +34,26 @@ require "CGI.pl"; # that no longer exist), since we don't want to die in the query page. $::CheckOptionValues = 0; -use vars - @::CheckOptionValues, - @::legal_resolution, - @::legal_bug_status, - @::legal_components, - @::legal_keywords, - @::legal_opsys, - @::legal_platform, - @::legal_priority, - @::legal_product, - @::legal_severity, - @::legal_target_milestone, - @::legal_versions, - @::log_columns, - %::versions, - %::components, - %::FORM; - -# Use the template toolkit (http://www.template-toolkit.org/) to generate -# the user interface (HTML pages and mail messages) using templates in the -# "template/" subdirectory. -use Template; - -# Create the global template object that processes templates and specify -# configuration parameters that apply to all templates processed in this script. -my $template = Template->new( -{ - # Colon-separated list of directories containing templates. - INCLUDE_PATH => "template/custom:template/default", - # Allow templates to be specified with relative paths. - RELATIVE => 1, - PRE_CHOMP => 1, - FILTERS => - { - # Returns the text with backslashes, single/double quotes, - # and newlines/carriage returns escaped for use in JS strings. - 'js' => sub - { - my ($var) = @_; - $var =~ s/([\\\'\"])/\\$1/g; - $var =~ s/\n/\\n/g; - $var =~ s/\r/\\r/g; - return $var; - } - }, -}); - -# Define the global variables and functions that will be passed to the UI -# template. Individual functions add their own values to this hash before -# sending them to the templates they process. -my $vars = -{ - # Function for retrieving global parameters. - 'Param' => \&Param, - - # Function for processing global parameters that contain references - # to other global parameters. - 'PerformSubsts' => \&PerformSubsts, - - # Function to search an array for a value - 'lsearch' => \&lsearch, -}; +use vars qw( + @CheckOptionValues + @legal_resolution + @legal_bug_status + @legal_components + @legal_keywords + @legal_opsys + @legal_platform + @legal_priority + @legal_product + @legal_severity + @legal_target_milestone + @legal_versions + @log_columns + %versions + %components + %FORM + $template + $vars +); if (defined $::FORM{"GoAheadAndLogIn"}) { # We got here from a login page, probably from relogin.cgi. We better diff --git a/quips.cgi b/quips.cgi index f1a41b4b9..1b5213e97 100755 --- a/quips.cgi +++ b/quips.cgi @@ -23,31 +23,17 @@ use diagnostics; use strict; -use vars ( %::FORM ); + +use vars qw( + %FORM + $template + $vars +); use lib qw(.); require "CGI.pl"; -# Use the template toolkit (http://www.template-toolkit.org/) -use Template; - -# Create the global template object that processes templates -my $template = Template->new( -{ - INCLUDE_PATH => "template/custom:template/default", - RELATIVE => 1, - PRE_CHOMP => 1, -}); - -# Define the global variables and functions that will be passed to the UI -# template. -my $vars = -{ - 'Param' => \&Param, - 'PerformSubsts' => \&PerformSubsts, -}; - my $action = $::FORM{'action'} || ""; if ($action eq "show") { diff --git a/sidebar.cgi b/sidebar.cgi index 073a1ecff..385086b5b 100755 --- a/sidebar.cgi +++ b/sidebar.cgi @@ -22,39 +22,13 @@ use lib "."; require "CGI.pl"; # Shut up "Used Only Once" errors -use vars qw { $anyvotesallowed }; - -ConnectToDatabase(); - -# Use the template toolkit (http://www.template-toolkit.org/) to generate -# the user interface (HTML pages and mail messages) using templates in the -# "template/" subdirectory. -use Template; - -# Create the global template object that processes templates and specify -# configuration parameters that apply to all templates processed in this script. -my $template = Template->new( - { - # Colon-separated list of directories containing templates. - INCLUDE_PATH => "template/custom:template/default", - # Allow templates to be specified with relative paths. - RELATIVE => 1, - POST_CHOMP =>1, - } +use vars qw( + $anyvotesallowed + $template + $vars ); -# Define the global variables and functions that will be passed to the UI -# template. Individual functions add their own values to this hash before -# sending them to the templates they process. -my $vars = - { - # Function for retrieving global parameters. - 'Param' => \&Param , - - # Function that tells us if the logged in user is in a specific group. - 'UserInGroup' => \&UserInGroup , - }; - +ConnectToDatabase(); # Needed for $::anyvotesallowed GetVersionTable(); -- cgit v1.2.1