diff options
Diffstat (limited to 'lib/VNWeb/Reviews/Lib.pm')
-rw-r--r-- | lib/VNWeb/Reviews/Lib.pm | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/lib/VNWeb/Reviews/Lib.pm b/lib/VNWeb/Reviews/Lib.pm index 2872966c..8ea54a09 100644 --- a/lib/VNWeb/Reviews/Lib.pm +++ b/lib/VNWeb/Reviews/Lib.pm @@ -2,13 +2,22 @@ package VNWeb::Reviews::Lib; use VNWeb::Prelude; use Exporter 'import'; -our @EXPORT = qw/reviews_vote_ reviews_format/; +our @EXPORT = qw/reviews_helpfulness reviews_vote_ reviews_format/; + +sub reviews_helpfulness { + my($w) = @_; + my ($uup, $aup, $udown, $adown) = (floor($w->{c_up}/100), $w->{c_up}%100, floor($w->{c_down}/100), $w->{c_down}%100); + return sprintf '%.0f', max 0, ($uup + 0.3*$aup) - ($udown + 0.3*$adown); +} sub reviews_vote_ { my($w) = @_; span_ sub { - elm_ 'Reviews.Vote' => $VNWeb::Reviews::Elm::VOTE_OUT, {%$w, mod => auth->permBoardmod} if auth && ($w->{can} || auth->permBoardmod); - b_ class => 'grayedout', sprintf ' %d/%d', $w->{c_up}, $w->{c_down} if auth->permBoardmod; + span_ widget(ReviewsVote => $VNWeb::Reviews::JS::VOTE, {%$w, mod => auth->permBoardmod||0}), '' + if !config->{read_only} && ($w->{can} || auth->permBoardmod); + my $p = reviews_helpfulness $w; + small_ sprintf ' %d point%s', $p, $p == 1 ? '' : 's'; + small_ sprintf ' %.2f/%.2f', $w->{c_up}/100, $w->{c_down}/100 if auth->permBoardmod; } } |