++ scelta di territori e proclamatori con ricerca
Al posto delle tendine (Assegna, Registro, editor delle piantine) un
campo in cui si scrive e compaiono le proposte più vicine: uguale, inizia
con, contiene, errore di battitura ("forse cercavi"); parole in qualsiasi
ordine, senza badare a maiuscole e accenti. Campo vuoto: la tendina
completa. Fatto anche per il telefono (16px, voci da 44px, scelta al tocco).
- Logica pura in resources/js/scelta.js con test node (tests/js).
- Opzioni dal server: Territorio/Proclamatore::opzioneScelta(); i
territori già assegnati si trovano ("già assegnato a …") ma non si
scelgono. Nomi cifrati ordinati e cercati decifrati, mai in SQL.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
27
HANDOFF.md
27
HANDOFF.md
@@ -127,6 +127,33 @@ email di prova e di conferma arrivate, link aperto senza login, account
|
||||
sbloccato; riquadro dopo l'assegnazione con WhatsApp e scelta. Configurazione
|
||||
e dati di prova rimossi dopo.
|
||||
|
||||
### Scelta di territori e proclamatori con ricerca (19 ottobre 2026)
|
||||
|
||||
Al posto delle tendine di territorio e proclamatore (Assegna, finestra del
|
||||
Registro, editor delle piantine) c'è `<x-scelta>`: si scrive e compaiono le
|
||||
proposte più vicine; campo vuoto o appena aperto = la tendina completa.
|
||||
|
||||
- Ordine: uguale → inizia con → contiene → a una lettera di distanza ("forse
|
||||
cercavi", due lettere dalle 7 in su; mai sui numeri sotto le 4 cifre, così
|
||||
"35" non trova "36"). Le parole scritte valgono in qualsiasi ordine ("mario
|
||||
ros"); maiuscole e accenti non contano. Logica pura in
|
||||
`resources/js/scelta.js`, provata da `tests/js/scelta.test.mjs`
|
||||
(`npm run test:js`, oppure `node --test tests/js/`).
|
||||
- Le opzioni le prepara il server (`Territorio::opzioneScelta()`,
|
||||
`Proclamatore::opzioneScelta()/opzioniScelta()`). Con `motivo` un'opzione
|
||||
compare cercando ma non si sceglie: in Assegna i territori già assegnati
|
||||
("già assegnato a …"), nel Registro territori e proclamatori disattivati.
|
||||
- Nomi e cognomi sono cifrati: si ordinano e si cercano decifrati, nella
|
||||
pagina. Prima il Registro li ordinava in SQL, cioè a caso.
|
||||
- Telefono: testo a 16px sotto i 640px (iOS non ingrandisce), voci alte 44px,
|
||||
elenco in mezzo schermo, scelta al tocco senza perdere il focus; dopo la
|
||||
scelta col dito il campo perde il focus e la tastiera si chiude.
|
||||
- Con Livewire: `wire:model` sul componente (x-modelable). `vuoto` è il valore
|
||||
di "nessuna scelta": `null` per le proprietà `?int` (Assegna), `''` per le
|
||||
stringhe. Il componente si ridisegna quando cambiano le opzioni (wire:key
|
||||
con l'impronta), perché x-data le legge una volta sola.
|
||||
- Il filtro "Filtra territori" di Assegna non serve più ed è stato tolto.
|
||||
|
||||
### Si torna da dove si è partiti (19 ottobre 2026)
|
||||
|
||||
Regola dell'utente: dopo un'operazione — confermata **o annullata** — si torna
|
||||
|
||||
Reference in New Issue
Block a user