module Web.View.Hubs.Index where import Web.Types import Generated.Types import IHP.Prelude import IHP.ViewPrelude import Web.Routes () data IndexView = IndexView { hubs :: ![Hub] } instance View IndexView where html IndexView { .. } = [hsx|

Hubs

New Hub
{forEach hubs renderHub}
Name Slug Domain Kind Family
|] kindBadge :: Text -> Html kindBadge "framework" = [hsx|framework|] kindBadge "shared" = [hsx|shared|] kindBadge _ = [hsx|domain|] classificationBadge :: Hub -> Html classificationBadge hub = case (hub.hubFamily, hub.vsmFunction, hub.vsmSystem) of (Just "vsm", Just functionName, Just systemName) -> [hsx|VSM {functionName} / {vsmSystemLabel systemName}|] _ -> [hsx|-|] vsmSystemLabel :: Text -> Text vsmSystemLabel "environment" = "Environment" vsmSystemLabel systemName = "System " <> systemName renderHub :: Hub -> Html renderHub hub = [hsx| {hub.name} {hub.slug} {hub.domain} {kindBadge hub.hubKind} {classificationBadge hub} Edit Delete |]