31 |
#$Data::Dumper::Deparse = 1; |
#$Data::Dumper::Deparse = 1; |
32 |
use Data::Dump qw/dump/; |
use Data::Dump qw/dump/; |
33 |
|
|
34 |
use Frey::Web::Row; |
use Frey::Web::Item; |
35 |
use Frey::Web::Links; |
use Frey::Web::Links; |
36 |
|
|
37 |
sub html { |
sub html { |
61 |
@w = (); |
@w = (); |
62 |
|
|
63 |
while ( my $u = $s->next ) { |
while ( my $u = $s->next ) { |
64 |
my $w = Frey::Web::Row->new( fey_class => $self->fey_class, fey => $u, layout => $layout ); |
my $w = Frey::Web::CRUD->new( fey_class => $self->fey_class, fey => $u, layout => $layout ); |
65 |
warn "# w = ",dump( $w ) if $self->debug; |
warn "# w = ",dump( $w ) if $self->debug; |
66 |
push @w, $w; |
push @w, $w; |
67 |
} |
} |
68 |
|
|
69 |
warn "# got $#w elements: ",dump( map { $_->id } @w ), " from total of ", $s->handle->rows; |
warn "# got $#w elements: ",dump( map { $_->fey->id } @w ), " from total of ", $s->handle->rows; |
70 |
} |
} |
71 |
|
|
72 |
my $rows_delimiter = ''; |
my $rows_delimiter = ''; |
79 |
|
|
80 |
if ( $w[ $#w ]->fey ) { |
if ( $w[ $#w ]->fey ) { |
81 |
warn "+++ added new item widget\n"; |
warn "+++ added new item widget\n"; |
82 |
my $w = Frey::Web::Row->new( fey_class => $self->fey_class, render_as => 'edit', layout => $layout ); |
my $w = Frey::Web::CRUD->new( fey_class => $self->fey_class, render_as => 'edit', layout => $layout ); |
83 |
$form .= $rows_delimiter . $w->process; |
$form .= $rows_delimiter . $w->process; |
84 |
push @w, $w; |
push @w, $w; |
85 |
} |
} |
88 |
|
|
89 |
if ( $layout eq 'columns' ) { |
if ( $layout eq 'columns' ) { |
90 |
# add header to table |
# add header to table |
91 |
my $header = $w[0]->render_iterator( sub { |
my $header; |
92 |
my ( $name, $field_name, $label, $val ) = @_; |
foreach my $name ( @{ $w[0]->display_columns } ) { |
93 |
return if $name =~ /^_/; |
return if $name =~ /^_/; |
94 |
return qq|<th>$label</th>|; |
my $label = $w[0]->field_label( $name ); |
95 |
}); |
$header .= qq|<th>$label</th>|; |
96 |
|
}; |
97 |
$form = qq|<table><tr>$header</tr>$form</table>|; |
$form = qq|<table><tr>$header</tr>$form</table>|; |
98 |
} |
} |
99 |
|
|
123 |
qq|</div>| |
qq|</div>| |
124 |
); |
); |
125 |
|
|
126 |
my $html = dom2html( |
$self->add_css( 'static/form.css' ); |
127 |
html => [ |
|
128 |
head => [ |
my $html = $self->page( |
129 |
link => { rel=>"stylesheet", href=>"/static/form.css", type=>"text/css" } |
body => '<h1>' . $self->fey_class . '</h1>' |
130 |
], |
. $layout_picker |
131 |
body => [ |
. $pager |
132 |
h1 => [ $self->fey_class ], |
. qq|<form method="post">$form</form>| |
|
$layout_picker, |
|
|
$pager, |
|
|
form => { method=>'post' } => [ |
|
|
$form, |
|
|
], |
|
|
], |
|
|
] |
|
133 |
); |
); |
134 |
|
|
135 |
warn ">>> $layout ",length( $html ),"\n"; |
warn ">>> $layout ",length( $html ),"\n"; |