git-annex/Utility/Yesod.hs
Joey Hess dd667844b6 avoid using Assistant.WebApp.Bootstrap3 when building with current yesod
Only use that when building with ancient yesod, which does not include it.

This also let me remove ifdefs in the file to support building with the new
version of yesod.
2014-10-09 15:19:24 -04:00

73 lines
1.6 KiB
Haskell

{- Yesod stuff, that's typically found in the scaffolded site.
-
- Also a bit of a compatability layer to make it easier to support yesod
- 1.1 and 1.2 in the same code base.
-
- Copyright 2012, 2013 Joey Hess <joey@kitenet.net>
-
- Licensed under the GNU GPL version 3 or higher.
-}
{-# LANGUAGE CPP, RankNTypes, FlexibleContexts #-}
module Utility.Yesod
( module Y
, liftH
#ifndef __NO_TH__
, widgetFile
, hamletTemplate
#endif
#if ! MIN_VERSION_yesod(1,2,0)
, giveUrlRenderer
, Html
#endif
) where
#if MIN_VERSION_yesod(1,2,0)
import Yesod as Y
import Yesod.Form.Bootstrap3 as Y hiding (bfs)
#else
import Yesod as Y hiding (Html)
import Assistant.WebApp.Bootstrap3 as Y hiding (bfs)
#endif
#ifndef __NO_TH__
import Yesod.Default.Util
import Language.Haskell.TH.Syntax (Q, Exp)
#if MIN_VERSION_yesod_default(1,1,0)
import Data.Default (def)
import Text.Hamlet hiding (Html)
#endif
#endif
#ifndef __NO_TH__
widgetFile :: String -> Q Exp
#if ! MIN_VERSION_yesod_default(1,1,0)
widgetFile = widgetFileNoReload
#else
widgetFile = widgetFileNoReload $ def
{ wfsHamletSettings = defaultHamletSettings
{ hamletNewlines = AlwaysNewlines
}
}
#endif
hamletTemplate :: FilePath -> FilePath
hamletTemplate f = globFile "hamlet" f
#endif
{- Lift Handler to Widget -}
#if MIN_VERSION_yesod(1,2,0)
liftH :: Monad m => HandlerT site m a -> WidgetT site m a
liftH = handlerToWidget
#else
liftH :: MonadLift base m => base a -> m a
liftH = lift
#endif
{- Misc new names for stuff. -}
#if ! MIN_VERSION_yesod(1,2,0)
giveUrlRenderer :: forall master sub. HtmlUrl (Route master) -> GHandler sub master RepHtml
giveUrlRenderer = hamletToRepHtml
type Html = RepHtml
#endif