diff options
author | jocuri%softhome.net <> | 2004-12-29 08:38:03 +0100 |
---|---|---|
committer | jocuri%softhome.net <> | 2004-12-29 08:38:03 +0100 |
commit | 36b498ed9adb315297dc45217cc0646ef05127dc (patch) | |
tree | 3b182e635adaa38527825eeb5da01877c4652bda | |
parent | 3b8318a1a38c6b6c652e560139788e0ca22351e0 (diff) | |
download | bugzilla-36b498ed9adb315297dc45217cc0646ef05127dc.tar.gz bugzilla-36b498ed9adb315297dc45217cc0646ef05127dc.tar.xz |
Patch for bug 273339: Make attachment.cgi consistent with its activity log timestamps; patch by GavinS <bugzilla@chimpychompy.org>, r=vladd, a=justdave.
-rw-r--r-- | Bugzilla/Flag.pm | 8 | ||||
-rwxr-xr-x | attachment.cgi | 24 |
2 files changed, 18 insertions, 14 deletions
diff --git a/Bugzilla/Flag.pm b/Bugzilla/Flag.pm index 0fd4b047f..6661cac5e 100644 --- a/Bugzilla/Flag.pm +++ b/Bugzilla/Flag.pm @@ -360,12 +360,16 @@ sub migrate { # Moves a flag from one attachment to another. Useful for migrating # a flag from an obsolete attachment to the attachment that obsoleted it. - my ($old_attach_id, $new_attach_id) = @_; + my ($old_attach_id, $new_attach_id, $timestamp) = @_; + + # Use the date/time we were given if possible (allowing calling code + # to synchronize the comment's timestamp with those of other records). + $timestamp = ($timestamp ? &::SqlQuote($timestamp) : "NOW()"); # Update the record in the flags table to point to the new attachment. &::SendSQL("UPDATE flags " . "SET attach_id = $new_attach_id , " . - " modification_date = NOW() " . + " modification_date = $timestamp " . "WHERE attach_id = $old_attach_id"); } diff --git a/attachment.cgi b/attachment.cgi index b486bf6db..202c8818f 100755 --- a/attachment.cgi +++ b/attachment.cgi @@ -877,9 +877,13 @@ sub insert my $thedata = SqlQuote($data); my $isprivate = $::FORM{'isprivate'} ? 1 : 0; + # Figure out when the changes were made. + my ($timestamp) = Bugzilla->dbh->selectrow_array("SELECT NOW()"); + my $sql_timestamp = SqlQuote($timestamp); + # Insert the attachment into the database. SendSQL("INSERT INTO attachments (bug_id, creation_ts, filename, description, mimetype, ispatch, isprivate, submitter_id, thedata) - VALUES ($::FORM{'bugid'}, now(), $filename, $description, $contenttype, $::FORM{'ispatch'}, $isprivate, $::userid, $thedata)"); + VALUES ($::FORM{'bugid'}, $sql_timestamp, $filename, $description, $contenttype, $::FORM{'ispatch'}, $isprivate, $::userid, $thedata)"); # Retrieve the ID of the newly created attachment record. SendSQL("SELECT LAST_INSERT_ID()"); @@ -897,19 +901,20 @@ sub insert AppendComment($::FORM{'bugid'}, Bugzilla->user->login, $comment, - $isprivate); + $isprivate, + $timestamp); # Make existing attachments obsolete. my $fieldid = GetFieldID('attachments.isobsolete'); foreach my $obsolete_id (@{$::MFORM{'obsolete'}}) { SendSQL("UPDATE attachments SET isobsolete = 1 WHERE attach_id = $obsolete_id"); SendSQL("INSERT INTO bugs_activity (bug_id, attach_id, who, bug_when, fieldid, removed, added) - VALUES ($::FORM{'bugid'}, $obsolete_id, $::userid, NOW(), $fieldid, '0', '1')"); + VALUES ($::FORM{'bugid'}, $obsolete_id, $::userid, $sql_timestamp, $fieldid, '0', '1')"); # If the obsolete attachment has pending flags, migrate them to the new attachment. if (Bugzilla::Flag::count({ 'attach_id' => $obsolete_id , 'status' => 'pending', 'is_active' => 1 })) { - Bugzilla::Flag::migrate($obsolete_id, $attachid); + Bugzilla::Flag::migrate($obsolete_id, $attachid, $timestamp); } } @@ -917,8 +922,6 @@ sub insert my $owner = ""; if ($::FORM{'takebug'} && UserInGroup("editbugs")) { - SendSQL("select NOW()"); - my $timestamp = FetchOneColumn(); my @fields = ("assigned_to", "bug_status", "resolution", "login_name"); @@ -952,15 +955,12 @@ sub insert SendSQL("INSERT INTO bugs_activity " . "(bug_id, who, bug_when, fieldid, removed, added) " . " VALUES ($::FORM{'bugid'}, $::userid, " . - SqlQuote($timestamp) . + "$sql_timestamp " . ", $fieldid, $oldvalues[$i], $newvalues[$i])"); } } } - # Figure out when the changes were made. - my ($timestamp) = Bugzilla->dbh->selectrow_array("SELECT NOW()"); - # Create flags. my $target = Bugzilla::Flag::GetTarget(undef, $attachid); Bugzilla::Flag::process($target, $timestamp, \%::FORM); @@ -1122,7 +1122,7 @@ sub update my $quotedoldfilename = SqlQuote($oldfilename); my $fieldid = GetFieldID('attachments.filename'); SendSQL("INSERT INTO bugs_activity (bug_id, attach_id, who, bug_when, fieldid, removed, added) - VALUES ($bugid, $::FORM{'id'}, $::userid, NOW(), $fieldid, $quotedoldfilename, $quotedfilename)"); + VALUES ($bugid, $::FORM{'id'}, $::userid, $sql_timestamp, $fieldid, $quotedoldfilename, $quotedfilename)"); } if ($oldispatch ne $::FORM{'ispatch'}) { my $fieldid = GetFieldID('attachments.ispatch'); @@ -1137,7 +1137,7 @@ sub update if ($oldisprivate ne $::FORM{'isprivate'}) { my $fieldid = GetFieldID('attachments.isprivate'); SendSQL("INSERT INTO bugs_activity (bug_id, attach_id, who, bug_when, fieldid, removed, added) - VALUES ($bugid, $::FORM{'id'}, $::userid, NOW(), $fieldid, $oldisprivate, $::FORM{'isprivate'})"); + VALUES ($bugid, $::FORM{'id'}, $::userid, $sql_timestamp, $fieldid, $oldisprivate, $::FORM{'isprivate'})"); } # Update flags. |