]>
iEval git - gruntmaster-page.git/blob - lib/Gruntmaster/Page/Log.pm
1 package Gruntmaster
::Page
::Log
;
6 use parent qw
/Exporter/;
7 our @EXPORT_OK = qw
/generate/;
8 our $VERSION = '0.001';
10 use constant TITLE
=> 'Job log';
11 use constant PAGE_SIZE
=> 10;
13 use HTML
::Template
::Compiled
;
14 use POSIX qw
/strftime/;
15 use Gruntmaster
::Page
::Common qw
/header footer/;
16 use Gruntmaster
::Data qw
/job_date job_file job_name job_private job_problem job_result job_result_text job_user/;
22 <tr><th>ID<th>Problem<th>Date<th>Size<th>User<th>Result
24 <tmpl_loop log><tr><td><a href="<tmpl_var id>"><tmpl_var id></a>
25 <td><a href="/pb/<tmpl_var problem>"><tmpl_var name></a>
27 <td><tmpl_var size></a>
28 <td><tmpl_var user><td class="r<tmpl_var result>"><tmpl_var result_text>
34 $templates{$_} = header
($_, TITLE
) . $templates{$_} for keys %templates;
35 $templates{$_} .= footer
$_ for keys %templates;
38 $_[0] =~ m
,^(?
:ct
/([^/]+)/)?log/(\w
+)\
.html
$,;
39 local $Gruntmaster::Data
::contest
= $1;
40 my $page = $2 eq 'index' ?
0 : $2;
42 my $htc = HTML
::Template
::Compiled
->new(scalarref
=> \
$templates{$_[1]});
43 my @log = sort { $b->{id
} <=> $a->{id
} } map +{
45 (job_private
() ?
(private
=> job_private
) : ()),
46 date
=> (job_date
() ? strftime
('%c' => localtime job_date
) : '?'),
48 problem
=> job_problem
,
50 result_text
=> job_result_text
,
51 size
=> sprintf ("%.2f KiB", (length job_file
) / 1024),
52 user
=> job_user
}, ($page - 1) * PAGE_SIZE
+ 1 .. $page * PAGE_SIZE
;
53 $htc->param(log => \
@log);
This page took 0.050829 seconds and 5 git commands to generate.