# Take a snapshot of flags before any changes.
my @old_summaries = snapshot($bug_id, $attach_id);
- # Cancel old request flags if we are obsoleting an attachment.
+ # Cancel pending requests if we are obsoleting an attachment.
if ($attach_id && $data->{'isobsolete'}) {
CancelRequests($bug_id, $attach_id);
}
AND i.type_id IS NULL",
undef, $bug_id);
- foreach my $flag_id (@$flag_ids) {
- clear($flag_id);
- }
+ foreach my $flag_id (@$flag_ids) { clear($flag_id) }
$flag_ids = $dbh->selectcol_arrayref(
"SELECT flags.id
AND (bugs.component_id = e.component_id OR e.component_id IS NULL)",
undef, $bug_id);
- foreach my $flag_id (@$flag_ids) {
- clear($flag_id);
- }
+ foreach my $flag_id (@$flag_ids) { clear($flag_id) }
# Take a snapshot of flags after changes.
my @new_summaries = snapshot($bug_id, $attach_id);
# Take a snapshot of flags before any changes.
my @old_summaries = snapshot($bug_id, $attach_id) if ($timestamp);
- foreach my $flag (@$request_ids) {
- clear($flag);
- }
+ foreach my $flag (@$request_ids) { clear($flag) }
# If $timestamp is undefined, do not update the activity table
return unless ($timestamp);
SendSQL("SELECT NOW()");
my $timestamp = FetchOneColumn();
- # Update flags. These calls must be done before updating the
- # 'attachments' table due to the deletion of request flags
- # on attachments being obsoleted.
+ # Update flags. We have to do this before committing changes
+ # to attachments so that we can delete pending requests if the user
+ # is obsoleting this attachment without deleting any requests
+ # the user submits at the same time.
my $target = Bugzilla::Flag::GetTarget(undef, $::FORM{'id'});
Bugzilla::Flag::process($target, $timestamp, \%::FORM);