--- trunk/lib/Frey/Action.pm 2008/12/09 20:31:30 768
+++ trunk/lib/Frey/Action.pm 2008/12/13 16:37:07 832
@@ -26,6 +26,14 @@
default => sub { {} },
);
+has 'input_step_size' => (
+ documentation => 'Resize input fields by this step',
+ is => 'rw',
+ isa => 'Int',
+# required => 1,
+ default => 20,
+);
+
=head2 required
my @required_attributes = $self->required;
@@ -107,23 +115,50 @@
sub select_values {
my ( $name, $attr_type, $values ) = @_;
- if ( $#$values > 3 ) {
+ my $max_value_len = 0;
+ my @values;
+ my $html = '';
+
+ foreach ( @$values ) {
+ my $v = ref($_) eq 'HASH' ? $_->{$name} : $_;
+ warn "## value '$v'";
+ push @values, $v;
+ $max_value_len = length($v) if length($v) > $max_value_len;
+ }
+
+ warn "# max_value_len: $max_value_len";
+
+ if ( $#values > 3 ) {
my $options = join("\n",
map {
- my $v = ref($_) eq 'HASH' ? $_->{$name} : $_;
- qq|| if $v;
- } @$values
+ qq||;
+ } @values
);
- qq|| if $options;
+ # onchange="alert(this.options[this.selectedIndex].value);"
+ $html = qq|
+
+ | if $options;
} else {
- my $radio = join("\n",
- map {
- my $v = ref($_) eq 'HASH' ? $_->{$name} : $_;
- qq|$v|;
- } @$values
+ my $delimiter = $max_value_len > $self->input_step_size ? qq|
| : '';
+ my $radio =
+# $delimiter .
+ join("\n",
+ map { strip(qq|
+
+
+ $_
+
+ $delimiter
+ |) } @values
);
- qq|