summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--elm/UList/VNPage.elm8
-rw-r--r--lib/VNWeb/ULists/Elm.pm2
-rw-r--r--lib/VNWeb/VN/Page.pm3
3 files changed, 10 insertions, 3 deletions
diff --git a/elm/UList/VNPage.elm b/elm/UList/VNPage.elm
index 7746e836..b41e6ea1 100644
--- a/elm/UList/VNPage.elm
+++ b/elm/UList/VNPage.elm
@@ -146,9 +146,11 @@ view model =
, td []
[ a [ href "#", onClickD NotesToggle ] [ text "💬" ]
, span [ class "spinner", classList [("hidden", model.notesState /= Api.Loading)] ] []
- , case model.notesState of
- Api.Error e -> b [ class "standout" ] [ text <| Api.showResponse e ]
- _ -> text ""
+ , case (model.notesState, model.vote.vote /= Nothing && model.flags.canreview, model.flags.review) of
+ (Api.Error e, _, _) -> b [ class "standout" ] [ text <| Api.showResponse e ]
+ (_, False, _) -> text ""
+ (_, True, Nothing) -> a [ href ("/v" ++ String.fromInt model.flags.vid ++ "/addreview") ] [ text " write a review »" ]
+ (_, True, Just w) -> a [ href ("/" ++ w ++ "/edit") ] [ text " edit review »" ]
]
]
else text ""
diff --git a/lib/VNWeb/ULists/Elm.pm b/lib/VNWeb/ULists/Elm.pm
index 33ad9b86..4fd032dc 100644
--- a/lib/VNWeb/ULists/Elm.pm
+++ b/lib/VNWeb/ULists/Elm.pm
@@ -172,6 +172,8 @@ our $VNPAGE = form_compile any => {
canvote => { anybool => 1 },
vote => { vnvote => 1 },
notes => { required => 0, default => '' },
+ review => { required => 0, vndbid => 'w' },
+ canreview=> { anybool => 1 },
labels => { aoh => { id => { int => 1 }, label => {}, private => { anybool => 1 } } },
selected => { type => 'array', values => { id => 1 } },
};
diff --git a/lib/VNWeb/VN/Page.pm b/lib/VNWeb/VN/Page.pm
index 6dcd3fc9..ace37546 100644
--- a/lib/VNWeb/VN/Page.pm
+++ b/lib/VNWeb/VN/Page.pm
@@ -307,6 +307,7 @@ sub infobox_useroptions_ {
ORDER BY CASE WHEN l.id < 10 THEN l.id ELSE 10 END, l.label'
);
my $lst = tuwf->dbRowi('SELECT vid, vote, notes FROM ulist_vns WHERE uid =', \auth->uid, 'AND vid =', \$v->{id});
+ my $review = tuwf->dbVali('SELECT id FROM reviews WHERE uid =', \auth->uid, 'AND vid =', \$v->{id});
tr_ class => 'nostripe', sub {
td_ colspan => 2, sub {
@@ -317,6 +318,8 @@ sub infobox_useroptions_ {
canvote => canvote($v),
vote => fmtvote($lst->{vote}),
notes => $lst->{notes}||'',
+ review => $review,
+ canreview=> canvote($v) && can_edit(w => {}),
labels => $labels,
selected => [ map $_->{id}, grep $_->{assigned}, @$labels ],
};