[jifty-devel] Combobox in J::A::UpdateXxx

David Good dgood at willingminds.com
Mon Apr 30 19:24:52 EDT 2007


On Mon, Apr 30, 2007 at 04:19:29PM -0700, David Good wrote:
> On Mon, Apr 23, 2007 at 11:06:58PM -0700, David Good wrote:
> > I'm trying to do a pretty easy UpdateXxx action but I want some of the fields
> > to be updated to be rendered as comboboxes.  I tried just adding "render as
> > 'Combobox'" and "available are qw( 10 20 30 40 50 60 70 80 90 )" to the model
> > schema (the values are percentages), but when Jifty attempts to render them I
> > get:
> > 
> > WARN - Can't use an undefined value as an ARRAY reference at <perl_path>/lib/perl5/site_perl/5.8.8/Jifty/Web/Form/Field/Combobox.pm line 38.
> > 
> > Do I need to subclass MyApp::Action::Record::UpdateXxx just to be able to
> > render a combobox?  
> 
> I found the problem.  There's a simple logic bug in Jifty::Action when you use
> 'available' instead of 'available_values'.  Here's a patch:
> 
> --- Action.pm.orig      2007-04-30 16:10:25.000000000 -0700
> +++ Action.pm   2007-04-30 16:12:53.000000000 -0700
> @@ -987,7 +987,7 @@
> 
>      my $vv_orig = $self->arguments->{$field}{$type .'_values'};
>      local $@;
> -    my @values = eval { @$vv_orig } or return $vv_orig;
> +    my @values = eval { @$vv_orig } and return $vv_orig;
> 
>      my $vv = [];

Whoops.  That may not be the problem after all.  It got rid of the error
message and a combobox gets rendered, but none of the available values are
present.  I'll keep searching, but in the meantime please ignore the previous
patch.


More information about the jifty-devel mailing list