blob: fbd72190438e3bd5c05698a98494279a85ae3389 [file] [log] [blame]
Nils Diewald5d1ffb42014-05-21 17:45:34 +00001package Korap;
2use Mojo::Base 'Mojolicious';
3
Nils Diewald64bab252014-05-22 11:04:04 +00004our $VERSION = '0.01';
5
Nils Diewald5d1ffb42014-05-21 17:45:34 +00006# This method will run once at server start
7sub startup {
8 my $self = shift;
9
10 $self->plugin('Config');
Nils Diewald2329e1d2014-06-12 16:07:57 +000011 $self->plugin('CHI');
Nils Diewald02df9912014-06-03 16:08:07 +000012 $self->plugin('TagHelpers::Pagination' => {
13 prev => '<span><i class="fa fa-caret-left"></i></span>',
14 next => '<span><i class="fa fa-caret-right"></i></span>',
Nils Diewald2329e1d2014-06-12 16:07:57 +000015 ellipsis => '<span><i class="fa fa-ellipsis-h"></i></span>',
Nils Diewald02df9912014-06-03 16:08:07 +000016 separator => '',
17 current => '<span>{current}</span>',
18 page => '<span>{page}</span>'
19 });
Nils Diewalddd2d4e82014-05-31 17:08:33 +000020 $self->plugin('Notifications');
21 $self->plugin('Number::Commify');
Nils Diewald5d1ffb42014-05-21 17:45:34 +000022 push(@{$self->plugins->namespaces}, __PACKAGE__ . '::Plugin');
23 $self->plugin('KorapSearch');
Nils Diewald2329e1d2014-06-12 16:07:57 +000024 $self->plugin('KorapInfo');
25 $self->plugin('KorapTagHelpers');
26
27 $self->helper(
28 date_format => sub {
29 my ($c, $date) = @_;
30 return $date;
31 }
32 );
33
34 # TODO: Write search snippet
Nils Diewald5d1ffb42014-05-21 17:45:34 +000035
Nils Diewald64bab252014-05-22 11:04:04 +000036 # Routes
Nils Diewald5d1ffb42014-05-21 17:45:34 +000037 my $r = $self->routes;
38
Nils Diewalddd2d4e82014-05-31 17:08:33 +000039 # Create search endpoint
Nils Diewald5d1ffb42014-05-21 17:45:34 +000040 $r->add_shortcut(
41 search => sub {
42 shift->get('/search')->to('search#remote')
43 }
44 );
45
Nils Diewald64bab252014-05-22 11:04:04 +000046 $r->get('/')->to(
47 cb => sub {
48 my $c = shift;
Nils Diewalddd2d4e82014-05-31 17:08:33 +000049 $c->render(
50 text =>
51 'Go to '.
52 $c->link_to('search', '/collection/search'));
Nils Diewald64bab252014-05-22 11:04:04 +000053 }
54 );
55
Nils Diewald2329e1d2014-06-12 16:07:57 +000056 # Tutorial
57 $r->get('/tutorial')->to('tutorial#page')->name('tutorial');
58 $r->get('/tutorial/(*tutorial)')->to('tutorial#page');
59
Nils Diewald02df9912014-06-03 16:08:07 +000060 $r->get('/util/query')->to('search#query');
61
62 $r->get('/:resource' => [qw/collection corpus/])->to('search#info');
63
Nils Diewald64bab252014-05-22 11:04:04 +000064 # resource => [qw/collection corpus/]
Nils Diewald5d1ffb42014-05-21 17:45:34 +000065 $r->get('/:resource')->search;
66 $r->get('/:resource/:cid', resource => [qw/collection corpus/])->search;
67 $r->get('/:resource/')->search;
Nils Diewald5d1ffb42014-05-21 17:45:34 +000068 # /matchInfo?id=...&f=&l=&spans
Nils Diewald2329e1d2014-06-12 16:07:57 +000069
Nils Diewald64bab252014-05-22 11:04:04 +000070};
71
Nils Diewald5d1ffb42014-05-21 17:45:34 +000072
731;