MishkaGervaz.Table.Web.DataLoader.PaginationHandler
(MishkaGervaz v0.0.1-alpha.2)
Copy Markdown
View Source
Handles pagination logic for data loading.
Overridable Functions
load_page/5- Load a specific page of dataget_pagination_type/1- Get pagination type from statecalculate_total_pages/2- Calculate total pages from countbuild_page_opts/3- Build pagination options for query
User Override
defmodule MyApp.Table.DataLoader.PaginationHandler do
use MishkaGervaz.Table.Web.DataLoader.PaginationHandler
def load_page(state, query, page, action, tenant) do
# Custom pagination with caching
cached_result = check_cache(state.static.resource, page)
if cached_result do
cached_result
else
result = super(state, query, page, action, tenant)
cache_result(state.static.resource, page, result)
result
end
end
endSee MishkaGervaz.Table.Web.DataLoader,
MishkaGervaz.Table.Web.DataLoader.Helpers,
MishkaGervaz.Table.Entities.Pagination,
and the sibling sub-builders QueryBuilder, FilterParser,
TenantResolver, HookRunner, RelationLoader.