From 1dd08f9f59c86edd3c5ffa274d17b9b019c3f48d Mon Sep 17 00:00:00 2001 From: nek0 Date: Thu, 12 Feb 2015 00:15:07 +0100 Subject: [PATCH] added main page pagination --- Handler/Home.hs | 13 +++++++++++++ config/routes | 1 + templates/home.hamlet | 6 ++++++ templates/page.hamlet | 25 +++++++++++++++++++++++++ 4 files changed, 45 insertions(+) create mode 100644 templates/page.hamlet diff --git a/Handler/Home.hs b/Handler/Home.hs index 1ce9f41..7e5357e 100644 --- a/Handler/Home.hs +++ b/Handler/Home.hs @@ -18,11 +18,24 @@ module Handler.Home where import Import +import qualified Data.Text as T getHomeR :: Handler Html getHomeR = do recentMedia <- runDB $ selectList [] [Desc MediumTime, LimitTo 30] + nextMediaQuery <- runDB $ selectList [] [Desc MediumTime, LimitTo 1, OffsetBy 30] + nextMedia <- return $ not $ null nextMediaQuery widgetLayout <- return $ widgetFile "default-widget" defaultLayout $ do setTitle "Eidolon :: Home" $(widgetFile "home") + +getPageR :: Int -> Handler Html +getPageR page = do + pageMedia <- runDB $ selectList [] [Desc MediumTime, LimitTo 30, OffsetBy (page*30)] + nextMediaQuery <- runDB $ selectList [] [Desc MediumTime, LimitTo 1, OffsetBy ((page + 1) * 30)] + nextMedia <- return $ not $ null nextMediaQuery + widgetLayout <- return $ widgetFile "default-widget" + defaultLayout $ do + setTitle $ toHtml ("Eidolon :: Page " `T.append` (T.pack $ show page)) + $(widgetFile "page") diff --git a/config/routes b/config/routes index bde9939..a631b15 100644 --- a/config/routes +++ b/config/routes @@ -20,6 +20,7 @@ /robots.txt RobotsR GET / HomeR GET +/page/#Int PageR GET /signup SignupR GET POST /login LoginR GET POST /logout LogoutR GET diff --git a/templates/home.hamlet b/templates/home.hamlet index 2f1466f..5ffa2fa 100644 --- a/templates/home.hamlet +++ b/templates/home.hamlet @@ -10,3 +10,9 @@ $forall (Entity mediumId medium) <- recentMedia
#{mediumTitle medium} +$if nextMedia +