summaryrefslogtreecommitdiffstats
path: root/config.cgi
diff options
context:
space:
mode:
authormyk%mozilla.org <>2003-04-30 08:14:27 +0200
committermyk%mozilla.org <>2003-04-30 08:14:27 +0200
commitc099fc5f7fd8b489d016046bcb2574e2a1495e6d (patch)
tree023e894c625705f5766ad0775194e2b11801e6c7 /config.cgi
parent58c8e5559bbe49691954da5b5e357c90f55f547f (diff)
downloadbugzilla-c099fc5f7fd8b489d016046bcb2574e2a1495e6d.tar.gz
bugzilla-c099fc5f7fd8b489d016046bcb2574e2a1495e6d.tar.xz
Fix for bug 72837: a script that generates configuration information for a Bugzilla installation.
r=gerv a=myk
Diffstat (limited to 'config.cgi')
-rwxr-xr-xconfig.cgi98
1 files changed, 98 insertions, 0 deletions
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 <terry@mozilla.org>
+# Myk Melez <myk@mozilla.org>
+
+################################################################################
+# 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());