--- trunk/lib/Transports/Dispatcher.pm 2006/05/05 22:20:53 13 +++ trunk/lib/Transports/Dispatcher.pm 2006/06/11 02:59:18 65 @@ -2,39 +2,66 @@ use Jifty::Dispatcher -base; # Default page -on '/', run { - redirect( '/new_transport'); -}; +#on '/', run { +# redirect( '/new'); +#}; + +=head1 Transports operations + +=head2 /edit/42 + +edit transport with request number C<42> + +=cut -on '/all_transports', run { - my $transports = Transports::Model::TransportCollection->new(); - $transports->unlimit(); +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 transports => $transports; + set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t ); + show('/edit'); }; -on '/new_transport', run { - my $t = Jifty->web->new_action( - class => 'CreateTransport', - monkier => 'create', - ); +=head2 /import/42 - set transport => $t; - set viewer => Jifty->web->new_action( class => 'UpdateTransport', record => $t ); +import transport with request number C<42> + +=cut + +on qr'^/import/(\d+)', run { + my $id = $1; + my $t = Transports::Model::Transport->new(); + $t->load_by_cols( id => $id ); + Jifty->web->redirect( '/transports' ) unless ( $t->id ); + + set transport => Jifty->web->new_action( class => 'UpdateTransport', record => $t ); + show('/import'); }; +=head1 Login and logout operations + +=head2 login + +=cut +on qr'^/login(/.*)?$', run { + + my $return_url = $1 || '/'; -# Login -on 'login', run { set 'action' => Jifty->web->new_action( class => 'Login', moniker => 'loginbox' ); set 'next' => Jifty->web->request->continuation || Jifty::Continuation->new( - request => Jifty::Request->new( path => "/" ) ); + request => Jifty::Request->new( path => $return_url ) ); + show '/login'; }; -# Log out +=head2 logout + +=cut + before 'logout', run { Jifty->web->request->add_action( moniker => 'logout', @@ -42,4 +69,28 @@ ); }; + +# These are dispatcher rules that halos and error handling need to be +# able to edit files in place. These should become a plugin of some +# sort, when we have that infrastructure. + +before '*', run { + Jifty->api->allow(qr/^Jifty::Action::Devel/) + if Jifty->config->framework('DevelMode'); +}; + +on qr'^/__jifty/edit/(.*?)/(.*)$', run { + my $editor = Jifty->web->new_action( + class => 'Jifty::Action::Devel::FileEditor', + moniker => 'editpage', + arguments => { + source_path => $2, + file_type => $1, + } + ); + + set editor => $editor; + show '/__jifty/edit_file'; +}; + 1;