summaryrefslogtreecommitdiffstats
path: root/Bugzilla/Search.pm
diff options
context:
space:
mode:
authorrojanu <aliustek@gmail.com>2012-04-10 20:34:43 +0200
committerFrédéric Buclin <LpSolit@gmail.com>2012-04-10 20:34:43 +0200
commitb4fee2c33267420765ed2bf15a639a5d36d35fc5 (patch)
tree4eb5c1fc2d69ca3c15c7bf06c150b1712fb99e54 /Bugzilla/Search.pm
parent4b18c781b5cb949e4166f66d312e33820834fdc8 (diff)
downloadbugzilla-b4fee2c33267420765ed2bf15a639a5d36d35fc5.tar.gz
bugzilla-b4fee2c33267420765ed2bf15a639a5d36d35fc5.tar.xz
Bug 743991: Need a new hook to update Bugzilla::Search::COLUMN_JOINS
r/a=LpSolit
Diffstat (limited to 'Bugzilla/Search.pm')
-rw-r--r--Bugzilla/Search.pm17
1 files changed, 16 insertions, 1 deletions
diff --git a/Bugzilla/Search.pm b/Bugzilla/Search.pm
index 64642774d..d349a31ae 100644
--- a/Bugzilla/Search.pm
+++ b/Bugzilla/Search.pm
@@ -971,7 +971,8 @@ sub _column_join {
my ($self, $field) = @_;
# The _realname fields require the same join as the username fields.
$field =~ s/_realname$//;
- my $join_info = COLUMN_JOINS->{$field};
+ my $column_joins = $self->_get_column_joins();
+ my $join_info = $column_joins->{$field};
if ($join_info) {
# Don't allow callers to modify the constant.
$join_info = dclone($join_info);
@@ -1809,6 +1810,20 @@ sub _get_operator_field_override {
return $cache->{operator_field_override};
}
+sub _get_column_joins {
+ my $self = shift;
+ my $cache = Bugzilla->request_cache;
+
+ return $cache->{column_joins} if defined $cache->{column_joins};
+
+ my %column_joins = %{ COLUMN_JOINS() };
+ Bugzilla::Hook::process('buglist_column_joins',
+ { column_joins => \%column_joins });
+
+ $cache->{column_joins} = \%column_joins;
+ return $cache->{column_joins};
+}
+
###########################
# Search Function Helpers #
###########################