/[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 121 by dpavlin, Mon Jul 14 21:22:43 2008 UTC revision 149 by dpavlin, Wed Jul 16 21:23:27 2008 UTC
# Line 12  has 'fey_class' => ( Line 12  has 'fey_class' => (
12    
13  use Data::Dump qw/dump/;  use Data::Dump qw/dump/;
14    
15  use Frey::Web::Row;  use Frey::Web::Design;
16  use Frey::Web::Links;  use Frey::Web::Links;
17    use Frey::Request;
18    
19  sub html {  sub html {
20          my ( $self, $req ) = @_;          my ( $self, $req ) = @_;
21    
22          my $f = { $req->params };          $self->add_css( 'static/form.css' );
23          my $layout = delete( $f->{layout} ) || 'div';  
24            my $pager;
25            my $items = 0;
26    
27          while ( 1 ) {          while ( 1 ) {
28                            $Frey::Request::current = $req;
29                    my $f = { $req->params };
30                  warn "<<< GOT REQUEST ",dump( $f );                  warn "<<< GOT REQUEST ",dump( $f );
31    
32                  # re-apply (changed?) layout to elements                  $pager ||= Frey::Pager->new(
33                  if ( defined $f->{layout} ) {                          fey_class => $self->fey_class,
34                          $layout = delete( $f->{layout} );                          item_constructor => sub {
35                          warn "# new layout = $layout\n";                                  $items++;
36                  }                                  warn "item_constructor $items";
37                                    return Frey::Web::Design->new( fey_class => $self->fey_class, @_ ) if $items < 4;
38                  my $w = Frey::Web::Row->new( fey_class => $self->fey_class, layout => $layout, render_as => 'edit' );                                  return Frey::Web::Item->new( fey_class => $self->fey_class, @_ );
39                            },
40                  my $form = $w->process($f);                  ) if ! $pager;
41    
42                  $form = qq|<table>$form</table>| if $layout eq 'table';                  $pager->pager->entries_per_page( 5 );
43                    $pager->update_collection;
44                  if ( $layout eq 'columns' ) {  
45                          # add header to table                  my $form = $pager->items_in_layout( $f );
46                          my $header = $w->render_iterator( sub {                  # we should use first_item here to get edit fields for labels
47                                  my ( $name, $field_name, $label, $val ) = @_;                  $form = $pager->first_item->render_table_wrapper( $form );
                                 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>|  
                 ;  
   
                 $self->add_css( 'static/form.css' );  
48    
49              my $html = $self->page(              my $html = $self->page(
50                          body => '<h1>' . $self->fey_class . '</h1>'                          body => '<h1>' . $self->fey_class . '</h1>'
51                                  . $layout_picker                                  . $pager->first_item->layout_picker     # FIXME
52                                  . qq|<form method="post">$form</form>|                                  . qq|Showing $items items from collection|
53                                    . qq|<form method="post"><input type="submit" value="Save design">$form</form>|
54                  );                  );
55    
56                  warn ">>> $layout ",length( $html ),"\n";                  warn ">>> ",length( $html ),"\n";
57    
58                  $req->print( $html );                  $req->print( $html );
59                  $req->next;                  $req->next;
   
                 $f = { $req->params };  
60          }          }
61    
62          warn "NO WAY OUT!";          warn "NO WAY OUT!";

Legend:
Removed from v.121  
changed lines
  Added in v.149

  ViewVC Help
Powered by ViewVC 1.1.26