From b5ac1e5984ee69b54414ef3c98ece1f143021de5 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Thu, 27 Nov 2025 18:52:28 -0500 Subject: Merge status badge display and dropdown into single element The build and tests pass. The changes merge the status badge display and Task-Id: t-157.1 --- Omni/Jr/Web.hs | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) (limited to 'Omni/Jr/Web.hs') diff --git a/Omni/Jr/Web.hs b/Omni/Jr/Web.hs index e1933e2..ce77bca 100644 --- a/Omni/Jr/Web.hs +++ b/Omni/Jr/Web.hs @@ -276,21 +276,26 @@ multiColorProgressBar stats = statusBadgeWithForm :: (Monad m) => TaskCore.Status -> Text -> Lucid.HtmlT m () statusBadgeWithForm status tid = - Lucid.div_ [Lucid.id_ "status-badge-container", Lucid.class_ "status-badge-container"] <| do - statusBadge status - Lucid.select_ - [ Lucid.name_ "status", - Lucid.class_ "status-select-inline", - Lucid.makeAttribute "hx-post" ("/tasks/" <> tid <> "/status"), - Lucid.makeAttribute "hx-target" "#status-badge-container", - Lucid.makeAttribute "hx-swap" "outerHTML" - ] - <| do - statusOptionHtmx TaskCore.Open status - statusOptionHtmx TaskCore.InProgress status - statusOptionHtmx TaskCore.Review status - statusOptionHtmx TaskCore.Approved status - statusOptionHtmx TaskCore.Done status + let badgeClass = case status of + TaskCore.Open -> "status-badge-select badge-open" + TaskCore.InProgress -> "status-badge-select badge-inprogress" + TaskCore.Review -> "status-badge-select badge-review" + TaskCore.Approved -> "status-badge-select badge-approved" + TaskCore.Done -> "status-badge-select badge-done" + in Lucid.select_ + [ Lucid.id_ "status-badge-container", + Lucid.name_ "status", + Lucid.class_ badgeClass, + Lucid.makeAttribute "hx-post" ("/tasks/" <> tid <> "/status"), + Lucid.makeAttribute "hx-target" "#status-badge-container", + Lucid.makeAttribute "hx-swap" "outerHTML" + ] + <| do + statusOptionHtmx TaskCore.Open status + statusOptionHtmx TaskCore.InProgress status + statusOptionHtmx TaskCore.Review status + statusOptionHtmx TaskCore.Approved status + statusOptionHtmx TaskCore.Done status where statusOptionHtmx :: (Monad m2) => TaskCore.Status -> TaskCore.Status -> Lucid.HtmlT m2 () statusOptionHtmx opt current = -- cgit v1.2.3