1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
|
package Narwhal::Component::Wiki;
use Moose;
with 'Narwhal::Component::Role::Wiki';
sub view {
my $self = shift;
my ($req, $page_name) = @_;
my $page = $self->lookup("page:$page_name");
if (!$page) {
my $res = $req->new_response(303);
$res->location(
$req->uri_for({
action => 'edit',
page_name => $page_name,
})
);
return $res;
}
$self->render(
$req,
'page.tt',
{
page => $page_name,
text => $page->text,
author => $page->author,
modified => $page->modification_date,
},
);
}
sub view_old {
my $self = shift;
my ($req, $page_name, $rev) = @_;
my $page_rev = $self->lookup($rev);
return $req->new_response(404)
unless $page_rev && $page_rev->page_id eq $page_name;
$self->render(
$req,
'page.tt',
{
page => $page_name,
text => $page_rev->text,
author => $page_rev->author,
modified => $page_rev->modification_date,
historical => 1,
},
);
}
sub history {
my $self = shift;
my ($req, $page_name) = @_;
my $page = $self->lookup("page:$page_name");
$self->render(
$req,
'history.tt',
{
page => $page_name,
head => $page->current_revision,
}
);
}
__PACKAGE__->meta->make_immutable;
no Moose;
1;
|