module Web.View.WidgetOwnerships.Index where import Web.Types import Generated.Types import IHP.Prelude import IHP.ViewPrelude data IndexView = IndexView { ownerships :: ![WidgetOwnership] , widgets :: ![Widget] , hubs :: ![Hub] } instance View IndexView where html IndexView { .. } = [hsx|

Widget Ownerships

Assign Ownership
{if null ownerships then [hsx|

No ownership records yet.

|] else [hsx|
{forEach ownerships renderRow}
Widget Owner Hub Steward Hub Type Effective From
|]} |] where widgetName wid = maybe (show wid) (.name) (find (\w -> w.id == wid) widgets) hubName hid = maybe "–" (.name) (find (\h -> h.id == hid) hubs) renderRow :: WidgetOwnership -> Html renderRow o = [hsx| {widgetName o.widgetId} {hubName o.ownerHubId} {maybe "–" hubName o.stewardHubId} " text-xs px-2 py-0.5 rounded font-medium"}> {o.ownershipType} {show o.effectiveFrom} View |] typeBadge :: Text -> Text typeBadge t = case t of "local" -> "bg-gray-100 text-gray-700" "delegated" -> "bg-blue-100 text-blue-700" "global" -> "bg-purple-100 text-purple-700" _ -> "bg-gray-100 text-gray-600"