travail sur la page de modification, c'est bon il y a juste un leger bug

blazor
Patrick BRUGIERE 1 year ago
parent 6954e4a4c1
commit fc94001fb0

@ -55,13 +55,12 @@ namespace adminBlazor.Factories
if (!string.IsNullOrEmpty(user.Nickname)) if (!string.IsNullOrEmpty(user.Nickname))
item.Nickname = user.Nickname; item.Nickname = user.Nickname;
if (user.ExtraTime!=null)
item.ExtraTime = user.ExtraTime; item.ExtraTime = user.ExtraTime;
if (!string.IsNullOrEmpty(user.Image)) if (!string.IsNullOrEmpty(user.Image))
item.Image = user.Image; item.Image = user.Image;
if (user.Group!=null) if (user.Group != 0)
item.Group = user.Group; item.Group = user.Group;
if (!string.IsNullOrEmpty(user.Password)) if (!string.IsNullOrEmpty(user.Password))
@ -71,8 +70,33 @@ namespace adminBlazor.Factories
item.Email = user.Email; item.Email = user.Email;
if (user.Roles != null) if (user.Roles != null)
item.Roles = user.Roles; {
if (user.Roles.Contains("student"))
{
item.Roles = new List<string>();
item.Roles.Add("Student");
}
else
{
if (user.Roles.Contains("teacher") || user.Roles.Contains("admin"))
{
item.Roles = new List<string>();
if (user.Roles.Contains("teacher"))
{
item.Roles.Add("Teacher");
}
if (user.Roles.Contains("admin"))
{
item.Roles.Add("Admin");
}
}
}
} }
} }
} }
}

@ -47,16 +47,9 @@
@foreach (var role in roles) @foreach (var role in roles)
{ {
var currentItem = role; // Capturer la variable locale pour éviter les problèmes de fermeture var currentItem = role; // Capturer la variable locale pour éviter les problèmes de fermeture
@if (currentItem == "student")
{
<label> <label>
<input type="checkbox" @onchange="@(e => RolesCategoriesChange(role, e.Value))" checked="@(user.Roles.Contains(currentItem) ? "checked" : null)" /> <input type="checkbox" @onchange="@(e => RolesCategoriesChange(role, e.Value))" checked="@(user.Roles.Contains(currentItem) ? "checked" : null)" />
Student
</label>
break;
}
<label>
<input type="checkbox" @onchange="@(e => RolesCategoriesChange(role, e.Value))" disabled="@disableOtherCheckboxes" checked="@(user.Roles.Contains(currentItem) ? "checked" : null)" />
@currentItem @currentItem
</label> </label>
<br /> <br />

@ -23,6 +23,8 @@ namespace adminBlazor.Pages
[Inject] [Inject]
public IWebHostEnvironment WebHostEnvironment { get; set; } public IWebHostEnvironment WebHostEnvironment { get; set; }
public User currUser;
/// <summary> /// <summary>
/// The default enchant categories. /// The default enchant categories.
@ -42,7 +44,7 @@ namespace adminBlazor.Pages
{ {
UserModel item = UserFactory.ToModel(user); UserModel item = UserFactory.ToModel(user);
await DataService.Update(Id,item); await DataService.Update(Id, item);
NavigationManager.NavigateTo("list"); NavigationManager.NavigateTo("list");
@ -52,6 +54,7 @@ namespace adminBlazor.Pages
protected override async Task OnInitializedAsync() protected override async Task OnInitializedAsync()
{ {
var item = await DataService.GetById(Id); var item = await DataService.GetById(Id);
// currentUser = item;
// var fileContent = await File.ReadAllBytesAsync($"{WebHostEnvironment.WebRootPath}/images/default.png"); // var fileContent = await File.ReadAllBytesAsync($"{WebHostEnvironment.WebRootPath}/images/default.png");
if (File.Exists($"{WebHostEnvironment.WebRootPath}/images/{user.Name}.png")) if (File.Exists($"{WebHostEnvironment.WebRootPath}/images/{user.Name}.png"))
@ -106,7 +109,7 @@ namespace adminBlazor.Pages
{ {
// Désactiver les autres cases à cocher si "Étudiant" est décochée // Désactiver les autres cases à cocher si "Étudiant" est décochée
disableOtherCheckboxes = false; disableOtherCheckboxes = false;
user.Roles.Remove(currentItem); //user.Roles.Remove(currentItem);
} }
} }
} }
@ -126,13 +129,12 @@ namespace adminBlazor.Pages
{ {
// Sinon, activer les autres cases // Sinon, activer les autres cases
disableOtherCheckboxes = false; disableOtherCheckboxes = false;
user.Roles.Remove(currentItem); //user.Roles.Remove(currentItem);
} }
} }
private void RolesCategoriesChange(string item, object checkedValue) private void RolesCategoriesChange(string item, object checkedValue)
{ {
if (item == "student")
{
isStudentChecked = (bool)checkedValue; isStudentChecked = (bool)checkedValue;
if (isStudentChecked) if (isStudentChecked)
@ -148,29 +150,9 @@ namespace adminBlazor.Pages
{ {
// Désactiver les autres cases à cocher si "Étudiant" est décochée // Désactiver les autres cases à cocher si "Étudiant" est décochée
disableOtherCheckboxes = false; disableOtherCheckboxes = false;
user.Roles.Remove(item); //user.Roles.Remove(item);
}
}
else
{
if (disableOtherCheckboxes)
{
//la case student a été coché ducoup on n'ajoute pas les autres rôles cochés
return;
if ((bool)checkedValue)
{
if (!user.Roles.Contains(item))
{
user.Roles.Add(item);
}
}
else
{
user.Roles.Remove(item);
}
}
}
} }
} }
}
} }

@ -64,7 +64,7 @@ namespace adminBlazor.Services
public async Task Update(int id, UserModel model) public async Task Update(int id, UserModel model)
{ {
// Get the current data // Get the current data
var currentData = await _localStorage.GetItemAsync<List<User>>("data"); var currentData = await _localStorage.GetItemAsync<User[]>("data");
var user = currentData.FirstOrDefault(w => w.Id == id); var user = currentData.FirstOrDefault(w => w.Id == id);

Loading…
Cancel
Save