Ajout de l'url des envies directement dans la modification des ouvrages.
This commit is contained in:
@@ -41,6 +41,16 @@ else if (_saisie is null)
|
||||
else
|
||||
{
|
||||
<div class="formulaire">
|
||||
@* Même ligne que dans le formulaire d'un ouvrage (FormulaireLivre) : un aperçu quand il y
|
||||
a quelque chose à montrer, puis un champ d'adresse ordinaire, au même titre que les
|
||||
autres. *@
|
||||
@if (!string.IsNullOrEmpty(_saisie.CoverUrl) || !string.IsNullOrWhiteSpace(_saisie.Titre))
|
||||
{
|
||||
<div class="formulaire-apercu">
|
||||
<Couverture Url="@_saisie.CoverUrl" Titre="@_saisie.Titre" Classe="couverture-moyenne" />
|
||||
</div>
|
||||
}
|
||||
|
||||
<label class="champ">
|
||||
<span class="champ-libelle">Titre <span class="obligatoire" aria-hidden="true">*</span></span>
|
||||
<input class="champ-saisie" type="text" @bind="_saisie.Titre" @bind:event="oninput"
|
||||
@@ -73,6 +83,12 @@ else
|
||||
@bind="_saisie.Isbn" @bind:event="oninput" placeholder="978…" autocomplete="off" />
|
||||
</label>
|
||||
|
||||
<label class="champ">
|
||||
<span class="champ-libelle">URL de couverture</span>
|
||||
<input class="champ-saisie" type="url" @bind="_saisie.CoverUrl" @bind:event="oninput"
|
||||
placeholder="https://…" autocomplete="off" />
|
||||
</label>
|
||||
|
||||
<label class="champ">
|
||||
<span class="champ-libelle">Note</span>
|
||||
<input class="champ-saisie" type="text" @bind="_saisie.Note" @bind:event="oninput"
|
||||
@@ -104,6 +120,13 @@ else
|
||||
private bool _enCours;
|
||||
private string? _erreur;
|
||||
|
||||
/// <summary>
|
||||
/// La couverture telle que chargée — éventuellement déduite de l'ISBN (voir <c>Projeter</c>
|
||||
/// côté serveur), pas forcément ce qu'il y a réellement en base. Sert uniquement à détecter,
|
||||
/// à l'enregistrement, si l'utilisateur a touché au champ.
|
||||
/// </summary>
|
||||
private string? _couvertureChargee;
|
||||
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
Reseau.Change += SurChangementReseau;
|
||||
@@ -135,9 +158,8 @@ else
|
||||
return;
|
||||
}
|
||||
|
||||
// ⚠️ La couverture n'est PAS reprise ici : elle n'a pas de champ de saisie, et le
|
||||
// service la conserve donc telle qu'elle est en base. La valeur portée par le DTO peut
|
||||
// en outre être déduite de l'ISBN — la figer serait écrire en base ce qui se calcule.
|
||||
_couvertureChargee = souhait.CoverUrl;
|
||||
|
||||
_saisie = new EnregistrementSouhait
|
||||
{
|
||||
Titre = souhait.Titre,
|
||||
@@ -145,6 +167,7 @@ else
|
||||
Editeur = souhait.Editeur,
|
||||
Annee = souhait.Annee,
|
||||
Isbn = souhait.Isbn,
|
||||
CoverUrl = souhait.CoverUrl,
|
||||
Note = souhait.Note,
|
||||
};
|
||||
}
|
||||
@@ -156,6 +179,16 @@ else
|
||||
return;
|
||||
}
|
||||
|
||||
// ⚠️ Envoyée seulement si elle a changé depuis le chargement, et non à chaque
|
||||
// enregistrement : la valeur affichée peut être une DÉDUCTION à la lecture (formule
|
||||
// OpenLibrary à ISBN connu, voir `Projeter`) plutôt que ce qu'il y a réellement en base.
|
||||
// La renvoyer telle quelle à chaque correction de titre la figerait en base, et une
|
||||
// correction d'ISBN qui suit ne la referait plus jouer.
|
||||
_saisie.CoverUrlModifiee = !string.Equals(
|
||||
_saisie.CoverUrl?.Trim() ?? string.Empty,
|
||||
_couvertureChargee?.Trim() ?? string.Empty,
|
||||
StringComparison.Ordinal);
|
||||
|
||||
_enCours = true;
|
||||
_erreur = null;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user