Rend enfin tapable le champ où l'on écrit ce qu'un numéro annonce

Le champ « À la une » se reliait à chaque frappe sur une propriété qui
découpait puis recomposait la ligne : le point-virgule tapé ouvrait une
entrée vide aussitôt élaguée, et l'espace qui le suit était rogné. Le seul
caractère qu'on ne pouvait pas y taper était son propre séparateur.

Un titre s'ajoute maintenant seul, par Entrée, et se modifie ou se retire
depuis la liste. Plus rien ne découpe, donc plus rien n'est intapable.

ArticlesTexte disparaît, et avec lui le paramètre virguleAussi de
ListeSaisie, qui n'existait que pour ce champ.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
mathieu
2026-08-21 23:37:31 +02:00
co-authored by Claude Opus 5
parent abaa520f59
commit fe36091bf0
7 changed files with 298 additions and 55 deletions
+7 -16
View File
@@ -1,6 +1,3 @@
using System.Text.Json.Serialization;
using MaBibli.Shared.Textes;
namespace MaBibli.Shared.Dtos;
/// <summary>
@@ -71,21 +68,15 @@ public record AjoutNumeroRevue
/// </summary>
public string? CoverUrl { get; set; }
/// <summary>Articles à la une, dans l'ordre de la couverture.</summary>
public List<string> Articles { get; set; } = [];
/// <summary>
/// Vue « une seule ligne » des <see cref="Articles"/>, pour un champ de saisie simple.
/// Articles à la une, dans l'ordre de la couverture.
/// </summary>
/// <remarks>
/// ⚠️ Séparateur : le <b>point-virgule</b> seul, contrairement aux thèmes d'un livre. Un
/// titre d'article contient souvent une virgule (« Ukraine, deux ans après »), qui le
/// couperait en deux.
/// ⚠️ <b>La liste est la donnée, et il n'y a plus de vue « une seule ligne ».</b> Elle a
/// existé — un champ texte à points-virgules, relié à chaque frappe sur une propriété qui
/// coupait puis recomposait — et c'était un champ dans lequel on ne pouvait taper ni le
/// séparateur (aussitôt élagué comme entrée vide) ni l'espace qui le suit. Un titre s'ajoute
/// désormais un par un.
/// </remarks>
[JsonIgnore]
public string? ArticlesTexte
{
get => Articles.Count == 0 ? null : ListeSaisie.Joindre(Articles);
set => Articles = ListeSaisie.Decouper(value, virguleAussi: false);
}
public List<string> Articles { get; set; } = [];
}