summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Bugzilla/Hook.pm16
-rwxr-xr-xcolchange.cgi2
-rw-r--r--extensions/example/code/colchange-columns.pl27
3 files changed, 45 insertions, 0 deletions
diff --git a/Bugzilla/Hook.pm b/Bugzilla/Hook.pm
index 4fb1424f8..7ffd38aa5 100644
--- a/Bugzilla/Hook.pm
+++ b/Bugzilla/Hook.pm
@@ -393,3 +393,19 @@ A hash that maps the names of errors (like C<invalid_param>) to numbers.
See L<Bugzilla::WebService::Constants/WS_ERROR_CODE> for an example.
=back
+
+=head2 colchange-columns
+
+This happens in F<colchange.cgi> right after the list of possible display
+columns have been defined and gives you the opportunity to add additional
+display columns to the list of selectable columns.
+
+Params:
+
+=over
+
+=item C<columns> - An arrayref containing an array of column IDs. Any IDs
+added by this hook must have been defined in the the buglist-columns hook.
+See L</buglist-columns>.
+
+=back
diff --git a/colchange.cgi b/colchange.cgi
index 01af4baba..cb43b34e3 100755
--- a/colchange.cgi
+++ b/colchange.cgi
@@ -84,6 +84,8 @@ my @custom_fields = grep { $_->type != FIELD_TYPE_MULTI_SELECT }
Bugzilla->active_custom_fields;
push(@masterlist, map { $_->name } @custom_fields);
+Bugzilla::Hook::process("colchange-columns", {'columns' => \@masterlist} );
+
$vars->{'masterlist'} = \@masterlist;
my @collist;
diff --git a/extensions/example/code/colchange-columns.pl b/extensions/example/code/colchange-columns.pl
new file mode 100644
index 000000000..6174d3940
--- /dev/null
+++ b/extensions/example/code/colchange-columns.pl
@@ -0,0 +1,27 @@
+# -*- 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 Example Plugin.
+#
+# The Initial Developer of the Original Code is Canonical Ltd.
+# Portions created by Canonical Ltd. are Copyright (C) 2008
+# Canonical Ltd. All Rights Reserved.
+#
+# Contributor(s): Elliotte Martin <elliotte_martin@yahoo.com>
+
+
+use strict;
+use warnings;
+use Bugzilla;
+
+my $columns = Bugzilla->hook_args->{'columns'};
+push (@$columns, "example")