summaryrefslogtreecommitdiff
path: root/Omni/Jr
diff options
context:
space:
mode:
authorBen Sima <ben@bensima.com>2025-12-01 07:40:49 -0500
committerBen Sima <ben@bensima.com>2025-12-01 07:40:49 -0500
commit4919cf825d4fdbcecc1f69fcf2a32176dfdde5ac (patch)
tree0853eef48784ffb840589ddfdd305de7507f11cd /Omni/Jr
parente3f20289bdf3014b418367931fbd9cf96239061a (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')
-rw-r--r--Omni/Jr/Web.hs13
-rw-r--r--Omni/Jr/Web/Style.hs24
2 files changed, 35 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
diff --git a/Omni/Jr/Web/Style.hs b/Omni/Jr/Web/Style.hs
index 00d66c2..86a3729 100644
--- a/Omni/Jr/Web/Style.hs
+++ b/Omni/Jr/Web/Style.hs
@@ -1276,6 +1276,24 @@ commentStyles = do
fontSize (px 13)
color "#374151"
whiteSpace preWrap
+ ".comment-meta" ? do
+ display flex
+ alignItems center
+ Stylesheet.key "gap" ("8px" :: Text)
+ ".comment-author" ? do
+ display inlineBlock
+ padding (px 2) (px 6) (px 2) (px 6)
+ borderRadius (px 2) (px 2) (px 2) (px 2)
+ fontSize (px 10)
+ fontWeight (weight 600)
+ textTransform uppercase
+ whiteSpace nowrap
+ ".author-human" ? do
+ backgroundColor "#dbeafe"
+ color "#1e40af"
+ ".author-junior" ? do
+ backgroundColor "#d1fae5"
+ color "#065f46"
".comment-time" ? do
fontSize (px 11)
color "#9ca3af"
@@ -1825,6 +1843,12 @@ darkModeStyles =
backgroundColor "#374151"
borderColor "#4b5563"
".comment-text" ? color "#d1d5db"
+ ".author-human" ? do
+ backgroundColor "#1e3a8a"
+ color "#93c5fd"
+ ".author-junior" ? do
+ backgroundColor "#064e3b"
+ color "#6ee7b7"
".comment-time" ? color "#9ca3af"
".comment-textarea" ? do
backgroundColor "#374151"