packages feed

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 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