Bug 587793: Add a new "object_end_of_create" hook so that extensions can

operate on any new objects
r=mkanat, a=mkanat


git-svn-id: svn://10.0.0.236/branches/BUGZILLA-4_0-BRANCH@261163 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
mkanat%bugzilla.org 2010-09-01 23:06:21 +00:00
parent 86ecf73007
commit dba7274ed2
4 changed files with 38 additions and 4 deletions

View File

@ -1 +1 @@
7392
7393

View File

@ -210,8 +210,7 @@ Params:
=over
=item C<bug> - The changed bug object, with all fields set to their updated
values.
=item C<bug> - The created bug object.
=item C<timestamp> - The timestamp used for all updates in this transaction,
as a SQL date string.
@ -821,6 +820,27 @@ or remove standard object columns using this hook.
=back
=head2 object_end_of_create
Called at the end of L<Bugzilla::Object/create>, after all other changes are
made to the database. This occurs inside a database transaction.
Params:
=over
=item C<class>
The name of the class that C<create> was called on. You can check this
like C<< if ($class->isa('Some::Class')) >> in your code, to perform specific
tasks for only certain classes.
=item C<object>
The created object.
=back
=head2 object_end_of_create_validators
Called at the end of L<Bugzilla::Object/run_create_validators>. You can

View File

@ -508,7 +508,12 @@ sub insert_create_data {
$dbh->do("INSERT INTO $table (" . join(', ', @field_names)
. ") VALUES ($qmarks)", undef, @values);
my $id = $dbh->bz_last_key($table, $class->ID_FIELD);
return $class->new($id);
my $object = $class->new($id);
Bugzilla::Hook::process('object_end_of_create', { class => $class,
object => $object });
return $object;
}
sub get_all {

View File

@ -411,6 +411,15 @@ sub object_columns {
}
}
sub object_end_of_create {
my ($self, $args) = @_;
my $class = $args->{'class'};
my $object = $args->{'object'};
warn "Created a new $class object!";
}
sub object_end_of_create_validators {
my ($self, $args) = @_;