@@ -25,29 +25,37 @@ sub register( $self, $app, @args ) {
2525
2626 $app -> hook( before_dispatch => sub ($c ) {
2727 # See if we have an override for this route and render that instead
28- $app -> log -> debug(' building routes for database pages' );
28+ $c -> log -> debug(' building routes for database pages' );
2929 my $dbr = Mojolicious::Routes-> new(
3030 map { $_ => $app -> routes-> $_ } qw( base_classes conditions namespaces shortcuts types) ,
3131 );
3232 my $res = $model -> schema(' pages' )-> list({ -not_bool => ' in_app' });
3333 for my $page ( sort { length $b -> {pattern } <=> length $a -> {pattern } } $res -> {items }-> @* ) {
34- $app -> log -> debug(' adding route for database page: ' . $page -> {pattern });
35- my $method = lc $page -> {method };
36- $dbr -> $method ($page -> {pattern })-> to(
37- cb => sub ( $c ) {
38- $c -> render();
39- },
40- decode_json($page -> {params } // ' {}' )-> %*,
41- title => $page -> {title },
42- template => $page -> {template },
43- );
34+ my %params = decode_json($page -> {params } // ' {}' )-> %*;
35+ if ($params {hidden }) {
36+ next ;
37+ }
38+ $c -> log -> debug(' adding route for database page: ' . $page -> {pattern });
39+ my $method = lc $page -> {method };
40+ $dbr -> $method ($page -> {pattern })-> to(
41+ cb => sub ( $c ) {
42+ $c -> log -> debug(' rendering page from database' . $page -> {pattern } . ' -- ' . $page -> {template });
43+ $c -> render();
44+ },
45+ title => $page -> {title },
46+ template => $page -> {template },
47+ );
4448 }
45- $app -> log -> debug(' attempting dispatch to database page' );
46- my $ok = $dbr -> dispatch($c );
47- $app -> log -> debug(' dispatch to database page ' . ($ok ? ' success' : ' failed' ));
49+
50+ my $ok = 0;
51+ local $@ ;
52+ eval {
53+ $c -> log -> debug(' attempting dispatch to database page' );
54+ $ok = $dbr -> dispatch($c );
55+ };
56+ $c -> log -> debug(' dispatch to database page ' . ($ok ? ' success' : ' failed' ) . ($@ ? " with error: " . ($@ =~ s {\n $} {} r ) : " " ));
4857 });
4958
50- $app -> helper( content => sub { $self } );
5159 $app -> helper( block => sub ($c , $name , $attrs , $content =sub {}) {
5260 # Look up the block in the database
5361 my $res = $self -> model-> schema(' blocks' )-> list({
@@ -87,14 +95,19 @@ sub init($self, $app) {
8795 if ( $db_route ) {
8896 delete $db_routes { $name };
8997 next unless $db_route -> {in_app };
98+ $self -> log -> debug(' updating database page ' . $name . ' : ' . $app_route -> {pattern });
9099 $self -> model-> backend-> set(pages => $name => $app_route );
91100 }
92101 else {
102+ $self -> log -> debug(' creating database page ' . $name . ' : ' . $app_route -> {pattern });
93103 $self -> model-> backend-> create(pages => $app_route );
94104 }
95105 }
96106 # Remaining database routes should be deleted
97- $self -> model-> backend-> delete ( pages => $_ -> {name } ) for values %db_routes ;
107+ for my $page ( values %db_routes ) {
108+ $self -> log -> debug(' deleting database page ' . $page -> {name } . ' : ' . $page -> {pattern });
109+ $self -> model-> backend-> delete ( pages => $page -> {name } );
110+ }
98111}
99112
100113sub _walk_route ($self , $parent , $prefix =' ' ) {
0 commit comments