yesod-pagination 1.1.0.0 → 2.0.0
raw patch · 2 files changed
+16/−21 lines, 2 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
- Yesod.Paginate: paginate :: (YesodPersist site, SqlSelect a s, MonadResource (YesodPersistBackend site (HandlerT site IO)), From SqlQuery SqlExpr SqlBackend a, MonadSqlPersist (YesodPersistBackend site (HandlerT site IO))) => PageConfig site -> HandlerT site IO (Page (Route site) s)
+ Yesod.Paginate: paginate :: (From SqlQuery SqlExpr SqlBackend a, SqlSelect a a1, YesodPersist site, YesodPersistBackend site ~ Connection) => PageConfig app -> HandlerT site IO (Page (Route app) a1)
- Yesod.Paginate: paginateWith :: (YesodPersist site, SqlSelect a s, MonadResource (YesodPersistBackend site (HandlerT site IO)), From SqlQuery SqlExpr SqlBackend q, MonadSqlPersist (YesodPersistBackend site (HandlerT site IO))) => PageConfig site -> (q -> SqlQuery a) -> HandlerT site IO (Page (Route site) s)
+ Yesod.Paginate: paginateWith :: (From SqlQuery SqlExpr SqlBackend a1, SqlSelect a a2, YesodPersist site, YesodPersistBackend site ~ Connection) => PageConfig app -> (a1 -> SqlQuery a) -> HandlerT site IO (Page (Route app) a2)
Files
- src/Yesod/Paginate.hs +14/−20
- yesod-pagination.cabal +2/−1
src/Yesod/Paginate.hs view
@@ -10,8 +10,8 @@ paginate, paginateWith, -- *** Datatypes- PageConfig(..),- Page(..)+ PageConfig (..),+ Page (..) ) where import Control.Monad@@ -41,39 +41,33 @@ -- | Paginate a model, given a configuration. This just performs a @SELECT -- *@.-paginate :: (YesodPersist site, SqlSelect a s,- MonadResource (YesodPersistBackend site (HandlerT site IO)),- From SqlQuery SqlExpr SqlBackend a,- MonadSqlPersist (YesodPersistBackend site (HandlerT site IO)))- => PageConfig site -- ^ Preferred config.- -> HandlerT site IO (Page (Route site) s) -- ^ Returned page.+paginate :: ( From SqlQuery SqlExpr SqlBackend a+ , SqlSelect a a1, YesodPersist site+ , YesodPersistBackend site ~ Connection)+ => PageConfig app -> HandlerT site IO (Page (Route app) a1) paginate c = paginateWith c return -- | Paginate a model, given a configuration and an esqueleto query.-paginateWith :: (YesodPersist site, SqlSelect a s,- MonadResource (YesodPersistBackend site (HandlerT site IO)),- From SqlQuery SqlExpr SqlBackend q,- MonadSqlPersist (YesodPersistBackend site (HandlerT site IO)))- => PageConfig site -- ^ Preferred config.- -> (q -> SqlQuery a) -- ^ SQL query.- -> HandlerT site IO (Page (Route site) s) -- ^ Returned page.+paginateWith :: ( From SqlQuery SqlExpr SqlBackend a1, SqlSelect a a2+ , YesodPersist site, YesodPersistBackend site ~ Connection+ )+ => PageConfig app -- ^ Preferred config.+ -> (a1 -> SqlQuery a) -- ^ SQL query.+ -> HandlerT site IO (Page (Route app) a2) -- ^ Returned page. paginateWith c sel = do let cp = max 1 $ fromIntegral (currentPage c) - es <- runDB $ select $ from $ \u -> do+ es <- runDB $ select $ from $ \ u -> do limit (fromIntegral (pageSize c) + 1) offset $ max 0 $ fromIntegral (pageSize c) * (cp - 1) sel u let route = pageRoute c . fromIntegral- pp | cp == 1 = Nothing- | cp == 2 = Just (firstPageRoute c)- | otherwise = Just (route $ cp - 1) return Page { pageResults = take (fromIntegral $ pageSize c) es , firstPage = if cp >= 2 then Just (firstPageRoute c) else Nothing , nextPage = if fromIntegral (length es) == pageSize c + 1 then Just (route $ cp + 1) else Nothing- , previousPage = pp+ , previousPage = if cp == 1 then Nothing else Just (route $ cp - 1) }
yesod-pagination.cabal view
@@ -1,5 +1,5 @@ name: yesod-pagination-version: 1.1.0.0+version: 2.0.0 synopsis: Pagination in Yesod description: Easy pagination for Yesod. homepage: https://github.com/joelteon/yesod-pagination@@ -18,6 +18,7 @@ , yesod hs-source-dirs: src default-language: Haskell2010+ ghc-options: -Wall test-suite test type: exitcode-stdio-1.0