]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 556736: Make the bug_end_of_update hook also send $old_bug to the hook
authorMax Kanat-Alexander <mkanat@bugzilla.org>
Fri, 2 Apr 2010 11:50:34 +0000 (04:50 -0700)
committerMax Kanat-Alexander <mkanat@bugzilla.org>
Fri, 2 Apr 2010 11:50:34 +0000 (04:50 -0700)
r=mkanat, a=mkanat (module owner)

Bugzilla/Bug.pm
Bugzilla/Hook.pm
extensions/Example/Extension.pm

index da5cf928526364809273fec162a519454ee62db2..0d6a4be1709f82fca532041e374748c5a19cc5f4 100644 (file)
@@ -865,10 +865,9 @@ sub update {
         $changes->{'dup_id'} = [$old_dup || undef, $cur_dup || undef];
     }
 
-    Bugzilla::Hook::process('bug_end_of_update', { bug       => $self,
-                                                   timestamp => $delta_ts,
-                                                   changes   => $changes,
-                                                 });
+    Bugzilla::Hook::process('bug_end_of_update', 
+        { bug => $self, timestamp => $delta_ts, changes => $changes,
+          old_bug => $old_bug });
 
     # If any change occurred, refresh the timestamp of the bug.
     if (scalar(keys %$changes) || $self->{added_comments}) {
index 556fda894e745b257ed83c193a1eabf3d6bf0de6..b8d763d2007f0d686b5ed62bdcacd1fb0cc976b1 100644 (file)
@@ -239,13 +239,22 @@ Params:
 
 =over
 
-=item C<bug> - The changed bug object, with all fields set to their updated
-values.
+=item C<bug> 
 
-=item C<timestamp> - The timestamp used for all updates in this transaction.
+The changed bug object, with all fields set to their updated values.
 
-=item C<changes> - The hash of changed fields. 
-C<$changes-E<gt>{field} = [old, new]>
+=item C<old_bug>
+
+A bug object pulled from the database before the fields were set to
+their updated values (so it has the old values available for each field).
+
+=item C<timestamp> 
+
+The timestamp used for all updates in this transaction.
+
+=item C<changes> 
+
+The hash of changed fields. C<< $changes->{field} = [old, new] >>
 
 =back
 
index 52ac66231fb52aca289d7c283794dc56c19a0570..835d36f807c95ccf921acf3ee94bd561385d6a4b 100644 (file)
@@ -119,13 +119,16 @@ sub bug_end_of_update {
     
     # This code doesn't actually *do* anything, it's just here to show you
     # how to use this hook.
-    my ($bug, $timestamp, $changes) = @$args{qw(bug timestamp changes)};
+    my ($bug, $old_bug, $timestamp, $changes) = 
+        @$args{qw(bug old_bug timestamp changes)};
     
     foreach my $field (keys %$changes) {
         my $used_to_be = $changes->{$field}->[0];
         my $now_it_is  = $changes->{$field}->[1];
     }
-    
+
+    my $old_summary = $old_bug->short_desc;
+
     my $status_message;
     if (my $status_change = $changes->{'bug_status'}) {
         my $old_status = new Bugzilla::Status({ name => $status_change->[0] });