packages feed

yesod-pagination 0.1.0.0 → 0.2.0.0

raw patch · 3 files changed

+13/−12 lines, 3 files

Files

src/Yesod/Paginate.hs view
@@ -23,6 +23,7 @@ import qualified Data.Text.Read as R import Database.Esqueleto import Database.Esqueleto.Internal.Language+import Database.Esqueleto.Internal.Sql import Prelude import Text.Shakespeare.Text import Yesod hiding (Value)@@ -41,24 +42,24 @@  -- | Returned by 'paginate' and friends. data Page r = Page-            { pageResults :: [Entity r] -- ^ Returned entities.+            { pageResults :: [r] -- ^ Returned entities.             , pageCount :: Int64 -- ^ Total number of pages. This will be at minimum 1, even for an empty result set.             , nextPage :: Maybe Text -- ^ Link to next page, pre-rendered.             , previousPage :: Maybe Text -- ^ Link to previous page, pre-rendered.             } deriving (Eq, Read, Show)  -- | Paginate a model using default options - nothing special.-paginate :: (PersistEntity r, RenderRoute site, YesodPersist site,-             YesodPersistBackend site ~ SqlPersistT,-             PersistEntityBackend r ~ SqlBackend)+paginate :: (From SqlQuery SqlExpr SqlBackend a, RenderRoute site,+             YesodPersist site, SqlSelect a r,+             YesodPersistBackend site ~ SqlPersistT)          => HandlerT site IO (Page r) -- ^ Returned page. paginate = paginateWith return  -- | Paginate a model, given an esqueleto query.-paginateWith :: (PersistEntity r, From SqlQuery SqlExpr SqlBackend t,+paginateWith :: (From SqlQuery SqlExpr SqlBackend t, SqlSelect a r,                  RenderRoute site, YesodPersist site,                  YesodPersistBackend site ~ SqlPersistT)-             => (t -> SqlQuery (SqlExpr (Entity r))) -- ^ SQL query.+             => (t -> SqlQuery a) -- ^ SQL query.              -> HandlerT site IO (Page r) -- ^ Returned page. paginateWith sel = do     params <- liftM2 (\a b -> fst a ++ reqGetParams b)@@ -73,11 +74,11 @@     paginateWithConfig def { pageSize, currentPage } sel  -- | Paginate a model, given a configuration and an esqueleto query.-paginateWithConfig :: (PersistEntity r, From SqlQuery SqlExpr SqlBackend t,+paginateWithConfig :: (From SqlQuery SqlExpr SqlBackend t, SqlSelect a r,                        RenderRoute site, YesodPersist site,                        YesodPersistBackend site ~ SqlPersistT)                    => PageConfig -- ^ Preferred config.-                   -> (t -> SqlQuery (SqlExpr (Entity r))) -- ^ SQL query.+                   -> (t -> SqlQuery a) -- ^ SQL query.                    -> HandlerT site IO (Page r) -- ^ Returned page. paginateWithConfig c sel = do     let filterStmt u = limit (pageSize c) >> return u
tests/main.hs view
@@ -44,7 +44,7 @@  getItemsR :: HandlerT TestApp IO TypedContent getItemsR = do-    (items :: Page Item) <- paginate+    (items :: Page (Entity Item)) <- paginate     selectRep . provideRep $ return [stext|#{show items}|]  main :: IO ()@@ -88,11 +88,11 @@                 cp <- getPage                 liftIO $ length (pageResults cp) `shouldBe` 5 -getPage :: YesodExample TestApp (Page Item)+getPage :: YesodExample TestApp (Page (Entity Item)) getPage = withResponse $ \SResponse { simpleBody } ->     return $ read (B.toString simpleBody) -wantPage :: Page Item -> YesodExample TestApp ()+wantPage :: Page (Entity Item) -> YesodExample TestApp () wantPage p = do     pg <- getPage     liftIO $ pg `shouldBe` p
yesod-pagination.cabal view
@@ -1,5 +1,5 @@ name:                yesod-pagination-version:             0.1.0.0+version:             0.2.0.0 synopsis:            Pagination in Yesod description:         Easy pagination for Yesod. homepage:            https://github.com/joelteon/yesod-pagination