LiveFilter.UrlSerializer (LiveFilter v0.1.0)

View Source

Handles serialization and deserialization of filter configurations to/from URL parameters.

Uses a flat parameter structure similar to Backpex:

  • Simple filters: filters[field_name]=value
  • Range filters: filters[field_name][start]=X&filters[field_name][end]=Y
  • Array filters: filters[field_name][]=value1&filters[field_name][]=value2
  • Operators stored separately: filters[field_name][operator]=contains

Sort parameters:

  • Single sort: sort[field]=due_date&sort[direction]=desc
  • Multiple sorts: sort[0][field]=priority&sort[0][direction]=desc&sort[1][field]=due_date

Summary

Functions

Extracts filter group from URL parameters.

Extracts pagination configuration from URL parameters.

Extracts sort configuration from URL parameters.

Updates URL parameters with pagination values.

Updates URL parameters with filter values.

Updates URL parameters with filter and sort values.

Updates URL parameters with filter, sort, and pagination values.

Updates URL parameters with sort values only.

Functions

from_params(params)

Extracts filter group from URL parameters.

pagination_from_params(params)

Extracts pagination configuration from URL parameters.

Returns a map with :page and :per_page keys, or defaults.

sorts_from_params(params)

Extracts sort configuration from URL parameters.

Returns a list of Sort structs or nil if no sort params.

update_pagination_params(params, pagination)

Updates URL parameters with pagination values.

update_params(params, filter_group)

Updates URL parameters with filter values.

update_params(params, filter_group, sorts)

Updates URL parameters with filter and sort values.

update_params(params, filter_group, sorts, pagination)

Updates URL parameters with filter, sort, and pagination values.

update_sort_params(params, sort)

Updates URL parameters with sort values only.