Safe Haskell | None |
---|
Easy pagination for Yesod.
- 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)
- 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)
- data PageConfig app = PageConfig {
- pageSize :: Int
- currentPage :: Int
- firstPageRoute :: Route app
- pageRoute :: Int -> Route app
- data Page route r = Page {
- pageResults :: [r]
- firstPage :: Maybe route
- nextPage :: Maybe route
- previousPage :: Maybe route
Paginating
:: (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 a model, given a configuration. This just performs a SELECT
*
.
:: (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. |
Paginate a model, given a configuration and an esqueleto query.
Datatypes
data PageConfig app Source
Metadata about how pagination should work.
PageConfig | |
|
Returned by paginate
and friends.
Page | |
|