MishkaGervaz.Table.Web.DataLoader.PaginationHandler (MishkaGervaz v0.0.1-alpha.3)

Copy Markdown View Source

Handles pagination logic for data loading.

Overridable Functions

  • load_page/5 - Load a specific page of data
  • get_pagination_type/1 - Get pagination type from state
  • calculate_total_pages/2 - Calculate total pages from count
  • build_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
end

See MishkaGervaz.Table.Web.DataLoader, MishkaGervaz.Table.Web.DataLoader.Helpers, MishkaGervaz.Table.Entities.Pagination, and the sibling sub-builders QueryBuilder, FilterParser, TenantResolver, HookRunner, RelationLoader.