Commit 2a444f9d authored by Max Kanat-Alexander's avatar Max Kanat-Alexander

Bug 556695: New Hook: object_end_of_set

r=mkanat, a=mkanat (module owner)
parent 11e17bef
......@@ -784,6 +784,34 @@ validated by the C<VALIDATORS> specified for the object.
=back
=head2 object_end_of_set
Called during L<Bugzilla::Object/set>, after all the code of the function
has completed (so the value has been validated and the field has been set
to the new value). You can use this to perform actions after a value is
changed for specific fields on certain types of objects.
The new value is not specifically passed to this hook because you can
get it as C<< $object->{$field} >>.
Params:
=over
=item C<object>
The object that C<set> was called on. You will probably want to
do something like C<< if ($object->isa('Some::Class')) >> in your code to
limit your changes to only certain subclasses of Bugzilla::Object.
=item C<field>
The name of the field that was updated in the object.
=back
=head2 object_end_of_set_all
This happens at the end of L<Bugzilla::Object/set_all>. This is a
......
......@@ -306,6 +306,9 @@ sub set {
}
$self->{$field} = $value;
Bugzilla::Hook::process('object_end_of_set',
{ object => $self, field => $field });
}
sub set_all {
......
......@@ -386,6 +386,17 @@ sub object_end_of_create_validators {
}
sub object_end_of_set {
my ($self, $args) = @_;
my ($object, $field) = @$args{qw(object field)};
# Note that this is a made-up class, for this example.
if ($object->isa('Bugzilla::ExampleObject')) {
warn "The field $field has changed to " . $object->{$field};
}
}
sub object_end_of_set_all {
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