fin du travail sur le formulaire d'ajout

travailFormulairesJean
Siwa12100 1 year ago
parent c06b573b4a
commit cfbcc7558c

@ -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,7 +1,6 @@
using System.Runtime.InteropServices;
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;
@ -10,35 +9,37 @@ namespace VeraxShield.composants.formulaires
{
public partial class FormulaireAjout
{
[Inject]
private NavigationManager NavigationManager { 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()
{
//PseudoCorrectAttribute.Initialiser(await this.utilisateursDataService.getAllUtilisateurs());
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");
}
}

@ -16,7 +16,7 @@ namespace VeraxShield.composants.formulaires.modeles
[Required]
[StringLength(20, ErrorMessage = "Le nom ne doit pas dépasser 20 caractères !")]
[RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Le prénom doit contenir uniquement des lettres.")]
[RegularExpression("^[a-zA-Z]+$", ErrorMessage = "Le nom doit contenir uniquement des lettres.")]
public String Nom { get; set; }
[Required]

@ -1,9 +1,18 @@
@using VeraxShield.composants.formulaires
@page "/utilisateurs/ajouter"
<h1>Ajouter un utilisateur</h1>
<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>

@ -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,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 */
}

@ -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