parent
0de1a63ab9
commit
f4b15139f5
@ -0,0 +1,12 @@
|
|||||||
|
<Router AppAssembly="@typeof(App).Assembly">
|
||||||
|
<Found Context="routeData">
|
||||||
|
<RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
|
||||||
|
<FocusOnNavigate RouteData="@routeData" Selector="h1" />
|
||||||
|
</Found>
|
||||||
|
<NotFound>
|
||||||
|
<PageTitle>Not found</PageTitle>
|
||||||
|
<LayoutView Layout="@typeof(MainLayout)">
|
||||||
|
<p role="alert">Sorry, there's nothing at this address.</p>
|
||||||
|
</LayoutView>
|
||||||
|
</NotFound>
|
||||||
|
</Router>
|
@ -0,0 +1,3 @@
|
|||||||
|
@inherits LayoutComponentBase
|
||||||
|
|
||||||
|
<main> @Body </main>
|
@ -0,0 +1,53 @@
|
|||||||
|
using Blazored.LocalStorage;
|
||||||
|
|
||||||
|
using Blazorise;
|
||||||
|
using Blazorise.Bootstrap;
|
||||||
|
using Blazorise.Icons.FontAwesome;
|
||||||
|
|
||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using Microsoft.AspNetCore.Components.Web;
|
||||||
|
using VeraxShield.services.UtilisateursDataService;
|
||||||
|
|
||||||
|
var builder = WebApplication.CreateBuilder(args);
|
||||||
|
builder.Services.AddRazorPages();
|
||||||
|
builder.Services.AddServerSideBlazor();
|
||||||
|
|
||||||
|
// Ajout du client http par défaut :
|
||||||
|
builder.Services.AddHttpClient();
|
||||||
|
|
||||||
|
// Ajout du service de gestion des utilisateurs :
|
||||||
|
// On le met scoped, car c'est comme ça qu'est le service du localStorage alors sinon ça marche pas...
|
||||||
|
builder.Services.AddScoped<IUtilisateursDataService, UtilisateursDataServiceFactice>();
|
||||||
|
|
||||||
|
// Ajout du service pour le Blazored LocalStorage :
|
||||||
|
builder.Services.AddBlazoredLocalStorage();
|
||||||
|
|
||||||
|
// Ajout de Blazorise :
|
||||||
|
builder.Services
|
||||||
|
.AddBlazorise(options =>
|
||||||
|
{
|
||||||
|
options.Immediate = true;
|
||||||
|
})
|
||||||
|
.AddBootstrapProviders()
|
||||||
|
.AddFontAwesomeIcons();
|
||||||
|
|
||||||
|
|
||||||
|
var app = builder.Build();
|
||||||
|
|
||||||
|
if (!app.Environment.IsDevelopment())
|
||||||
|
{
|
||||||
|
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
|
||||||
|
app.UseHsts();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
app.UseHttpsRedirection();
|
||||||
|
|
||||||
|
app.UseStaticFiles();
|
||||||
|
|
||||||
|
app.UseRouting();
|
||||||
|
|
||||||
|
app.MapBlazorHub();
|
||||||
|
app.MapFallbackToPage("/_Host");
|
||||||
|
|
||||||
|
app.Run();
|
@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
"iisSettings": {
|
||||||
|
"iisExpress": {
|
||||||
|
"applicationUrl": "http://localhost:38362",
|
||||||
|
"sslPort": 44368
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"profiles": {
|
||||||
|
"http": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"applicationUrl": "http://localhost:5272",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"https": {
|
||||||
|
"commandName": "Project",
|
||||||
|
"dotnetRunMessages": true,
|
||||||
|
"launchBrowser": true,
|
||||||
|
"applicationUrl": "https://localhost:7112;http://localhost:5272",
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"IIS Express": {
|
||||||
|
"commandName": "IISExpress",
|
||||||
|
"launchBrowser": true,
|
||||||
|
"environmentVariables": {
|
||||||
|
"ASPNETCORE_ENVIRONMENT": "Development"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
<Project Sdk="Microsoft.NET.Sdk.Web">
|
||||||
|
|
||||||
|
<PropertyGroup>
|
||||||
|
<TargetFramework>net7.0</TargetFramework>
|
||||||
|
<Nullable>enable</Nullable>
|
||||||
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
|
</PropertyGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<_ContentIncludedByDefault Remove="wwwroot\data\fakeUtilisateurs.json" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
<ItemGroup>
|
||||||
|
<PackageReference Include="Blazored.LocalStorage" Version="4.4.0" />
|
||||||
|
<PackageReference Include="Blazorise.Bootstrap" Version="1.4.0" />
|
||||||
|
<PackageReference Include="Blazorise.Components" Version="1.4.0" />
|
||||||
|
<PackageReference Include="Blazorise.DataGrid" Version="1.4.0" />
|
||||||
|
<PackageReference Include="Blazorise.Icons.FontAwesome" Version="1.4.0" />
|
||||||
|
</ItemGroup>
|
||||||
|
|
||||||
|
</Project>
|
@ -0,0 +1,9 @@
|
|||||||
|
@using Microsoft.AspNetCore.Components.Routing
|
||||||
|
@using Microsoft.AspNetCore.Components.Web
|
||||||
|
@using Microsoft.JSInterop
|
||||||
|
@using VeraxShield
|
||||||
|
|
||||||
|
@using Blazored.LocalStorage
|
||||||
|
|
||||||
|
@using Blazorise
|
||||||
|
@using Blazorise.DataGrid
|
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"DetailedErrors": true,
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"Logging": {
|
||||||
|
"LogLevel": {
|
||||||
|
"Default": "Information",
|
||||||
|
"Microsoft.AspNetCore": "Warning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"AllowedHosts": "*"
|
||||||
|
}
|
@ -0,0 +1,58 @@
|
|||||||
|
|
||||||
|
<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>
|
@ -0,0 +1,54 @@
|
|||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using VeraxShield.composants.formulaires.modeles;
|
||||||
|
using VeraxShield.factories;
|
||||||
|
using VeraxShield.modele.utilisateurs;
|
||||||
|
using VeraxShield.services.UtilisateursDataService;
|
||||||
|
|
||||||
|
namespace VeraxShield.composants.formulaires
|
||||||
|
{
|
||||||
|
public partial class FormulaireModification
|
||||||
|
{
|
||||||
|
[Parameter]
|
||||||
|
public Utilisateur Utilisateur {get; set;}
|
||||||
|
|
||||||
|
public FormulaireAjoutModele Modele {get; set;}
|
||||||
|
|
||||||
|
[Inject]
|
||||||
|
private IUtilisateursDataService utilisateursDataService { get; set; }
|
||||||
|
|
||||||
|
[Inject]
|
||||||
|
private NavigationManager NavigationManager { get; set;}
|
||||||
|
|
||||||
|
protected override async Task OnParametersSetAsync()
|
||||||
|
{
|
||||||
|
|
||||||
|
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()
|
||||||
|
{
|
||||||
|
Utilisateur temp = UtilisateursFactory.toUtilisateur(this.Modele);
|
||||||
|
await this.utilisateursDataService.MettreAJourUtilisateur(temp);
|
||||||
|
|
||||||
|
this.NavigationManager.NavigateTo("/utilisateurs/liste");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1 @@
|
|||||||
|
@using Microsoft.AspNetCore.Components.Forms
|
@ -0,0 +1,24 @@
|
|||||||
|
<Modal @ref="modalRef">
|
||||||
|
|
||||||
|
<ModalContent Centered>
|
||||||
|
|
||||||
|
<ModalHeader>
|
||||||
|
<ModalTitle>Etes-vous sûr de vouloir supprimer ?</ModalTitle>
|
||||||
|
</ModalHeader>
|
||||||
|
|
||||||
|
<ModalBody>
|
||||||
|
Souhaitez-vous supprimer l'Utilisateur
|
||||||
|
@if (utilisateur != null)
|
||||||
|
{
|
||||||
|
@utilisateur.Pseudo
|
||||||
|
}
|
||||||
|
|
||||||
|
?
|
||||||
|
</ModalBody>
|
||||||
|
|
||||||
|
<ModalFooter>
|
||||||
|
<Button Color="Color.Secondary" Clicked="@suppressionAnnulee">Annuler</Button>
|
||||||
|
<Button Color="Color.Primary" Clicked="@suppressionConfirmee">Supprimer</Button>
|
||||||
|
</ModalFooter>
|
||||||
|
</ModalContent>
|
||||||
|
</Modal>
|
@ -0,0 +1 @@
|
|||||||
|
@using Blazorise.Components
|
@ -0,0 +1,5 @@
|
|||||||
|
@page "/"
|
||||||
|
|
||||||
|
<h1>VeraxShield</h1>
|
||||||
|
|
||||||
|
<NavLink href="/utilisateurs/liste"> --> Liste des utilisateurs</NavLink>
|
@ -0,0 +1,44 @@
|
|||||||
|
@page "/"
|
||||||
|
@using Microsoft.AspNetCore.Components.Web
|
||||||
|
@namespace VeraxShield.Pages
|
||||||
|
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
|
||||||
|
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8" />
|
||||||
|
<base href="~/" />
|
||||||
|
<link href="css/site.css" rel="stylesheet" />
|
||||||
|
<component type="typeof(HeadOutlet)" render-mode="ServerPrerendered" />
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
|
||||||
|
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.15.4/css/all.css">
|
||||||
|
|
||||||
|
<link href="_content/Blazorise/blazorise.css" rel="stylesheet" />
|
||||||
|
<link href="_content/Blazorise.Bootstrap/blazorise.bootstrap.css" rel="stylesheet" />
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<component type="typeof(App)" render-mode="ServerPrerendered" />
|
||||||
|
|
||||||
|
<div id="blazor-error-ui">
|
||||||
|
<environment include="Staging,Production">
|
||||||
|
An error has occurred. This application may no longer respond until reloaded.
|
||||||
|
</environment>
|
||||||
|
<environment include="Development">
|
||||||
|
An unhandled exception has occurred. See browser dev tools for details.
|
||||||
|
</environment>
|
||||||
|
<a href="" class="reload">Reload</a>
|
||||||
|
<a class="dismiss">🗙</a>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script src="_framework/blazor.server.js"></script>
|
||||||
|
|
||||||
|
<!-- Nécessaire pour Blazorise : -->
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js" integrity="sha384-9/reFTGAW83EW2RDu2S0VKaIzap3H66lZH81PoYlFhbGU+6BZp6G7niu735Sk7lN" crossorigin="anonymous"></script>
|
||||||
|
<script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/js/bootstrap.min.js" integrity="sha384-VHvPCCyXqtD5DqJeNxl2dtTyhF78xXNXdkwX1CZeRusQfRKp+tA7hAShOK/B/fQ2" crossorigin="anonymous"></script>
|
||||||
|
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,3 @@
|
|||||||
|
@using VeraxShield.composants
|
||||||
|
@using VeraxShield.composants.modals
|
||||||
|
@using VeraxShield.composants.formulaires
|
@ -0,0 +1,11 @@
|
|||||||
|
@using VeraxShield.composants.formulaires
|
||||||
|
|
||||||
|
@page "/utilisateurs/ajouter"
|
||||||
|
<h1>Ajouter un utilisateur</h1>
|
||||||
|
|
||||||
|
<FormulaireAjout/>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,85 @@
|
|||||||
|
@using VeraxShield.modele.utilisateurs;
|
||||||
|
|
||||||
|
@page "/utilisateurs/liste"
|
||||||
|
<h1>Utilisateurs de Verax</h1>
|
||||||
|
|
||||||
|
<DataGrid TItem="Utilisateur"
|
||||||
|
Data="@Utilisateurs"
|
||||||
|
@bind-SelectedRow="@utilisateurSelectionne"
|
||||||
|
Responsive
|
||||||
|
ShowPager
|
||||||
|
ShowPageSizes
|
||||||
|
PagerPosition="DataGridPagerPosition.TopAndBottom"
|
||||||
|
PagerOptions="new(){ ButtonSize=Size.Small }"
|
||||||
|
OnUtilisateurSupprime="HandleUtilisateurSupprime">
|
||||||
|
|
||||||
|
<DataGridColumns>
|
||||||
|
|
||||||
|
<DataGridCommandColumn />
|
||||||
|
|
||||||
|
<DataGridColumn Field="@nameof(Utilisateur.Pseudo)" Caption="Pseudo" Sortable="false" />
|
||||||
|
<DataGridColumn Field="@nameof(Utilisateur.Prenom)" Caption="Prenom" Editable />
|
||||||
|
<DataGridColumn Field="@nameof(Utilisateur.Nom)" Caption="Nom" Editable />
|
||||||
|
<DataGridColumn Field="@nameof(Utilisateur.IsBan)" Caption="Banissement" Editable />
|
||||||
|
</DataGridColumns>
|
||||||
|
|
||||||
|
<PageButtonTemplate>
|
||||||
|
|
||||||
|
<Span TextColor="TextColor.Success">
|
||||||
|
@context.PageNumber
|
||||||
|
</Span>
|
||||||
|
</PageButtonTemplate>
|
||||||
|
|
||||||
|
<NextPageButtonTemplate><Icon Name="IconName.StepForward" TextColor="TextColor.Success" /></NextPageButtonTemplate>
|
||||||
|
<PreviousPageButtonTemplate><Icon Name="IconName.StepBackward" TextColor="TextColor.Success" /></PreviousPageButtonTemplate>
|
||||||
|
<LastPageButtonTemplate><Icon Name="IconName.Forward" TextColor="TextColor.Success" /></LastPageButtonTemplate>
|
||||||
|
<FirstPageButtonTemplate><Icon Name="IconName.Backward" TextColor="TextColor.Success" /></FirstPageButtonTemplate>
|
||||||
|
<TotalItemsTemplate><Badge Color="Color.Success">@context.TotalItems total items</Badge></TotalItemsTemplate>
|
||||||
|
<TotalItemsShortTemplate><Badge Color="Color.Success">@context.TotalItems</Badge></TotalItemsShortTemplate>
|
||||||
|
|
||||||
|
<ItemsPerPageTemplate></ItemsPerPageTemplate>
|
||||||
|
|
||||||
|
<PageSelectorTemplate>
|
||||||
|
|
||||||
|
<Select TextColor="TextColor.Success" @bind-SelectedValue="@context.CurrentPage" Size="Size.Small">
|
||||||
|
@for (int i = context.FirstVisiblePage; i <= context.LastVisiblePage; ++i)
|
||||||
|
{
|
||||||
|
var pageNumber = i;
|
||||||
|
<SelectItem Value="@pageNumber">@pageNumber</SelectItem>
|
||||||
|
}
|
||||||
|
</Select>
|
||||||
|
</PageSelectorTemplate>
|
||||||
|
|
||||||
|
<PageSizesTemplate>
|
||||||
|
<Select TextColor="TextColor.Success" @bind-SelectedValue="@context.CurrentPageSize" Size="Size.Small">
|
||||||
|
@foreach (var curPageSize in context.PageSizes)
|
||||||
|
{
|
||||||
|
<SelectItem Value="@curPageSize">@curPageSize</SelectItem>
|
||||||
|
}
|
||||||
|
</Select>
|
||||||
|
</PageSizesTemplate>
|
||||||
|
</DataGrid>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<NavLink class="btn btn-primary" href="/utilisateurs/ajouter" Match="NavLinkMatch.All">
|
||||||
|
<i class="fa fa-plus"></i> Ajouter
|
||||||
|
</NavLink>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<Button Color="Color.Primary" Clicked="@modifierUtilisateur">Modifier</Button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<Button Color="Color.Primary" Clicked="@afficherModal">Supprimer</Button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div>
|
||||||
|
<ModalSuppressionUtilisateur
|
||||||
|
@ref ="Modal"
|
||||||
|
utilisateur="@utilisateurSelectionne"
|
||||||
|
modalFerme="fermetureModal"/>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,6 @@
|
|||||||
|
@page "/utilisateurs/modifier/{pseudo}"
|
||||||
|
|
||||||
|
<h1> Modifier l'utilisateur </h1>
|
||||||
|
|
||||||
|
<FormulaireModification Utilisateur="@Utilisateur" />
|
||||||
|
|
@ -0,0 +1,38 @@
|
|||||||
|
using Microsoft.AspNetCore.Components;
|
||||||
|
using VeraxShield.modele.utilisateurs;
|
||||||
|
using VeraxShield.services.UtilisateursDataService;
|
||||||
|
|
||||||
|
namespace VeraxShield.pages.utilisateurs
|
||||||
|
{
|
||||||
|
public partial class ModifierUtilisateur
|
||||||
|
{
|
||||||
|
[Parameter]
|
||||||
|
public String Pseudo {get; set;}
|
||||||
|
|
||||||
|
public Utilisateur Utilisateur { get; set;}
|
||||||
|
|
||||||
|
[Inject]
|
||||||
|
private IUtilisateursDataService utilisateursDataService {get; set;}
|
||||||
|
|
||||||
|
private Utilisateur utilisateur {get; set;}
|
||||||
|
|
||||||
|
protected override async Task OnInitializedAsync()
|
||||||
|
{
|
||||||
|
Console.WriteLine("Passage dans le OnInitializedAsync...");
|
||||||
|
|
||||||
|
this.Utilisateur = await this.utilisateursDataService.getUtilisateurFromPseudo(this.Pseudo);
|
||||||
|
|
||||||
|
if (Utilisateur != null)
|
||||||
|
{
|
||||||
|
Console.WriteLine("Pseudo du mec : " + this.Utilisateur.Pseudo);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine("L'utilisateur est null...");
|
||||||
|
}
|
||||||
|
|
||||||
|
Console.WriteLine("Fin du OnInitializedParent");
|
||||||
|
await base.OnInitializedAsync();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
#blazor-error-ui {
|
||||||
|
background: lightyellow;
|
||||||
|
bottom: 0;
|
||||||
|
box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
|
||||||
|
display: none;
|
||||||
|
left: 0;
|
||||||
|
padding: 0.6rem 1.25rem 0.7rem 1.25rem;
|
||||||
|
position: fixed;
|
||||||
|
width: 100%;
|
||||||
|
z-index: 1000;
|
||||||
|
}
|
||||||
|
|
||||||
|
#blazor-error-ui .dismiss {
|
||||||
|
cursor: pointer;
|
||||||
|
position: absolute;
|
||||||
|
right: 3.5rem;
|
||||||
|
top: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blazor-error-boundary {
|
||||||
|
background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
|
||||||
|
padding: 1rem 1rem 1rem 3.7rem;
|
||||||
|
color: white;
|
||||||
|
}
|
||||||
|
|
||||||
|
.blazor-error-boundary::after {
|
||||||
|
content: "An error has occurred."
|
||||||
|
}
|
@ -0,0 +1,92 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"Pseudo": "john_doe",
|
||||||
|
"Mail": "john.doe@example.com",
|
||||||
|
"Nom": "Doe",
|
||||||
|
"Prenom": "John",
|
||||||
|
"Role": "Utilisateur standard",
|
||||||
|
"Mdp": "MotDePasse123",
|
||||||
|
"IsBan": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Pseudo": "jane_smith",
|
||||||
|
"Mail": "jane.smith@example.com",
|
||||||
|
"Nom": "Smith",
|
||||||
|
"Prenom": "Jane",
|
||||||
|
"Role": "Administrateur",
|
||||||
|
"Mdp": "SecretPassword456",
|
||||||
|
"IsBan": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Pseudo": "alice_jones",
|
||||||
|
"Mail": "alice.jones@example.com",
|
||||||
|
"Nom": "Jones",
|
||||||
|
"Prenom": "Alice",
|
||||||
|
"Role": "Utilisateur standard",
|
||||||
|
"Mdp": "SecurePass789",
|
||||||
|
"IsBan": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Pseudo": "bob_williams",
|
||||||
|
"Mail": "bob.williams@example.com",
|
||||||
|
"Nom": "Williams",
|
||||||
|
"Prenom": "Bob",
|
||||||
|
"Role": "Utilisateur standard",
|
||||||
|
"Mdp": "StrongPassword1",
|
||||||
|
"IsBan": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Pseudo": "emily_davis",
|
||||||
|
"Mail": "emily.davis@example.com",
|
||||||
|
"Nom": "Davis",
|
||||||
|
"Prenom": "Emily",
|
||||||
|
"Role": "Utilisateur standard",
|
||||||
|
"Mdp": "SecurePassword789",
|
||||||
|
"IsBan": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Pseudo": "alex_miller",
|
||||||
|
"Mail": "alex.miller@example.com",
|
||||||
|
"Nom": "Miller",
|
||||||
|
"Prenom": "Alex",
|
||||||
|
"Role": "Modérateur",
|
||||||
|
"Mdp": "StrongPass123",
|
||||||
|
"IsBan": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Pseudo": "sophie_brown",
|
||||||
|
"Mail": "sophie.brown@example.com",
|
||||||
|
"Nom": "Brown",
|
||||||
|
"Prenom": "Sophie",
|
||||||
|
"Role": "Utilisateur standard",
|
||||||
|
"Mdp": "Password123",
|
||||||
|
"IsBan": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Pseudo": "william_taylor",
|
||||||
|
"Mail": "william.taylor@example.com",
|
||||||
|
"Nom": "Taylor",
|
||||||
|
"Prenom": "William",
|
||||||
|
"Role": "Administrateur",
|
||||||
|
"Mdp": "AdminPass456",
|
||||||
|
"IsBan": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Pseudo": "olivia_clark",
|
||||||
|
"Mail": "olivia.clark@example.com",
|
||||||
|
"Nom": "Clark",
|
||||||
|
"Prenom": "Olivia",
|
||||||
|
"Role": "Utilisateur standard",
|
||||||
|
"Mdp": "OliviaPass789",
|
||||||
|
"IsBan": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"Pseudo": "jacob_morgan",
|
||||||
|
"Mail": "jacob.morgan@example.com",
|
||||||
|
"Nom": "Morgan",
|
||||||
|
"Prenom": "Jacob",
|
||||||
|
"Role": "Modérateur",
|
||||||
|
"Mdp": "JacobPass1",
|
||||||
|
"IsBan": true
|
||||||
|
}
|
||||||
|
]
|
Loading…
Reference in new issue