X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FPlack%2FApp%2FGruntmaster%2FHTML.pm;h=427b197002a5fff16c0dc299f85fde0e88003c95;hb=ea99634e69cd1345da3be64824c4d0ebd8635ead;hp=b8e0562186439164b2632e6de451a77020bc554c;hpb=835f4a27bf942be4a416a2a89e7877be56ce9132;p=plack-app-gruntmaster.git diff --git a/lib/Plack/App/Gruntmaster/HTML.pm b/lib/Plack/App/Gruntmaster/HTML.pm index b8e0562..427b197 100644 --- a/lib/Plack/App/Gruntmaster/HTML.pm +++ b/lib/Plack/App/Gruntmaster/HTML.pm @@ -9,7 +9,6 @@ use HTML::TreeBuilder; use POSIX qw//; use Data::Dumper qw/Dumper/; use Sort::ByExample - sorter => {-as => 'pb_sort', example => [qw/beginner easy medium hard/], xform => sub {$_->{level}}}, sorter => {-as => 'ct_sort', example => [qw/Running Pending Finished/], xform => sub {$_->{status}}}; my $optional_end_tags = {%HTML::Tagset::optionalEndTag, tr => 1, td => 1, th => 1}; @@ -83,7 +82,7 @@ sub render_article { $lang //= 'en'; my $title = read_file "a/$art.$lang.title"; chomp $title; - my $meat = read_file "a/$art.$lang"; + my $meat = read_file "a/$art.$lang", binmode => ':utf8'; _render('skel', $lang, title => $title , meat => $meat, %args) } @@ -211,6 +210,8 @@ sub process_pb { my $iter = sub { my ($data, $tr) = @_; $tr->set_child_content(class => 'author', $data->{author}); + $tr->set_child_content(class => 'value', $data->{value}) if $args{args}{contest}; + $tr->fclass('value')->detach unless $args{args}{contest}; $tr->set_child_content(class => 'level', ucfirst $data->{level}); $tr->fclass('name')->namedlink($data->{id}, $data->{name}); $tr->fclass('name')->find('a')->edit_href(sub {$_ .= "?contest=$args{args}{contest}"}) if $args{args}{contest}; @@ -218,7 +219,9 @@ sub process_pb { $tr->find('td')->attr(class => $tr->find('td')->attr('class').' warning') if $data->{private} && !$args{args}{contest}; }; - $tree->find('tbody')->find('tr')->iter3([pb_sort @{$args{pb}}], $iter); + $tree->find('thead')->fclass('value')->detach unless $args{args}{contest}; + + $tree->find('tbody')->find('tr')->iter3([sort { $a->{value} <=> $b->{value} } @{$args{pb}}], $iter); $tree->fid('open-alert')->detach unless $args{args}{contest}; } @@ -254,7 +257,7 @@ sub process_log { my ($data, $tr) = @_; $tr->fclass('id')->namedlink($data->{id}); $tr->fclass('problem')->namedlink($data->{problem}, $data->{problem_name}); - $tr->fclass('problem')->find('a')->edit_href(sub{$_ .= "?contest=$args{args}{contest}"}) if $args{args}{contest}; + $tr->fclass('problem')->find('a')->edit_href(sub{$_ .= '?contest='.$data->{contest}}) if $data->{contest}; $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});