diff options
| author | Ben Sima <ben@bensima.com> | 2025-12-01 07:40:49 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bensima.com> | 2025-12-01 07:40:49 -0500 |
| commit | 4919cf825d4fdbcecc1f69fcf2a32176dfdde5ac (patch) | |
| tree | 0853eef48784ffb840589ddfdd305de7507f11cd /Omni/Jr/Web.hs | |
| parent | e3f20289bdf3014b418367931fbd9cf96239061a (diff) | |
Add author field to task comments (Human vs Junior)
Comments now track whether they were made by a Human or by Junior
(the agent). The CommentAuthor type is stored in the database and
displayed in the web UI with styled badges.
Task-Id: t-201
Diffstat (limited to 'Omni/Jr/Web.hs')
| -rw-r--r-- | Omni/Jr/Web.hs | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/Omni/Jr/Web.hs b/Omni/Jr/Web.hs index 88e0442..d191454 100644 --- a/Omni/Jr/Web.hs +++ b/Omni/Jr/Web.hs @@ -1624,7 +1624,16 @@ instance Lucid.ToHtml TaskDetailPage where renderComment currentTime c = Lucid.div_ [Lucid.class_ "comment-card"] <| do Lucid.p_ [Lucid.class_ "comment-text"] (Lucid.toHtml (TaskCore.commentText c)) - Lucid.span_ [Lucid.class_ "comment-time"] (renderRelativeTimestamp currentTime (TaskCore.commentCreatedAt c)) + Lucid.div_ [Lucid.class_ "comment-meta"] <| do + Lucid.span_ [Lucid.class_ ("comment-author " <> authorClass)] (Lucid.toHtml (authorLabel (TaskCore.commentAuthor c))) + Lucid.span_ [Lucid.class_ "comment-time"] (renderRelativeTimestamp currentTime (TaskCore.commentCreatedAt c)) + where + authorClass = case TaskCore.commentAuthor c of + TaskCore.Human -> "author-human" + TaskCore.Junior -> "author-junior" + authorLabel author = case author of + TaskCore.Human -> "Human" :: Text + TaskCore.Junior -> "Junior" :: Text commentForm :: (Monad m) => Text -> Lucid.HtmlT m () commentForm tid = @@ -2880,7 +2889,7 @@ server = taskCommentHandler :: Text -> CommentForm -> Servant.Handler (Headers '[Header "Location" Text] NoContent) taskCommentHandler tid (CommentForm commentText) = do - _ <- liftIO (TaskCore.addComment tid commentText) + _ <- liftIO (TaskCore.addComment tid commentText TaskCore.Human) pure <| addHeader ("/tasks/" <> tid) NoContent taskReviewHandler :: Text -> Servant.Handler TaskReviewPage |
