Amvionlie CMS
Where the Future Begins

Shared Admin List Behavior

Admin list screens should use the shared list-control and list-layout rails so search, filters, sorting, row counts, checkbox selection, and pagination behave consistently across addons.

Owners

  • `core/http/list_controls.php` shapes request parsing for pagination, search, sorting, filters, and total counts.
  • `admin/views/list_layout.php` renders shared list toolbars, sortable headers, pagination controls, action blocks, and neutral panels.
  • Individual addons own their query allow-lists, table rows, labels, and permissions.

How To Call It

  • Parse request controls with `amv_core_list_controls_parse()` or addon adapters that call `amv_core_pagination_parse_request()`, `amv_core_search_parse_request()`, and `amv_core_sort_parse_request()`.
  • Render toolbars with `amv_admin_template_list_toolbar()`.
  • Render sortable headers with `amv_admin_template_sort_header()`.
  • Render bottom pagination with `amv_admin_template_pagination()`.
  • Keep each list's allowed sort columns explicit. Map UI sort keys to SQL columns instead of trusting request strings.

Existing Usage

  • Wiki requires `core/http/list_controls.php` and `admin/views/list_layout.php` from `addons/wiki/src/runtime.php`.
  • Wiki pages and spaces screens use shared search, filters, sort headers, per-page dropdowns, bulk checkboxes, and pagination in `amv_wiki_render_page_list()` and `amv_wiki_render_space_list()`.
  • System Manager uses the same pagination language for completion-board and version findings in `addons/system_manager/src/admin_runtime.php`.

Do Not Duplicate

  • Do not build per-addon row-count dropdown behavior.
  • Do not sort directly on request parameter names.
  • Do not mix create/edit forms into list views when the addon has separate create/edit screens.
  • Do not bypass the shared template merely to change layout text; add addon labels and keep the behavior centralized.

Updated: 2026-05-07 02:18:09