Files
xamxam/TODO.md
Pontoporeia 234d7bae40 admin/index.php: add server-side pagination (25/page)
- Add Database::getThesesListCount(array $filters) — runs the same WHERE
  clauses as getThesesList() but with COUNT(DISTINCT t.id); used to compute
  total pages without loading all rows.
- Extend Database::getThesesList() with $limit/$offset parameters; when
  $limit > 0 appends LIMIT/OFFSET and re-binds positional params individually
  to avoid the PDO mixed-style restriction.
- Fix getThesesList() SELECT: add LEFT JOIN access_types + at.name as
  access_type — the column was referenced in the template but never fetched.
- Wire admin/index.php: read ?page=, compute $totalPages/$offset, pass
  $perPage=25 + $offset to getThesesList(); include pagination.php partial
  below the table with filter-preserving $baseParams.
- Add result-count line (<p class="admin-list-meta">) showing "X–Y sur Z TFE"
  when multiple pages exist.
- Add .admin-body .pagination-wrap / .pagination-btn / .pagination-info styles
  to admin.css (scoped to .admin-body to avoid colliding with public pages).
2026-04-06 15:33:08 +02:00

2.2 KiB

TODO

Pending tasks have been split into topic files under todo/:

File Topic
todo/01-css-semantic-refactor.md CSS class audit, semantic HTML (public + admin), inline style extraction, favicon
todo/02-php-components.md Form field partials, shared UI partials, controller extraction, backend maintenance
todo/03-system-cache.md system_cache table, SystemCache class, system.php refactor
todo/04-accessibility.md WCAG 2.1 AA — remaining failures grouped by success criterion

Recently completed (this session)

  • admin/index.php — server-side pagination (25/page); Database::getThesesListCount() added; getThesesList() extended with $limit/$offset; access_type JOIN added to query (was missing); result-count meta line added; .pagination-wrap + .pagination-btn + .pagination-info styles added to admin.css

  • checkbox-list.php — replaced <div class="admin-checkbox-list"> with <fieldset class="admin-checkbox-group"><legend class="sr-only">…</legend><ul> (WCAG 1.3.1 fix)

  • admin.css — replaced .admin-checkbox-list with .admin-body fieldset.admin-checkbox-group > ul semantic selectors; added span.admin-row-label as visible label column counterpart

  • login.php — wrapped content in <main id="main-content"> landmark

  • account.php<div class="admin-account-status"><dl>; __row divs kept; __label spans → <dt>; admin-danger-zone__description div → <p>

  • index.php — maintenance bar <div><aside role="status" aria-label="Statut du site">

  • add.php / edit.phpautocomplete="name" on author field, autocomplete="email" on contact field

  • tags.php — all inline style= attributes removed; sizing/spacing moved to CSS (.admin-input--inline, .admin-select--inline, .admin-inline-form + .admin-inline-form, .admin-tags-count)

  • Marked already-done items in todo files: stats <dl>, thanks.php <section>, scope="col" on both tables, tfe.php inline styles, role="alert" on flash messages