summaryrefslogtreecommitdiff
path: root/Omni/Jr/Web.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Omni/Jr/Web.hs')
-rw-r--r--Omni/Jr/Web.hs35
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 =