-- | Common page components and rendering helpers. -- For global page layout, see Application.hs. module Handler.Common where import Import import Data.List import Data.Text(pack) import Data.Time.Calendar import System.FilePath (takeFileName) #if BLAZE_HTML_0_4 import Text.Blaze (preEscapedString) #else import Text.Blaze.Internal (preEscapedString) #endif import Text.Printf import Hledger.Utils import Hledger.Data import Hledger.Query import Hledger.Reports import Hledger.Cli.Options import Hledger.Web.Options ------------------------------------------------------------------------------- -- Common page layout -- | Standard hledger-web page layout. hledgerLayout :: ViewData -> String -> HtmlUrl AppRoute -> HandlerT App IO Html hledgerLayout vd title content = do defaultLayout $ do setTitle $ toHtml $ title ++ " - hledger-web" toWidget [hamlet| $if showsidebar vd ^{sidebar vd} $else ^{topbar vd} ^{searchform vd} ^{content} |] -- | Global toolbar/heading area. topbar :: ViewData -> HtmlUrl AppRoute topbar VD{..} = [hamlet|