snap-extras-0.11: src/Snap/Extras.hs
{-# LANGUAGE OverloadedStrings #-}
module Snap.Extras
( module Snap.Extras.Ajax
, module Snap.Extras.CSRF
, module Snap.Extras.CoreUtils
, module Snap.Extras.FlashNotice
, module Snap.Extras.FormUtils
, module Snap.Extras.JSON
, module Snap.Extras.MethodOverride
, module Snap.Extras.Tabs
, module Snap.Extras.TextUtils
, initExtras
) where
-------------------------------------------------------------------------------
import Control.Lens
import Data.Monoid
import Heist
import Snap.Snaplet
import Snap.Snaplet.Heist
import Snap.Snaplet.Session
import System.FilePath.Posix
-------------------------------------------------------------------------------
import Snap.Extras.Ajax
import Snap.Extras.CoreUtils
import Snap.Extras.CSRF
import Snap.Extras.FlashNotice
import Snap.Extras.FormUtils
import Snap.Extras.JSON
import Snap.Extras.MethodOverride
import qualified Snap.Extras.SpliceUtils.Compiled as C
import qualified Snap.Extras.SpliceUtils.Interpreted as I
import Snap.Extras.Tabs
import Snap.Extras.TextUtils
-------------------------------------------------------------------------------
import Paths_snap_extras
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
-- | Initialize all the 'Snap.Extras' functionality in your Snap app.
-- Currently, we don't need to keep any state and simply return ().
initExtras :: HasHeist b
=> Snaplet (Heist b)
-> SnapletLens b SessionManager
-> SnapletInit b ()
initExtras heistSnaplet session =
makeSnaplet
"snap-extras"
"Collection of utilities for web applications"
(Just getDataDir) $ do
addTemplatesAt heistSnaplet "" . (</> "resources/templates")
=<< getSnapletFilePath
initFlashNotice heistSnaplet session
addConfig heistSnaplet $ mempty & scInterpretedSplices .~ I.utilSplices
& scCompiledSplices .~ C.utilSplices
initTabs heistSnaplet