From c099fc5f7fd8b489d016046bcb2574e2a1495e6d Mon Sep 17 00:00:00 2001 From: "myk%mozilla.org" <> Date: Wed, 30 Apr 2003 06:14:27 +0000 Subject: Fix for bug 72837: a script that generates configuration information for a Bugzilla installation. r=gerv a=myk --- config.cgi | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 98 insertions(+) create mode 100755 config.cgi (limited to 'config.cgi') diff --git a/config.cgi b/config.cgi new file mode 100755 index 000000000..80b64b047 --- /dev/null +++ b/config.cgi @@ -0,0 +1,98 @@ +#!/usr/bonsaitools/bin/perl -w +# -*- Mode: perl; indent-tabs-mode: nil -*- +# +# 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): Terry Weissman +# Myk Melez + +################################################################################ +# Script Initialization +################################################################################ + +# Make it harder for us to do dangerous things in Perl. +use diagnostics; +use strict; + +# Include the Bugzilla CGI and general utility library. +require "CGI.pl"; + +# Connect to the database so we can check whether the user is a member +# of each product group. +ConnectToDatabase(); + +# Retrieve this installation's configuration. +GetVersionTable(); + +# Suppress "used only once" warnings. +use vars + qw( + @legal_priority + @legal_severity + @legal_platform + @legal_opsys + @legal_resolution + + @legal_components + @legal_target_milestone + @legal_versions + @legal_keywords + + %FORM + ); + +# Use the global template variables defined in globals.pl +# to generate the output. +use vars qw($template $vars); + +# Pass a bunch of Bugzilla configuration to the templates. +$vars->{'priority'} = \@::legal_priority; +$vars->{'severity'} = \@::legal_severity; +$vars->{'platform'} = \@::legal_platform; +$vars->{'op_sys'} = \@::legal_opsys; +$vars->{'keyword'} = \@::legal_keywords; +$vars->{'resolution'} = \@::legal_resolution; +$vars->{'status'} = \@::legal_bug_status; + +# Include lists of products, components, versions, and target milestones. +my $selectables = GetSelectableProductHash(); +foreach my $selectable (keys %$selectables) { + $vars->{$selectable} = $selectables->{$selectable}; +} + +# Create separate lists of open versus resolved statuses. This should really +# be made part of the configuration. +my @open_status; +my @closed_status; +foreach my $status (@::legal_bug_status) { + IsOpenedState($status) ? push(@open_status, $status) + : push(@closed_status, $status); +} +$vars->{'open_status'} = \@open_status; +$vars->{'closed_status'} = \@closed_status; + +# Determine how the user would like to receive the output; +# default is JavaScript. +my $format = GetFormat("config", $::FORM{'format'}, $::FORM{'ctype'} || "js"); + +# Return HTTP headers. +print "Content-Type: $format->{'ctype'}\n\n"; + +# Generate the configuration file and return it to the user. +$template->process($format->{'template'}, $vars) + || ThrowTemplateError($template->error()); -- cgit v1.2.3-24-g4f1b