From 1ee9df51246088a418fc550f2ecfd10fef001e3a Mon Sep 17 00:00:00 2001 From: "patrick.brugiere" Date: Wed, 20 Dec 2023 11:56:51 +0100 Subject: [PATCH] travail sur les checkbox --- .../adminBlazor/adminBlazor/Models/User.cs | 4 +- .../adminBlazor/adminBlazor/Pages/Add.razor | 33 +++++++- .../adminBlazor/Pages/Add.razor.cs | 82 +++++++++++++++++-- 3 files changed, 106 insertions(+), 13 deletions(-) diff --git a/Project/adminBlazor/adminBlazor/Models/User.cs b/Project/adminBlazor/adminBlazor/Models/User.cs index c03a39e..e7e8e63 100644 --- a/Project/adminBlazor/adminBlazor/Models/User.cs +++ b/Project/adminBlazor/adminBlazor/Models/User.cs @@ -9,6 +9,7 @@ namespace adminBlazor.Models [StringLength(50, ErrorMessage = "Name length can't be more than 50.")] [DataType(DataType.Password)] + [Required] public string Password { get; set; } [EmailAddress] @@ -28,7 +29,8 @@ namespace adminBlazor.Models public string Image { get; set; } public bool ExtraTime { get; set; } - + + [Range(0,100)] public int Group { get; set; } public List Roles { get; set; } diff --git a/Project/adminBlazor/adminBlazor/Pages/Add.razor b/Project/adminBlazor/adminBlazor/Pages/Add.razor index c4b9b8e..b889612 100644 --- a/Project/adminBlazor/adminBlazor/Pages/Add.razor +++ b/Project/adminBlazor/adminBlazor/Pages/Add.razor @@ -13,9 +13,9 @@

-

@@ -24,17 +24,42 @@

+ @*

- Roles categories: + Roles categories:

@foreach (var item in roles) { }

+ *@ + +

roles +

+@foreach (var role in roles) +{ + var currentItem = role; // Capturer la variable locale pour éviter les problèmes de fermeture + @if (currentItem == "student") + { + + break; + } + +
+} +
+

/// The default enchant categories. /// - private List roles = new List() { "admin","teacher","student" }; + private List roles = new List() { "admin","teacher", "student" }; /// @@ -85,19 +85,85 @@ namespace adminBlazor.Pages } } */ - - private void RolesCategoriesChange(string item, object checkedValue) + private bool isStudentChecked = false; + private bool disableOtherCheckboxes = false; + + private void StudentCheckboxChange(string currentItem, object checkedValue) + { + if (currentItem == "student") + { + if (isStudentChecked) + { + // Activer les autres cases à cocher si "Étudiant" est cochée + disableOtherCheckboxes = true; + if (!user.Roles.Contains(currentItem)) + { + user.Roles.Add(currentItem); + } + } + else + { + // Désactiver les autres cases à cocher si "Étudiant" est décochée + disableOtherCheckboxes = false; + user.Roles.Remove(currentItem); + } + } + } + + private void OtherCheckboxChange(string currentItem) { - if ((bool)checkedValue) + if (isStudentChecked && currentItem != "student") { - if (!user.Roles.Contains(item)) + // Si "Étudiant" est coché, désactiver les autres cases + disableOtherCheckboxes = true; + if (!user.Roles.Contains(currentItem)) { - user.Roles.Add(item); + user.Roles.Add(currentItem); } + } + else + { + // Sinon, activer les autres cases + disableOtherCheckboxes = false; + user.Roles.Remove(currentItem); + } + } + private void RolesCategoriesChange(string item, object checkedValue) + { + if (item == "student") + { + isStudentChecked = (bool)checkedValue; - return; + if (isStudentChecked) + { + // Activer les autres cases à cocher si "Étudiant" est cochée + disableOtherCheckboxes = true; + if (!user.Roles.Contains(item)) + { + user.Roles.Add(item); + } + } + else + { + // Désactiver les autres cases à cocher si "Étudiant" est décochée + disableOtherCheckboxes = false; + user.Roles.Remove(item); + } + } + else + { + if ((bool)checkedValue) + { + if (!user.Roles.Contains(item)) + { + user.Roles.Add(item); + } + } + else + { + user.Roles.Remove(item); + } } } - } } \ No newline at end of file