Merge branch 'master' into vueNavBar

vueNavBar
Shana CASCARRA 1 year ago
commit b740616b5a

@ -12,7 +12,7 @@
<DataGrid TItem="Utilisateur"
Data="@Utilisateurs"
@bind-SelectedRow="@utilisateurSelectionne"
@bind-SelectedRow="@UtilisateurSelectionne"
Responsive
ShowPager
ShowPageSizes
@ -95,7 +95,7 @@
<div>
<ModalSuppressionUtilisateur
utilisateur="@utilisateurSelectionne"
utilisateur="@UtilisateurSelectionne"
@ref="Modal"
modalFerme="fermetureModal" />
</div>

@ -12,7 +12,7 @@ namespace VeraxShield.composants.affichages.utilisateurs
[Inject]
private IUtilisateursDataService utilisateursDataService { get; set; }
public List<Utilisateur> Utilisateurs { get; set; }
public static List<Utilisateur> Utilisateurs { get; set; }
[Inject]
private NavigationManager NavigationManager { get; set; }
@ -20,7 +20,7 @@ namespace VeraxShield.composants.affichages.utilisateurs
[Inject]
private DonneurEtat DonneurEtat {get; set;}
private Utilisateur? utilisateurSelectionne;
public static Utilisateur? UtilisateurSelectionne;
[Parameter]
public ModalSuppressionUtilisateur Modal {get; set;}
@ -29,28 +29,28 @@ namespace VeraxShield.composants.affichages.utilisateurs
{
//await this.utilisateursDataService.resetDataUtilisateurs();
this.utilisateurSelectionne = null;
this.Utilisateurs = await this.utilisateursDataService.getAllUtilisateurs();
DatagridUtilisateurs.UtilisateurSelectionne = null;
DatagridUtilisateurs.Utilisateurs = await this.utilisateursDataService.getAllUtilisateurs();
await base.OnInitializedAsync();
}
private async Task HandleUtilisateurSupprime()
{
this.Utilisateurs = await this.utilisateursDataService.getAllUtilisateurs();
DatagridUtilisateurs.Utilisateurs = await this.utilisateursDataService.getAllUtilisateurs();
StateHasChanged(); // Actualiser la vue
}
public async Task fermetureModal(bool val) {
if (val) {
await this.supprimerUtilisateur(this.utilisateurSelectionne);
await this.supprimerUtilisateur(DatagridUtilisateurs.UtilisateurSelectionne);
}
}
public async Task supprimerUtilisateur(Utilisateur u)
{
await this.utilisateursDataService.SupprimerUtilisateur(u);
this.Utilisateurs = await this.utilisateursDataService.getAllUtilisateurs();
DatagridUtilisateurs.Utilisateurs = await this.utilisateursDataService.getAllUtilisateurs();
this.NavigationManager.NavigateTo("/utilisateurs/liste");
}
@ -64,16 +64,16 @@ namespace VeraxShield.composants.affichages.utilisateurs
public void modifierUtilisateur()
{
if (this.utilisateurSelectionne != null)
if (DatagridUtilisateurs.UtilisateurSelectionne != null)
{
this.NavigationManager.NavigateTo("/utilisateurs/modifier/" + utilisateurSelectionne.Pseudo);
this.NavigationManager.NavigateTo("/utilisateurs/modifier/" + DatagridUtilisateurs.UtilisateurSelectionne.Pseudo);
}
}
public async Task onClickBoutonSuppression(String Pseudo)
{
this.utilisateurSelectionne = await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo);
if (this.DonneurEtat._utilisateurCourant.Pseudo != this.utilisateurSelectionne.Pseudo)
DatagridUtilisateurs.UtilisateurSelectionne= await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo);
if (this.DonneurEtat._utilisateurCourant.Pseudo != DatagridUtilisateurs.UtilisateurSelectionne.Pseudo)
{
await this.afficherModal();
}
@ -81,7 +81,7 @@ namespace VeraxShield.composants.affichages.utilisateurs
public async Task onClickBoutonModification(String Pseudo)
{
this.utilisateurSelectionne = await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo);
DatagridUtilisateurs.UtilisateurSelectionne = await this.utilisateursDataService.getUtilisateurFromPseudo(Pseudo);
this.modifierUtilisateur();
}

