Hey All,

If someone could please refresh my memory, I'm attempting to populate a radiogroup with options from a catalyst model, setting defaults is an entry is in the stash.

It shows the options okay, but it's not setting the default properly. I've examined $self->_options to see what comes out and the appropriate entry has default and value being equal (which i thought was the condition to make checked="checked" show up) ...

Here is what I have -- i could've /sworn/ it was working earlier.

---

package MyApp::Form::Element::AccountRoles;

use strict;
use warnings;

use base qw( HTML::FormFu::Element::Radiogroup );

sub process {
    my $self = shift;

    $self->container_tag( 'div' );
    $self->attributes( { class => 'radiogroup' } );
    $self->name( 'role' );

    my $c = $self->form->stash->{ context };
    my $roles
        = $c->model( 'AccountRole' )->search( {}, { order_by => 'name' } );

    my %uroles = eval {
        map { $_->id => $_->id } $c->stash->{ account }->roles;
    };

    $self->options(
        [   map {
                {   value            => $_->id,
                    default          => $uroles{ $_->id } || undef,
                    label            => ucfirst $_->name,
                    attributes       => { id => 'role_' . $_->id, },
                    label_attributes => { for => 'role_' . $_->id, },
                }
                } $roles->all
        ]
    );

    return $self->next::method( @_ );
}

1;

---

Any ideas?

-Brian

_______________________________________________
HTML-FormFu mailing list
HTML-FormFu@lists.scsys.co.uk
http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/html-formfu

Reply via email to