/[Frey]/trunk/lib/Frey/ObjectDesigner.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/ObjectDesigner.pm

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

revision 142 by dpavlin, Mon Jul 14 23:44:18 2008 UTC revision 143 by dpavlin, Wed Jul 16 14:17:46 2008 UTC
# Line 18  use Frey::Web::Links; Line 18  use Frey::Web::Links;
18  sub html {  sub html {
19          my ( $self, $req ) = @_;          my ( $self, $req ) = @_;
20    
21          my $f = { $req->params };          $self->add_css( 'static/form.css' );
22          my $layout = delete( $f->{layout} ) || 'div';  
23            my $pager;
24    
25          while ( 1 ) {          while ( 1 ) {
26                            my $f = { $req->params };
27                  warn "<<< GOT REQUEST ",dump( $f );                  warn "<<< GOT REQUEST ",dump( $f );
28            
29                    $pager = Frey::Pager->new(
30                            fey_class => $self->fey_class,
31                            item_constructor => sub {
32                                    Frey::Web::Design->new( fey_class => $self->fey_class, @_ );
33                            },
34                    ) if ! $pager;
35    
36                  # re-apply (changed?) layout to elements                  $pager->update_collection;
                 if ( defined $f->{layout} ) {  
                         $layout = delete( $f->{layout} );  
                         warn "# new layout = $layout\n";  
                 }  
   
                 my $w = Frey::Web::Design->new( fey_class => $self->fey_class, layout => $layout, render_as => 'edit' );  
   
                 my $form = $w->process($f);  
   
                 $form = qq|<table>$form</table>| if $layout eq 'table';  
   
                 if ( $layout eq 'columns' ) {  
                         # add header to table  
                         my $header = $w->render_iterator( sub {  
                                 my ( $name, $field_name, $label, $val ) = @_;  
                                 return if $name =~ /^_/;  
                                 return qq|<th>$label</th>|;  
                         });  
                         $form = qq|<table><tr>$header</tr>$form</table>|;  
                 }  
   
                 my $layout_picker =  
                         qq|<div class="layout">layout: | .  
                         Frey::Web::Links->new(  
                                 name => 'layout',  
                                 current => $layout,  
                                 values => [ 'div', 'table', 'columns' ],  
                         )->links .  
                         qq|</div>|  
                 ;  
37    
38                  $self->add_css( 'static/form.css' );                  my $form = $pager->items_in_layout( $f );
39                    $form = $pager->last_item->render_table_wrapper( $form );
40    
41              my $html = $self->page(              my $html = $self->page(
42                          body => '<h1>' . $self->fey_class . '</h1>'                          body => '<h1>' . $self->fey_class . '</h1>'
43                                  . $layout_picker                                  . $pager->last_item->layout_picker      # FIXME
44                                  . qq|<form method="post">$form</form>|                                  . qq|<form method="post">$form</form>|
45                  );                  );
46    
47                  warn ">>> $layout ",length( $html ),"\n";                  warn ">>> ",length( $html ),"\n";
48    
49                  $req->print( $html );                  $req->print( $html );
50                  $req->next;                  $req->next;
   
                 $f = { $req->params };  
51          }          }
52    
53          warn "NO WAY OUT!";          warn "NO WAY OUT!";

Legend:
Removed from v.142  
changed lines
  Added in v.143

  ViewVC Help
Powered by ViewVC 1.1.26