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

David Good dgood at willingminds.com
Mon Apr 30 20:10:08 EDT 2007


On Mon, Apr 30, 2007 at 04:24:52PM -0700, David Good wrote:
> 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.


Hmm.  I don't see any way to specify available_values except in an Action.  


I'm creating an app to modify disk usage percentage thresholds (so admins can
get alerts if the threshold is violated) and I just want to put some typical
thresholds (85, 90, 95) in the combobox dropdown to make life easier for the
user.  Everything else works fine with the autogenerated UpdateDiskThresh
action.  It seems a shame to have to write an Action just to specify the
available_values for a combobox.

Would it make sense to add this functionality to Jifty::DBI::Schema?




More information about the jifty-devel mailing list