Scaffolding uses boilerplate (#234)

This commit is contained in:
Michael Snoyman 2012-01-22 20:32:25 +02:00
parent 965fd03ca8
commit e6577832b4
13 changed files with 57 additions and 60 deletions

View File

@ -241,7 +241,7 @@ requireAuth = maybeAuth >>= maybe redirectLogin return
redirectLogin :: Yesod m => GHandler s m a
redirectLogin = do
y <- getYesod
setUltDest'
setUltDestCurrent
case authRoute y of
Just z -> redirect z
Nothing -> permissionDenied "Please configure authRoute"

View File

@ -75,7 +75,7 @@ module Yesod.Handler
, deleteSession
-- ** Ultimate destination
, setUltDest
, setUltDest'
, setUltDestCurrent
, setUltDestReferer
, redirectUltDest
, clearUltDest
@ -478,8 +478,8 @@ setUltDest url = do
--
-- If this is a 404 handler, there is no current page, and then this call does
-- nothing.
setUltDest' :: GHandler sub master ()
setUltDest' = do
setUltDestCurrent :: GHandler sub master ()
setUltDestCurrent = do
route <- getCurrentRoute
case route of
Nothing -> return ()

View File

@ -382,7 +382,7 @@ defaultYesodRunner handler master sub murl toMasterRoute mkey req = do
Nothing ->
permissionDenied "Authentication required"
Just url' -> do
setUltDest'
setUltDestCurrent
redirect url'
Unauthorized s' -> permissionDenied s'
handler

View File

@ -172,8 +172,6 @@ scaffold = do
$(codegen "templates/default-layout.hamlet")
writeFile' "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"
$(codegen "templates/normalize.lucius")
writeFile' "templates/homepage.hamlet"

View File

@ -89,7 +89,7 @@ instance Yesod ~sitearg~ where
encryptKey _ = fmap Just $ getKey "config/client_session_key.aes"
defaultLayout widget = do
y <- getYesod
master <- getYesod
mmsg <- getMessage
-- We break up the default layout into two components:

View File

@ -61,8 +61,11 @@ widgetFile = Yesod.Default.Util.widgetFileNoReload
data Extra = Extra
{ extraCopyright :: Text
, extraAnalytics :: Maybe Text -- ^ Google Analytics
}
parseExtra :: DefaultEnv -> Object -> Parser Extra
parseExtra _ o = Extra <$> o .: "copyright"
parseExtra _ o = Extra
<$> o .: "copyright"
<*> o .:? "analytics"

View File

@ -2,6 +2,7 @@ Default: &defaults
host: "localhost"
port: 3000
copyright: Insert copyright statement here
#analytics: UA-YOURCODE
Development:
<<: *defaults

View File

@ -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]-->

View File

@ -1,8 +1,42 @@
!!!
<html>
\<!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>
<title>#{pageTitle pc}
^{pageHead pc}
<body>
^{pageBody pc}
<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>
$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]-->

View File

@ -2,5 +2,5 @@ $maybe msg <- mmsg
<div #message>#{msg}
^{widget}
<footer>
#{extraCopyright $ appExtra $ settings y}
#{extraCopyright $ appExtra $ settings master}

View File

@ -66,7 +66,7 @@ instance Yesod ~sitearg~ where
encryptKey _ = fmap Just $ getKey "config/client_session_key.aes"
defaultLayout widget = do
y <- getYesod
master <- getYesod
mmsg <- getMessage
-- We break up the default layout into two components:

View File

@ -50,8 +50,11 @@ widgetFile = Yesod.Default.Util.widgetFileNoReload
data Extra = Extra
{ extraCopyright :: Text
, extraAnalytics :: Maybe Text -- ^ Google Analytics
}
parseExtra :: DefaultEnv -> Object -> Parser Extra
parseExtra _ o = Extra <$> o .: "copyright"
parseExtra _ o = Extra
<$> o .: "copyright"
<*> o .:? "analytics"