package HTML::FormFu::Filter::CopyValue; use strict; use base 'HTML::FormFu::Filter'; __PACKAGE__->mk_accessors(qw/ field /); sub filter { my ( $self, $value ) = @_; return $value if ( defined $value && length $value ); my $field_name = $self->field or die "Parameter 'field' is not defined."; my $parent = $self->parent or die "Can't determine my parent."; my $field_value = $parent->form->input->{$field_name}; return $field_value; } 1; __END__ =head1 NAME HTML::FormFu::Filter::CopyValue - copy the value from an other field =head1 SYNOPSIS elements: - type: Text name: username - type: Text name: nickname filters: - type: CopyValue field: username =head1 DESCRIPTION Filter copying the value of another field if the original value of this field is empty. =head1 CAVEATS If the value of the original field contains an invalid value (a value that will be constrained through a constraint) this invalid value will be choosen for this field (the field with CopyValue filter). So the user has to change two fields or you remove the invalid value in a custom constraint. =head1 AUTHOR Mario Minati, C =head1 LICENSE This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself. =cut