Display format extension instead of format in job list
[plack-app-gruntmaster.git] / lib / Plack / App / Gruntmaster / HTML.pm
index 1e0f7889870101de3c74c793ac537e51bfc99b98..1eb6d988d05d081d98b173b1ec8d9867cc0ef5a5 100644 (file)
@@ -50,11 +50,11 @@ sub render {
 }
 
 sub render_article {
-       my ($art, $lang) = @_;
+       my ($art, $lang, %args) = @_;
        $lang //= 'en';
        my $title = read_file "a/$art.$lang.title";
        my $meat  = read_file "a/$art.$lang";
-       _render('skel', $lang, title => $title , meat => $meat)
+       _render('skel', $lang, title => $title , meat => $meat, %args)
 }
 
 sub _render {
@@ -66,6 +66,9 @@ sub _render {
        $tree->defmap(smap => \%args);
        my $process = __PACKAGE__->can("process_$tmpl");
        $process->($tree, %args) if $process;
+       $_->detach for $tree->look_down(static => $args{static} ? 'no' : 'yes');
+       $_->attr('static', undef) for $tree->look_down(sub {$_[0]->attr('static')});
+       $_->attr('smap', undef) for $tree->look_down(sub {$_[0]->attr('defmap')});
        $tree->as_HTML;
 }
 
@@ -143,7 +146,6 @@ sub process_pb_entry {
        $tree->fid('owner')->edit_href(sub{s/owner_id/$args{owner}/});
        $tree->fid('job_log')->edit_href(sub{s/problem_id/$args{id}/});
        $tree->fid('solution')->edit_href(sub{s/problem_id/$args{id}/});
-       $tree->fid('job_log')->edit_href(sub{$_ .= "&private=$args{private}"}) if $args{private};
        $tree->content_handler(
                statement => literal $args{statement},
                level     => ucfirst $args{level},
@@ -163,6 +165,7 @@ sub process_pb_entry {
                $score->attr('data-value'  => $args{value});
                $tree->fid('countdown')->attr('data-stop' => $args{contest_stop});
        } else {
+               $tree->fid('job_log')->edit_href(sub{$_ .= "&private=$args{private}"}) if $args{private};
                $tree->fid('solution')->detach unless $args{solution};
                $_->detach for $tree->fclass('rc'); # requires contest
                $tree->fid('solution_modal')->fclass('modal-body')->replace_content(literal $args{solution});
@@ -240,7 +243,7 @@ sub process_log {
                $tr->fclass('contest')->namedlink($data->{contest}, $data->{contest_name}) if $data->{contest};
                $tr->fclass('contest')->replace_content('None') unless $data->{contest};
                $tr->fclass('date')->replace_content(ftime $data->{date});
-               $tr->fclass('source')->namedlink("$data->{id}.$data->{extension}", sprintf "%.2fKB %s", $data->{size}/1024, $data->{format});
+               $tr->fclass('source')->namedlink("$data->{id}.$data->{extension}", sprintf "%.2fKB %s", $data->{size}/1024, Plack::App::Gruntmaster::FORMAT_EXTENSION()->{$data->{format}});
                $tr->fclass('owner')->namedlink($data->{owner}, $data->{owner_name});
                $tr->fclass('result_text')->replace_content($data->{result_text});
                $tr->fclass('result_text')->attr(class => "r$data->{result}");
This page took 0.011313 seconds and 4 git commands to generate.