summaryrefslogtreecommitdiff
path: root/lib/VNWeb/Reviews/List.pm
diff options
context:
space:
mode:
Diffstat (limited to 'lib/VNWeb/Reviews/List.pm')
-rw-r--r--lib/VNWeb/Reviews/List.pm24
1 files changed, 13 insertions, 11 deletions
diff --git a/lib/VNWeb/Reviews/List.pm b/lib/VNWeb/Reviews/List.pm
index 94c65625..84985de0 100644
--- a/lib/VNWeb/Reviews/List.pm
+++ b/lib/VNWeb/Reviews/List.pm
@@ -9,7 +9,7 @@ sub tablebox_ {
my sub url { '?'.query_encode %$opt, @_ }
paginate_ \&url, $opt->{p}, [$count, 50], 't';
- div_ class => 'mainbox browse reviewlist', sub {
+ article_ class => 'browse reviewlist', sub {
table_ class => 'stripe', sub {
thead_ sub { tr_ sub {
td_ class => 'tc1', sub { txt_ 'Date'; sortable_ 'id', $opt, \&url; debug_ $lst };
@@ -26,8 +26,8 @@ sub tablebox_ {
td_ class => 'tc2', sub { user_ $_ };
td_ class => 'tc3', fmtvote $_->{vote};
td_ class => 'tc4', $_->{isfull} ? 'Full' : 'Mini';
- td_ class => 'tc5', sub { a_ href => "/$_->{id}", $_->{title}; b_ class => 'grayedout', ' (flagged)' if $_->{c_flagged} };
- td_ class => 'tc6', sprintf '👍 %d 👎 %d', $_->{c_up}, $_->{c_down} if auth->isMod;
+ td_ class => 'tc5', sub { a_ href => "/$_->{id}", tattr $_; small_ ' (flagged)' if $_->{c_flagged} };
+ td_ class => 'tc6', sprintf '👍 %.2f 👎 %.2f', $_->{c_up}/100, $_->{c_down}/100 if auth->isMod;
td_ class => 'tc7', $_->{c_count};
td_ class => 'tc8', $_->{c_lastnum} ? sub {
user_ $_, 'lu_';
@@ -46,21 +46,23 @@ TUWF::get qr{/w}, sub {
p => { page => 1 },
s => { onerror => 'id', enum => [qw[id lastpost rating]] },
o => { onerror => 'd', enum => [qw[a d]] },
- u => { onerror => 0, id => 1 },
+ u => { onerror => 0, vndbid => 'u' },
)->data;
$opt->{s} = 'id' if $opt->{s} eq 'rating' && !auth->isMod;
my $u = $opt->{u} && tuwf->dbRowi('SELECT id, ', sql_user(), 'FROM users u WHERE id =', \$opt->{u});
- return tuwf->resNotFound if $u && !$u->{id};
+ return tuwf->resNotFound if $u && (!$u->{id} || (!$u->{user_name} && !auth->isMod));
- my $where = $u ? sql 'w.uid =', \$u->{id} : '1=1';
+ my $where = sql_and
+ $u ? sql 'w.uid =', \$u->{id} : (),
+ auth->isMod ? () : 'NOT w.c_flagged';
my $count = tuwf->dbVali('SELECT COUNT(*) FROM reviews w WHERE', $where);
my $lst = tuwf->dbPagei({results => 50, page => $opt->{p}}, '
SELECT w.id, w.vid, w.isfull, w.c_up, w.c_down, w.c_flagged, w.c_count, w.c_lastnum, v.title, uv.vote
, ', sql_user(), ',', sql_totime('w.date'), 'as date
, ', sql_user('wpu','lu_'), ',', sql_totime('wp.date'), 'as ldate
FROM reviews w
- JOIN vn v ON v.id = w.vid
+ JOIN', vnt, 'v ON v.id = w.vid
LEFT JOIN users u ON u.id = w.uid
LEFT JOIN reviews_posts wp ON w.id = wp.id AND w.c_lastnum = wp.num
LEFT JOIN users wpu ON wpu.id = wp.uid
@@ -70,13 +72,13 @@ TUWF::get qr{/w}, sub {
);
my $title = $u ? 'Reviews by '.user_displayname($u) : 'Browse reviews';
- framework_ title => $title, $u ? (type => 'u', dbobj => $u, tab => 'reviews') : (), sub {
- div_ class => 'mainbox', sub {
+ framework_ title => $title, $u ? (dbobj => $u, tab => 'reviews') : (), sub {
+ article_ sub {
h1_ $title;
if($u && !$count) {
- p_ +(auth && $u->{id} == auth->uid ? 'You have' : user_displayname($u).' has').' not submitted any reviews yet.';
+ p_ +(auth && $u->{id} eq auth->uid ? 'You have' : user_displayname($u).' has').' not submitted any reviews yet.';
}
- p_ 'Note: The score column is only visible to moderators.' if auth->isMod;
+ p_ 'Note: The score column is only visible to moderators.' if $count && auth->isMod;
};
tablebox_ $opt, $lst, $count if $count;
};