--- trunk/lib/SQLSession/Dispatcher.pm 2006/12/07 19:56:41 28 +++ trunk/lib/SQLSession/Dispatcher.pm 2007/01/25 13:08:06 58 @@ -7,6 +7,39 @@ use Data::Dump qw/dump/; +before '*' => run { + my $top = Jifty->web->navigation; + my $edit = Jifty->web->current_user->role('edit'); + $top->child( 'New' => url => '/new' ) if ($edit); + my $l = $top->child( 'List' => url => '/list' ); + + my $databases = SQLSession::Model::DatabaseCollection->new(); + $databases->unlimit; + while ( my $db = $databases->next ) { + my $label = $db->name; +# $label .= ' [' . $db->dsn . ']' if ($edit); + my $url = '/list/database/' . $db->id; + my $path = Jifty->web->request->path; +# warn "url: $url path: $path\n"; + $l->child( $label => url => $url => active => ( $url eq $path ) ); + } + + if ( Jifty->web->current_user->id ) { + $top->child( 'Logout' => url => '/logout' ); + } else { + $top->child( 'Login' => url => '/login' ); + $top->child( 'Signup' => url => '/signup' ); + } + + if ( Jifty->web->current_user->role( 'admin' ) ) { + $top->child( 'Docs' => url => '/__jifty/online_docs/' ); + $top->child( 'Administration' => url => '/__jifty/admin/' ); + } + +}; + + + under qr{sql/(\d+)} => run { my $q = SQLSession::Model::Query->new(); @@ -22,6 +55,15 @@ }; +under 'list' => [ + + on qr{database/(\d+)} => run { + set database_id => $1; + }, + + show '/list', +]; + on 'new' => run { show '/sql'; };