1 Commits
Author SHA1 Message Date
mathieu e7fe9ed6a9 Dans la vue Série, lors d'une entrée de numéro de tome, focus directement sur la zone d'entrée.
Dans la vue Modifier une série, la dernière série enregistrée est la première montrée dans la sélection de la série mère. De plus, lors de l'enregistrement, on revient sur la page série et on ne reste plus bloquer sur la même page de sélection
2026-09-10 19:00:30 +02:00
+15 -3
View File
@@ -520,6 +520,7 @@ else
<div class="barre-recherche">
<input class="champ-saisie" type="text"
placeholder="7, Hors-série, 3.5…"
@ref="_champNumero"
@bind="_numeroSaisi" @bind:event="oninput"
@onkeydown="@(e => SurToucheNumero(e, element))"
aria-label="@($"Numéro du tome « {element.Titre} »")"
@@ -745,6 +746,11 @@ else
private string _numeroSaisi = string.Empty;
private ElementReference _champNumero;
/// <summary>Le champ « numéro » vient de s'ouvrir : à focaliser au prochain rendu.</summary>
private bool _focusNumero;
/// <summary>
/// Trier par numéro de tome plutôt que par ordre de lecture.
/// </summary>
@@ -869,6 +875,12 @@ else
protected override async Task OnAfterRenderAsync(bool premierRendu)
{
if (_focusNumero)
{
_focusNumero = false;
await _champNumero.FocusAsync();
}
if (_focusAFaire is not { } voie)
{
return;
@@ -894,6 +906,7 @@ else
{
_numeroOuvert = element.Id;
_numeroSaisi = element.Numero ?? string.Empty;
_focusNumero = true;
}
private async Task SurToucheNumero(KeyboardEventArgs e, ElementSerieDto element)
@@ -1052,7 +1065,7 @@ else
/// refuse aussi — cette liste évite seulement de proposer un choix qui sera rejeté.
/// </remarks>
private IEnumerable<SerieDto> Candidates =>
_toutes.Where(s => s.Id != Id && !EstDescendante(s.Id));
_toutes.Where(s => s.Id != Id && !EstDescendante(s.Id)).Reverse();
private bool EstDescendante(int candidate)
{
@@ -1522,10 +1535,9 @@ else
await EcrireAsync(() => Api.ModifierSerieAsync(
Id, new EnregistrementSerie { Titre = _titre, SerieParenteId = _parenteId == 0 ? null : _parenteId }));
// Le rangement dans un cycle change la parenté des AUTRES séries affichées : on relit.
if (_erreur is null)
{
await ChargerAsync();
Navigation.NavigateTo($"series/{Id}");
}
}