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 ++++++++++++++++++++++ template/en/default/config.js.tmpl | 97 ++++++++++++++++++++++ template/en/default/config.rdf.tmpl | 161 ++++++++++++++++++++++++++++++++++++ 3 files changed, 356 insertions(+) create mode 100755 config.cgi create mode 100644 template/en/default/config.js.tmpl create mode 100644 template/en/default/config.rdf.tmpl 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()); diff --git a/template/en/default/config.js.tmpl b/template/en/default/config.js.tmpl new file mode 100644 index 000000000..32258260f --- /dev/null +++ b/template/en/default/config.js.tmpl @@ -0,0 +1,97 @@ +// +// This file contains the installation specific values for QuickSearch +// and other Bugzilla clients. See quicksearch.js for more details. +// + +// the global bugzilla url +var installation = { + base_url : '[% Param('urlbase') FILTER js %]', + install_version : '[% VERSION FILTER js %]', + maintainer : '[% Param('maintainer') FILTER js %]' +}; + + +// Status and Resolution +// ===================== +var status = [ [% FOREACH x = status %]'[% x FILTER js %]', [% END %] ]; +var status_open = [ [% FOREACH x = open_status %]'[% x FILTER js %]', [% END %] ]; +var status_closed = [ [% FOREACH x = closed_status %]'[% x FILTER js %]', [% END %] ]; +var resolution = [ [% FOREACH x = resolution %]'[% x FILTER js %]', [% END %] ]; + + +// Keywords +// ======== + +var keyword = [ [% FOREACH x = keyword %]'[% x FILTER js %]', [% END %] ]; + + +// Platforms +// ========= + +var platform = [ [% FOREACH x = platform %]'[% x FILTER js %]', [% END %] ]; + + +// Severities +// ========== + +var severity = [ [% FOREACH x = severity %]'[% x FILTER js %]', [% END %] ]; + + +// Products and Components +// ======================= +// +// It is not necessary to list all products and components here. +// Instead, you can define a "blacklist" for some commonly used words +// or word fragments that occur in a product or component name +// but should _not_ trigger product/component search. + + +// A list of all products and their components, versions, and target milestones: + +var component = new Object(); +var version = new Object(); +var target_milestone = new Object(); + +[% FOREACH p = legal_products %] + component['[% p FILTER js %]'] = [ [% FOREACH x = components_by_product.$p %]'[% x FILTER js %]', [% END %] ]; + version['[% p FILTER js %]'] = [ [% FOREACH x = versions_by_product.$p %]'[% x FILTER js %]', [% END %] ]; + target_milestone['[% p FILTER js %]'] = [ [% FOREACH x = milestones_by_product.$p %]'[% x FILTER js %]', [% END %] ]; +[% END %] + +// Product and Component Exceptions +// ================================ +// +// A blacklist for some commonly used words or word fragments +// that occur in a product or component name but should *not* +// trigger product/component search in QuickSearch. + +var product_exceptions = new Array( + // Example: + //"row" // [Browser] + // // ^^^ + //,"new" // [MailNews] + // // ^^^ +); + +var component_exceptions = new Array( + // Example: + //"hang" // [mozilla.org] Bugzilla: Component/Keyword Changes + // // ^^^^ +); + +// Deprecated Variables +// ================================ +// +// Other names for various variables. These are deprecated +// and could go away at any time. Use them at your own risk! + +var bugzilla = installation.base_url; +var statuses = status; +var statuses_resolved = status_closed; +var resolutions = resolution; +var keywords = keyword; +var platforms = platform; +var severities = severity; +var cpts = component; +var vers = version; +var tms = target_milestone; diff --git a/template/en/default/config.rdf.tmpl b/template/en/default/config.rdf.tmpl new file mode 100644 index 000000000..62e8a3198 --- /dev/null +++ b/template/en/default/config.rdf.tmpl @@ -0,0 +1,161 @@ + + + + + [% VERSION FILTER html %] + [% Param('maintainer') FILTER html %] + + + + [% FOREACH item = status %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = open_status %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = closed_status %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = resolution %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = keyword %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = platform %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = op_sys %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = priority %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH item = severity %] +
  • [% item FILTER html %]
  • + [% END %] +
    +
    + + + + [% FOREACH product = legal_products %] +
  • + + [% product FILTER html %] + + + + [% FOREACH component = components_by_product.$product %] +
  • + [% END %] + + + + + + [% FOREACH version = versions_by_product.$product %] +
  • + [% END %] + + + + [% IF Param('usetargetmilestone') %] + + + [% FOREACH milestone = milestones_by_product.$product %] +
  • + [% END %] + + + [% END %] + + +
  • + [% END %] +
    +
    + + + + [% FOREACH item = legal_components %] +
  • + + [% item FILTER html %] + +
  • + [% END %] +
    +
    + + + + [% FOREACH item = legal_versions %] +
  • + + [% item FILTER html %] + +
  • + [% END %] +
    +
    + + [% IF Param('usetargetmilestone') %] + + + [% FOREACH item = legal_milestones %] +
  • + + [% item FILTER html %] + +
  • + [% END %] +
    +
    + [% END %] + +
    + +
    -- cgit v1.2.3-24-g4f1b