summaryrefslogtreecommitdiffstats
path: root/extensions/Needinfo/Extension.pm
diff options
context:
space:
mode:
authorDave Lawrence <dlawrence@mozilla.com>2012-11-15 07:04:42 +0100
committerByron Jones <bjones@mozilla.com>2012-11-15 07:04:42 +0100
commitc233b6940ff5dcfde22d3857ae6c334ff0904d83 (patch)
tree9121ed9d6a405f8b4849e6288e19e2f6863e9529 /extensions/Needinfo/Extension.pm
parentbcc7dd804977c8a7b1de0b01ebefc88f4351b1ad (diff)
downloadbugzilla-c233b6940ff5dcfde22d3857ae6c334ff0904d83.tar.gz
bugzilla-c233b6940ff5dcfde22d3857ae6c334ff0904d83.tar.xz
Bug 809198: Enable multiple needinfo flags on a single bug
Diffstat (limited to 'extensions/Needinfo/Extension.pm')
-rw-r--r--extensions/Needinfo/Extension.pm11
1 files changed, 8 insertions, 3 deletions
diff --git a/extensions/Needinfo/Extension.pm b/extensions/Needinfo/Extension.pm
index c48593cff..2958031be 100644
--- a/extensions/Needinfo/Extension.pm
+++ b/extensions/Needinfo/Extension.pm
@@ -73,9 +73,15 @@ sub bug_end_of_update {
my $needinfo = delete $params->{needinfo};
my $needinfo_from = delete $params->{needinfo_from};
my $needinfo_role = delete $params->{needinfo_role};
- my $override = delete $params->{needinfo_override};
my $is_private = $params->{'comment_is_private'};
+ my @needinfo_overrides;
+ foreach my $key (grep(/^needinfo_override_/, keys %$params)) {
+ my ($id) = $key =~ /(\d+)$/;
+ # Should always be true if key exists (checkbox) but better to be sure
+ push(@needinfo_overrides, $id) if $id && $params->{$key};
+ }
+
# Set the needinfo flag if user is requesting more information
my @new_flags;
my $needinfo_requestee;
@@ -83,7 +89,6 @@ sub bug_end_of_update {
if ($user->in_group('canconfirm') && $needinfo) {
foreach my $type (@{ $bug->flag_types }) {
next if $type->name ne 'needinfo';
- next if @{ $type->{flags} };
my $needinfo_flag = { type_id => $type->id, status => '?' };
@@ -123,7 +128,7 @@ sub bug_end_of_update {
$clear_needinfo = 1 if $flag->status ne '?';
# Clear if current user has selected override
- $clear_needinfo = 1 if $override;
+ $clear_needinfo = 1 if grep($_ == $flag->id, @needinfo_overrides);
# Clear if bug is being closed
if (($bug->bug_status ne $old_bug->bug_status)