Bug 978146: activity entry when setting flags isn't split across multiple rows
r=dkl,a=sgreen git-svn-id: svn://10.0.0.236/trunk@265425 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
c2e2a56414
commit
0e8e37b831
@ -1 +1 @@
|
|||||||
9051
|
9052
|
||||||
@ -1 +1 @@
|
|||||||
4d5e362475a95c83f478b846ed847ac5ebe31234
|
02719d27e660f1212450a563e0e0b8aefa6c6883
|
||||||
@ -890,16 +890,12 @@ sub update {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Record changes in the activity table.
|
# Record changes in the activity table.
|
||||||
my $sth = $dbh->prepare('INSERT INTO bugs_activity (bug_id, attach_id, who, bug_when,
|
require Bugzilla::Bug;
|
||||||
fieldid, removed, added)
|
|
||||||
VALUES (?, ?, ?, ?, ?, ?, ?)');
|
|
||||||
|
|
||||||
foreach my $field (keys %$changes) {
|
foreach my $field (keys %$changes) {
|
||||||
my $change = $changes->{$field};
|
my $change = $changes->{$field};
|
||||||
$field = "attachments.$field" unless $field eq "flagtypes.name";
|
$field = "attachments.$field" unless $field eq "flagtypes.name";
|
||||||
my $fieldid = get_field_id($field);
|
Bugzilla::Bug::LogActivityEntry($self->bug_id, $field, $change->[0],
|
||||||
$sth->execute($self->bug_id, $self->id, $user->id, $timestamp,
|
$change->[1], $user->id, $timestamp, undef, $self->id);
|
||||||
$fieldid, $change->[0], $change->[1]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (scalar(keys %$changes)) {
|
if (scalar(keys %$changes)) {
|
||||||
|
|||||||
@ -4053,11 +4053,12 @@ sub get_activity {
|
|||||||
|
|
||||||
# Update the bugs_activity table to reflect changes made in bugs.
|
# Update the bugs_activity table to reflect changes made in bugs.
|
||||||
sub LogActivityEntry {
|
sub LogActivityEntry {
|
||||||
my ($i, $col, $removed, $added, $whoid, $timestamp, $comment_id) = @_;
|
my ($bug_id, $field, $removed, $added, $user_id, $timestamp, $comment_id,
|
||||||
|
$attach_id) = @_;
|
||||||
my $sth = Bugzilla->dbh->prepare_cached(
|
my $sth = Bugzilla->dbh->prepare_cached(
|
||||||
'INSERT INTO bugs_activity
|
'INSERT INTO bugs_activity
|
||||||
(bug_id, who, bug_when, fieldid, removed, added, comment_id)
|
(bug_id, who, bug_when, fieldid, removed, added, comment_id, attach_id)
|
||||||
VALUES (?, ?, ?, ?, ?, ?, ?)');
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?)');
|
||||||
|
|
||||||
# in the case of CCs, deps, and keywords, there's a possibility that someone
|
# in the case of CCs, deps, and keywords, there's a possibility that someone
|
||||||
# might try to add or remove a lot of them at once, which might take more
|
# might try to add or remove a lot of them at once, which might take more
|
||||||
@ -4081,8 +4082,9 @@ sub LogActivityEntry {
|
|||||||
}
|
}
|
||||||
trick_taint($addstr);
|
trick_taint($addstr);
|
||||||
trick_taint($removestr);
|
trick_taint($removestr);
|
||||||
my $fieldid = get_field_id($col);
|
my $fieldid = get_field_id($field);
|
||||||
$sth->execute($i, $whoid, $timestamp, $fieldid, $removestr, $addstr, $comment_id);
|
$sth->execute($bug_id, $user_id, $timestamp, $fieldid, $removestr,
|
||||||
|
$addstr, $comment_id, $attach_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -421,10 +421,6 @@ if ($action eq 'search') {
|
|||||||
my $sth_set_bug_timestamp =
|
my $sth_set_bug_timestamp =
|
||||||
$dbh->prepare('UPDATE bugs SET delta_ts = ? WHERE bug_id = ?');
|
$dbh->prepare('UPDATE bugs SET delta_ts = ? WHERE bug_id = ?');
|
||||||
|
|
||||||
my $sth_updateFlag = $dbh->prepare('INSERT INTO bugs_activity
|
|
||||||
(bug_id, attach_id, who, bug_when, fieldid, removed, added)
|
|
||||||
VALUES (?, ?, ?, ?, ?, ?, ?)');
|
|
||||||
|
|
||||||
# Flags
|
# Flags
|
||||||
my $flag_ids =
|
my $flag_ids =
|
||||||
$dbh->selectcol_arrayref('SELECT id FROM flags WHERE requestee_id = ?',
|
$dbh->selectcol_arrayref('SELECT id FROM flags WHERE requestee_id = ?',
|
||||||
@ -439,7 +435,6 @@ if ($action eq 'search') {
|
|||||||
# so we have to log these changes manually.
|
# so we have to log these changes manually.
|
||||||
my %bugs;
|
my %bugs;
|
||||||
push(@{$bugs{$_->bug_id}->{$_->attach_id || 0}}, $_) foreach @$flags;
|
push(@{$bugs{$_->bug_id}->{$_->attach_id || 0}}, $_) foreach @$flags;
|
||||||
my $fieldid = get_field_id('flagtypes.name');
|
|
||||||
foreach my $bug_id (keys %bugs) {
|
foreach my $bug_id (keys %bugs) {
|
||||||
foreach my $attach_id (keys %{$bugs{$bug_id}}) {
|
foreach my $attach_id (keys %{$bugs{$bug_id}}) {
|
||||||
my @old_summaries = Bugzilla::Flag->snapshot($bugs{$bug_id}->{$attach_id});
|
my @old_summaries = Bugzilla::Flag->snapshot($bugs{$bug_id}->{$attach_id});
|
||||||
@ -447,8 +442,8 @@ if ($action eq 'search') {
|
|||||||
my @new_summaries = Bugzilla::Flag->snapshot($bugs{$bug_id}->{$attach_id});
|
my @new_summaries = Bugzilla::Flag->snapshot($bugs{$bug_id}->{$attach_id});
|
||||||
my ($removed, $added) =
|
my ($removed, $added) =
|
||||||
Bugzilla::Flag->update_activity(\@old_summaries, \@new_summaries);
|
Bugzilla::Flag->update_activity(\@old_summaries, \@new_summaries);
|
||||||
$sth_updateFlag->execute($bug_id, $attach_id || undef, $userid,
|
LogActivityEntry($bug_id, 'flagtypes.name', $removed, $added,
|
||||||
$timestamp, $fieldid, $removed, $added);
|
$userid, $timestamp, undef, $attach_id);
|
||||||
}
|
}
|
||||||
$sth_set_bug_timestamp->execute($timestamp, $bug_id);
|
$sth_set_bug_timestamp->execute($timestamp, $bug_id);
|
||||||
$updatedbugs{$bug_id} = 1;
|
$updatedbugs{$bug_id} = 1;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user