Commit 43f03aa4 authored by dkl%redhat.com's avatar dkl%redhat.com

Bug 99205: Allow mass-editing of dependencies

Patch by Dave Lawrence <dkl@redhat.com> - r/a=mkanat
parent dd52ea1b
...@@ -1156,7 +1156,9 @@ sub _check_dependencies { ...@@ -1156,7 +1156,9 @@ sub _check_dependencies {
my %deps_in = (dependson => $depends_on || '', blocked => $blocks || ''); my %deps_in = (dependson => $depends_on || '', blocked => $blocks || '');
foreach my $type qw(dependson blocked) { foreach my $type qw(dependson blocked) {
my @bug_ids = split(/[\s,]+/, $deps_in{$type}); my @bug_ids = ref($deps_in{$type})
? @{$deps_in{$type}}
: split(/[\s,]+/, $deps_in{$type});
# Eliminate nulls. # Eliminate nulls.
@bug_ids = grep {$_} @bug_ids; @bug_ids = grep {$_} @bug_ids;
# We do this up here to make sure all aliases are converted to IDs. # We do this up here to make sure all aliases are converted to IDs.
......
...@@ -271,10 +271,24 @@ if ($cgi->param('id') && (defined $cgi->param('dependson') ...@@ -271,10 +271,24 @@ if ($cgi->param('id') && (defined $cgi->param('dependson')
$first_bug->set_dependencies(scalar $cgi->param('dependson'), $first_bug->set_dependencies(scalar $cgi->param('dependson'),
scalar $cgi->param('blocked')); scalar $cgi->param('blocked'));
} }
# Right now, you can't modify dependencies on a mass change. elsif (should_set('dependson') || should_set('blocked')) {
else { foreach my $bug (@bug_objects) {
$cgi->delete('dependson'); my %temp_deps;
$cgi->delete('blocked'); foreach my $type (qw(dependson blocked)) {
$temp_deps{$type} = { map { $_ => 1 } @{$bug->$type} };
if (should_set($type) && $cgi->param($type . '_action') =~ /^(add|remove)$/) {
foreach my $id (split(/[,\s]+/, $cgi->param($type))) {
if ($cgi->param($type . '_action') eq 'remove') {
delete $temp_deps{$type}{$id};
}
else {
$temp_deps{$type}{$id} = 1;
}
}
}
}
$bug->set_dependencies([ keys %{$temp_deps{'dependson'}} ], [ keys %{$temp_deps{'blocked'}} ]);
}
} }
my $any_keyword_changes; my $any_keyword_changes;
......
...@@ -229,6 +229,36 @@ ...@@ -229,6 +229,36 @@
</tr> </tr>
[% END %] [% END %]
<tr>
<th>
<label for="dependson">
Depends On:
</label>
</th>
<td colspan="3">
<input id="dependson" name="dependson" size="32">
<select name="dependson_action">
<option value="add">Add these IDs</option>
<option value="remove">Delete these IDs</option>
</select>
</td>
</tr>
<tr>
<th>
<label for="blocked">
Blocks:
</label>
</th>
<td colspan="3">
<input id="blocked" name="blocked" size="32">
<select name="blocked_action">
<option value="add">Add these IDs</option>
<option value="remove">Delete these IDs</option>
</select>
</td>
</tr>
[% IF Param('usestatuswhiteboard') %] [% IF Param('usestatuswhiteboard') %]
<tr> <tr>
<td align="right"> <td align="right">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment