Files
xamxam/TODO.md
Pontoporeia 2829d13a16 filepond: fix crash 'can't access property main, n.status is undefined'
Fixes three root causes of FilePond errors on TFE upload forms:

1. server.process.onerror accessed .status on a string (XHR response
   text body) — now extracts the body safely.

2. server.load was a bare URL string with no error handling — converted
   to object with onload/onerror to prevent FilePond internal _write
   crash when load.php returns HTTP errors.

3. destroyFilePondsIn now aborts in-flight processing before pond.destroy()
   to prevent stale XHR callbacks firing on a torn-down FilePond instance.

Server-side: FilepondHandler now emits Content-Type: text/plain on all
responses (PHP defaults to text/html on die(), confusing FilePond's
response parser).
2026-06-10 00:18:49 +02:00

1.5 KiB

TODO

HTMX v2 Migration

Reference: docs/autosave-system.md → "HTMX v2 Migration Plan" section.

  • contenus-edit.php (pages): Add hx-* attrs, add overtype:change dispatch in OverType onChange
  • contenus-edit.php (form_help): Add hx-* attrs, add overtype:change dispatch in OverType onChange
  • apropos-groups-form.php (contacts): Add hx-* attrs only
  • contenus-edit.php (sidebar_links): Add hx-* attrs only
  • Add handleAutosaveResponse() shared handler + htmx:beforeRequest loading state
  • Delete autosave.js
  • Fix backend $isAjax detection: also recognize HX-Request header (page.php, apropos.php, form-help.php)
  • Form-help inline editors: add OverType toolbar + HTMX auto-save + remove save buttons
  • Markdown cheatsheet modal: reusable dialog on all OverType editors

FilePond error fixes

  • Fix server.process.onerror: don't access response.status on string (response is XHR text body)
  • Fix server.load: convert from string URL to object with proper onload/onerror handlers
  • Fix server.process.onload: guard against non-ID responses (e.g. HTML error pages disguised as 200)
  • Fix destroyFilePondsIn: abort in-flight uploads before destroying to prevent stale XHR callbacks crashing _write
  • Fix FilepondHandler.php: set Content-Type: text/plain header at top of handleProcess, handleLoad, handleRevert, handleRemove so PHP doesn't default to text/html on die()