/[Frey]/trunk/lib/Frey/Action.pm
This is repository of my old source code which isn't updated any more. Go to git.rot13.org for current projects!
ViewVC logotype

Diff of /trunk/lib/Frey/Action.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1133 by dpavlin, Tue Jun 30 15:10:55 2009 UTC revision 1161 by dpavlin, Thu Jul 2 16:53:39 2009 UTC
# Line 132  sub select_values { Line 132  sub select_values {
132          warn "# max_value_len: $max_value_len";          warn "# max_value_len: $max_value_len";
133          #my $render = eval $class . '->render_' . $name;          #my $render = eval $class . '->render_' . $name;
134          my $call = 'render_' . $name;          my $call = 'render_' . $name;
135          my $render = $self->class->$call;          my $render = $self->class->$call if $self->class->can($call);
136          warn "## render $@";          warn "## render $@";
137    
138          if ( $#values > 3 && $render !~ m{radio} ) {          if ( $#values > 3 && $render !~ m{radio} ) {
# Line 176  sub select_values { Line 176  sub select_values {
176                  $html = qq|<div style="display: block;">$radio</div>|;                  $html = qq|<div style="display: block;">$radio</div>|;
177          }          }
178    
179          return          return $html;
 #                       qq|<input type="text" name="$name">| .  
                 $html  
180  }  }
181    
182  sub params_form {  sub params_form {
# Line 262  sub params_form { Line 260  sub params_form {
260                  } elsif ( $attr->has_type_constraint && $attr->type_constraint->can('values') ) {                  } elsif ( $attr->has_type_constraint && $attr->type_constraint->can('values') ) {
261                          $value_html = $self->select_values( $name, $attr_type, $attr->type_constraint->values );                          $value_html = $self->select_values( $name, $attr_type, $attr->type_constraint->values );
262                  } elsif ( $class->can( $name . '_available' ) ) {                  } elsif ( $class->can( $name . '_available' ) ) {
263                          my $available = $class->$name . '_available';                          my $available = $name . '_available';
264                            $available = $class->$available;
265                          confess $@ if $@;                          confess $@ if $@;
266                          $available =~ s/^\s+//gs;                          $available =~ s/^\s+//gs;
267                          $available =~ s/\s+$//gs;                          $available =~ s/\s+$//gs;
# Line 291  sub params_form { Line 290  sub params_form {
290                          $label_title .= qq| class="required"|;                          $label_title .= qq| class="required"|;
291                          $value_html =~ s{(<\S+)\s}{$1 class=required };                          $value_html =~ s{(<\S+)\s}{$1 class=required };
292                  }                  }
                 $label =~ s/_/ /g;  
293    
294                  my $set = $name;                  my $set = $name;
295                  $set =~ s{_[^_]+$}{};                  $set =~ s{_[^_]+$}{};
# Line 309  sub params_form { Line 307  sub params_form {
307                                          </fieldset>                                          </fieldset>
308                                  |;                                  |;
309                          }                          }
310                          $label =~ s{^\Q$set\E\s+}{};                          $label =~ s{^\Q$set\E_+}{};
311                  }                  }
312    
313                    $label = $self->_label( $label );
314                  $form .= qq|$before<label for="$name"$label_title>$label</label>$value_html $after|;                  $form .= qq|$before<label for="$name"$label_title>$label</label>$value_html $after|;
315                  my $ll = length($label);                  my $ll = length($label);
316                  $label_width = $ll if $ll > $label_width;                  $label_width = $ll if $ll > $label_width;
# Line 365  sub params_form { Line 364  sub params_form {
364          # http://www.quirksmode.org/oddsandends/forms.html          # http://www.quirksmode.org/oddsandends/forms.html
365  #       $form =~ s{<([^>]+)(name=")([^"]+)(")([^>]*)>}{<$1$2$3$4 id="$3" $5}gs;  #       $form =~ s{<([^>]+)(name=")([^"]+)(")([^>]*)>}{<$1$2$3$4 id="$3" $5}gs;
366    
367          $html = qq|          if ( $form ) {
368                  <h1>$class params</h1>  
369                  <form name="$form_id" id="$form_id" method="post">                  if ( $self->class->can('form_header') ) {
370                  $form                          $html = $self->class->form_header;
371                  <input type="submit" value="Run $class">                  } else {
372                  </form>                          $html = qq|
373          | if $form;                                  <h1>$class params</h1>
374                            |;
375                    }
376    
377                    $html .= qq|
378                            <form name="$form_id" id="$form_id" method="post">
379                            $form
380                            <input type="submit" value="Run $class">
381                            </form>
382                    |;
383                    $html .= $self->class->form_footer if $self->class->can('form_footer');
384            }
385    
386          $self->add_status({          $self->add_status({
387                  $self->class => {                  $self->class => {
# Line 385  sub params_form { Line 395  sub params_form {
395          return $html;          return $html;
396  }  }
397    
398    sub _label {
399            my ($self,$name) = @_;
400            my $labels = $self->class->form_labels if $self->class->can('form_labels');
401            my $label = $labels->{$name};
402            if ( ! defined $label ) {
403                    $label = $name;
404                    $label =~ s{_}{ }g;
405            }
406            return $label;
407    }
408    
409  =head1 SEE ALSO  =head1 SEE ALSO
410    
411  L<http://www.quirksmode.org/css/forms.html> for info on CSS2 forms  L<http://www.quirksmode.org/css/forms.html> for info on CSS2 forms

Legend:
Removed from v.1133  
changed lines
  Added in v.1161

  ViewVC Help
Powered by ViewVC 1.1.26