Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e7fe9ed6a9 |
@@ -520,6 +520,7 @@ else
|
|||||||
<div class="barre-recherche">
|
<div class="barre-recherche">
|
||||||
<input class="champ-saisie" type="text"
|
<input class="champ-saisie" type="text"
|
||||||
placeholder="7, Hors-série, 3.5…"
|
placeholder="7, Hors-série, 3.5…"
|
||||||
|
@ref="_champNumero"
|
||||||
@bind="_numeroSaisi" @bind:event="oninput"
|
@bind="_numeroSaisi" @bind:event="oninput"
|
||||||
@onkeydown="@(e => SurToucheNumero(e, element))"
|
@onkeydown="@(e => SurToucheNumero(e, element))"
|
||||||
aria-label="@($"Numéro du tome « {element.Titre} »")"
|
aria-label="@($"Numéro du tome « {element.Titre} »")"
|
||||||
@@ -745,6 +746,11 @@ else
|
|||||||
|
|
||||||
private string _numeroSaisi = string.Empty;
|
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>
|
/// <summary>
|
||||||
/// Trier par numéro de tome plutôt que par ordre de lecture.
|
/// Trier par numéro de tome plutôt que par ordre de lecture.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -869,6 +875,12 @@ else
|
|||||||
|
|
||||||
protected override async Task OnAfterRenderAsync(bool premierRendu)
|
protected override async Task OnAfterRenderAsync(bool premierRendu)
|
||||||
{
|
{
|
||||||
|
if (_focusNumero)
|
||||||
|
{
|
||||||
|
_focusNumero = false;
|
||||||
|
await _champNumero.FocusAsync();
|
||||||
|
}
|
||||||
|
|
||||||
if (_focusAFaire is not { } voie)
|
if (_focusAFaire is not { } voie)
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
@@ -894,6 +906,7 @@ else
|
|||||||
{
|
{
|
||||||
_numeroOuvert = element.Id;
|
_numeroOuvert = element.Id;
|
||||||
_numeroSaisi = element.Numero ?? string.Empty;
|
_numeroSaisi = element.Numero ?? string.Empty;
|
||||||
|
_focusNumero = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private async Task SurToucheNumero(KeyboardEventArgs e, ElementSerieDto element)
|
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é.
|
/// refuse aussi — cette liste évite seulement de proposer un choix qui sera rejeté.
|
||||||
/// </remarks>
|
/// </remarks>
|
||||||
private IEnumerable<SerieDto> Candidates =>
|
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)
|
private bool EstDescendante(int candidate)
|
||||||
{
|
{
|
||||||
@@ -1522,10 +1535,9 @@ else
|
|||||||
await EcrireAsync(() => Api.ModifierSerieAsync(
|
await EcrireAsync(() => Api.ModifierSerieAsync(
|
||||||
Id, new EnregistrementSerie { Titre = _titre, SerieParenteId = _parenteId == 0 ? null : _parenteId }));
|
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)
|
if (_erreur is null)
|
||||||
{
|
{
|
||||||
await ChargerAsync();
|
Navigation.NavigateTo($"series/{Id}");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user