packages feed

clckwrks-plugin-mailinglist-0.3.0.2: Clckwrks/MailingList/Page/Template.hs

{-# LANGUAGE FlexibleContexts, QuasiQuotes, OverloadedStrings #-}
module Clckwrks.MailingList.Page.Template where

import Clckwrks
import Clckwrks.MailingList.Monad
import Clckwrks.MailingList.URL
import Clckwrks.Plugin
import Control.Monad.Reader
import Control.Monad.State
import Data.Text (Text)
import Language.Haskell.HSX.QQ (hsx)
import HSP hiding (escape)
import Happstack.Server.HSP.HTML ()
import Web.Plugins.Core (Plugin(..), getPluginRouteFn, getTheme)

template :: ( EmbedAsChild MailingListM headers
            , EmbedAsChild MailingListM body
            ) =>
            Text
         -> headers
         -> body
         -> MailingListM Response
template ttl hdrs bdy =
    do p <- plugins <$> get
       hdrXml <- fmap (map unClckChild) $ unXMLGenT $ asChild [hsx| <%> <link rel="stylesheet" type="text/css" href=(MailingListData "style.css") /> <% hdrs %></%> |]
       bdyXml <- fmap (map unClckChild) $ unXMLGenT $ asChild bdy
       clckT2MailingListT $ themeTemplate p (ThemeStyleId 0) ttl hdrXml bdyXml