module Web.View.AgentProposals.Index where import Web.Types import Generated.Types import IHP.Prelude import IHP.ViewPrelude import Web.Routes () data IndexView = IndexView { proposals :: ![AgentProposal] , widgets :: ![Widget] , mTypeFilter :: !(Maybe Text) , mStatusFilter :: !(Maybe Text) } allProposalTypes :: [Text] allProposalTypes = ["summary", "requirement_draft", "duplicate_flag", "policy_flag", "impl_proposal"] allStatuses :: [Text] allStatuses = ["pending", "accepted", "rejected", "superseded"] instance View IndexView where html IndexView { .. } = [hsx|
No proposals found.
|] renderTypeTab :: Maybe Text -> Maybe Text -> Text -> Html renderTypeTab mStatusFilter mTypeFilter t = [hsx| {t} |] renderStatusTab :: Maybe Text -> Maybe Text -> Text -> Html renderStatusTab mTypeFilter mStatusFilter s = [hsx| {s} |] agentProposalsUrl :: Maybe Text -> Maybe Text -> Text agentProposalsUrl mt ms = let parts = catMaybes [ fmap ("proposal_type=" <>) mt , fmap ("status=" <>) ms ] in "/AgentProposals" <> if null parts then "" else "?" <> intercalate "&" parts renderTable :: [AgentProposal] -> [Widget] -> Html renderTable proposals widgets = [hsx|| Type | Source Widget | Confidence | Status | Created |
|---|