diff --git a/README.md b/README.md index b98784e..50fc366 100644 --- a/README.md +++ b/README.md @@ -61,14 +61,14 @@ L'application devrait se lancer automatiquement dans votre navigateur par défau # Blazor Apps (30 points) 🟨 En cours / ✅ Fait / ❌ Pas fait

✅ Mise en place d'une page de visualisation des données avec pagination (2 points)
-🟨 Page d'ajout d'un élement avec validation (2 point)
-🟨 Page d'édition d'un élement avec validation (2 point)
+✅ Page d'ajout d'un élement avec validation (2 point)
+✅ Page d'édition d'un élement avec validation (2 point)
✅ Supression d'un élement avec une confirmation (2 point)
🟨 Composant complexe (5 point)
🟨 Use API (Get / Insert / Update / Delete) (3 point)
❌ Utilisation IOC & DI (4 point)
🟨 Localisation & Globalisation (au moins deux langues) (1 point)
-🟨 Utilisation de la configuration (1 point)
+❌ Utilisation de la configuration (1 point)
🟨 Logs (2 point)
❌ Propreté du code (Vous pouvez vous servir de sonarqube) (2 point)
✅ IHM (Design global, placement des boutons, ...) (2 point)
diff --git a/WF-WebAdmin/WF-WebAdmin/Controllers/CultureController.cs b/WF-WebAdmin/WF-WebAdmin/Controllers/CultureController.cs new file mode 100644 index 0000000..834b808 --- /dev/null +++ b/WF-WebAdmin/WF-WebAdmin/Controllers/CultureController.cs @@ -0,0 +1,34 @@ +using Microsoft.AspNetCore.Localization; +using Microsoft.AspNetCore.Mvc; + +namespace WF_WebAdmin.Controllers +{ + /// + /// The culture controller. + /// + [Route("[controller]/[action]")] + public class CultureController : Controller + { + /// + /// Sets the culture. + /// + /// The culture. + /// The redirect URI. + /// + /// The action result. + /// + public IActionResult SetCulture(string culture, string redirectUri) + { + if (culture != null) + { + // Define a cookie with the selected culture + this.HttpContext.Response.Cookies.Append( + CookieRequestCultureProvider.DefaultCookieName, + CookieRequestCultureProvider.MakeCookieValue( + new RequestCulture(culture))); + } + + return this.LocalRedirect(redirectUri); + } + } +} diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor b/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor index 1cd75b6..099d4dd 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor +++ b/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor @@ -1,11 +1,11 @@ @page "/Accueil" - +@using WF_WebAdmin.Model Accueil -

Bienvenu sur le tableau de bord de What the Fantasy

+

@Localizer["AccueilWelcome"]

-

Citation du jour

+

@Localizer["AccueilTitle"]

@if (Dailyquote != null) { @@ -15,8 +15,8 @@

@quote.Content

-

Personnage : @quote.Charac

-

Source : @quote.TitleSrc

+

@Localizer["AccueilCharacter"] @quote.Charac

+

@Localizer["AccueilSrc"] @quote.TitleSrc

} @@ -24,9 +24,9 @@ } else { -

Aucune citation du jour

+

@Localizer["AccueilNoQuote"]

} -

Changement de la citation manuellement

- +

@Localizer["AccueilManualChange"]

+ diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor.cs index 379853e..797b255 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/Accueil.razor.cs @@ -1,5 +1,6 @@ using Blazorise.DataGrid; using Microsoft.AspNetCore.Components; +using Microsoft.Extensions.Localization; using WF_WebAdmin.Model; @@ -15,6 +16,8 @@ namespace WF_WebAdmin.Pages [Inject] public NavigationManager NavigationManager { get; set; } + [Inject] + public IStringLocalizer Localizer { get; set; } protected override async Task OnInitializedAsync() { Dailyquote = await Http.GetFromJsonAsync($"{NavigationManager.BaseUri}fake-dataDailyQuote.json"); diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor index 12bd791..d0ad051 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor +++ b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor @@ -3,11 +3,11 @@ Gestion utilisateur -

Gestion des utilisateurs

+

@Localizer["TitleUser"]

@if(users == null) { -

Aucun utilisateur présent sur le site

+

@Localizer["UserNobody"]

} else @@ -27,25 +27,28 @@ else -

Utilisateurs présents:

+

@Localizer["UserHere"]

+ @foreach (var user in users) {
@if (user.IsAdmin) { -

Nom d'utilisateur : @user.Name (Administrateur)[id:@user.Id]

+ +

@Localizer["UserName"] @user.Name (@Localizer["UserAdmin"])

} else { -

Nom d'utilisateur : @user.Name [id: @user.Id]

+

@Localizer["UserName"] @user.Name

} -

Email de l'utilisateur : @user.Email

-

Date de création de l'utilisateur : @user.DateCreation.ToShortDateString()

- @if (user.Comments != null) +

@Localizer["UserEmail"] @user.Email

+

@Localizer["UserDate"] @user.DateCreation.ToShortDateString()

+ + @if(user.Comments != null) { -

▶ Commentaire(s) posté(s) par @user.Name :

+

▶ @Localizer["UserComment"] @user.Name :

@foreach (var comment in user.Comments) {

@comment.DateCreation.ToShortDateString() - @comment.Text

@@ -53,19 +56,19 @@ else } else { -

Aucun commentaire sur le site

+

@Localizer["UserNoComment"]

} - + @if (!user.IsAdmin) { - + } else { - + }
@@ -75,9 +78,9 @@ else {
-

Êtes-vous sûr de vouloir supprimer cet utilisateur ?

- - +

@Localizer["UserPopupTitle"]

+ +
} @@ -104,9 +107,9 @@ else {
-

Êtes-vous sûr de vouloir changer le rôle de cet utilisateur ?

- - +

@Localizer["UserPopupTitle2"]

+ +
} diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs index 999a372..8cdd926 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs +++ b/WF-WebAdmin/WF-WebAdmin/Pages/DeleteUser.razor.cs @@ -1,6 +1,8 @@ using Blazorise.DataGrid; using Microsoft.AspNetCore.Components; using Microsoft.Extensions.Configuration.UserSecrets; +using Microsoft.Extensions.Localization; +using System.Collections.Generic; using WF_WebAdmin.Model; using WF_WebAdmin.Service; @@ -8,8 +10,10 @@ namespace WF_WebAdmin.Pages { public partial class DeleteUser { + private bool showDeletePopup = false; private bool showModifyPopup = false; + private List users; private User userToDelete = null; private User selectedUser; private bool showPopupDelete = false; @@ -25,12 +29,13 @@ namespace WF_WebAdmin.Pages [Inject] public NavigationManager NavigationManager { get; set; } - - private List users; [Inject] private IUserService userService { get; set; } + [Inject] + public IStringLocalizer Localizer { get; set; } + protected override async Task OnInitializedAsync() diff --git a/WF-WebAdmin/WF-WebAdmin/Pages/Login.razor b/WF-WebAdmin/WF-WebAdmin/Pages/Login.razor index 411b655..f6089d6 100644 --- a/WF-WebAdmin/WF-WebAdmin/Pages/Login.razor +++ b/WF-WebAdmin/WF-WebAdmin/Pages/Login.razor @@ -1,22 +1,24 @@ @page "/" @using WF_WebAdmin.Model +@using System.Globalization -

▶ Connexion ◀

+

▶@Localizer["LoginTitle"]◀