--- trunk/lib/SQLSession/Dispatcher.pm 2006/12/07 19:56:41 28 +++ trunk/lib/SQLSession/Dispatcher.pm 2007/01/29 20:46:20 79 @@ -7,21 +7,60 @@ 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(); $q->load( $1 ) or next_rule; - warn "q = ",dump( $q ); +# warn "q = ",dump( $q ); - set sql_query => $q->sql_query; - set name => $q->name; - set database => $q->on_database->id; + set q => $q; show '/sql'; }; +under 'list' => [ + + on qr{database/(\d+)} => run { + set database_id => $1; + }, + + show '/list', +]; + on 'new' => run { show '/sql'; }; @@ -30,4 +69,11 @@ redirect '/list'; }; +on qr{^/feed/(atom|rss|rss2)}, run { + my $type = 'RSS'; + $type = 'Atom' if ($1 eq 'atom'); + set type => $type; + show('/feed'); +}; + 1;