diff options
Diffstat (limited to 'Omni/Jr/Web.hs')
| -rw-r--r-- | Omni/Jr/Web.hs | 35 |
1 files changed, 20 insertions, 15 deletions
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 = |
