Fusionner la phase base de donnees (statut par utilisateur, table Auteur)
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
@*
|
||||
Sélecteur du statut de lecture.
|
||||
|
||||
Le statut est PERSONNEL (CLAUDE.md) : ce que montrent ces boutons est la lecture de la
|
||||
personne connectée, pas celle du foyer. « Non commencé » n'est pas une valeur de plus dans
|
||||
l'énumération, c'est l'absence de ligne en base — d'où le bouton qui remet la valeur à null.
|
||||
*@
|
||||
<div class="segments @(Compact ? "segments-compacts" : null)" role="group" aria-label="Statut de lecture">
|
||||
<button type="button"
|
||||
class="segment @(Valeur is null ? "segment-actif" : null)"
|
||||
disabled="@Desactive"
|
||||
@onclick="() => Choisir(null)">
|
||||
Non commencé
|
||||
</button>
|
||||
|
||||
@foreach (var statut in Statuts)
|
||||
{
|
||||
<button type="button"
|
||||
class="segment @Libelles.ClasseStatut(statut) @(Valeur == statut ? "segment-actif" : null)"
|
||||
disabled="@Desactive"
|
||||
@onclick="() => Choisir(statut)">
|
||||
@Libelles.Statut(statut)
|
||||
</button>
|
||||
}
|
||||
</div>
|
||||
|
||||
@code {
|
||||
private static readonly Statut[] Statuts = Enum.GetValues<Statut>();
|
||||
|
||||
[Parameter] public Statut? Valeur { get; set; }
|
||||
|
||||
[Parameter] public EventCallback<Statut?> ValeurChanged { get; set; }
|
||||
|
||||
[Parameter] public bool Desactive { get; set; }
|
||||
|
||||
[Parameter] public bool Compact { get; set; }
|
||||
|
||||
private Task Choisir(Statut? statut) =>
|
||||
statut == Valeur ? Task.CompletedTask : ValeurChanged.InvokeAsync(statut);
|
||||
}
|
||||
@@ -18,10 +18,17 @@
|
||||
placeholder="Titre du livre" autocomplete="off" />
|
||||
</label>
|
||||
|
||||
@*
|
||||
Un seul champ, plusieurs auteurs : le point-virgule les sépare. La virgule est déjà
|
||||
prise par la forme bibliographique « Zola, Émile », qu'on doit pouvoir taper telle quelle.
|
||||
Le serveur rapproche ensuite les variantes sûres d'un auteur déjà connu.
|
||||
*@
|
||||
<label class="champ">
|
||||
<span class="champ-libelle">Auteur</span>
|
||||
<span class="champ-libelle">
|
||||
Auteur<span class="champ-aide"> (plusieurs : séparez par « ; »)</span>
|
||||
</span>
|
||||
<input class="champ-saisie" type="text" @bind="Saisie.Auteur" @bind:event="oninput"
|
||||
placeholder="Prénom Nom" autocomplete="off" />
|
||||
placeholder="Prénom Nom ; Prénom Nom" autocomplete="off" />
|
||||
</label>
|
||||
|
||||
<label class="champ">
|
||||
@@ -51,17 +58,10 @@
|
||||
</fieldset>
|
||||
|
||||
<fieldset class="champ">
|
||||
<legend class="champ-libelle">Statut de lecture</legend>
|
||||
<div class="segments">
|
||||
@foreach (var statut in Statuts)
|
||||
{
|
||||
<button type="button"
|
||||
class="segment @(Saisie.Statut == statut ? "segment-actif" : null)"
|
||||
@onclick="() => Saisie.Statut = statut">
|
||||
@Libelles.Statut(statut)
|
||||
</button>
|
||||
}
|
||||
</div>
|
||||
<legend class="champ-libelle">
|
||||
Statut de lecture<span class="champ-aide"> (le vôtre)</span>
|
||||
</legend>
|
||||
<ChoixStatut Valeur="Saisie.Statut" ValeurChanged="s => Saisie.Statut = s" />
|
||||
</fieldset>
|
||||
|
||||
<label class="champ">
|
||||
@@ -94,7 +94,6 @@
|
||||
|
||||
@code {
|
||||
private static readonly Format[] Formats = Enum.GetValues<Format>();
|
||||
private static readonly Statut[] Statuts = Enum.GetValues<Statut>();
|
||||
|
||||
[Parameter, EditorRequired] public EnregistrementLivre Saisie { get; set; } = new();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user