managed to insert a link into the footer
This commit is contained in:
parent
8c52aad913
commit
336c06b4ff
9 changed files with 33 additions and 12 deletions
|
@ -33,8 +33,8 @@ import Data.Default (def)
|
||||||
import Yesod.Core.Types (loggerSet)
|
import Yesod.Core.Types (loggerSet)
|
||||||
|
|
||||||
import Control.Monad.Logger (liftLoc, runLoggingT)
|
import Control.Monad.Logger (liftLoc, runLoggingT)
|
||||||
import Database.Persist.Sqlite (createSqlitePool, runSqlPool,
|
import Database.Persist.Postgresql (createPostgresqlPool, runSqlPool,
|
||||||
sqlDatabase, sqlPoolSize)
|
pgConnStr, pgPoolSize)
|
||||||
import Language.Haskell.TH.Syntax (qLocation)
|
import Language.Haskell.TH.Syntax (qLocation)
|
||||||
import Network.Wai.Handler.Warp (Settings, defaultSettings,
|
import Network.Wai.Handler.Warp (Settings, defaultSettings,
|
||||||
defaultShouldDisplayException,
|
defaultShouldDisplayException,
|
||||||
|
@ -99,9 +99,9 @@ makeFoundation appSettings = do
|
||||||
logFunc = messageLoggerSource tempFoundation appLogger
|
logFunc = messageLoggerSource tempFoundation appLogger
|
||||||
|
|
||||||
-- Create the database connection pool
|
-- Create the database connection pool
|
||||||
pool <- flip runLoggingT logFunc $ createSqlitePool
|
pool <- flip runLoggingT logFunc $ createPostgresqlPool
|
||||||
(sqlDatabase $ appDatabaseConf appSettings)
|
(pgConnStr $ appDatabaseConf appSettings)
|
||||||
(sqlPoolSize $ appDatabaseConf appSettings)
|
(pgPoolSize $ appDatabaseConf appSettings)
|
||||||
|
|
||||||
-- Perform database migration using our application's logging settings.
|
-- Perform database migration using our application's logging settings.
|
||||||
runLoggingT (runSqlPool (runMigration migrateAll) pool) logFunc
|
runLoggingT (runSqlPool (runMigration migrateAll) pool) logFunc
|
||||||
|
|
|
@ -91,6 +91,9 @@ renderLayout widget = do
|
||||||
-- value passed to hamletToRepHtml cannot be a widget, this allows
|
-- value passed to hamletToRepHtml cannot be a widget, this allows
|
||||||
-- you to use normal widget features in default-layout.
|
-- you to use normal widget features in default-layout.
|
||||||
|
|
||||||
|
copyrightWidget <- widgetToPageContent $ do
|
||||||
|
$(widgetFile "copyrightFooter")
|
||||||
|
|
||||||
wc <- widgetToPageContent widget
|
wc <- widgetToPageContent widget
|
||||||
|
|
||||||
pc <- widgetToPageContent $ do
|
pc <- widgetToPageContent $ do
|
||||||
|
@ -107,6 +110,7 @@ renderLayout widget = do
|
||||||
css_bootstrap_css
|
css_bootstrap_css
|
||||||
])
|
])
|
||||||
$(widgetFile "default-layout")
|
$(widgetFile "default-layout")
|
||||||
|
|
||||||
withUrlRenderer $(hamletFile "templates/default-layout-wrapper.hamlet")
|
withUrlRenderer $(hamletFile "templates/default-layout-wrapper.hamlet")
|
||||||
|
|
||||||
formLayout :: Widget -> Handler Html
|
formLayout :: Widget -> Handler Html
|
||||||
|
|
|
@ -27,7 +27,7 @@ import Data.Aeson (Result (..), fromJSON, withObject, (.!=),
|
||||||
(.:?))
|
(.:?))
|
||||||
import Data.FileEmbed (embedFile)
|
import Data.FileEmbed (embedFile)
|
||||||
import Data.Yaml (decodeEither')
|
import Data.Yaml (decodeEither')
|
||||||
import Database.Persist.Sqlite (SqliteConf)
|
import Database.Persist.Postgresql (PostgresConf)
|
||||||
import Language.Haskell.TH.Syntax (Exp, Name, Q)
|
import Language.Haskell.TH.Syntax (Exp, Name, Q)
|
||||||
import Network.Wai.Handler.Warp (HostPreference)
|
import Network.Wai.Handler.Warp (HostPreference)
|
||||||
import Yesod.Default.Config2 (applyEnvValue, configSettingsYml)
|
import Yesod.Default.Config2 (applyEnvValue, configSettingsYml)
|
||||||
|
@ -40,7 +40,7 @@ import Yesod.Default.Util (WidgetFileSettings, widgetFileNoReload,
|
||||||
data AppSettings = AppSettings
|
data AppSettings = AppSettings
|
||||||
{ appStaticDir :: String
|
{ appStaticDir :: String
|
||||||
-- ^ Directory from which to serve static files.
|
-- ^ Directory from which to serve static files.
|
||||||
, appDatabaseConf :: SqliteConf
|
, appDatabaseConf :: PostgresConf
|
||||||
-- ^ Configuration settings for accessing the database.
|
-- ^ Configuration settings for accessing the database.
|
||||||
, appRoot :: Text
|
, appRoot :: Text
|
||||||
-- ^ Base for all generated URLs.
|
-- ^ Base for all generated URLs.
|
||||||
|
@ -99,6 +99,7 @@ instance FromJSON AppSettings where
|
||||||
appSkipCombining <- o .:? "skip-combining" .!= defaultDev
|
appSkipCombining <- o .:? "skip-combining" .!= defaultDev
|
||||||
|
|
||||||
appCopyright <- o .: "copyright"
|
appCopyright <- o .: "copyright"
|
||||||
|
appCopyrightLink <- o .: "copyrightLink"
|
||||||
appAnalytics <- o .:? "analytics"
|
appAnalytics <- o .:? "analytics"
|
||||||
|
|
||||||
appSignupBlocked <- o .: "signupBlocked"
|
appSignupBlocked <- o .: "signupBlocked"
|
||||||
|
|
|
@ -34,10 +34,15 @@ ip-from-header: "_env:IP_FROM_HEADER:false"
|
||||||
# skip-combining: false
|
# skip-combining: false
|
||||||
|
|
||||||
database:
|
database:
|
||||||
database: "_env:SQLITE_DATABASE:eidolon.sqlite3"
|
user: "_env:PGUSER:eidolon"
|
||||||
poolsize: "_env:SQLITE_POOLSIZE:10"
|
password: "_env:PGPASS:eidolon"
|
||||||
|
host: "_env:PGHOST:localhost"
|
||||||
|
port: "_env:PGPORT:5432"
|
||||||
|
database: "_env:PGDATABASE:eidolon"
|
||||||
|
poolsize: "_env:PGPOOLSIZE:10"
|
||||||
|
|
||||||
copyright: Insert copyright statement here
|
copyright: Powered by Eidolon
|
||||||
|
copyrightLink: https://github.com/nek0/eidolon
|
||||||
#analytics: UA-YOURCODE
|
#analytics: UA-YOURCODE
|
||||||
|
|
||||||
# block signup process
|
# block signup process
|
||||||
|
|
|
@ -74,7 +74,7 @@ library
|
||||||
, bytestring >= 0.9
|
, bytestring >= 0.9
|
||||||
, text >= 0.11
|
, text >= 0.11
|
||||||
, persistent >= 2.1.1.3
|
, persistent >= 2.1.1.3
|
||||||
, persistent-sqlite >= 1.3
|
, persistent-postgresql >= 1.3
|
||||||
, persistent-template >= 1.3
|
, persistent-template >= 1.3
|
||||||
, template-haskell
|
, template-haskell
|
||||||
, shakespeare >= 2.0
|
, shakespeare >= 2.0
|
||||||
|
|
|
@ -151,6 +151,11 @@
|
||||||
margin: 0 0 1em 0;
|
margin: 0 0 1em 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#footer a:hover
|
||||||
|
{
|
||||||
|
color: #D64760;
|
||||||
|
}
|
||||||
|
|
||||||
#footer .left
|
#footer .left
|
||||||
{
|
{
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
|
|
|
@ -22,6 +22,11 @@
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
figcaption
|
||||||
|
{
|
||||||
|
display:none;
|
||||||
|
}
|
||||||
|
|
||||||
a
|
a
|
||||||
{
|
{
|
||||||
color: #fff;
|
color: #fff;
|
||||||
|
|
1
templates/copyrightFooter.hamlet
Normal file
1
templates/copyrightFooter.hamlet
Normal file
|
@ -0,0 +1 @@
|
||||||
|
<a href=#{appCopyrightLink $ appSettings master} target=_blank>#{appCopyright $ appSettings master}
|
|
@ -28,7 +28,7 @@ $maybe msg <- mmsg
|
||||||
^{pageBody wc}
|
^{pageBody wc}
|
||||||
<div id="footer">
|
<div id="footer">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
#{appCopyright $ appSettings master}
|
^{pageBody copyrightWidget}
|
||||||
<div class="right">
|
<div class="right">
|
||||||
$case route
|
$case route
|
||||||
$of Just HomeR
|
$of Just HomeR
|
||||||
|
|
Loading…
Reference in a new issue