/lib/HTML/FormHandler/Field/NoValue.pm

http://github.com/gshank/html-formhandler · Perl · 63 lines · 47 code · 14 blank · 2 comment · 4 complexity · b13247b5faedb3d0295ff5625723f4d0 MD5 · raw file

  1. package HTML::FormHandler::Field::NoValue;
  2. # ABSTRACT: base class for submit field
  3. use Moose;
  4. extends 'HTML::FormHandler::Field';
  5. =head1 SYNOPSIS
  6. This is the base class for the Submit & Reset fields. It can be used for fields that
  7. do not produce valid 'values'. It should not be used for fields that
  8. produce a value or need validating.
  9. =cut
  10. has 'html' => ( is => 'rw', isa => 'Str', default => '' );
  11. has 'value' => (
  12. is => 'rw',
  13. predicate => 'has_value',
  14. clearer => 'clear_value',
  15. );
  16. sub _result_from_fields {
  17. my ( $self, $result ) = @_;
  18. my $value = $self->get_default_value;
  19. if ( $value ) {
  20. $self->value($value);
  21. }
  22. $self->_set_result($result);
  23. $result->_set_field_def($self);
  24. return $result;
  25. }
  26. sub _result_from_input {
  27. my ( $self, $result, $input, $exists ) = @_;
  28. $self->_set_result($result);
  29. $result->_set_field_def($self);
  30. return $result;
  31. }
  32. sub _result_from_object {
  33. my ( $self, $result, $value ) = @_;
  34. $self->_set_result($result);
  35. $result->_set_field_def($self);
  36. return $result;
  37. }
  38. sub fif { }
  39. has '+widget' => ( default => '' );
  40. has '+noupdate' => ( default => 1 );
  41. sub validate_field { }
  42. #sub clear_value { }
  43. sub render {
  44. my $self = shift;
  45. return $self->html;
  46. }
  47. __PACKAGE__->meta->make_immutable;
  48. use namespace::autoclean;
  49. 1;