Scaffolding uses boilerplate (#234)
This commit is contained in:
parent
965fd03ca8
commit
e6577832b4
@ -241,7 +241,7 @@ requireAuth = maybeAuth >>= maybe redirectLogin return
|
|||||||
redirectLogin :: Yesod m => GHandler s m a
|
redirectLogin :: Yesod m => GHandler s m a
|
||||||
redirectLogin = do
|
redirectLogin = do
|
||||||
y <- getYesod
|
y <- getYesod
|
||||||
setUltDest'
|
setUltDestCurrent
|
||||||
case authRoute y of
|
case authRoute y of
|
||||||
Just z -> redirect z
|
Just z -> redirect z
|
||||||
Nothing -> permissionDenied "Please configure authRoute"
|
Nothing -> permissionDenied "Please configure authRoute"
|
||||||
|
|||||||
@ -75,7 +75,7 @@ module Yesod.Handler
|
|||||||
, deleteSession
|
, deleteSession
|
||||||
-- ** Ultimate destination
|
-- ** Ultimate destination
|
||||||
, setUltDest
|
, setUltDest
|
||||||
, setUltDest'
|
, setUltDestCurrent
|
||||||
, setUltDestReferer
|
, setUltDestReferer
|
||||||
, redirectUltDest
|
, redirectUltDest
|
||||||
, clearUltDest
|
, clearUltDest
|
||||||
@ -478,8 +478,8 @@ setUltDest url = do
|
|||||||
--
|
--
|
||||||
-- If this is a 404 handler, there is no current page, and then this call does
|
-- If this is a 404 handler, there is no current page, and then this call does
|
||||||
-- nothing.
|
-- nothing.
|
||||||
setUltDest' :: GHandler sub master ()
|
setUltDestCurrent :: GHandler sub master ()
|
||||||
setUltDest' = do
|
setUltDestCurrent = do
|
||||||
route <- getCurrentRoute
|
route <- getCurrentRoute
|
||||||
case route of
|
case route of
|
||||||
Nothing -> return ()
|
Nothing -> return ()
|
||||||
|
|||||||
@ -382,7 +382,7 @@ defaultYesodRunner handler master sub murl toMasterRoute mkey req = do
|
|||||||
Nothing ->
|
Nothing ->
|
||||||
permissionDenied "Authentication required"
|
permissionDenied "Authentication required"
|
||||||
Just url' -> do
|
Just url' -> do
|
||||||
setUltDest'
|
setUltDestCurrent
|
||||||
redirect url'
|
redirect url'
|
||||||
Unauthorized s' -> permissionDenied s'
|
Unauthorized s' -> permissionDenied s'
|
||||||
handler
|
handler
|
||||||
|
|||||||
@ -172,8 +172,6 @@ scaffold = do
|
|||||||
$(codegen "templates/default-layout.hamlet")
|
$(codegen "templates/default-layout.hamlet")
|
||||||
writeFile' "templates/default-layout-wrapper.hamlet"
|
writeFile' "templates/default-layout-wrapper.hamlet"
|
||||||
$(codegen "templates/default-layout-wrapper.hamlet")
|
$(codegen "templates/default-layout-wrapper.hamlet")
|
||||||
writeFile' "templates/boilerplate-wrapper.hamlet"
|
|
||||||
$(codegen "templates/boilerplate-wrapper.hamlet")
|
|
||||||
writeFile' "templates/normalize.lucius"
|
writeFile' "templates/normalize.lucius"
|
||||||
$(codegen "templates/normalize.lucius")
|
$(codegen "templates/normalize.lucius")
|
||||||
writeFile' "templates/homepage.hamlet"
|
writeFile' "templates/homepage.hamlet"
|
||||||
|
|||||||
@ -89,7 +89,7 @@ instance Yesod ~sitearg~ where
|
|||||||
encryptKey _ = fmap Just $ getKey "config/client_session_key.aes"
|
encryptKey _ = fmap Just $ getKey "config/client_session_key.aes"
|
||||||
|
|
||||||
defaultLayout widget = do
|
defaultLayout widget = do
|
||||||
y <- getYesod
|
master <- getYesod
|
||||||
mmsg <- getMessage
|
mmsg <- getMessage
|
||||||
|
|
||||||
-- We break up the default layout into two components:
|
-- We break up the default layout into two components:
|
||||||
|
|||||||
@ -61,8 +61,11 @@ widgetFile = Yesod.Default.Util.widgetFileNoReload
|
|||||||
|
|
||||||
data Extra = Extra
|
data Extra = Extra
|
||||||
{ extraCopyright :: Text
|
{ extraCopyright :: Text
|
||||||
|
, extraAnalytics :: Maybe Text -- ^ Google Analytics
|
||||||
}
|
}
|
||||||
|
|
||||||
parseExtra :: DefaultEnv -> Object -> Parser Extra
|
parseExtra :: DefaultEnv -> Object -> Parser Extra
|
||||||
parseExtra _ o = Extra <$> o .: "copyright"
|
parseExtra _ o = Extra
|
||||||
|
<$> o .: "copyright"
|
||||||
|
<*> o .:? "analytics"
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ Default: &defaults
|
|||||||
host: "localhost"
|
host: "localhost"
|
||||||
port: 3000
|
port: 3000
|
||||||
copyright: Insert copyright statement here
|
copyright: Insert copyright statement here
|
||||||
|
#analytics: UA-YOURCODE
|
||||||
|
|
||||||
Development:
|
Development:
|
||||||
<<: *defaults
|
<<: *defaults
|
||||||
|
|||||||
@ -1,42 +0,0 @@
|
|||||||
\<!doctype html>
|
|
||||||
\<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
|
|
||||||
\<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
|
|
||||||
\<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
|
|
||||||
\<!--[if gt IE 8]><!-->
|
|
||||||
<html class="no-js" lang="en"> <!--<![endif]-->
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8">
|
|
||||||
|
|
||||||
<title>#{pageTitle pc}
|
|
||||||
<meta name="description" content="">
|
|
||||||
<meta name="author" content="">
|
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
||||||
|
|
||||||
^{pageHead pc}
|
|
||||||
|
|
||||||
\<!--[if lt IE 9]>
|
|
||||||
\<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
|
||||||
\<![endif]-->
|
|
||||||
|
|
||||||
<script>
|
|
||||||
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/,'js');
|
|
||||||
<body>
|
|
||||||
<div id="container">
|
|
||||||
<header>
|
|
||||||
<div id="main" role="main">
|
|
||||||
^{pageBody pc}
|
|
||||||
<footer>
|
|
||||||
|
|
||||||
\<!-- Change UA-XXXXX-X to be your site's ID -->
|
|
||||||
<script>
|
|
||||||
window._gaq = [['_setAccount','UAXXXXXXXX1'],['_trackPageview'],['_trackPageLoadTime']];
|
|
||||||
YepNope.load({
|
|
||||||
\ load: ('https:' == location.protocol ? '//ssl' : '//www') + '.google-analytics.com/ga.js'
|
|
||||||
});
|
|
||||||
\<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6. chromium.org/developers/how-tos/chrome-frame-getting-started -->
|
|
||||||
\<!--[if lt IE 7 ]>
|
|
||||||
<script src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js">
|
|
||||||
<script>
|
|
||||||
window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})
|
|
||||||
\<![endif]-->
|
|
||||||
@ -1,8 +1,42 @@
|
|||||||
!!!
|
\<!doctype html>
|
||||||
<html>
|
\<!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en"> <![endif]-->
|
||||||
|
\<!--[if IE 7]> <html class="no-js ie7 oldie" lang="en"> <![endif]-->
|
||||||
|
\<!--[if IE 8]> <html class="no-js ie8 oldie" lang="en"> <![endif]-->
|
||||||
|
\<!--[if gt IE 8]><!-->
|
||||||
|
<html class="no-js" lang="en"> <!--<![endif]-->
|
||||||
<head>
|
<head>
|
||||||
<title>#{pageTitle pc}
|
<meta charset="UTF-8">
|
||||||
^{pageHead pc}
|
|
||||||
<body>
|
|
||||||
^{pageBody pc}
|
|
||||||
|
|
||||||
|
<title>#{pageTitle pc}
|
||||||
|
<meta name="description" content="">
|
||||||
|
<meta name="author" content="">
|
||||||
|
|
||||||
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
|
|
||||||
|
^{pageHead pc}
|
||||||
|
|
||||||
|
\<!--[if lt IE 9]>
|
||||||
|
\<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
|
||||||
|
\<![endif]-->
|
||||||
|
|
||||||
|
<script>
|
||||||
|
document.documentElement.className = document.documentElement.className.replace(/\bno-js\b/,'js');
|
||||||
|
<body>
|
||||||
|
<div id="container">
|
||||||
|
<header>
|
||||||
|
<div id="main" role="main">
|
||||||
|
^{pageBody pc}
|
||||||
|
<footer>
|
||||||
|
|
||||||
|
$maybe analytics <- extraAnalytics $ appExtra $ settings master
|
||||||
|
<script>
|
||||||
|
window._gaq = [['_setAccount','#{analytics}'],['_trackPageview'],['_trackPageLoadTime']];
|
||||||
|
YepNope.load({
|
||||||
|
\ load: ('https:' == location.protocol ? '//ssl' : '//www') + '.google-analytics.com/ga.js'
|
||||||
|
});
|
||||||
|
\<!-- Prompt IE 6 users to install Chrome Frame. Remove this if you want to support IE 6. chromium.org/developers/how-tos/chrome-frame-getting-started -->
|
||||||
|
\<!--[if lt IE 7 ]>
|
||||||
|
<script src="//ajax.googleapis.com/ajax/libs/chrome-frame/1.0.3/CFInstall.min.js">
|
||||||
|
<script>
|
||||||
|
window.attachEvent('onload',function(){CFInstall.check({mode:'overlay'})})
|
||||||
|
\<![endif]-->
|
||||||
|
|||||||
@ -2,5 +2,5 @@ $maybe msg <- mmsg
|
|||||||
<div #message>#{msg}
|
<div #message>#{msg}
|
||||||
^{widget}
|
^{widget}
|
||||||
<footer>
|
<footer>
|
||||||
#{extraCopyright $ appExtra $ settings y}
|
#{extraCopyright $ appExtra $ settings master}
|
||||||
|
|
||||||
|
|||||||
@ -66,7 +66,7 @@ instance Yesod ~sitearg~ where
|
|||||||
encryptKey _ = fmap Just $ getKey "config/client_session_key.aes"
|
encryptKey _ = fmap Just $ getKey "config/client_session_key.aes"
|
||||||
|
|
||||||
defaultLayout widget = do
|
defaultLayout widget = do
|
||||||
y <- getYesod
|
master <- getYesod
|
||||||
mmsg <- getMessage
|
mmsg <- getMessage
|
||||||
|
|
||||||
-- We break up the default layout into two components:
|
-- We break up the default layout into two components:
|
||||||
|
|||||||
@ -50,8 +50,11 @@ widgetFile = Yesod.Default.Util.widgetFileNoReload
|
|||||||
|
|
||||||
data Extra = Extra
|
data Extra = Extra
|
||||||
{ extraCopyright :: Text
|
{ extraCopyright :: Text
|
||||||
|
, extraAnalytics :: Maybe Text -- ^ Google Analytics
|
||||||
}
|
}
|
||||||
|
|
||||||
parseExtra :: DefaultEnv -> Object -> Parser Extra
|
parseExtra :: DefaultEnv -> Object -> Parser Extra
|
||||||
parseExtra _ o = Extra <$> o .: "copyright"
|
parseExtra _ o = Extra
|
||||||
|
<$> o .: "copyright"
|
||||||
|
<*> o .:? "analytics"
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user