--- trunk/lib/SQLSession/Dispatcher.pm 2007/01/18 17:53:58 39 +++ trunk/lib/SQLSession/Dispatcher.pm 2008/06/01 00:34:09 118 @@ -9,11 +9,35 @@ before '*' => run { my $top = Jifty->web->navigation; - my $edit = Jifty->config->app('edit'); + my $edit = Jifty->web->current_user->role('edit'); $top->child( 'New' => url => '/new' ) if ($edit); - $top->child( 'List' => url => '/list' ); -}; + 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' ); + $top->child( 'Password reminder' => url => '/passwordreminder' ); + } + + 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 { @@ -21,11 +45,10 @@ my $q = SQLSession::Model::Query->new(); $q->load( $1 ) or next_rule; - warn "q = ",dump( $q ); + set parent => $1; + set q => $q; - set sql_query => $q->sql_query; - set name => $q->name; - set database => $q->on_database->id; + Jifty->log->debug( "parent = $1, q = ",dump($q) ); show '/sql'; @@ -34,7 +57,11 @@ under 'list' => [ on qr{database/(\d+)} => run { - set database_id => $1; + set on_database => $1; + }, + + on qr{date/(\d{4}-\d+-\d+)} => run { + set created_on => $1; }, show '/list', @@ -44,8 +71,13 @@ show '/sql'; }; -on '/' => run { - redirect '/list'; +on '/' => redirect '/list'; + +on qr{^/feed/(atom|rss|rss2)}, run { + my $type = 'RSS'; + $type = 'Atom' if ($1 eq 'atom'); + set type => $type; + show('/feed'); }; 1;