Add live contact search to invitee input

The static datalist only carried the first 50 address book
contacts, so typed fragments could not match anything beyond
that. A new read-only GET /contacts/search endpoint queries
the full address book per keystroke, and a small vanilla JS
combobox shows the results and replaces only the fragment
after the last separator, so comma-separated lists keep
working. The server-rendered datalist remains as the no-JS
fallback; the JS removes the list attribute at runtime so
the native popup does not double the custom one.
This commit is contained in:
stefan.tollkuehn committed 2026-10-22 18:50:46 +02:00
1 parent 0e5b190971
commit cc1fd4e508
7 files changed
+352 -19

No files matched your search

+1
View File
@@ -141,6 +141,7 @@ $l = $_['l10n'];
name="attendees"
type="text"
list="atocal-contact-emails"
data-search-url="<?= $h($_['contactsSearchUrl']) ?>"
value="<?= $h($_['attendees']) ?>"
placeholder="<?= $h(
$l->t('Email addresses, comma-separated')