--- trunk/lib/Transports/Dispatcher.pm 2006/05/26 19:15:32 25 +++ trunk/lib/Transports/Dispatcher.pm 2006/05/27 13:30:54 34 @@ -6,26 +6,117 @@ # redirect( '/new'); #}; -on '/transports', run { +=head1 Transports operations + +=head2 transports + +list of all transports + +=cut + +on 'transports', run { my $transports = Transports::Model::TransportCollection->new(); $transports->unlimit(); set transports => $transports; }; -on '/new', run { +=head2 new + +new transport + +=cut + +on 'new', run { my $t = Jifty->web->new_action( class => 'CreateTransport', monkier => 'create', ); set transport => $t; - set viewer => Jifty->web->new_action( class => 'UpdateTransport', record => $t ); }; +=head2 /edit/42 + +edit transport with request number C<42> + +=cut + +on qr'^/edit/(\d+)', run { + my $id = $1; + my $t = Transports::Model::Transport->new(); + $t->load_by_cols( id => $id ); + Jifty->web->redirect( '/new' ) unless ( $t->id ); + + set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t ); + show('/edit'); +}; + +=head1 User operations + +=head2 /user/42 +edit user with id C<42> + +=cut + +on qr'^/users?/?(\d*)', run { + my $id = $1; + + if ($id) { + my $u = Transports::Model::User->new(); + $u->load_by_cols( id => $id ); + + set user_id => $id; + + set user => Jifty->web->new_action( + class => $u->id ? 'UpdateUser' : 'CreateUser', + record => $u + ); + + my $s = Transports::Model::UserOnSourceCollection->new; + $s->limit( + column => 'user_on', + value => $id, + quote_value => 0, + ); + $s->order_by( { column => 'source' } ); + set sources => $s; + + set source => Jifty->web->new_action( + class => 'CreateUserOnSource', + monkier => 'create', + ); + + show('/user_form'); + } else { + my $u = Transports::Model::UserCollection->new(); + $u->unlimit(); + set users => $u; + show('/users'); + } +}; + +=head2 delete_user_on_system + +=cut + +on qr'^/delete_user_on_source/(\d+)', run { + my $id = $1; + my $u = Transports::Model::UserOnSource->new(); + $u->load_by_cols( id => $id ); + my $user_id = $u->user_on->id; + $u->delete; + redirect "/user/$user_id"; +}; + + +=head1 Login and logout operations + +=head2 login + +=cut -# Login on 'login', run { set 'action' => Jifty->web->new_action( class => 'Login', moniker => 'loginbox' ); @@ -34,7 +125,10 @@ request => Jifty::Request->new( path => "/" ) ); }; -# Log out +=head2 logout + +=cut + before 'logout', run { Jifty->web->request->add_action( moniker => 'logout',