HTML::FormFu::Element::Password - Password form field


HTML-FormFu documentation Contained in the HTML-FormFu distribution.

Index


Code Index:

NAME

Top

HTML::FormFu::Element::Password - Password form field

SYNOPSIS

Top

    my $element = $form->element( Password => 'foo' );

DESCRIPTION

Top

Password form field.

METHODS

Top

render_value

Normally, when a form is redisplayed because of errors, password fields lose their values, requiring the user to retype it.

If render_value is true, password fields won't lose their value.

Default value: false

SEE ALSO

Top

Is a sub-class of, and inherits methods from HTML::FormFu::Element::_Input, HTML::FormFu::Element::_Field, HTML::FormFu::Element

HTML::FormFu

AUTHOR

Top

Carl Franks, cfranks@cpan.org

LICENSE

Top

This library is free software, you can redistribute it and/or modify it under the same terms as Perl itself.


HTML-FormFu documentation Contained in the HTML-FormFu distribution.

package HTML::FormFu::Element::Password;
use Moose;

extends 'HTML::FormFu::Element';

with 'HTML::FormFu::Role::Element::Input';

use HTML::FormFu::Constants qw( $EMPTY_STR );

has render_value => ( is => 'rw', traits => ['Chained'] );

after BUILD => sub {
    my $self = shift;

    $self->field_type('password');

    return;
};

sub process_value {
    my ( $self, $value ) = @_;

    my $submitted = $self->form->submitted;
    my $new;

    if ( $submitted && $self->render_value ) {
        $new
            = defined $value
            ? $value
            : $EMPTY_STR;

        if ( $self->retain_default && $new eq $EMPTY_STR ) {
            $new = $self->value;
        }

        $self->value($new);
    }
    elsif ($submitted) {
        $new = $EMPTY_STR;
    }
    else {
        $new = undef;
    }

    return $new;
}

__PACKAGE__->meta->make_immutable;

1;

__END__