@ -1,10 +1,12 @@
using System.ComponentModel.DataAnnotations;
using VeraxShield.composants.formulaires.modeles.attributsValidationCustoms;
namespace VeraxShield.composants.formulaires.modeles
{
public class RequeteInscription
{
[Required]
[RegularExpression("^[a-zA-Z0-9]+$", ErrorMessage = "Le mot de passe doit contenir uniquement des caractères alphanumériques.")]
public string MotDePasse { get; set; }
[Required]
@ -12,15 +14,23 @@ namespace VeraxShield.composants.formulaires.modeles
public string MotDePasseConfirmation { get; set; }
[Required]
[RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Le nom doit contenir uniquement des lettres.")]
[StringLength(20, ErrorMessage = "Le nom ne doit pas dépasser 20 caractères !")]
public string Nom { get; set; }
[Required]
[StringLength(20, ErrorMessage = "Le prénom ne doit pas dépasser 20 caractères !")]
[RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Le prénom doit contenir uniquement des lettres.")]
public string Prenom {get; set;}
[Required]
[StringLength(20, ErrorMessage = "Le pseudo ne doit pas dépasser 20 caractères !")]
[RegularExpression("^[a-zA-Z0-9_]+$", ErrorMessage = "Le pseudo contient des caractères interdits.")]
[PseudoCorrect]
public string Pseudo { get; set; }
[Required]
[EmailAddress(ErrorMessage = "Veuillez entrer une adresse email valide.")]
public string Mail { get; set;}
}
}

@ -1,58 +1,115 @@

<EditForm Model="@Modele" OnValidSubmit="@ajouterUtilisateur">
<DataAnnotationsValidator />
<Microsoft.AspNetCore.Components.Forms.ValidationSummary />
<p>
<label for="pseudo">
Pseudo :
<InputText id="pseudo" @bind-Value="Modele.Pseudo" />
</label>
</p>
<p>
<label for="prenom">
Prénom :
<InputText id="prenom" @bind-Value="Modele.Prenom" />
</label>
</p>
<p>
<label for="nom">
Nom :
<InputText id="nom" @bind-Value="Modele.Nom" />
</label>
</p>
<p>
<label for="role">
Role :
<InputText id="role" @bind-Value="Modele.Role" />
</label>
</p>
<p>
<label for="mail">
Email :
<InputText id="mail" @bind-Value="Modele.Mail" />
</label>
</p>
<p>
<label for="mdp">
Mot de passe :
<InputText id="mdp" @bind-Value="Modele.Mdp" />
</label>
</p>
<p>
<label>
Utilisateur banni :
<InputCheckbox @bind-Value="Modele.IsBan" />
</label>
</p>
<button Type="Submit">Valider la création</button>
</EditForm>
@using Blazorise.Components
@using System.ComponentModel.DataAnnotations;
<head>
<link rel="stylesheet" href="css/composants/formulaires/FormulaireAjout.css" />
</head>
<div class="formulaire-conteneur">
<h1 class="title-spacing"> Ajouter un utilisateur </h1>
<Validations @ref="Validations" Mode="ValidationMode.Manual" Model="Modele">
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2" Class="field-label">Pseudo</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez son pseudo" @bind-Text="@Modele.Pseudo">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2" Class="field-label">Prenom</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez son prénom" @bind-Text="@Modele.Prenom">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2" Class="field-label">Nom</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez son nom" @bind-Text="@Modele.Nom">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2" Class="field-label">Mail</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez son mail" @bind-Text="@Modele.Mail">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2" Class="field-label">Role</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez son role" @bind-Text="@Modele.Role">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2" Class="field-label">Mot de passe</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez son mot de passe" @bind-Text="@Modele.Mdp">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="btn-container">
<Button Class="btn-se-connecter" Clicked="@OnSubmit">
<Icon Name="Blazorise.Icons.FontAwesome.FontAwesomeIcons.CheckCircle" />
Ajouter</Button>
<Button Class="btn-s-inscrire" Clicked="@OnAnnulation">
<Icon Name="Blazorise.Icons.FontAwesome.FontAwesomeIcons.Reply" />
Annuler</Button>
</div>
</Validations>
</div>

@ -1,4 +1,4 @@
using System.Runtime.InteropServices;
using Blazorise;
using Microsoft.AspNetCore.Components;
using VeraxShield.composants.formulaires.modeles;
using VeraxShield.factories;
@ -9,34 +9,37 @@ namespace VeraxShield.composants.formulaires
{
public partial class FormulaireAjout
{
[Inject]
private NavigationManager NavigationManager { get; set; }
private FormulaireAjoutModele Modele { get; set; }
[Parameter]
public Validations Validations {get; set;}
public FormulaireAjoutModele Modele {get; set;}
[Inject]
private IUtilisateursDataService utilisateursDataService { get; set; }
private NavigationManager NavigationManager {get; set;}
public FormulaireAjout()
{
[Inject]
private IUtilisateursDataService utilisateursDataService { get; set; }
}
protected override async Task OnInitializedAsync()
{
this.Modele = new FormulaireAjoutModele();
this.Modele.IsBan = false;
await base.OnInitializedAsync();
}
public async void ajouterUtilisateur()
public async Task OnSubmit()
{
if (await this.Validations.ValidateAll())
{
Utilisateur nouvelUtilisateur = UtilisateursFactory.toUtilisateur(this.Modele);
await this.utilisateursDataService.AjouterUtilisateur(nouvelUtilisateur);
this.NavigationManager.NavigateTo("/utilisateurs/liste");
}
}
//Console.WriteLine("Utilisateur bien ajouté !");
public async Task OnAnnulation()
{
this.NavigationManager.NavigateTo("/utilisateurs/liste");
}
}

@ -1,58 +1,119 @@
<head>
<link rel="stylesheet" href="css/composants/formulaires/FormulaireModification.css">
</head>
<EditForm Model="@Modele" OnValidSubmit="@modifierUtilisateur">
<DataAnnotationsValidator />
<Microsoft.AspNetCore.Components.Forms.ValidationSummary />
<p>
<label for="pseudo">
Pseudo :
<InputText id="pseudo" @bind-Value="Modele.Pseudo" />
</label>
</p>
<p>
<label for="prenom">
Prénom :
<InputText id="prenom" @bind-Value="Modele.Prenom" />
</label>
</p>
<p>
<label for="nom">
Nom :
<InputText id="nom" @bind-Value="Modele.Nom" />
</label>
</p>
<p>
<label for="role">
Role :
<InputText id="role" @bind-Value="Modele.Role" />
</label>
</p>
<p>
<label for="mail">
Email :
<InputText id="mail" @bind-Value="Modele.Mail" />
</label>
</p>
<p>
<label for="mdp">
Mot de passe :
<InputText id="mdp" @bind-Value="Modele.Mdp" />
</label>
</p>
<p>
<label>
Utilisateur banni :
<InputCheckbox @bind-Value="Modele.IsBan" />
</label>
</p>
<button Type="Submit">Valider la modification </button>
</EditForm>
<div class="formulaire-conteneur">
<h1 class="title-spacing"> Modifier l'utilisateur</h1>
<Validations @ref="Validations" Mode="ValidationMode.Manual" Model="Modele">
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2">Pseudo</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez votre pseudo" @bind-Text="@Modele.Pseudo">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2">Prenom</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez votre prenom" @bind-Text="@Modele.Prenom">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2">Nom</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez votre nom" @bind-Text="@Modele.Nom">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2">Mail</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez votre mail" @bind-Text="@Modele.Mail">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2">Role</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez le role" @bind-Text="@Modele.Role">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div class="field-container">
<Validation>
<Field Horizontal>
<FieldLabel ColumnSize="ColumnSize.Is2">Mot de passe</FieldLabel>
<FieldBody ColumnSize="ColumnSize.Is10">
<TextEdit Placeholder="Entrez votre mot de passe" @bind-Text="@Modele.Mdp">
<Feedback>
<ValidationError />
</Feedback>
</TextEdit>
</FieldBody>
</Field>
</Validation>
</div>
<div>
<Validation>
<Switch TValue="bool" @bind-Checked="@Modele.IsBan" Color="Color.Primary">Utilisateur banni</Switch>
</Validation>
</div>
<div class="btn-container">
<Button Class="btn-se-connecter" Clicked="@modifierUtilisateur">
<Icon Name="Blazorise.Icons.FontAwesome.FontAwesomeIcons.CheckCircle" />
Modifier</Button>
<Button Class="btn-s-inscrire" Clicked="@OnAnnulation">
<Icon Name="Blazorise.Icons.FontAwesome.FontAwesomeIcons.Reply" />
Annuler</Button>
</div>
</Validations>
</div>

@ -1,5 +1,7 @@
using Blazorise;
using Microsoft.AspNetCore.Components;
using VeraxShield.composants.formulaires.modeles;
using VeraxShield.composants.formulaires.modeles.attributsValidationCustoms;
using VeraxShield.factories;
using VeraxShield.modele.utilisateurs;
using VeraxShield.services.UtilisateursDataService;
@ -11,6 +13,9 @@ namespace VeraxShield.composants.formulaires
[Parameter]
public Utilisateur Utilisateur {get; set;}
[Parameter]
public Validations Validations {get; set;}
public FormulaireAjoutModele Modele {get; set;}
[Inject]
@ -21,33 +26,43 @@ namespace VeraxShield.composants.formulaires
protected override async Task OnParametersSetAsync()
{
//PseudoCorrectAttribute.Initialiser(await this.utilisateursDataService.getAllUtilisateurs());
if (this.Utilisateur != null)
{
Console.WriteLine("Le mec encore trouvé : " + this.Utilisateur.Pseudo);
Utilisateur temp = new Utilisateur(" ", " ", " ", " ", " ", " ", true);
this.Modele = UtilisateursFactory.toModele(this.Utilisateur);
} else
{
Console.WriteLine("Le mec nul cette fois...");
Utilisateur temp = new Utilisateur(" ", " ", " ", " ", " ", " ", true);
this.Modele = UtilisateursFactory.toModele(temp);
}
Console.WriteLine("Fin du onParameterEnfant");
await base.OnParametersSetAsync();
}
protected async Task modifierUtilisateur()
{
if (await this.Validations.ValidateAll())
{
Utilisateur temp = UtilisateursFactory.toUtilisateur(this.Modele);
if (this.Utilisateur.Pseudo != this.Modele.Pseudo)
{
await this.utilisateursDataService.MettreAJourUtilisateur(this.Utilisateur, temp);
}
else
{
await this.utilisateursDataService.MettreAJourUtilisateur(temp);
}
this.NavigationManager.NavigateTo("/utilisateurs/liste");
}
}
protected async Task OnAnnulation()
{
this.NavigationManager.NavigateTo("/utilisateurs/liste");
}
}

@ -1,4 +1,8 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Components;
using VeraxShield.composants.formulaires.modeles.attributsValidationCustoms;
using VeraxShield.modele.utilisateurs;
using VeraxShield.services.UtilisateursDataService;
namespace VeraxShield.composants.formulaires.modeles
{
@ -6,23 +10,30 @@ namespace VeraxShield.composants.formulaires.modeles
{
[Required]
[StringLength(20, ErrorMessage = "Le pseudo ne doit pas dépasser 20 caractères !")]
public String Pseudo { get; set; }
[RegularExpression("^[a-zA-Z0-9_]+$", ErrorMessage = "Le pseudo contient des caractères interdits.")]
[PseudoCorrect]
public string Pseudo { get; set; }
[Required]
[StringLength(20, ErrorMessage = "Le nom ne doit pas dépasser 20 caractères !")]
[RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Le nom doit contenir uniquement des lettres.")]
public String Nom { get; set; }
[Required]
[StringLength(20, ErrorMessage = "Le prénom ne doit pas dépasser 20 caractères !")]
[RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Le prénom doit contenir uniquement des lettres.")]
public String Prenom { get; set; }
[Required]
[EmailAddress(ErrorMessage = "Veuillez entrer une adresse email valide.")]
public String Mail { get; set; }
[Required]
[RegularExpression("^[a-zA-Z0-9]+$", ErrorMessage = "Le mot de passe doit contenir uniquement des caractères alphanumériques.")]
public String Mdp { get; set; }
[Required]
[RoleExistant]
public String Role { get; set; }
[Required]

@ -0,0 +1,28 @@
using System.ComponentModel.DataAnnotations;
using Microsoft.AspNetCore.Components;
using VeraxShield.composants.affichages.utilisateurs;
using VeraxShield.modele.utilisateurs;
using VeraxShield.services.UtilisateursDataService;
namespace VeraxShield.composants.formulaires.modeles.attributsValidationCustoms
{
public class PseudoCorrectAttribute : ValidationAttribute
{
protected override ValidationResult? IsValid(object? value, ValidationContext validationContext)
{
bool pseudoExisteDeja = false;
var pseudo = (string)value;
foreach (Utilisateur u in DatagridUtilisateurs.Utilisateurs)
{
if (u.Pseudo == pseudo && pseudo != DatagridUtilisateurs.UtilisateurSelectionne.Pseudo)
{
return new ValidationResult("Le pseudo existe deja, choississez en un autre.");
}
}
return ValidationResult.Success;
}
}
}

@ -0,0 +1,33 @@
using System.ComponentModel.DataAnnotations;
namespace VeraxShield.composants.formulaires.modeles.attributsValidationCustoms
{
public class RoleExistantAttribute : ValidationAttribute
{
private List<string> RolesExistants {get; set;}
public RoleExistantAttribute()
{
this.RolesExistants = new List<string>();
this.RolesExistants.Add("admin");
this.RolesExistants.Add("modo");
this.RolesExistants.Add("invite");
this.RolesExistants.Add("redacteur");
}
protected override ValidationResult? IsValid(object? value, ValidationContext validationContext)
{
var role = (string)value;
foreach (string roleListe in this.RolesExistants)
{
if (roleListe == role)
{
return ValidationResult.Success;;
}
}
return new ValidationResult("Le role n'existe pas.");
}
}
}

@ -1,9 +1,18 @@
@using VeraxShield.composants.formulaires
@page "/utilisateurs/ajouter"
<h1>Ajouter un utilisateur</h1>
<FormulaireAjout/>
<head>
<link rel="stylesheet" href="css/pages/utilisateurs/AjouterUtilisateur.css">
</head>
<div class="container">
<div class="formulaire-modification">
<FormulaireAjout/>
</div>
</div>

@ -9,7 +9,7 @@
</head>
<body>
<div class="center-box lightBlueBG">
<div class="center-box">
<h1> Utilisateurs de Verax</h1>
<p class="margin10">Vous retrouverez ici les utilisateurs de Verax ainsi que les actions associées </p>
</div>

@ -1,18 +1,12 @@
@page "/utilisateurs/modifier/{pseudo}"
<h1> Modifier l'utilisateur </h1>
<head>
<link rel="stylesheet" href="css/pages/utilisateurs/ModifierUtilisateur.css">
</head>
<FormulaireModification Utilisateur="@Utilisateur" />
<div class="test">
<VeraxShield.composants.authentification.FormulaireInscription>
</VeraxShield.composants.authentification.FormulaireInscription>
<div class="container">
<div class="formulaire-modification">
<FormulaireModification Utilisateur="@Utilisateur"/>
</div>
</div>

@ -14,7 +14,7 @@ namespace VeraxShield.pages.utilisateurs
[Inject]
private IUtilisateursDataService utilisateursDataService {get; set;}
private Utilisateur utilisateur {get; set;}
//private Utilisateur utilisateur {get; set;}
protected override async Task OnInitializedAsync()
{

@ -14,6 +14,7 @@ namespace VeraxShield.services.UtilisateursDataService
public Task SupprimerUtilisateur(Utilisateur u);
public Task MettreAJourUtilisateur(Utilisateur u);
public Task MettreAJourUtilisateur(Utilisateur ancienneVersion, Utilisateur nouvelleVersion);
public Task<Utilisateur> getUtilisateurFromPseudo(String pseudo);
}

@ -111,6 +111,12 @@ namespace VeraxShield.services.UtilisateursDataService
await this.AjouterUtilisateur(u);
}
public async Task MettreAJourUtilisateur(Utilisateur ancienneVersion, Utilisateur nouvelleVersion)
{
await this.SupprimerUtilisateur(ancienneVersion);
await this.AjouterUtilisateur(nouvelleVersion);
}
private async Task<List<Utilisateur>> getUtilisateursFromJson(String cheminVersJson)
{
List<Utilisateur> utilisateursDeserialise = new List<Utilisateur> ();

@ -0,0 +1,51 @@
.formulaire-conteneur {
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Ajoute une ombre au formulaire */
border-radius: 10px; /* Ajoute des bords arrondis au formulaire */
/* background-color: black; */
background-color: #8BC6EC;
background-image: linear-gradient(135deg, #8BC6EC 0%, #9599E2 100%);
color: white; /* Définit la couleur du texte à blanc */
padding: 20px; /* Ajoute une marge intérieure pour plus de lisibilité */
}
.title-spacing {
margin-bottom: 20px; /* Ajoute une séparation entre le titre et le reste du contenu */
}
.field-container {
margin-bottom: 15px; /* Ajoute une séparation entre chaque champ */
}
/* Rend les labels en gras et blancs */
.field-label {
font-weight: bold;
color: white;
}
.btn-container {
display: flex;
justify-content: center;
margin-top: 20px; /* Ajoute une séparation entre les champs et les boutons */
}
.btn-se-connecter {
/* background-color: darkblue; */
/*background: #F3904F; fallback for old browsers */
/*background: -webkit-linear-gradient(to right, #3B4371, #F3904F); Chrome 10-25, Safari 5.1-6 */
/*background: linear-gradient(to right, #3B4371, #F3904F); W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
background: white;
color: black;
margin-right: 10px; /* Ajoute un espace entre les deux boutons */
}
.btn-s-inscrire {
background-color: white;
/* color: white; */
color: black;
}

@ -0,0 +1,52 @@
/* Ajoutez ces styles à votre fichier CSS associé au composant (FormulaireModification.css) */
.formulaire-conteneur {
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Ajoute une ombre au formulaire */
border-radius: 10px; /* Ajoute des bords arrondis au formulaire */
/* background-color: black; */
background-color: #8BC6EC;
background-image: linear-gradient(135deg, #8BC6EC 0%, #9599E2 100%);
color: white; /* Définit la couleur du texte à blanc */
padding: 20px; /* Ajoute une marge intérieure pour plus de lisibilité */
}
.title-spacing {
margin-bottom: 20px; /* Ajoute une séparation entre le titre et le reste du contenu */
}
.field-container {
margin-bottom: 15px; /* Ajoute une séparation entre chaque champ */
}
/* Rend les labels en gras et blancs */
.field-label {
font-weight: bold;
color: white;
}
.btn-container {
display: flex;
justify-content: center;
margin-top: 20px; /* Ajoute une séparation entre les champs et les boutons */
}
.btn-se-connecter {
/* background-color: darkblue; */
/*background: #F3904F; fallback for old browsers */
/*background: -webkit-linear-gradient(to right, #3B4371, #F3904F); Chrome 10-25, Safari 5.1-6 */
/*background: linear-gradient(to right, #3B4371, #F3904F); W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
background: white;
color: black;
margin-right: 10px; /* Ajoute un espace entre les deux boutons */
}
.btn-s-inscrire {
background-color: white;
/* color: white; */
color: black;
}

@ -27,7 +27,12 @@ main {
}
.center-box {
background-color: #afc1db;
/* background-color: #afc1db; */
background-color: #8BC6EC;
background-image: linear-gradient(135deg, #8BC6EC 0%, #9599E2 100%);
padding: 20px;
text-align: center;
border-radius: 10px;

@ -0,0 +1,14 @@
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh; /* 100% de la hauteur de la vue */
}
.formulaire-modification {
width: 50%;
/* background-color: green;
padding: 20px; */
/*box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); Ajoute une ombre au formulaire */
/* border-radius: 10px; Ajoute des bords arrondis au formulaire */
}

@ -1,9 +1,14 @@
.test {
/* background-color: white; */
background-color: #8EC5FC;
background-image: linear-gradient(62deg, #8EC5FC 0%, #E0C3FC 100%);
.container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh; /* 100% de la hauteur de la vue */
}
padding: 20px;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); /* Ajoute une ombre légère */
.formulaire-modification {
width: 50%;
/* background-color: green;
padding: 20px; */
/*box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); Ajoute une ombre au formulaire */
/* border-radius: 10px; Ajoute des bords arrondis au formulaire */
}

@ -12,7 +12,12 @@
margin: 20px auto;
text-align: center;
border-radius: 10px;
background-color: #afc1db;
/* background-color: #afc1db; */
background-color: #8BC6EC;
background-image: linear-gradient(135deg, #8BC6EC 0%, #9599E2 100%);
width: 80%;
}

Loading…
Cancel
Save