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)
{
- RolesCategoriesChange(item, e.Value))" />@item
+ RolesCategoriesChange(item, e.Value))"
+ checked="@user.Roles.Contains(item)" />@item
}
+ *@
+
+roles
+
+@foreach (var role in roles)
+{
+ var currentItem = role; // Capturer la variable locale pour éviter les problèmes de fermeture
+ @if (currentItem == "student")
+ {
+
+ RolesCategoriesChange(role, e.Value))" />
+ Student
+
+ break;
+ }
+
+ RolesCategoriesChange(role, e.Value))" disabled="@disableOtherCheckboxes" checked="@user.Roles.Contains(currentItem)" />
+ @currentItem
+
+
+}
+
+
Nickname
diff --git a/Project/adminBlazor/adminBlazor/Pages/Add.razor.cs b/Project/adminBlazor/adminBlazor/Pages/Add.razor.cs
index 91e5994..5113b80 100644
--- a/Project/adminBlazor/adminBlazor/Pages/Add.razor.cs
+++ b/Project/adminBlazor/adminBlazor/Pages/Add.razor.cs
@@ -20,7 +20,7 @@ namespace adminBlazor.Pages
///
/// 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