siteLayout instead of pageHeadings
This commit is contained in:
parent
24eec86bd6
commit
23706c36ce
@ -231,6 +231,7 @@ HomeHeading: Aktuelle Termine
|
|||||||
LoginHeading: Authentifizierung
|
LoginHeading: Authentifizierung
|
||||||
LoginTitle: Authentifizierung
|
LoginTitle: Authentifizierung
|
||||||
ProfileHeading: Benutzereinstellungen
|
ProfileHeading: Benutzereinstellungen
|
||||||
|
ProfileFor: Benutzereinstellungen für
|
||||||
ProfileDataHeading: Gespeicherte Benutzerdaten
|
ProfileDataHeading: Gespeicherte Benutzerdaten
|
||||||
ImpressumHeading: Impressum
|
ImpressumHeading: Impressum
|
||||||
SystemMessageHeading: Uni2work Statusmeldung
|
SystemMessageHeading: Uni2work Statusmeldung
|
||||||
|
|||||||
@ -836,7 +836,7 @@ instance Yesod UniWorX where
|
|||||||
NotAuthenticated -> [whamlet|<p>_{MsgErrorResponseNotAuthenticated}|]
|
NotAuthenticated -> [whamlet|<p>_{MsgErrorResponseNotAuthenticated}|]
|
||||||
PermissionDenied err' -> [whamlet|<p .errMsg>#{err'}|]
|
PermissionDenied err' -> [whamlet|<p .errMsg>#{err'}|]
|
||||||
BadMethod method -> [whamlet|<p>_{MsgErrorResponseBadMethod (decodeUtf8 method)}|]
|
BadMethod method -> [whamlet|<p>_{MsgErrorResponseBadMethod (decodeUtf8 method)}|]
|
||||||
fmap toTypedContent . siteLayout (Just . toHtml . mr $ ErrorResponseTitle err) $ do
|
fmap toTypedContent . siteLayout (toWgt . mr $ ErrorResponseTitle err) $ do
|
||||||
toWidget
|
toWidget
|
||||||
[cassius|
|
[cassius|
|
||||||
.errMsg
|
.errMsg
|
||||||
@ -845,7 +845,7 @@ instance Yesod UniWorX where
|
|||||||
|]
|
|]
|
||||||
errPage
|
errPage
|
||||||
|
|
||||||
defaultLayout = siteLayout Nothing
|
defaultLayout = siteLayout' Nothing
|
||||||
|
|
||||||
-- The page to be redirected to when authentication is required.
|
-- The page to be redirected to when authentication is required.
|
||||||
authRoute _ = Just $ AuthR LoginR
|
authRoute _ = Just $ AuthR LoginR
|
||||||
@ -888,10 +888,21 @@ instance Yesod UniWorX where
|
|||||||
makeLogger = readTVarIO . snd . appLogger
|
makeLogger = readTVarIO . snd . appLogger
|
||||||
|
|
||||||
|
|
||||||
|
siteLayoutMsg :: (RenderMessage site msg, site ~ UniWorX) => msg -> Widget -> Handler Html
|
||||||
|
siteLayoutMsg msg widget = do
|
||||||
|
mr <- getMessageRender
|
||||||
|
siteLayout (toWgt $ mr msg) widget
|
||||||
|
|
||||||
siteLayout :: Maybe Html -- ^ Optionally override `pageHeading`
|
siteLayoutMsg' :: (RenderMessage site msg, site ~ UniWorX) => msg -> Widget -> Handler Html
|
||||||
|
siteLayoutMsg' = siteLayout . i18nHeading
|
||||||
|
|
||||||
|
siteLayout :: Widget -- ^ `pageHeading`
|
||||||
-> Widget -> Handler Html
|
-> Widget -> Handler Html
|
||||||
siteLayout headingOverride widget = do
|
siteLayout = siteLayout' . Just
|
||||||
|
|
||||||
|
siteLayout' :: Maybe Widget -- ^ Optionally override `pageHeading`
|
||||||
|
-> Widget -> Handler Html
|
||||||
|
siteLayout' headingOverride widget = do
|
||||||
master <- getYesod
|
master <- getYesod
|
||||||
let AppSettings { appUserDefaults = UserDefaultConf{..}, .. } = appSettings master
|
let AppSettings { appUserDefaults = UserDefaultConf{..}, .. } = appSettings master
|
||||||
|
|
||||||
@ -964,7 +975,7 @@ siteLayout headingOverride widget = do
|
|||||||
footer :: Widget
|
footer :: Widget
|
||||||
footer = $(widgetFile "widgets/footer")
|
footer = $(widgetFile "widgets/footer")
|
||||||
contentHeadline :: Maybe Widget
|
contentHeadline :: Maybe Widget
|
||||||
contentHeadline = (toWidget <$> headingOverride) <|> (pageHeading =<< mcurrentRoute)
|
contentHeadline = headingOverride <|> (pageHeading =<< mcurrentRoute)
|
||||||
breadcrumbsWgt :: Widget
|
breadcrumbsWgt :: Widget
|
||||||
breadcrumbsWgt = $(widgetFile "widgets/breadcrumbs")
|
breadcrumbsWgt = $(widgetFile "widgets/breadcrumbs")
|
||||||
pageaction :: Widget
|
pageaction :: Widget
|
||||||
@ -1600,6 +1611,7 @@ pageActions _ = []
|
|||||||
i18nHeading :: (MonadWidget m, RenderMessage site msg, HandlerSite m ~ site) => msg -> m ()
|
i18nHeading :: (MonadWidget m, RenderMessage site msg, HandlerSite m ~ site) => msg -> m ()
|
||||||
i18nHeading msg = liftWidgetT $ toWidget =<< getMessageRender <*> pure msg
|
i18nHeading msg = liftWidgetT $ toWidget =<< getMessageRender <*> pure msg
|
||||||
|
|
||||||
|
-- | only used in defaultLayout; better use siteLayout instead!
|
||||||
pageHeading :: Route UniWorX -> Maybe Widget
|
pageHeading :: Route UniWorX -> Maybe Widget
|
||||||
pageHeading (AuthR _)
|
pageHeading (AuthR _)
|
||||||
= Just $ i18nHeading MsgLoginHeading
|
= Just $ i18nHeading MsgLoginHeading
|
||||||
|
|||||||
@ -284,7 +284,7 @@ getCShowR tid ssh csh = do
|
|||||||
mRegAt <- traverse (formatTime SelFormatDateTime) registered
|
mRegAt <- traverse (formatTime SelFormatDateTime) registered
|
||||||
(regWidget, regEnctype) <- generateFormPost $ identifyForm "registerBtn" $ registerForm (isJust mRegAt) $ courseRegisterSecret course
|
(regWidget, regEnctype) <- generateFormPost $ identifyForm "registerBtn" $ registerForm (isJust mRegAt) $ courseRegisterSecret course
|
||||||
registrationOpen <- (==Authorized) <$> isAuthorized (CourseR tid ssh csh CRegisterR) True
|
registrationOpen <- (==Authorized) <$> isAuthorized (CourseR tid ssh csh CRegisterR) True
|
||||||
defaultLayout $ do
|
siteLayout (toWgt $ courseName course) $ do
|
||||||
setTitle [shamlet| #{toPathPiece tid} - #{csh}|]
|
setTitle [shamlet| #{toPathPiece tid} - #{csh}|]
|
||||||
$(widgetFile "course")
|
$(widgetFile "course")
|
||||||
|
|
||||||
|
|||||||
@ -87,9 +87,8 @@ postProfileR = do
|
|||||||
|
|
||||||
let formText = Nothing :: Maybe UniWorXMessage
|
let formText = Nothing :: Maybe UniWorXMessage
|
||||||
actionUrl = ProfileR
|
actionUrl = ProfileR
|
||||||
defaultLayout $ do
|
siteLayout [whamlet|_{MsgProfileFor} ^{nameWidget userDisplayName userSurname}|] $ do
|
||||||
setTitle . toHtml $ "Profil " <> userIdent
|
setTitle . toHtml $ "Profil " <> userIdent
|
||||||
[whamlet| Benutzereinstellungen für ^{nameWidget userDisplayName userSurname} |]
|
|
||||||
$(widgetFile "formPageI18n")
|
$(widgetFile "formPageI18n")
|
||||||
|
|
||||||
postProfileDataR :: Handler Html
|
postProfileDataR :: Handler Html
|
||||||
|
|||||||
@ -133,14 +133,15 @@ postAdminUserR uuid = do
|
|||||||
let userRightsForm :: Form [(SchoolId, Bool, Bool)]
|
let userRightsForm :: Form [(SchoolId, Bool, Bool)]
|
||||||
userRightsForm csrf = do
|
userRightsForm csrf = do
|
||||||
boxRights <- forM userRights $ \(school@(Entity sid _), E.Value isAdmin, E.Value isLecturer) ->
|
boxRights <- forM userRights $ \(school@(Entity sid _), E.Value isAdmin, E.Value isLecturer) ->
|
||||||
if | Set.member sid adminSchools -> do
|
if Set.member sid adminSchools
|
||||||
cbAdmin <- mreq checkBoxField "" (Just isAdmin)
|
then do
|
||||||
cbLecturer <- mreq checkBoxField "" (Just isLecturer)
|
cbAdmin <- mreq checkBoxField "" (Just isAdmin)
|
||||||
return (school, cbAdmin, cbLecturer)
|
cbLecturer <- mreq checkBoxField "" (Just isLecturer)
|
||||||
| otherwise -> do
|
return (school, cbAdmin, cbLecturer)
|
||||||
cbAdmin <- mforced checkBoxField "" isAdmin
|
else do
|
||||||
cbLecturer <- mforced checkBoxField "" isLecturer
|
cbAdmin <- mforced checkBoxField "" isAdmin
|
||||||
return (school, cbAdmin, cbLecturer)
|
cbLecturer <- mforced checkBoxField "" isLecturer
|
||||||
|
return (school, cbAdmin, cbLecturer)
|
||||||
let result = forM boxRights $ \(Entity sid _, (resAdmin,_), (resLecturer, _)) ->
|
let result = forM boxRights $ \(Entity sid _, (resAdmin,_), (resLecturer, _)) ->
|
||||||
(,,) <$> pure sid <*> resAdmin <*> resLecturer
|
(,,) <$> pure sid <*> resAdmin <*> resLecturer
|
||||||
return (result,$(widgetFile "widgets/user-rights-form"))
|
return (result,$(widgetFile "widgets/user-rights-form"))
|
||||||
@ -160,5 +161,7 @@ postAdminUserR uuid = do
|
|||||||
addMessageI Info MsgAccessRightsSaved
|
addMessageI Info MsgAccessRightsSaved
|
||||||
((result, formWidget),formEnctype) <- runFormPost userRightsForm
|
((result, formWidget),formEnctype) <- runFormPost userRightsForm
|
||||||
formResult result userRightsAction
|
formResult result userRightsAction
|
||||||
defaultLayout
|
let heading =
|
||||||
|
[whamlet|_{MsgAccessRightsFor} ^{nameWidget userDisplayName userSurname}|]
|
||||||
|
siteLayout heading
|
||||||
$(widgetFile "adminUser")
|
$(widgetFile "adminUser")
|
||||||
|
|||||||
@ -1,6 +1,3 @@
|
|||||||
<h2>
|
|
||||||
_{MsgAccessRightsFor}
|
|
||||||
^{nameWidget userDisplayName userSurname}
|
|
||||||
<form method=post action=@{AdminUserR uuid} enctype=#{formEnctype}>
|
<form method=post action=@{AdminUserR uuid} enctype=#{formEnctype}>
|
||||||
^{formWidget}
|
^{formWidget}
|
||||||
^{submitButtonView}
|
^{submitButtonView}
|
||||||
|
|||||||
Reference in New Issue
Block a user