From 199d6ed76f022232c3799036c75661604a6d70d4 Mon Sep 17 00:00:00 2001 From: "myk%mozilla.org" <> Date: Fri, 6 Jan 2006 22:22:55 +0000 Subject: Bug 287325: an initial implementation of custom fields, including the ability to add text custom fields via the command-line script customfield.pl, search them via the boolean charts, display and edit them on the show bug page, and see changes to them in bug activity; r=mkanat, glob --- customfield.pl | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) create mode 100755 customfield.pl (limited to 'customfield.pl') diff --git a/customfield.pl b/customfield.pl new file mode 100755 index 000000000..106c60582 --- /dev/null +++ b/customfield.pl @@ -0,0 +1,88 @@ +#!/usr/bin/perl -wT +# -*- 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): Myk Melez + +################################################################################ +# Script Initialization +################################################################################ + +use strict; + +use lib "."; +require "globals.pl"; + +use Bugzilla::Field; +use Getopt::Long; + +my ($name, $desc); +my $result = GetOptions("name=s" => \$name, + "description|desc=s" => \$desc); + +if (!$name or !$desc) { + my $command = + $^O =~ /MSWin32/i ? "perl -T customfield.pl" : "./customfield.pl"; + print < --desc="" + + is the name of the custom field in the database. + The string "cf_" will be prepended to this name to distinguish + the field from standard fields. This name must conform to the + naming rules for the database server you use. + + is a short string describing the field. It will + be displayed to Bugzilla users in several parts of Bugzilla's UI, + for example as the label for the field on the "show bug" page. + +Warning: + + Custom fields can make Bugzilla less usable. See this URL + for alternatives to custom fields: + + http://www.gerv.net/hacking/custom-fields.html + + You should try to implement applicable alternatives before using + this script to add a custom field. +END + + exit; +} + +# Prepend cf_ to the custom field name to distinguish it from standard fields. +$name =~ /^cf_/ + or $name = "cf_" . $name; + +# Exit gracefully if there is already a field with the given name. +if (scalar(Bugzilla::Field::match({ name=>$name })) > 0) { + print "There is already a field named $name. Please choose " . + "a different name.\n"; + exit; +} + + +# Create the field. +print "Creating custom field $name ...\n"; +my $field = Bugzilla::Field::create($name, $desc, 1); +print "Custom field $name created.\n"; -- cgit v1.2.3-24-g4f1b