yesod-paginator-1.1.0.1: A pagination approach for yesod

Safe HaskellNone
LanguageHaskell2010

Yesod.Paginator.Paginate

Synopsis

Documentation

paginate :: MonadHandler m => PerPage -> [a] -> m (Pages a) Source #

Paginate a list of items

paginate' :: PerPage -> [a] -> PageNumber -> Pages a Source #

A version where the current page is given

This can be used to avoid the monadic context altogether.

>>> paginate' 3 ([1..10] :: [Int]) 1
Pages {pagesCurrent = Page {pageItems = [1,2,3], pageNumber = 1}, pagesPrevious = [], pagesNext = [2,3,4], pagesLast = 4}
>>> paginate' 3 ([1..10] :: [Int]) 2
Pages {pagesCurrent = Page {pageItems = [4,5,6], pageNumber = 2}, pagesPrevious = [1], pagesNext = [3,4], pagesLast = 4}
>>> paginate' 3 ([1..10] :: [Int]) 3
Pages {pagesCurrent = Page {pageItems = [7,8,9], pageNumber = 3}, pagesPrevious = [1,2], pagesNext = [4], pagesLast = 4}
>>> paginate' 3 ([1..10] :: [Int]) 4
Pages {pagesCurrent = Page {pageItems = [10], pageNumber = 4}, pagesPrevious = [1,2,3], pagesNext = [], pagesLast = 4}
>>> paginate' 3 ([1..10] :: [Int]) 5
Pages {pagesCurrent = Page {pageItems = [], pageNumber = 5}, pagesPrevious = [1,2,3,4], pagesNext = [], pagesLast = 4}

selectPaginated :: (MonadHandler m, PersistEntity record, PersistEntityBackend record ~ BaseBackend backend, PersistQueryRead backend) => PerPage -> [Filter record] -> [SelectOpt record] -> ReaderT backend m (Pages (Entity record)) Source #

Paginate out of a persistent database

selectPaginated' :: (MonadIO m, PersistEntity record, PersistEntityBackend record ~ BaseBackend backend, PersistQueryRead backend) => PerPage -> [Filter record] -> [SelectOpt record] -> PageNumber -> ReaderT backend m (Pages (Entity record)) Source #

A version where the current page is given

This can be used to avoid the MonadHandler context.