[html-formfu] labels from DBIC?
Josef Chladek
josef.chladek at gmail.com
Sun Jul 6 19:03:16 BST 2008
hello list,
is there a way to have formfu make dynamic labels, aka labels from a
dbic-row?
I have a form with a has_many, which in the first step i populate
dynamically like this:
sub buildCompaniesForm : Private {
my ( $self, $c ) = @_;
my $companies = $c->model('Matrix::Companies')->search({zeugnis =>
'y' },{order_by => 'long_name asc'});
my @elements; my $count = 0;
push @elements, { type => 'Fieldset', legend => 'Your Values', id
=> 'zeugnis_fs'};
while (my $company = $companies->next) {
$count++;
push @elements , {
type => 'Multi',
label => $company->long_name." *",
elements => [ {
type => 'Radiogroup',
name => 'note_'.$count, options => [[ '1', '1' ],
[ '2', '2' ], [ '3', '3' ], [ '4', '4' ], [ '5', '5' ] ],constraints
=> [ 'Integer', 'Required', ],
}],
},
{
type => 'Hidden', name => 'company_'.$count, value =>
$company->id
},;
}
$c->stash->{form}->populate( {
elements => \@elements
} );
}
after creation I would like to have an edit-option, which works well
via Repeatable and nested_name, with the following config:
element:
- type: Fieldset
legend: "Your Values"
id: zeugnis_fs
- type: Repeatable
nested_name: zeugnisnoten
counter_name: count
elements:
- type: Hidden
name: id
- type: Multi
---> label: company.long_name <---
elements:
type: Radiogroup
name: note
options:
- [ '1', '1' ]
- [ '2', '2' ]
- [ '3', '3' ]
- [ '4', '4' ]
- [ '5', '5' ]
constraints:
Required
---> indicates my wish. how could I get (or is it impossible?) some
value/string from my model? or what would be a useful workaround
without breaking up all the automatism and traversing the form in my
controller and replace the labels by selecting the hidden id and
getting the label that way...
my schema like that:
__PACKAGE__->table('Matrix.ZeugnisUser');
__PACKAGE__->add_columns(qw/id vorname nachname description email pic
country/);
__PACKAGE__->utf8_columns(qw/vorname nachname description/);
__PACKAGE__->set_primary_key('id');
__PACKAGE__->has_many(zeugnisnoten =>
'Xatalyst::Schema::Matrix::Zeugnis', 'user');
__PACKAGE__->table('Matrix.Zeugnis');
__PACKAGE__->add_columns(qw/id user company note/);
__PACKAGE__->set_primary_key('id');
__PACKAGE__->might_have(company =>
'Xatalyst::Schema::Matrix::MatrixCompanies',{'foreign.id' =>
'self.company'},{cascade_delete => 0});
thanks
josef
More information about the HTML-FormFu
mailing list