Files
mabibli/MaBibli.Client/Composants/CarteLivre.razor
T
LIMONIER MathieuandCopilot 3d5e73838e Sépare consultation et édition pour les lots B1 B2 B3
Réutilise la carte livre du catalogue, sépare les modes des séries et des envies, et déplie les œuvres bibliographiques non possédées.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-08-20 13:11:43 +02:00

58 lines
2.0 KiB
Plaintext

<div class="carte-livre">
<Couverture Url="@Livre.CoverUrl" Titre="@Livre.Titre"
Classe="couverture-petite" Agrandissable="true" />
<div class="carte-corps">
<a class="carte-titre" href="@($"livres/{Livre.Id}")">@Livre.Titre</a>
@if (Livre.Auteurs.Count > 0)
{
<p class="carte-auteur">
@foreach (var (auteur, index) in Livre.Auteurs.Select((a, i) => (a, i)))
{
@(index > 0 ? ", " : "")
<a class="lien-auteur" href="@($"?auteur={auteur.Id}")">@auteur.Nom</a>
@if (auteur.Role != RoleAuteur.NonPrecise)
{
<span class="role-auteur"> (@Libelles.RoleAuteur(auteur.Role).ToLowerInvariant())</span>
}
}
</p>
}
<p class="carte-details">
@if (Livre.Format == Format.Numerique)
{
<span class="etiquette">@Libelles.Format(Livre.Format)</span>
}
@if (Livre.TypeDocument != TypeDocument.NonPrecise)
{
<span class="etiquette etiquette-type @Libelles.ClasseTypeDocument(Livre.TypeDocument)">
@Libelles.TypeDocument(Livre.TypeDocument)
</span>
}
@if (Livre.Statut is { } statut)
{
<span class="etiquette etiquette-statut @Libelles.ClasseStatut(statut)">
@Libelles.Statut(statut)
</span>
}
@if (Livre.PreteA is { } emprunteur)
{
<span class="etiquette etiquette-prete">Prêté à @emprunteur</span>
}
@if (!string.IsNullOrWhiteSpace(Livre.Editeur))
{
<span>@Livre.Editeur</span>
}
</p>
@Actions
</div>
</div>
@code {
[Parameter, EditorRequired] public LivreDto Livre { get; set; } = default!;
[Parameter] public RenderFragment? Actions { get; set; }
}