FormVox (0.3.9)

2026-03-26T15:20:19.268226+00:00

Added

ODT template export — Upload a custom ODT template with placeholders like {Q1}, {Q2}, {form_title}, etc. Responses are automatically filled into your template when exporting as ODT (#23)

Template auto-detection — "Export ODT" now automatically uses the uploaded template if one exists, removing the need for a separate export option

Template portability — ODT templates follow the form when moved between folders and are cleaned up when the form is deleted

Table question type — New "Table" question with configurable columns (text, number, date, dropdown) and dynamic rows. Ideal for expense declarations, item lists, and structured data collection (#35)

Notification on new responses — Form owners receive a Nextcloud notification when someone submits a response. Toggle on/off per form in Share settings

Wider form layout — Public form container increased from 700px to 960px for better readability

Fixed

TelemetryJob crash — Background job crashed with fetchAssociative() not found on Nextcloud's ResultAdapter. Changed to fetch() (#31)

External API missing pages/pageOrder — API response now includes pages and pageOrder fields (#27)

Required matrix not validated on page navigation — Users could skip to the next page without filling required matrix questions (#34)

Required matrix accepting one row — Matrix questions marked as required now require all rows to be answered (#25)

Horizontal scrolling blocked for wide matrix tables — Matrix tables now scroll horizontally within the form container (#28)

Multiple file uploads broken — File metadata was lost for multi-file uploads, showing only filenames instead of clickable links in results (#36)

Multi-file upload count incorrect — File count now shows total number of files, not number of responses

[object Object] in ODT export — Multi-file answers now display filenames correctly in ODT exports

Webhook creation failing — Fixed parameter binding for webhook creation endpoint

Form hard to read in dark mode — Public form templates had hardcoded light background colors that overrode dark mode CSS variables, making text unreadable (#39)

Changed

Presence endpoints moved to PresenceController — Collaborative editing presence heartbeat and editor list moved from ApiController to dedicated PresenceController for cleaner separation

FormDeletedListener extended — Now also cleans up ODT template folders when a form is deleted

Download