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.
23 lines
458 B
PHP
23 lines
458 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
return [
|
|
'routes' => [
|
|
[
|
|
'name' => 'calendar#confirm',
|
|
'url' => '/confirm',
|
|
'verb' => 'GET',
|
|
],
|
|
[
|
|
'name' => 'calendar#create',
|
|
'url' => '/create',
|
|
'verb' => 'POST',
|
|
],
|
|
[
|
|
'name' => 'calendar#searchContacts',
|
|
'url' => '/contacts/search',
|
|
'verb' => 'GET',
|
|
],
|
|
],
|
|
]; |