--- trunk/lib/Strix/View.pm 2008/06/30 20:02:06 37 +++ trunk/lib/Strix/View.pm 2008/06/30 20:02:08 38 @@ -21,19 +21,55 @@ use Strix::User; +my @callbacks; + +sub gen_link { + my ($text, $code) = @_; + push @callbacks, $code; + my $out = qq{$text}; + return $out; +} + +sub process_links { + my $request = shift; + my $cb = $request->param('cb'); + if (exists $callbacks[$cb]) { + $callbacks[$cb]->($request); + delete $callbacks[$cb]; + } +} + +use Data::Dumper; +$Data::Dumper::Deparse = 1; + template 'user' => sub { my ( $self, $req ) = @_; my $id = $req->param('id'); - my $user = eval { Strix::User->new( id => $id ); }; - warn "## user $id: $@"; + my $continue = 1; + while ( $continue ) { + + my $user = eval { Strix::User->new( id => $id ); }; + warn "## user $id: $@", dump( $user ); + + if ( ! $user ) { + $req->conn->send_status_line( 404, "user $id" ); + $req->print( "Can't find user with id $id\n$@" ); + } else { +# $req->print( show( 'show-user', $req, $user ) ); + $req->print( '
' . dump( $user ) . '
' ); + }; - if ( ! $user ) { - $req->conn->send_status_line( 404, "user $id" ); - $req->print( "Can't find user with id $id\n$@" ); - } else { - $req->print( show( 'show-user', $req, $user ) ); - }; + @callbacks = (); + $req->print(''.join(' ', + gen_link('+' => sub { $id++ }), + gen_link('-' => sub { $id-- }), + gen_link('X' => sub { $continue = 0 }), + ).''); + $req->print('
'.Dumper( @callbacks ).'
'); + $req->next; + process_links($req); + } }; template 'show-user' => sub {