package HTML::FormHandler::Render::Table;
# ABSTRACT: render a form with a table layout
$HTML::FormHandler::Render::Table::VERSION = '0.40068';
use Moose::Role;
with 'HTML::FormHandler::Render::Simple' =>
{ -excludes => [ 'render', 'wrap_field', 'render_end', 'render_start' ] };
use HTML::FormHandler::Render::Util ('process_attrs');
sub render {
my $self = shift;
my $output = $self->render_start;
$output .= $self->render_form_errors;
foreach my $field ( $self->sorted_fields ) {
$output .= $self->render_field($field);
}
$output .= $self->render_end;
return $output;
}
sub render_start {
my $self = shift;
my $attrs = process_attrs($self->attributes);
return qq{
\n";
return $output;
}
sub wrap_field {
my ( $self, $field, $rendered_field ) = @_;
my $attrs = process_attrs($field->wrapper_attributes);
my $output = qq{\n};
my $l_type = $field->widget eq 'Compound' ? 'legend' : 'label';
if ( $l_type eq 'label' ) {
$output .= '' . $self->render_label($field) . ' | ';
}
elsif ( $l_type eq 'legend' ) {
$output .= '' . $self->render_label($field) . ' |
';
}
if ( $l_type ne 'legend' ) {
$output .= '';
}
$output .= $rendered_field;
$output .= qq{\n$_} for $field->all_errors;
if ( $l_type ne 'legend' ) {
$output .= " | \n";
}
return $output;
}
use namespace::autoclean;
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
HTML::FormHandler::Render::Table - render a form with a table layout
=head1 VERSION
version 0.40068
=head1 SYNOPSIS
Include this role in a form:
package MyApp::Form::User;
use Moose;
with 'HTML::FormHandler::Render::Table';
Use in a template:
[% form.render %]
=head1 AUTHOR
FormHandler Contributors - see HTML::FormHandler
=head1 COPYRIGHT AND LICENSE
This software is copyright (c) 2017 by Gerda Shank.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
=cut