Merge pull request #102 from Moonlight-Panel/FixUserDetailEmail

Improved user details profile page
This commit is contained in:
Marcel Baumgartner
2023-04-28 16:57:16 +02:00
committed by GitHub

View File

@@ -1,19 +1,17 @@
@page "/profile" @page "/profile"
@using Moonlight.Shared.Components.Navigations @using Moonlight.Shared.Components.Navigations
@using Moonlight.App.Services.Sessions
@using Moonlight.App.Database.Entities @using Moonlight.App.Database.Entities
@using Moonlight.App.Models.Forms @using Moonlight.App.Models.Forms
@using Moonlight.App.Repositories @using Moonlight.App.Repositories
@using Moonlight.Shared.Components.Auth @using Mappy.Net
@inject IdentityService IdentityService
@inject UserRepository UserRepository @inject UserRepository UserRepository
<ProfileNavigation Index="0" /> <ProfileNavigation Index="0" />
<LazyLoader Load="Load"> <LazyLoader Load="Load">
<SmartForm OnValidSubmit="Save" Model="User"> <SmartForm OnValidSubmit="Save" Model="Model">
<div class="card mb-5 mb-xl-10"> <div class="card mb-5 mb-xl-10">
<div class="card-body p-9"> <div class="card-body p-9">
<div class="row"> <div class="row">
@@ -22,7 +20,7 @@
<label class="form-label"> <label class="form-label">
<TL>First name</TL> <TL>First name</TL>
</label> </label>
<InputText @bind-Value="User.FirstName" class="form-control"></InputText> <InputText @bind-Value="Model.FirstName" class="form-control"></InputText>
</div> </div>
</div> </div>
<div class="col-lg-6 fv-row fv-plugins-icon-container"> <div class="col-lg-6 fv-row fv-plugins-icon-container">
@@ -30,7 +28,7 @@
<label class="form-label"> <label class="form-label">
<TL>Last name</TL> <TL>Last name</TL>
</label> </label>
<InputText @bind-Value="User.LastName" class="form-control"></InputText> <InputText @bind-Value="Model.LastName" class="form-control"></InputText>
</div> </div>
</div> </div>
</div> </div>
@@ -38,31 +36,31 @@
<label class="form-label"> <label class="form-label">
<TL>Email address</TL> <TL>Email address</TL>
</label> </label>
<InputText @bind-Value="User.Email" class="form-control"></InputText> <InputText @bind-Value="Model.Email" class="form-control"></InputText>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label class="form-label"> <label class="form-label">
<TL>Address</TL> <TL>Address</TL>
</label> </label>
<InputText @bind-Value="User.Address" class="form-control"></InputText> <InputText @bind-Value="Model.Address" class="form-control"></InputText>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label class="form-label"> <label class="form-label">
<TL>City</TL> <TL>City</TL>
</label> </label>
<InputText @bind-Value="User.City" class="form-control"></InputText> <InputText @bind-Value="Model.City" class="form-control"></InputText>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label class="form-label"> <label class="form-label">
<TL>State</TL> <TL>State</TL>
</label> </label>
<InputText @bind-Value="User.State" class="form-control"></InputText> <InputText @bind-Value="Model.State" class="form-control"></InputText>
</div> </div>
<div class="mb-3"> <div class="mb-3">
<label class="form-label"> <label class="form-label">
<TL>Country</TL> <TL>Country</TL>
</label> </label>
<InputText @bind-Value="User.Country" class="form-control"></InputText> <InputText @bind-Value="Model.Country" class="form-control"></InputText>
</div> </div>
</div> </div>
<div class="card-footer d-flex justify-content-end py-6 px-9"> <div class="card-footer d-flex justify-content-end py-6 px-9">
@@ -76,31 +74,25 @@
@code @code
{ {
private UserDataModel User = new UserDataModel(); private UserDataModel Model = new UserDataModel();
private User CurrentUser;
[CascadingParameter]
public User CurrentUser { get; set; }
private async Task Load(LazyLoader loader) private Task Load(LazyLoader loader)
{ {
CurrentUser = await IdentityService.Get(); Model = Mapper.Map<UserDataModel>(CurrentUser);
User.FirstName = CurrentUser.FirstName;
User.LastName = CurrentUser.LastName; return Task.CompletedTask;
User.Email = CurrentUser.Email;
User.Address = CurrentUser.Address;
User.City = CurrentUser.City;
User.State = CurrentUser.State;
User.Country = CurrentUser.Country;
} }
private Task Save() private Task Save()
{ {
CurrentUser.FirstName = User.FirstName; CurrentUser = Mapper.Map(CurrentUser, Model);
CurrentUser.LastName = User.LastName;
CurrentUser.Email = User.Email; CurrentUser.Email = CurrentUser.Email.ToLower();
CurrentUser.Address = User.Address;
CurrentUser.City = User.City;
CurrentUser.State = User.State;
CurrentUser.Country = User.Country;
UserRepository.Update(CurrentUser); UserRepository.Update(CurrentUser);
return Task.CompletedTask; return Task.CompletedTask;