summaryrefslogtreecommitdiffstats
path: root/extensions/TrackingFlags/Extension.pm
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/TrackingFlags/Extension.pm')
-rw-r--r--extensions/TrackingFlags/Extension.pm17
1 files changed, 17 insertions, 0 deletions
diff --git a/extensions/TrackingFlags/Extension.pm b/extensions/TrackingFlags/Extension.pm
index 426ab9065..84250859c 100644
--- a/extensions/TrackingFlags/Extension.pm
+++ b/extensions/TrackingFlags/Extension.pm
@@ -402,6 +402,23 @@ sub search_operator_field_override {
}
}
+sub search_clause_structure {
+ my ($self, $args) = @_;
+ # when searching, map "eq ---" to "isempty"
+ my $clause = $args->{clause};
+ my @tracking_flags = map { $_->name } Bugzilla::Extension::TrackingFlags::Flag->get_all;
+ $clause->walk_conditions(sub {
+ my ($clause, $condition) = @_;
+ if (grep { $condition->field eq $_ } @tracking_flags
+ and $condition->{value} eq '---')
+ {
+ $condition->{operator} = $condition->{operator} =~ /^not/
+ ? 'isnotempty'
+ : 'isempty';
+ }
+ });
+}
+
sub _tracking_flags_search_nonchanged {
my ($flag_id, $search, $args) = @_;
my ($bugs_table, $chart_id, $joins, $value, $operator) =