Files
uebung2017-9/Timeline.hs

38 lines
1.4 KiB
Haskell
Raw Permalink Normal View History

2017-06-29 17:08:27 +02:00
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE ScopedTypeVariables #-}
module Handler.Timeline where
import Import
2017-06-29 17:23:52 +02:00
-- TODO: Bearbeiten Sie die Aufgaben im Widget-Template "timeline"
2017-06-29 17:08:27 +02:00
getTimelineR :: Handler Html
getTimelineR = do
(uid, user) <- requireAuthPair
2017-07-05 00:13:31 +03:00
posts <- runDB $ selectList [PostAuthor ==. uid] [Desc PostCreated]
2017-06-29 17:08:27 +02:00
(postWidget, postEnctype) <- generateFormPost (postForm Nothing uid)
let userName :: Text
userName = userIdent user
defaultLayout $ do
setTitle . toHtml $ userName <> "'s Timeline"
$(widgetFile "timeline")
-- TODO: Implementieren Sie ein Verhalten zum Speichern des Posts.
-- Nützliche Funktionen: runFormPost.
postTimelineR :: Handler Html
postTimelineR = do
getTimelineR
2017-06-29 18:01:54 +02:00
-- TODO: Eventuell müssen Sie hier oder in config/models die Reihenfolge der Post-Argumente anpassen.
postForm :: UserId -> Form Post
postForm u = renderDivs $ Post
-- UserId
2017-06-29 17:08:27 +02:00
<$> pure u
2017-06-29 18:01:54 +02:00
-- Textfeld mit Default-Wert "Post content"
2017-06-29 17:08:27 +02:00
<*> areq textField "Post" (Just "Post content")
2017-06-29 18:01:54 +02:00
-- Systemzeit
2017-06-29 17:08:27 +02:00
<*> lift (liftIO getCurrentTime)