view release on metacpan or search on metacpan
lib/HTML/FormHandler/Manual/Rendering.pod view on Meta::CPAN
form#id_of_your_form div div label, form#id_of_your_form div div input {
float: left;
display: inline-block;
width: 40%
} /* make sure the parent element is sized appropriately. 700px is a good width */
Going a little bit farther in using FormHandler rendering, you can render
each of the fields individually, using 'render' or 'renderx':
<form id="myform" action="/edit/example" method="post">
<fieldset><legend>My Foo</legend>
[% form.field('foo').render %]
</fieldset>
[% form.field('bar').renderx(element_class => 'cb33') %]
[% form.field('save').render %]
</form>
If you don't want the wrappers, use a widget_wrapper of 'None'.
has '+widget_wrapper' => ( default => 'None' );
lib/HTML/FormHandler/Manual/Rendering.pod view on Meta::CPAN
Here is the definition of a fieldset block that contains two fields:
has_field 'foo';
has_field 'bar';
has_block 'first_fset' => ( tag => 'fieldset, label => 'Two Fields',
render_list => ['foo', 'bar'] );
The 'first_fset' block will render like this:
<fieldset><legend>Two Fields</legend>
<div>
<label>Foo</label>
<input type="text" name="foo" id="foo" value="" />
<div>
<div>
<label>Bar</label>
<input type="text" name="bar" id="bar" value="" />
<div>
</fieldset>
lib/HTML/FormHandler/Manual/Templates.pod view on Meta::CPAN
[%~ content ~%][%~ f.label %]
</label>
</div>
[% END -%]
[% BLOCK wrapper_none -%]
[% content %]
[% END -%]
[% BLOCK wrapper_fieldset -%]
<fieldset[% process_attrs(f.wrapper_attributes)%]><legend>[% f.label %]</legend>
[% content -%]
</fieldset>
[% END -%]
=head1 AUTHOR
FormHandler Contributors - see HTML::FormHandler
=head1 COPYRIGHT AND LICENSE
lib/HTML/FormHandler/Render/Simple.pm view on Meta::CPAN
return "\n$rendered_field" if ! $field->do_wrapper;
my $output = "\n";
my $wrapper_tag = $field->get_tag('wrapper_tag');
$wrapper_tag ||= $field->has_flag('is_repeatable') ? 'fieldset' : 'div';
my $attrs = process_attrs($field->wrapper_attributes);
$output .= qq{<$wrapper_tag$attrs>};
if( $wrapper_tag eq 'fieldset' ) {
$output .= '<legend>' . $field->loc_label . '</legend>';
}
elsif ( ! $field->get_tag('label_none') && $field->do_label && length( $field->label ) > 0 ) {
$output .= "\n" . $self->render_label($field);
}
$output .= "\n$rendered_field";
$output .= qq{\n<span class="error_message">$_</span>}
for $field->all_errors;
$output .= "\n</$wrapper_tag>";
lib/HTML/FormHandler/Render/Table.pm view on Meta::CPAN
my $output .= "</table>\n";
$output .= "</form>\n";
return $output;
}
sub wrap_field {
my ( $self, $field, $rendered_field ) = @_;
my $attrs = process_attrs($field->wrapper_attributes);
my $output = qq{\n<tr$attrs>};
my $l_type = $field->widget eq 'Compound' ? 'legend' : 'label';
if ( $l_type eq 'label' ) {
$output .= '<td>' . $self->render_label($field) . '</td>';
}
elsif ( $l_type eq 'legend' ) {
$output .= '<td>' . $self->render_label($field) . '</td></tr>';
}
if ( $l_type ne 'legend' ) {
$output .= '<td>';
}
$output .= $rendered_field;
$output .= qq{\n<span class="error_message">$_</span>} for $field->all_errors;
if ( $l_type ne 'legend' ) {
$output .= "</td></tr>\n";
}
return $output;
}
use namespace::autoclean;
1;
__END__
lib/HTML/FormHandler/Widget/Block.pm view on Meta::CPAN
$attr->{class} = $self->class if $self->has_class;
my $attr_str = process_attrs($attr);
return $attr_str;
}
sub render_label {
my $self = shift;
my $label = '';
if ( $self->has_label ) {
my $label_tag = $self->label_tag || 'span';
$label_tag = 'legend' if lc $self->tag eq 'fieldset';
my $label_str = $self->form->_localize( $self->label );
my $attr_str = '';
$attr_str = process_attrs( { class => $self->label_class } ) if $self->has_label_class;
$label = qq{<$label_tag$attr_str>$label_str</$label_tag>};
}
return $label;
}
sub render_from_list {
my ( $self, $result ) = @_;
lib/HTML/FormHandler/Widget/Block.pm view on Meta::CPAN
=item class
Arrayref of classes for the HTML element.
=item attr
Other attributes for the HTML element.
=item label_tag
Tag to use for the label. Default: 'span'; default for 'fieldset' is 'legend'.
=item label_class
Classes for the label.
=item label
Label string. Will be localized.
=back
lib/HTML/FormHandler/Widget/Wrapper/Base.pm view on Meta::CPAN
my $attr = $self->label_attributes( $result );
push @{ $attr->{class} }, @$class if $class;
my $attrs = process_attrs($attr);
my $label;
if( $self->does_wrap_label ) {
$label = $self->wrap_label( $self->label );
}
else {
$label = $self->get_tag('label_no_filter') ? $self->loc_label : $self->html_filter($self->loc_label);
}
$label .= $self->get_tag('label_after') if $label_tag ne 'legend';
my $id = $self->id;
my $for = $label_tag eq 'label' ? qq{ for="$id"} : '';
return qq{<$label_tag$attrs$for>$label</$label_tag>};
}
sub wrap_checkbox {
my ( $self, $result, $rendered_widget, $default_wrapper ) = @_;
my $option_wrapper = $self->option_wrapper || $default_wrapper;
if ( $option_wrapper && $option_wrapper ne 'standard' &&
lib/HTML/FormHandler/Widget/Wrapper/Fieldset.pm view on Meta::CPAN
with 'HTML::FormHandler::Widget::Wrapper::Base';
use HTML::FormHandler::Render::Util ('process_attrs');
sub wrap_field {
my ( $self, $result, $rendered_widget ) = @_;
my $wattrs = process_attrs($self->wrapper_attributes);
my $output .= qq{\n<fieldset$wattrs>};
$output .= qq{\n<legend>} . $self->loc_label . '</legend>';
$output .= "\n$rendered_widget";
$output .= qq{\n<span class="error_message">$_</span>}
for $result->all_errors;
$output .= "\n</fieldset>";
return $output;
}
lib/HTML/FormHandler/Widget/Wrapper/Simple.pm view on Meta::CPAN
my $wrapper_tag;
if( $self->do_wrapper ) {
$output .= $self->get_tag('before_wrapper');
$wrapper_tag = $self->get_tag('wrapper_tag');
# default wrapper tags
$wrapper_tag ||= $self->has_flag('is_repeatable') ? 'fieldset' : 'div';
# get attribute string
my $attrs = process_attrs( $self->wrapper_attributes($result) );
# write wrapper tag
$output .= qq{\n<$wrapper_tag$attrs>};
$label_tag = 'legend' if $wrapper_tag eq 'fieldset';
}
# write label; special processing for checkboxes
$rendered_widget = $self->wrap_checkbox($result, $rendered_widget)
if ( lc $self->widget eq 'checkbox' );
$output .= "\n" . $self->do_render_label($result, $label_tag)
if $self->do_label;
# append 'before_element'
$output .= $self->get_tag('before_element');
# start controls div
share/templates/form/form_in_one.tt view on Meta::CPAN
[% BLOCK wrapper_wrap_label -%]
<div[% process_attrs(f.wrapper_attributes) %]><label[% process_attrs(f.label_attributes) %] for="[% f.html_name %]">[%~ content ~%][%~ f.label %]</label></div>
[% END -%]
[% BLOCK wrapper_none -%]
[% content %]
[% END -%]
[% BLOCK wrapper_fieldset -%]
<fieldset[% process_attrs(f.wrapper_attributes)%]><legend>[% f.label %]</legend>
[% content -%]
</fieldset>
[% END -%]
share/templates/wrapper/fieldset.tt view on Meta::CPAN
<fieldset[% process_attrs(f.wrapper_attributes)%]><legend>[% f.label %]</legend>
[% content -%]
</fieldset>
t/blocks/basic.t view on Meta::CPAN
$form->process;
my $rendered = $form->render;
my $expected =
'<form id="test_form" method="post">
<div class="form_messages"></div>
<h2>You got to the Block! Congratulations.</h2>
<div>
<label for="foo">Foo</label>
<input type="text" name="foo" id="foo" value="" />
</div>
<fieldset><legend>My Special Bar</legend>
<div>
<label for="bar">Bar</label>
<input type="text" name="bar" id="bar" value="" />
</div>
</fieldset>
</form>';
is_html( $rendered, $expected, 'block rendered ok' );
$form->process( params => { foo => 'abc', bar => 'def' } );
ok( $form->has_errors, 'form has errors' );
t/blocks/build_render_list_method.t view on Meta::CPAN
$form->process;
my $rendered = $form->render;
my $expected =
'<form id="test_form" method="post">
<div class="form_messages"></div>
<h2>You got to the Block! Congratulations.</h2>
<div>
<label for="foo">Foo</label>
<input type="text" name="foo" id="foo" value="" />
</div>
<fieldset><legend>My Special Bar</legend>
<div>
<label for="bar">Bar</label>
<input type="text" name="bar" id="bar" value="" />
</div>
</fieldset>
</form>';
is_html( $rendered, $expected, 'block rendered ok' );
$form->process( params => { foo => 'abc', bar => 'def' } );
ok( $form->has_errors, 'form has errors' );
t/blocks/nested.t view on Meta::CPAN
}
my $form = MyApp::Form::Nested->new;
ok( $form, 'form built' );
$form->process;
my $rendered = $form->render;
my $expected =
'<form id="nested_form" method="post">
<div class="form_messages"></div>
<fieldset><legend>First Fieldset</legend>
<div>
<label for="foo">Foo</label>
<input type="text" id="foo" name="foo" value="">
</div>
<div>
<label for="bar">Bar</label>
<input type="text" id="bar" name="bar" value="">
</div>
<div>
<label for="pax">Pax</label>
t/bootstrap/control_states.t view on Meta::CPAN
use Test::More;
use HTML::FormHandler::Test;
$ENV{LANGUAGE_HANDLE} = 'en_en';
{
package MyApp::Form::CtrlStates::Theme;
use Moose::Role;
with 'HTML::FormHandler::Widget::Theme::Bootstrap';
sub build_form_tags {{
after_start => '<fieldset><legend>Form control states</legend>',
before_end => '</fieldset>',
}}
sub build_update_subfields {{
focusedInput => { element_class => ['input-xlarge', 'focused'] },
uneditableInput => { element_class => ['input-xlarge', 'uneditable-input'] },
disabledInput => { element_class => ['input-xlarge'],
element_attr => { placeholder => 'Disabled input hereâ¦' } },
optionsCheckbox2 => { element_class => ['checkbox'],
option_label => 'This is a disabled checkbox' },
t/bootstrap/control_states.t view on Meta::CPAN
<button type="submit" class="btn btn-primary" name="form_actions.save" id="form_actions.save">Save changes</button>
<button type="reset" class="btn" name="form_actions.cancel" id="form_actions.cancel">Cancel</button>
</div>';
$rendered = $form->field('form_actions')->render;
is_html( $rendered, $expected, 'form_actions rendered ok' );
$expected =
'<form id="test_form" class="form-horizontal" method="post">
<fieldset>
<legend>Form control states</legend>
<div class="alert alert-error"><span class="error_message">There were errors in your form</span></div>
<div class="control-group">
<label class="control-label" for="focusedInput">Focused input</label>
<div class="controls">
<input class="input-xlarge focused" id="focusedInput" name="focusedInput" type="text" value="This is focusedâ¦" />
</div>
</div>
<div class="control-group">
<label class="control-label" for="uneditableInput">Uneditable input</label>
<div class="controls">
t/bootstrap/controls.t view on Meta::CPAN
# widget wrapper must be set before the fields are built in BUILD
sub before_build {
my $self = shift;
$self->set_widget_wrapper('Bootstrap');
}
sub build_do_form_wrapper {1}
sub build_form_element_class {['form-horizontal']}
sub build_form_wrapper_class {['span8']}
sub build_form_tags {{
wrapper_tag => 'div',
after_start => '<fieldset><legend>Controls Bootstrap supports</legend>',
before_end => '</fieldset>',
}}
sub build_update_subfields {{
input01 => { tags => { after_element => '<p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p>' },
element_attr => { class => 'input-xlarge' },
},
optionsCheckbox => { option_label => 'Option one is this and thatâbe sure to include why itâs great' },
fileInput => { element_attr => { class => 'input-file' } },
textarea => { element_attr => { class => 'input-xlarge' } },
t/bootstrap/controls.t view on Meta::CPAN
}
sub options_multiSelect {
return ( 1 => 1, 2 => 2, 3 => 3, 4 => 4, 5 => 5 );
}
}
my $form = MyApp::Form::Controls->new;
$form->process;
my $rendered = $form->render_start;
my $expected = '<div class="span8"><form class="form-horizontal" id="control_form" method="post"><fieldset><legend>Controls Bootstrap supports</legend>';
is($rendered, $expected, 'form start rendered correctly');
# text field
$expected =
'<div class="control-group">
<label class="control-label" for="input01">Text input</label>
<div class="controls">
<input type="text" class="input-xlarge" id="input01" name="input01" value="" />
<p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p>
</div>
t/bootstrap/controls.t view on Meta::CPAN
<button id="actions.save" name="actions.save" type="submit" class="btn btn-primary">Save changes</button>
<button id="actions.cancel" name="actions.cancel" type="reset" class="btn">Cancel</button>
</div>';
$rendered = $form->field('actions')->render;
is_html($rendered, $expected, 'actions renders ok' );
$expected = '
<div class="span8">
<form class="form-horizontal" id="control_form" method="post">
<fieldset>
<legend>Controls Bootstrap supports</legend>
<div class="form_messages"></div>
<div class="control-group">
<label class="control-label" for="input01">Text input</label>
<div class="controls">
<input type="text" class="input-xlarge" id="input01" name="input01" value="" />
<p class="help-block">In addition to freeform text, any HTML5 text-based input appears like so.</p>
</div>
</div>
<div class="control-group">
<label class="control-label" for="optionsCheckbox">Checkbox</label>
t/bootstrap/ext_controls.t view on Meta::CPAN
use Test::More;
use HTML::FormHandler::Test;
{
package MyApp::Form::ExtControls;
use HTML::FormHandler::Moose;
extends 'HTML::FormHandler';
with 'HTML::FormHandler::Widget::Theme::Bootstrap';
sub build_form_tags {{
after_start => "<fieldset>\n<legend>Extending form controls</legend>",
}}
sub build_process_list { ['form_sizes', 'prependedInput', 'appendedInput', 'inlineCheckboxes',
'checkboxList'] }
has_block 'form_sizes' => ( type => 'Bootstrap', render_list => ['text1', 'text2', 'text3'],
label => 'Form sizes',
after_controls => '<p class="help-block">Use the same <code>.span*</code> classes from the grid system for input sizes.</p>',
);
# these three fields are in the 'form_sizes' block
has_field 'text1' => ( widget_wrapper => 'None', element_class => ['span2'],
element_attr => { placeholder => '.span2' } );
t/bootstrap/ext_controls.t view on Meta::CPAN
</div>
</div>';
$rendered = $form->field('optionsRadios')->render;
is_html( $rendered, $expected, 'radio rendered ok' );
$expected =
'<div class="row">
<div class="span8">
<form class="form-horizontal">
<fieldset>
<legend>Extending form controls</legend>
<div class="control-group">
<label class="control-label">Form sizes</label>
<div class="controls">
<input id="text1" name="text1" class="span2" type="text" placeholder=".span2" value="" />
<input id="text2" name="text2" class="span3" type="text" placeholder=".span3" value="" />
<input id="text3" name="text3" class="span4" type="text" placeholder=".span4" value="" />
<p class="help-block">Use the same <code>.span*</code> classes from the grid system for input sizes.</p>
</div>
</div>
<div class="control-group">
t/render/array.t view on Meta::CPAN
has_field 'my_rep' => ( type => 'Repeatable', 'num_when_empty' => 2 );
# we want a label but not a div wrapper
has_field 'my_rep.foo' => ( do_wrapper => 0 );
has_field 'bar';
}
my $form = Test::Repeatable::Array->new;
my $expected =
'<fieldset id="my_array"><legend>My array</legend>
<input type="text" name="my_array.0" id="my_array.0" value="" />
<input type="text" name="my_array.1" id="my_array.1" value="" />
</fieldset>';
my $rendered = $form->field('my_array')->render;
is_html($rendered, $expected, 'repeatable array field renders correctly');
$expected =
'<fieldset id="my_array2"><legend>My array2</legend>
<input type="text" name="my_array2.0" id="my_array2.0" value="" />
<input type="text" name="my_array2.1" id="my_array2.1" value="" />
</fieldset>';
$rendered = $form->field('my_array2')->render;
is_html($rendered, $expected, 'repeatable array field renders correctly');
$rendered = $form->field('my_rep')->render;
$expected =
'<div class="hfh-repinst" id="my_rep.0">
<label for="my_rep.0.foo">Foo</label>
t/render/array.t view on Meta::CPAN
<label for="my_rep.1.foo">Foo</label>
<input type="text" name="my_rep.1.foo" id="my_rep.1.foo" value="" />
</div>';
is_html($rendered, $expected, 'simple repeatable renders correctly');
$form->process( params => {} );
my $rendered_form = $form->render;
$rendered = $form->field('my_array')->render;
$expected =
'<fieldset id="my_array"><legend>My array</legend>
<input type="text" name="my_array.0" id="my_array.0" value="" />
<input type="text" name="my_array.1" id="my_array.1" value="" />
</fieldset>';
is_html($rendered, $expected, 'repeatable array renders after process' );
$rendered = $form->field('my_rep')->render;
$expected =
'<div class="hfh-repinst" id="my_rep.0">
<label for="my_rep.0.foo">Foo</label>
<input type="text" name="my_rep.0.foo" id="my_rep.0.foo" value="" />
t/render/array.t view on Meta::CPAN
<input type="text" name="my_rep.1.foo" id="my_rep.1.foo" value="" />
</div>';
is_html($rendered, $expected, 'simple repeatable renders correctly after process');
$form->process( params => { foo => 'xxx', bar => 'yyy',
'my_array.0' => 'one', 'my_array.1' => 'two',
'my_rep.0.foo' => 'fee', 'my_rep.1.foo' => 'fie' } );
$rendered = $form->render;
$rendered = $form->field('my_array')->render;
$expected =
'<fieldset id="my_array"><legend>My array</legend>
<input type="text" name="my_array.0" id="my_array.0" value="one" />
<input type="text" name="my_array.1" id="my_array.1" value="two" />
</fieldset>';
is_html($rendered, $expected, 'array renders ok after processing with params' );
$rendered = $form->field('my_rep')->render;
$expected =
'<div class="hfh-repinst" id="my_rep.0">
<label for="my_rep.0.foo">Foo</label>
<input type="text" name="my_rep.0.foo" id="my_rep.0.foo" value="fee" />
t/render/compound.t view on Meta::CPAN
has_field 'start_date.year' => ( type => 'Integer', range_start => 2000,
range_end => 2020 );
}
$form = Test::DT->new;
my $params = { 'start_date.month' => 7, 'start_date.day' => 14, 'start_date.year' => '2006' };
$form->process( $params );
$rendered = $form->field('start_date')->render;
is_html( $rendered,
'<fieldset class="start_date" id="start_date"><legend>Start date</legend>
<div>
<label for="start_date.month">Month: </label>
<input type="text" name="start_date.month" id="start_date.month" size="8" value="7" />
</div>
<div>
<label for="start_date.day">Day: </label>
<input type="text" name="start_date.day" id="start_date.day" size="8" value="14" />
</div>
<div>
<label for="start_date.year">Year: </label>
t/render/rep_wrapper.t view on Meta::CPAN
}
}
my $form = Test::Form->new;
$form->process({});
ok( $form, 'form built' );
my $rendered = $form->render;
my $expected =
'<form id="test_form" method="post">
<div class="form_messages"></div>
<fieldset class="hfhrep" id="foo"><legend>Foo Records</legend>
<div class="somewrapper"><span>0</span>
<div class="hfh repinst" id="foo.0">
<div><input type="hidden" name="foo.0.id" id="foo.0.id" value="" /></div>
<div>
<label for="foo.0.one">One</label>
<input type="text" name="foo.0.one" id="foo.0.one" value="" />
</div>
<div>
<label for="foo.0.two">Two</label>
<input type="text" name="foo.0.two" id="foo.0.two" value="" />
t/render/repeatable.t view on Meta::CPAN
}
}
my $form = Test::Form->new;
$form->process({});
ok( $form, 'form built' );
my $rendered = $form->render;
my $expected =
'<form id="test_form" method="post">
<div class="form_messages"></div>
<fieldset class="hfhrep" id="foo"><legend>Foo Records</legend>
<div class="hfh repinst" id="foo.0">
<div><input type="hidden" name="foo.0.id" id="foo.0.id" value="" /></div>
<div>
<label for="foo.0.one">One</label>
<input type="text" name="foo.0.one" id="foo.0.one" value="" />
</div>
<div>
<label for="foo.0.two">Two</label>
<input type="text" name="foo.0.two" id="foo.0.two" value="" />
</div>
t/render/simple.t view on Meta::CPAN
my $output7 = $form->render_field( $form->field('selected') );
is_html( $output7,
'
<div><label class="label" for="selected">Selected</label><input type="checkbox" name="selected" id="selected" value="1" checked="checked" />
</div>',
'output from boolean' );
my $output8 = $form->render_field( $form->field('start_date') );
is_html( $output8,
'
<fieldset class="start_date" id="start_date"><legend>Start date</legend>
<div><label class="label" for="start_date.month">Month</label><input type="text" name="start_date.month" id="start_date.month" size="8" value="7" />
</div>
<div><label class="label" for="start_date.day">Day</label><input type="text" name="start_date.day" id="start_date.day" size="8" value="14" />
</div>
<div><label class="label" for="start_date.year">Year</label><input type="text" name="start_date.year" id="start_date.year" size="8" value="2006" />
</div>
</fieldset>',
'output from DateTime' );
my $output9 = $form->render_field( $form->field('submit') );
t/render/tags.t view on Meta::CPAN
return $attr;
}
}
my $form = Test::Form->new;
$form->process({});
my $rendered = $form->render;
unlike( $rendered, qr/fieldset/, 'no fieldset rendered' );
unlike( $rendered, qr/Foo: /, 'no colon in label' );
like( $rendered, qr/<p/, 'wrapper tag correct' );
unlike( $rendered, qr/<fieldset class="multi"><legend>Multi<\/legend>/, 'no fieldset around compound' );
like( $rendered, qr/<span class="label">Bar<\/span>/, 'label formatted with span and class' );
ok( ! exists $form->field('foo')->tags->{form_text}, 'no form widgets tags in fields' );
my $exp_tags = { wrapper_tag => 'p', label_tag => 'span' };
my $got_tags = $form->field('records.0')->tags;
is_deeply( $got_tags, $exp_tags, 'correct tags' );
{
t/render/widgets.t view on Meta::CPAN
my ( $self, $field, $type, $attr ) = @_;
$attr->{class} = 'label' if $type eq 'label';
return $attr;
}
}
my $form = Test::Form->new;
ok( $form, 'create form' );
my $expected =
'<fieldset id="hobbies"><legend class="label">Hobbies</legend>
<div>
<label class="label" for="hobbies.0">0</label>
<input type="text" name="hobbies.0" id="hobbies.0" value="" tabindex="2" />
</div>
</fieldset>';
is_html( $form->field('hobbies')->render, $expected, 'output from repeatable with num_when_empty == 1'
);
my $params = {
test_field => 'something',
t/render/widgets.t view on Meta::CPAN
<label class="label" for="selected">Selected</label>
<label class="checkbox" for="selected">
<input checked="checked" id="selected" name="selected" type="checkbox" value="1" />
</label>
</div>',
'output from boolean'
);
$rendered = $form->field('start_date')->render;
is_html( $rendered,
'<fieldset id="start_date"><legend class="label">Start date</legend>
<div>
<label class="label" for="start_date.month">Month</label>
<input type="text" name="start_date.month" id="start_date.month" size="8" value="7" />
</div>
<div>
<label class="label" for="start_date.day">Day</label>
<input type="text" name="start_date.day" id="start_date.day" size="8" value="14" />
</div>
<div>
<label class="label" for="start_date.year">Year</label>
t/render/widgets.t view on Meta::CPAN
);
$rendered = $form->render_start;
is_html( $rendered,
'<form id="testform" method="post"><fieldset class="form_wrapper">',
'Form start OK'
);
$rendered = $form->field('hobbies')->render;
is_html( $rendered, '
<fieldset id="hobbies"><legend class="label">Hobbies</legend>
<div>
<label class="label" for="hobbies.0">0</label>
<input type="text" name="hobbies.0" id="hobbies.0" value="eating" tabindex="2" />
</div>
<div>
<label class="label" for="hobbies.1">1</label>
<input type="text" name="hobbies.1" id="hobbies.1" value="sleeping" tabindex="2" />
</div>
<div>
<label class="label" for="hobbies.2">2</label>
<input type="text" name="hobbies.2" id="hobbies.2" value="not chasing mice" tabindex="2" />
</div>
</fieldset>', 'output from repeatable after processing result with 3 items' );
is( $form->field('no_render')->render, '', 'no_render' );
is_html( $form->field('plain')->render, '<input type="text" name="plain" id="plain" value="No divs!!" />', 'renders without wrapper');
is_html( $form->field('boxed')->render,
'<fieldset class="boxed"><legend>Boxed</legend>
<input type="text" name="boxed" id="boxed" value="Testing single fieldset" />
</fieldset>', 'fieldset wrapper renders' );
is_html( $form->field('element_wrapper_field')->render,
'<div>
<label class="label" for="element_wrapper_field">Element wrapper field</label>
<div class="large">
<input id="element_wrapper_field" name="element_wrapper_field" type="text" value="" />
</div>
</div>',