Removed some subsite stuff
This commit is contained in:
parent
2c2ee10dd7
commit
e673c1f35e
@ -11,6 +11,7 @@ module Yesod.Core
|
|||||||
-- * Types
|
-- * Types
|
||||||
, Approot (..)
|
, Approot (..)
|
||||||
, FileUpload (..)
|
, FileUpload (..)
|
||||||
|
, ErrorResponse (..)
|
||||||
-- * Utitlities
|
-- * Utitlities
|
||||||
, maybeAuthorized
|
, maybeAuthorized
|
||||||
, widgetToPageContent
|
, widgetToPageContent
|
||||||
|
|||||||
@ -287,8 +287,7 @@ $doctype 5
|
|||||||
yesodMiddleware handler = do
|
yesodMiddleware handler = do
|
||||||
setHeader "Vary" "Accept, Accept-Language"
|
setHeader "Vary" "Accept, Accept-Language"
|
||||||
route <- getCurrentRoute
|
route <- getCurrentRoute
|
||||||
toMaster <- getRouteToMaster
|
case route of
|
||||||
case fmap toMaster route of
|
|
||||||
Nothing -> handler
|
Nothing -> handler
|
||||||
Just url -> do
|
Just url -> do
|
||||||
isWrite <- isWriteRequest url
|
isWrite <- isWriteRequest url
|
||||||
|
|||||||
@ -25,16 +25,15 @@
|
|||||||
--
|
--
|
||||||
---------------------------------------------------------
|
---------------------------------------------------------
|
||||||
module Yesod.Handler
|
module Yesod.Handler
|
||||||
( -- * Type families
|
( -- * Handler monad
|
||||||
YesodSubRoute (..)
|
GHandler
|
||||||
-- * Handler monad
|
|
||||||
, GHandler
|
|
||||||
-- ** Read information from handler
|
-- ** Read information from handler
|
||||||
, getYesod
|
, getYesod
|
||||||
, getYesodSub
|
, getYesodSub
|
||||||
, getUrlRender
|
, getUrlRender
|
||||||
, getUrlRenderParams
|
, getUrlRenderParams
|
||||||
, getCurrentRoute
|
, getCurrentRoute
|
||||||
|
, getCurrentRouteSub
|
||||||
, getRouteToMaster
|
, getRouteToMaster
|
||||||
, getRequest
|
, getRequest
|
||||||
, waiRequest
|
, waiRequest
|
||||||
@ -122,11 +121,6 @@ module Yesod.Handler
|
|||||||
, getMessageRender
|
, getMessageRender
|
||||||
-- * Per-request caching
|
-- * Per-request caching
|
||||||
, cached
|
, cached
|
||||||
-- * Internal Yesod
|
|
||||||
, YesodApp
|
|
||||||
, runSubsiteGetter
|
|
||||||
, HandlerData
|
|
||||||
, ErrorResponse (..)
|
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Data.Time (UTCTime, addUTCTime,
|
import Data.Time (UTCTime, addUTCTime,
|
||||||
@ -136,7 +130,7 @@ import Yesod.Core.Internal.Request (langKey, mkFileInfoFile,
|
|||||||
|
|
||||||
import Control.Applicative ((<$>))
|
import Control.Applicative ((<$>))
|
||||||
|
|
||||||
import Control.Monad (liftM)
|
import Control.Monad (ap, liftM)
|
||||||
|
|
||||||
import Control.Monad.IO.Class (MonadIO, liftIO)
|
import Control.Monad.IO.Class (MonadIO, liftIO)
|
||||||
import Control.Monad.Trans.Resource (MonadResource, liftResourceT)
|
import Control.Monad.Trans.Resource (MonadResource, liftResourceT)
|
||||||
@ -176,9 +170,6 @@ import Yesod.Core.Handler.Class
|
|||||||
import Yesod.Core.Types
|
import Yesod.Core.Types
|
||||||
import Yesod.Routes.Class (Route)
|
import Yesod.Routes.Class (Route)
|
||||||
|
|
||||||
class YesodSubRoute s y where
|
|
||||||
fromSubRoute :: s -> y -> Route s -> Route y
|
|
||||||
|
|
||||||
get :: HandlerState m => m GHState
|
get :: HandlerState m => m GHState
|
||||||
get = getGHState
|
get = getGHState
|
||||||
|
|
||||||
@ -194,18 +185,6 @@ tell hs = modify $ \g -> g { ghsHeaders = ghsHeaders g `mappend` hs }
|
|||||||
hcError :: HandlerError m => ErrorResponse -> m a
|
hcError :: HandlerError m => ErrorResponse -> m a
|
||||||
hcError = handlerError . HCError
|
hcError = handlerError . HCError
|
||||||
|
|
||||||
class SubsiteGetter g m s | g -> s where
|
|
||||||
runSubsiteGetter :: g -> m s
|
|
||||||
|
|
||||||
instance (master ~ master'
|
|
||||||
) => SubsiteGetter (master -> sub) (GHandler anySub master') sub where
|
|
||||||
runSubsiteGetter getter = getter <$> getYesod
|
|
||||||
|
|
||||||
instance (anySub ~ anySub'
|
|
||||||
,master ~ master'
|
|
||||||
) => SubsiteGetter (GHandler anySub master sub) (GHandler anySub' master') sub where
|
|
||||||
runSubsiteGetter = id
|
|
||||||
|
|
||||||
getRequest :: HandlerReader m => m YesodRequest
|
getRequest :: HandlerReader m => m YesodRequest
|
||||||
getRequest = askYesodRequest
|
getRequest = askYesodRequest
|
||||||
|
|
||||||
@ -273,8 +252,12 @@ getUrlRenderParams = rheRender `liftM` askHandlerEnv
|
|||||||
|
|
||||||
-- | Get the route requested by the user. If this is a 404 response- where the
|
-- | Get the route requested by the user. If this is a 404 response- where the
|
||||||
-- user requested an invalid route- this function will return 'Nothing'.
|
-- user requested an invalid route- this function will return 'Nothing'.
|
||||||
getCurrentRoute :: HandlerReader m => m (Maybe (Route (HandlerSub m)))
|
getCurrentRoute :: HandlerReader m => m (Maybe (Route (HandlerMaster m)))
|
||||||
getCurrentRoute = rheRoute `liftM` askHandlerEnv
|
getCurrentRoute = fmap `liftM` getRouteToMaster `ap` getCurrentRouteSub
|
||||||
|
|
||||||
|
-- | Same as 'getCurrentRoute', but for the subsite.
|
||||||
|
getCurrentRouteSub :: HandlerReader m => m (Maybe (Route (HandlerSub m)))
|
||||||
|
getCurrentRouteSub = rheRoute `liftM` askHandlerEnv
|
||||||
|
|
||||||
-- | Get the function to promote a route for a subsite to a route for the
|
-- | Get the function to promote a route for a subsite to a route for the
|
||||||
-- master site.
|
-- master site.
|
||||||
@ -401,9 +384,8 @@ setUltDestCurrent = do
|
|||||||
case route of
|
case route of
|
||||||
Nothing -> return ()
|
Nothing -> return ()
|
||||||
Just r -> do
|
Just r -> do
|
||||||
tm <- getRouteToMaster
|
|
||||||
gets' <- reqGetParams `liftM` askYesodRequest
|
gets' <- reqGetParams `liftM` askYesodRequest
|
||||||
setUltDest (tm r, gets')
|
setUltDest (r, gets')
|
||||||
|
|
||||||
-- | Sets the ultimate destination to the referer request header, if present.
|
-- | Sets the ultimate destination to the referer request header, if present.
|
||||||
--
|
--
|
||||||
|
|||||||
@ -71,9 +71,7 @@ class YesodBreadcrumbs y where
|
|||||||
-- along with their respective titles.
|
-- along with their respective titles.
|
||||||
breadcrumbs :: YesodBreadcrumbs y => GHandler sub y (Text, [(Route y, Text)])
|
breadcrumbs :: YesodBreadcrumbs y => GHandler sub y (Text, [(Route y, Text)])
|
||||||
breadcrumbs = do
|
breadcrumbs = do
|
||||||
x' <- getCurrentRoute
|
x <- getCurrentRoute
|
||||||
tm <- getRouteToMaster
|
|
||||||
let x = fmap tm x'
|
|
||||||
case x of
|
case x of
|
||||||
Nothing -> return ("Not found", [])
|
Nothing -> return ("Not found", [])
|
||||||
Just y -> do
|
Just y -> do
|
||||||
|
|||||||
@ -51,10 +51,7 @@ import Text.Hamlet
|
|||||||
import Text.Cassius
|
import Text.Cassius
|
||||||
import Text.Julius
|
import Text.Julius
|
||||||
import Yesod.Routes.Class
|
import Yesod.Routes.Class
|
||||||
import Yesod.Handler
|
import Yesod.Handler (getMessageRender, getUrlRenderParams)
|
||||||
( YesodSubRoute(..), getYesod
|
|
||||||
, getMessageRender, getUrlRenderParams
|
|
||||||
)
|
|
||||||
import Yesod.Core.Trans.Class (lift)
|
import Yesod.Core.Trans.Class (lift)
|
||||||
import Text.Shakespeare.I18N (RenderMessage)
|
import Text.Shakespeare.I18N (RenderMessage)
|
||||||
import Yesod.Content (toContent)
|
import Yesod.Content (toContent)
|
||||||
@ -74,13 +71,17 @@ import Yesod.Core.Types
|
|||||||
preEscapedLazyText :: TL.Text -> Html
|
preEscapedLazyText :: TL.Text -> Html
|
||||||
preEscapedLazyText = preEscapedToMarkup
|
preEscapedLazyText = preEscapedToMarkup
|
||||||
|
|
||||||
addSubWidget :: (YesodSubRoute sub master) => sub -> GWidget sub master a -> GWidget sub' master a
|
addSubWidget :: (Route sub -> Route master) -> sub -> GWidget sub master a -> GWidget sub' master a
|
||||||
addSubWidget sub (GWidget w) = do
|
addSubWidget toMaster sub (GWidget (GHandler f)) =
|
||||||
master <- lift getYesod
|
GWidget $ GHandler $ f . modHD
|
||||||
let sr = fromSubRoute sub master
|
where
|
||||||
(a, w') <- lift $ error "FIXME Yesod.Widget.toMasterHandlerMaybe" sr (const sub) Nothing w
|
modHD hd = hd
|
||||||
tell w'
|
{ handlerEnv = (handlerEnv hd)
|
||||||
return a
|
{ rheRoute = Nothing
|
||||||
|
, rheSub = sub
|
||||||
|
, rheToMaster = toMaster
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class ToWidget sub master a where
|
class ToWidget sub master a where
|
||||||
toWidget :: a -> GWidget sub master ()
|
toWidget :: a -> GWidget sub master ()
|
||||||
|
|||||||
@ -15,9 +15,8 @@ mkYesodDispatch "Y" resourcesY
|
|||||||
|
|
||||||
instance Yesod Y where
|
instance Yesod Y where
|
||||||
addStaticContent _ _ content = do
|
addStaticContent _ _ content = do
|
||||||
tm <- getRouteToMaster
|
|
||||||
route <- getCurrentRoute
|
route <- getCurrentRoute
|
||||||
case fmap tm route of
|
case route of
|
||||||
Just StaticR -> return $ Just $ Left $
|
Just StaticR -> return $ Just $ Left $
|
||||||
if content == "foo2{bar:baz}"
|
if content == "foo2{bar:baz}"
|
||||||
then "screen.css"
|
then "screen.css"
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user