diff --git a/lib/WebGUI/Form/Control.pm b/lib/WebGUI/Form/Control.pm index 2bb57bfa3..71dd9c871 100644 --- a/lib/WebGUI/Form/Control.pm +++ b/lib/WebGUI/Form/Control.pm @@ -712,7 +712,11 @@ to re-create it in a template. sub toTemplateVars { my ( $self ) = @_; - my %var = %{$self->get}; + my %var = ( + %{$self->get}, + label => $self->getLabel, + label_nohover => $self->get('label'), + ); return \%var; } diff --git a/lib/WebGUI/FormBuilder.pm b/lib/WebGUI/FormBuilder.pm index 9e2d8bb01..8ae8bee9c 100644 --- a/lib/WebGUI/FormBuilder.pm +++ b/lib/WebGUI/FormBuilder.pm @@ -221,15 +221,9 @@ sub toTemplateVars { $var->{ "${prefix}_fieldloop" } = $fieldLoop; for my $field ( @{$self->fields} ) { my $name = $field->get('name'); - my $props = { - name => $name, - field => $field->toHtml, - label => $field->getLabel, - label_nohover => $field->get('label'), - pretext => $field->get('pretext'), - subtext => $field->get('subtext'), - hoverhelp => $field->get('hoverhelp'), - }; + my $props = $field->toTemplateVars; + # Add the whole field to the vars + $props->{ field } = $field->toHtml; for my $key ( keys %{$props} ) { $var->{ "${prefix}_field_${name}_${key}" } = $props->{$key}; } diff --git a/t/tests/Test/WebGUI/Form/Control.pm b/t/tests/Test/WebGUI/Form/Control.pm index e4197e049..61fae1ba3 100644 --- a/t/tests/Test/WebGUI/Form/Control.pm +++ b/t/tests/Test/WebGUI/Form/Control.pm @@ -71,7 +71,13 @@ sub t_03_toTemplateVars : Test(2) { name => 'form1', }); - cmp_deeply $form->get, superhashof({ name => 'form1' }), 'toTemplateVars hashref'; + cmp_deeply $form->toTemplateVars, + superhashof({ + name => 'form1', + label => $form->getLabel, + label_nohover => $form->get('label'), + }), + 'toTemplateVars hashref'; isnt $form->toTemplateVars, $form->get, 'toTemplateVars creates safe hashref'; }