X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FPlack%2FApp%2FGruntmaster%2FHTML.pm;h=057c90a3c50cec2cb9b23eae725a6f88a839ad99;hb=b8caa1675f0dc5c501fccb3716395709032519fb;hp=382641ed0227c69124352ecfcc577de2f504a9e9;hpb=9694ccf33654e0cc01a2fa9390b76eb1a276d304;p=plack-app-gruntmaster.git diff --git a/lib/Plack/App/Gruntmaster/HTML.pm b/lib/Plack/App/Gruntmaster/HTML.pm index 382641e..057c90a 100644 --- a/lib/Plack/App/Gruntmaster/HTML.pm +++ b/lib/Plack/App/Gruntmaster/HTML.pm @@ -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; } @@ -144,7 +147,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}, @@ -164,6 +166,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});