Commit cd51ea19 authored by Christian Legnitto's avatar Christian Legnitto Committed by Max Kanat-Alexander

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

operate on any new objects r=mkanat, a=mkanat
parent e2048ade
......@@ -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
......
......@@ -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 {
......
......@@ -408,6 +408,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) = @_;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment