Merge remote-tracking branch 'origin/TODO_erreurs' into correction/j1
This commit is contained in:
@@ -41,40 +41,40 @@ public class DashboardController : Controller
|
|||||||
/// <returns>La vue Index du tableau de bord.</returns>
|
/// <returns>La vue Index du tableau de bord.</returns>
|
||||||
public IActionResult Index()
|
public IActionResult Index()
|
||||||
{
|
{
|
||||||
var mostChronicledArtist = _titres
|
var artisteLePlusChronique = _titres
|
||||||
.GroupBy(t => t.Artiste)
|
.GroupBy(t => t.Artiste)
|
||||||
.OrderByDescending(g => g.Count())
|
.OrderByDescending(g => g.Count())
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
|
|
||||||
var topArtistAlbums = _titres
|
var albumLePlusChronique = _titres
|
||||||
.GroupBy(t => t.Artiste)
|
.GroupBy(t => t.Artiste)
|
||||||
.OrderByDescending(g => g.Select(t => t.Album).Distinct().Count())
|
.OrderByDescending(g => g.Select(t => t.Album).Distinct().Count())
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
|
|
||||||
var mostPlayedTrack = _titres
|
var musiqueLaPlusJouee = _titres
|
||||||
.OrderByDescending(t => t.NbLectures)
|
.OrderByDescending(t => t.NbLectures)
|
||||||
.FirstOrDefault();
|
.FirstOrDefault();
|
||||||
|
|
||||||
var model = new DashboardViewModel
|
var model = new DashboardViewModel
|
||||||
{
|
{
|
||||||
ArtistCount = _artistes.Count,
|
NombreArtistes = _artistes.Count,
|
||||||
|
|
||||||
MostChronicledArtistName = mostChronicledArtist?.Key.Nom,
|
ArtisteLePlusChronique = artisteLePlusChronique?.Key.Nom,
|
||||||
|
|
||||||
TopArtistAlbumsName = topArtistAlbums?.Key.Nom,
|
AlbumLePlusChronique = albumLePlusChronique?.Key.Nom,
|
||||||
|
|
||||||
BiographyCount = _artistes.Count(a => !string.IsNullOrEmpty(a.Biographie)),
|
NombreBiographies = _artistes.Count(a => !string.IsNullOrEmpty(a.Biographie)),
|
||||||
|
|
||||||
MostPlayedTrackId = mostPlayedTrack?.IdTitre ?? 0,
|
IdMusiqueLaPlusJouee = musiqueLaPlusJouee?.IdTitre ?? 0,
|
||||||
MostPlayedTrack = mostPlayedTrack?.Libelle,
|
MusiqueLaPlusJouee = musiqueLaPlusJouee?.Libelle,
|
||||||
|
|
||||||
TrackCount = _titres.Count,
|
NombreTitres = _titres.Count,
|
||||||
|
|
||||||
GenreCount = _styles.Count,
|
NombreGenres = _styles.Count,
|
||||||
|
|
||||||
TotalPlays = _titres.Sum(t => t.NbLectures),
|
NombreLectures = _titres.Sum(t => t.NbLectures),
|
||||||
|
|
||||||
TotalLikes = _titres.Sum(t => t.NbLikes)
|
NombreLikes = _titres.Sum(t => t.NbLikes)
|
||||||
};
|
};
|
||||||
|
|
||||||
return View(model);
|
return View(model);
|
||||||
|
|||||||
@@ -8,49 +8,49 @@ public class DashboardViewModel
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nombre total d'artistes chroniqués dans le webzine.
|
/// Définit le nombre total d'artistes chroniqués dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int ArtistCount { get; set; }
|
public int NombreArtistes { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nom de l'artiste le plus chroniqué dans le webzine.
|
/// Définit le nom de l'artiste le plus chroniqué dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string MostChronicledArtistName { get; set; }
|
public string ArtisteLePlusChronique { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nom de l'album le plus chroniqué dans le webzine.
|
/// Définit le nom de l'album le plus chroniqué dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string TopArtistAlbumsName { get; set; }
|
public string AlbumLePlusChronique { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nombre total de biographies d'artistes dans le webzine.
|
/// Définit le nombre total de biographies d'artistes dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int BiographyCount { get; set; }
|
public int NombreBiographies { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit l'identifiant de la biographie d'artiste la plus lue dans le webzine.
|
/// Définit l'identifiant de la biographie d'artiste la plus lue dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int MostPlayedTrackId { get; set; }
|
public int IdMusiqueLaPlusJouee { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nom de la biographie d'artiste la plus lue dans le webzine.
|
/// Définit le nom de la biographie d'artiste la plus lue dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public string MostPlayedTrack { get; set; }
|
public string MusiqueLaPlusJouee { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nombre total de titres chroniqués dans le webzine.
|
/// Définit le nombre total de titres chroniqués dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int TrackCount { get; set; }
|
public int NombreTitres { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nombre total de genres musicaux chroniqués dans le webzine.
|
/// Définit le nombre total de genres musicaux chroniqués dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int GenreCount { get; set; }
|
public int NombreGenres { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nombre total de chroniques d'albums dans le webzine.
|
/// Définit le nombre total de chroniques d'albums dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int TotalPlays { get; set; }
|
public int NombreLectures { get; set; }
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Définit le nombre total de likes sur les chroniques d'albums dans le webzine.
|
/// Définit le nombre total de likes sur les chroniques d'albums dans le webzine.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int TotalLikes { get; set; }
|
public int NombreLikes { get; set; }
|
||||||
}
|
}
|
||||||
@@ -30,12 +30,12 @@
|
|||||||
<td class="text-center p-2">
|
<td class="text-center p-2">
|
||||||
|
|
||||||
<a asp-action="Edit" asp-route-id="@artiste.IdArtiste"
|
<a asp-action="Edit" asp-route-id="@artiste.IdArtiste"
|
||||||
class="text-primary">
|
>
|
||||||
<i class="fa fa-edit"></i>
|
<i class="fa fa-edit"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a asp-action="Delete" asp-route-id="@artiste.IdArtiste"
|
<a asp-action="Delete" asp-route-id="@artiste.IdArtiste"
|
||||||
class="text-primary">
|
>
|
||||||
<i class="fa fa-trash"></i>
|
<i class="fa fa-trash"></i>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
|
|||||||
@@ -16,11 +16,11 @@
|
|||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
<h4>@Model.Contenu</h4>
|
<h4>@Model.Contenu</h4>
|
||||||
|
|
||||||
<div class="text-muted"> // TODO y a des balises pour les citations, <blockquote></blockquote>
|
<blockquote>
|
||||||
— <strong>@Model.Auteur</strong>
|
— <strong>@Model.Auteur</strong>
|
||||||
le @Model.DateCreation.ToString("dd/MM/yyyy HH:mm:ss") // TODO à virer, c'est pas très lisible, trouver un format de date plus sympa, ou même afficher "il y a X minutes/heures/jours" comme sur les réseaux sociaux
|
le @Model.DateCreation.ToString("dd/MM/yyyy HH:mm:ss")
|
||||||
sur <em>@Model.TitreLibelle</em>
|
sur <em>@Model.TitreLibelle</em>
|
||||||
</div>
|
</blockquote>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form asp-action="Delete" method="post">
|
<form asp-action="Delete" method="post">
|
||||||
|
|||||||
@@ -11,17 +11,16 @@
|
|||||||
<!-- ARTISTS -->
|
<!-- ARTISTS -->
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a asp-area="Administration"
|
<a asp-area="Administration"
|
||||||
asp-controller="Artiste"
|
asp-controller="Artiste">
|
||||||
class="text-decoration-none">
|
|
||||||
|
|
||||||
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
||||||
<i class="fa fa-users fa-3x text-primary mb-3"></i>
|
<i class="fa fa-users fa-3x text-primary mb-3"></i>
|
||||||
|
|
||||||
<h3 class="text-primary">
|
<h3>
|
||||||
@Model.ArtistCount
|
@Model.NombreArtistes
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p class="text-primary">
|
<p>
|
||||||
artistes
|
artistes
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -29,23 +28,20 @@
|
|||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- L'ARTIST LE PLUS CHRONICLED --> // TODO faute de frappe, à virer
|
<!-- L'ARTIST LE PLUS CHRONIQUE -->
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a asp-area=""
|
<a asp-area=""
|
||||||
asp-controller="Artiste"
|
asp-controller="Artiste"
|
||||||
asp-route-nom="@Model.MostChronicledArtistName" // TODO enlever texte décorationnel, pas maintenable
|
asp-route-nom="@Model.ArtisteLePlusChronique">
|
||||||
class="text-decoration-none">
|
|
||||||
|
|
||||||
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
||||||
<i class="fa fa-user fa-3x text-primary mb-3"></i>
|
<i class="fa fa-user fa-3x text-primary mb-3"></i>
|
||||||
|
|
||||||
<h3 class="text-primary"> // TODO c'est déjà par défaut en couleur primaire, pas besoin de le redéfinir
|
<h3>
|
||||||
@Model.MostChronicledArtistName
|
@Model.ArtisteLePlusChronique
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p class="text-primary">
|
<p>artiste le plus chroniqué</p>
|
||||||
artiste le plus chroniqué
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
</a>
|
</a>
|
||||||
@@ -55,17 +51,16 @@
|
|||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a asp-area=""
|
<a asp-area=""
|
||||||
asp-controller="Artiste"
|
asp-controller="Artiste"
|
||||||
asp-route-nom="@Model.TopArtistAlbumsName"
|
asp-route-nom="@Model.AlbumLePlusChronique">
|
||||||
class="text-decoration-none">
|
|
||||||
|
|
||||||
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
||||||
<i class="fa fa-trophy fa-3x text-primary mb-3"></i>
|
<i class="fa fa-trophy fa-3x text-primary mb-3"></i>
|
||||||
|
|
||||||
<h3 class="text-primary">
|
<h3>
|
||||||
@Model.TopArtistAlbumsName
|
@Model.AlbumLePlusChronique
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p class="text-primary">
|
<p>
|
||||||
artiste avec le plus d'albums distincts
|
artiste avec le plus d'albums distincts
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -76,17 +71,16 @@
|
|||||||
<!-- BIOGRAPHIES -->
|
<!-- BIOGRAPHIES -->
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a asp-area="Administration"
|
<a asp-area="Administration"
|
||||||
asp-controller="Titre"
|
asp-controller="Titre">
|
||||||
class="text-decoration-none">
|
|
||||||
|
|
||||||
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
||||||
<i class="fa fa-book fa-3x text-primary mb-3"></i>
|
<i class="fa fa-book fa-3x text-primary mb-3"></i>
|
||||||
|
|
||||||
<h3 class="text-primary">
|
<h3>
|
||||||
@Model.BiographyCount
|
@Model.NombreBiographies
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p class="text-primary">
|
<p>
|
||||||
biographies d'artistes
|
biographies d'artistes
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -99,17 +93,16 @@
|
|||||||
<a asp-area=""
|
<a asp-area=""
|
||||||
asp-controller="Titre"
|
asp-controller="Titre"
|
||||||
asp-action="Details"
|
asp-action="Details"
|
||||||
asp-route-id="@Model.MostPlayedTrackId"
|
asp-route-id="@Model.IdMusiqueLaPlusJouee">
|
||||||
class="text-decoration-none">
|
|
||||||
|
|
||||||
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
||||||
<i class="fa fa-compact-disc fa-3x text-primary mb-3"></i>
|
<i class="fa fa-compact-disc fa-3x text-primary mb-3"></i>
|
||||||
|
|
||||||
<h4 class="text-primary">
|
<h4>
|
||||||
@Model.MostPlayedTrack
|
@Model.MusiqueLaPlusJouee
|
||||||
</h4>
|
</h4>
|
||||||
|
|
||||||
<p class="text-primary">
|
<p>
|
||||||
titre le plus lu
|
titre le plus lu
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -120,17 +113,16 @@
|
|||||||
<!-- TITRE NOMBRE -->
|
<!-- TITRE NOMBRE -->
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a asp-area="Administration"
|
<a asp-area="Administration"
|
||||||
asp-controller="Titre"
|
asp-controller="Titre">
|
||||||
class="text-decoration-none">
|
|
||||||
|
|
||||||
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
||||||
<i class="fa fa-music fa-3x text-primary mb-3"></i>
|
<i class="fa fa-music fa-3x text-primary mb-3"></i>
|
||||||
|
|
||||||
<h3 class="text-primary">
|
<h3>
|
||||||
@Model.TrackCount
|
@Model.NombreTitres
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p class="text-primary">
|
<p>
|
||||||
titres
|
titres
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -141,17 +133,16 @@
|
|||||||
<!-- GENRES -->
|
<!-- GENRES -->
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a asp-area="Administration"
|
<a asp-area="Administration"
|
||||||
asp-controller="Styles"
|
asp-controller="Styles">
|
||||||
class="text-decoration-none">
|
|
||||||
|
|
||||||
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
<div class="card shadow-sm p-4 bg-light h-100 dashboard-card">
|
||||||
<i class="fa fa-tags fa-3x text-primary mb-3"></i>
|
<i class="fa fa-tags fa-3x text-primary mb-3"></i>
|
||||||
|
|
||||||
<h3 class="text-primary">
|
<h3>
|
||||||
@Model.GenreCount
|
@Model.NombreGenres
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p class="text-primary">
|
<p>
|
||||||
styles de musique
|
styles de musique
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
@@ -165,7 +156,7 @@
|
|||||||
<i class="fa fa-eye fa-3x text-dark mb-3"></i>
|
<i class="fa fa-eye fa-3x text-dark mb-3"></i>
|
||||||
|
|
||||||
<h3>
|
<h3>
|
||||||
@Model.TotalPlays
|
@Model.NombreLectures
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
@@ -180,7 +171,7 @@
|
|||||||
<i class="fa fa-thumbs-up fa-3x text-dark mb-3"></i>
|
<i class="fa fa-thumbs-up fa-3x text-dark mb-3"></i>
|
||||||
|
|
||||||
<h3>
|
<h3>
|
||||||
@Model.TotalLikes
|
@Model.NombreLikes
|
||||||
</h3>
|
</h3>
|
||||||
|
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -14,13 +14,9 @@
|
|||||||
</p>
|
</p>
|
||||||
|
|
||||||
<div class="mb-4">
|
<div class="mb-4">
|
||||||
@* On affiche le Libellé en gros *@ // TODO c'est quoi ces commentaires Baptiste
|
@* On affiche le Libellé en gros *@
|
||||||
<h4>@Model.Libelle</h4>
|
<h4>@Model.Libelle</h4>
|
||||||
|
|
||||||
@* On affiche l'ID discrètement en dessous *@
|
|
||||||
<div class="text-muted">
|
|
||||||
Identifiant technique : @Model.IdStyle
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<form asp-action="Delete" method="post">
|
<form asp-action="Delete" method="post">
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
<a asp-action="Edit" asp-route-id="@style.IdStyle" class="text-primary me-2" title="Éditer">
|
<a asp-action="Edit" asp-route-id="@style.IdStyle" class="text-primary me-2" title="Éditer">
|
||||||
<i class="fas fa-edit"></i>
|
<i class="fas fa-edit"></i>
|
||||||
</a>
|
</a>
|
||||||
<a asp-action="Delete" asp-route-id="@style.IdStyle" class="text-primary" title="Supprimer">
|
<a asp-action="Delete" asp-route-id="@style.IdStyle" title="Supprimer">
|
||||||
<i class="fas fa-trash"></i>
|
<i class="fas fa-trash"></i>
|
||||||
</a>
|
</a>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -21,42 +21,42 @@
|
|||||||
<h2>Suivez-nous</h2>
|
<h2>Suivez-nous</h2>
|
||||||
<div class="row g-4 text-center">
|
<div class="row g-4 text-center">
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
|
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
|
||||||
<i class="fa-solid fa-link fa-3x text-primary mb-3"></i>
|
<i class="fa-solid fa-link fa-3x text-primary mb-3"></i>
|
||||||
<div class="fw-bold text-primary">Site officiel du DIIAGE</div>
|
<div class="fw-bold text-primary">Site officiel du DIIAGE</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
|
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
|
||||||
<i class="fa-brands fa-facebook fa-3x text-primary mb-3"></i>
|
<i class="fa-brands fa-facebook fa-3x text-primary mb-3"></i>
|
||||||
<div class="fw-bold text-primary">Facebook</div>
|
<div class="fw-bold text-primary">Facebook</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
|
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
|
||||||
<i class="fa-brands fa-instagram fa-3x text-primary mb-3"></i>
|
<i class="fa-brands fa-instagram fa-3x text-primary mb-3"></i>
|
||||||
<div class="fw-bold text-primary">Instagram</div>
|
<div class="fw-bold text-primary">Instagram</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
|
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
|
||||||
<i class="fa-brands fa-linkedin fa-3x text-primary mb-3"></i>
|
<i class="fa-brands fa-linkedin fa-3x text-primary mb-3"></i>
|
||||||
<div class="fw-bold text-primary">LinkedIn</div>
|
<div class="fw-bold text-primary">LinkedIn</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
|
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
|
||||||
<i class="fa-solid fa-map fa-3x text-primary mb-3"></i>
|
<i class="fa-solid fa-map fa-3x text-primary mb-3"></i>
|
||||||
<div class="fw-bold text-primary">Google Maps</div>
|
<div class="fw-bold text-primary">Google Maps</div>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="col-md-4">
|
<div class="col-md-4">
|
||||||
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle text-decoration-none">
|
<a href="#" class="card h-100 p-4 shadow-sm border-0 bg-light-subtle">
|
||||||
<i class="fa-brands fa-twitter fa-3x text-primary mb-3"></i>
|
<i class="fa-brands fa-twitter fa-3x text-primary mb-3"></i>
|
||||||
<div class="fw-bold text-primary">Twitter</div>
|
<div class="fw-bold text-primary">Twitter</div>
|
||||||
</a>
|
</a>
|
||||||
|
|||||||
@@ -40,7 +40,7 @@
|
|||||||
{
|
{
|
||||||
var style = Model.Details.Styles[i];
|
var style = Model.Details.Styles[i];
|
||||||
|
|
||||||
<a class="text-primary text-decoration-none fw-semibold"
|
<a class="text-primary fw-semibold"
|
||||||
asp-controller="Titre"
|
asp-controller="Titre"
|
||||||
asp-action="Style"
|
asp-action="Style"
|
||||||
asp-route-style="@style.Libelle">
|
asp-route-style="@style.Libelle">
|
||||||
|
|||||||
Reference in New Issue
Block a user