use warnings; use strict; package Jifty::Web::Form::Field::Select; use base qw/Jifty::Web::Form::Field/; =head1 NAME Jifty::Web::Form::Field::Select - Add a list/popup menu control to your forms =head1 METHODS =head2 render_widget Renders the select widget. =cut sub _render_select_begin { my $self = shift; my $rendered = qq! \n!; } sub render_widget { my $self = shift; my $field = $self->_render_select_begin; $field .= $self->_render_select_values; $field .= $self->_render_select_end; Jifty->web->out($field); ''; } =head2 render_value Rather than rendering the "key" side of our value for this field, render what would actually display to the user in the select-box =cut sub render_value { my $self = shift; my $field = ' !; my $value = $self->current_value; if(defined $value) { my @value = grep { $_->{value} eq $value } $self->available_values; $value = $value[0]->{display} if scalar @value; } $field .= Jifty->web->escape(_($value)) if defined $value; $field .= qq!\n!; Jifty->web->out($field); return ''; } 1;