зеркало из https://github.com/mozilla/pjs.git
Fix for bug 72837: a script that generates configuration information for a Bugzilla installation.
r=gerv a=myk
This commit is contained in:
Родитель
d30d2f04a9
Коммит
45c7dd9178
|
@ -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());
|
|
@ -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;
|
|
@ -0,0 +1,161 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<RDF xmlns="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:bz="http://www.bugzilla.org/rdf#">
|
||||||
|
|
||||||
|
<bz:installation rdf:about="[% Param('urlbase') FILTER html %]">
|
||||||
|
<bz:install_version>[% VERSION FILTER html %]</bz:install_version>
|
||||||
|
<bz:maintainer>[% Param('maintainer') FILTER html %]</bz:maintainer>
|
||||||
|
|
||||||
|
<bz:status>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = status %]
|
||||||
|
<li>[% item FILTER html %]</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:status>
|
||||||
|
|
||||||
|
<bz:status_open>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = open_status %]
|
||||||
|
<li>[% item FILTER html %]</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:status_open>
|
||||||
|
|
||||||
|
<bz:status_closed>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = closed_status %]
|
||||||
|
<li>[% item FILTER html %]</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:status_closed>
|
||||||
|
|
||||||
|
<bz:resolution>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = resolution %]
|
||||||
|
<li>[% item FILTER html %]</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:resolution>
|
||||||
|
|
||||||
|
<bz:keyword>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = keyword %]
|
||||||
|
<li>[% item FILTER html %]</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:keyword>
|
||||||
|
|
||||||
|
<bz:platform>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = platform %]
|
||||||
|
<li>[% item FILTER html %]</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:platform>
|
||||||
|
|
||||||
|
<bz:op_sys>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = op_sys %]
|
||||||
|
<li>[% item FILTER html %]</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:op_sys>
|
||||||
|
|
||||||
|
<bz:priority>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = priority %]
|
||||||
|
<li>[% item FILTER html %]</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:priority>
|
||||||
|
|
||||||
|
<bz:severity>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = severity %]
|
||||||
|
<li>[% item FILTER html %]</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:severity>
|
||||||
|
|
||||||
|
<bz:products>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH product = legal_products %]
|
||||||
|
<li>
|
||||||
|
<bz:product rdf:about="[% Param('urlbase') %]product.cgi?name=[% product FILTER uri %]">
|
||||||
|
<bz:name>[% product FILTER html %]</bz:name>
|
||||||
|
|
||||||
|
<bz:components>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH component = components_by_product.$product %]
|
||||||
|
<li resource="[% Param('urlbase') %]component.cgi?name=[% component FILTER uri %]"/>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:components>
|
||||||
|
|
||||||
|
<bz:versions>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH version = versions_by_product.$product %]
|
||||||
|
<li resource="[% Param('urlbase') %]version.cgi?name=[% version FILTER uri %]"/>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:versions>
|
||||||
|
|
||||||
|
[% IF Param('usetargetmilestone') %]
|
||||||
|
<bz:target_milestones>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH milestone = milestones_by_product.$product %]
|
||||||
|
<li resource="[% Param('urlbase') %]milestone.cgi?name=[% milestone FILTER uri %]"/>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:target_milestones>
|
||||||
|
[% END %]
|
||||||
|
|
||||||
|
</bz:product>
|
||||||
|
</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:products>
|
||||||
|
|
||||||
|
<bz:components>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = legal_components %]
|
||||||
|
<li>
|
||||||
|
<bz:component rdf:about="[% Param('urlbase') %]component.cgi?name=[% item FILTER uri %]">
|
||||||
|
<bz:name>[% item FILTER html %]</bz:name>
|
||||||
|
</bz:component>
|
||||||
|
</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:components>
|
||||||
|
|
||||||
|
<bz:versions>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = legal_versions %]
|
||||||
|
<li>
|
||||||
|
<bz:version rdf:about="[% Param('urlbase') %]version.cgi?name=[% item FILTER uri %]">
|
||||||
|
<bz:name>[% item FILTER html %]</bz:name>
|
||||||
|
</bz:version>
|
||||||
|
</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:versions>
|
||||||
|
|
||||||
|
[% IF Param('usetargetmilestone') %]
|
||||||
|
<bz:target_milestones>
|
||||||
|
<Seq>
|
||||||
|
[% FOREACH item = legal_milestones %]
|
||||||
|
<li>
|
||||||
|
<bz:target_milestone rdf:about="[% Param('urlbase') %]milestone.cgi?name=[% item FILTER uri %]">
|
||||||
|
<bz:name>[% item FILTER html %]</bz:name>
|
||||||
|
</bz:target_milestone>
|
||||||
|
</li>
|
||||||
|
[% END %]
|
||||||
|
</Seq>
|
||||||
|
</bz:target_milestones>
|
||||||
|
[% END %]
|
||||||
|
|
||||||
|
</bz:installation>
|
||||||
|
|
||||||
|
</RDF>
|
Загрузка…
Ссылка в новой задаче