Fait saisir un par un ce qui se saisissait sur une ligne à séparateurs
Les thèmes et les auteurs souffraient du défaut corrigé hier sur les unes : un champ relié à chaque frappe sur une propriété qui découpait puis recomposait la liste, donc un séparateur intapable. Ils passent au même geste — écrire, Entrée, puis modifier ou retirer chaque ligne — et le composant est partagé plutôt que recopié une troisième fois. Le bloc des rôles se fond dans la liste des auteurs : il listait les mêmes noms une seconde fois. Renommer une ligne conserve son rôle, parce qu'on corrige un nom au lieu de reconstruire la liste. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -3237,6 +3237,39 @@ grisé à champ vide, dégrisé dès la première frappe, regrisé si l'on effac
|
||||
|
||||
617 tests au vert (618 avant : le test du découpage des unes n'a plus d'objet).
|
||||
|
||||
### Thèmes et auteurs ont suivi — `SaisieListe`, un composant pour les trois (2026-08-22)
|
||||
|
||||
Les deux champs signalés comme « même mécanique, même défaut » ont été traités de la même
|
||||
façon, et la troisième copie a été évitée : `Composants/SaisieListe.razor` porte le champ, la
|
||||
liste, `Modifier`, `Supprimer`, le refus du doublon et la notification du parent. Les articles
|
||||
à la une, les thèmes et les auteurs s'en servent.
|
||||
|
||||
⚠️ **Le fieldset « Rôles » a disparu, fondu dans la liste des auteurs.** Il y avait désormais
|
||||
deux endroits qui listaient les mêmes noms. Les segments de rôle vivent sur la ligne de leur
|
||||
auteur — et **la règle « seulement à partir de deux auteurs » est inchangée**, comme le défaut
|
||||
`NonPrecise`.
|
||||
|
||||
⚠️ **Renommer un auteur conserve son rôle, par construction.** `NomsAuteurs` est une vue
|
||||
`IList<string>` sur `EnregistrementLivre.Auteurs` dont l'indexeur fait `with { Nom = value }` :
|
||||
on **corrige une ligne**, on ne la reconstruit pas. C'est ce qui remplace la reprise des rôles
|
||||
par nom normalisé de `EnregistrementLivre.Decouper` — celle-ci n'existait que parce que le champ
|
||||
se reconstruisait à chaque frappe. Elle reste en place pour le seul **préremplissage** depuis
|
||||
une notice, qui donne les auteurs sur une ligne en une affectation.
|
||||
|
||||
⚠️ **La référence de la liste prêtée doit rester stable.** `SaisieListe` se remet à zéro quand
|
||||
elle change d'identité (c'est ainsi qu'un formulaire vidé ou une autre fiche ne laissent pas
|
||||
traîner une saisie) : construire la vue `NomsAuteurs` à chaque rendu ferait perdre ce qui est en
|
||||
cours de frappe à chaque caractère. Elle n'est donc refaite que lorsque `Saisie` change.
|
||||
|
||||
`ThemesTexte` a disparu comme `ArticlesTexte`. `Auteur` reste, **uniquement pour le
|
||||
préremplissage** — son commentaire le dit, pour qu'on ne la relie pas de nouveau à un `<input>`.
|
||||
|
||||
**Vérifié en exécution** (saisie manuelle puis édition d'une fiche, 320 px) : thèmes et auteurs
|
||||
rangés un par un, doublon de casse refusé avec son message, rôles posés puis **conservés** en
|
||||
corrigeant « Christophe » en « Christophé », livre enregistré et relu par l'API avec ses deux
|
||||
rôles (`Scénario`, `Dessin`) et ses deux thèmes, fiche rouverte en édition avec ses listes
|
||||
garnies, aucun débordement horizontal.
|
||||
|
||||
## La 7ᵉ série vérifiée en navigateur — trois défauts, tous invisibles aux tests (2026-08-21)
|
||||
|
||||
La série Q à Y s'était close sur un aveu : « **aucun** écran n'a été regardé s'afficher ». Le
|
||||
|
||||
Reference in New Issue
Block a user