my $self = shift;
$self->plugin('Debbugs::Mojo::Plugin::DBI');
+ $self->plugin('Debbugs::Mojo::Plugin::Xslate');
my $r = $self->routes;
$r->namespaces(['Debbugs::Mojo::Controller']);
$r->add_type(bug => qr/\d+/);
my $bug = Debbugs::Bug->new(bug => $id,
schema => $c->db
);
-
- return $c->render(text => 'Bug '.$bug->id);
+ return $c->reply->not_found if not $bug->exists;
+ $c->respond_to(json => {json => $bug->structure},
+ any => sub {$c->render(template => 'cgi/bugreport',
+ handler => 'tx',
+ bug => $bug)},
+ );
+
}
1;
--- /dev/null
+package Debbugs::Mojo::Plugin::Xslate;
+
+use Mojo::Base 'Mojolicious::Plugin';
+
+use Debbugs::Text qw(:all);
+
+sub register {
+ my ($self,$app) = @_;
+
+ my $xslate = sub {
+ my ($renderer,$c,$output,$options) = @_;
+ my $template = $c->stash->{template_name} ||
+ $renderer->template_name($options);
+ my %params = (%{$c->stash},c => $c);
+ $$output =
+ fill_in_template(template => $template,
+ variables => \%params,
+ );
+ };
+ $app->renderer->add_handler(tx => $xslate);
+ return $self;
+}
+
+
+1;
+