Add real name to profile form (#12)
This commit is contained in:
parent
1b2540e5d2
commit
8350d0bddf
|
@ -11,6 +11,16 @@
|
||||||
<Loading OnLoad=@SetUpProfile Message=@(new MarkupString("Loading Your Profile…"))>
|
<Loading OnLoad=@SetUpProfile Message=@(new MarkupString("Loading Your Profile…"))>
|
||||||
<EditForm Model=@ProfileForm OnValidSubmit=@SaveProfile>
|
<EditForm Model=@ProfileForm OnValidSubmit=@SaveProfile>
|
||||||
<DataAnnotationsValidator />
|
<DataAnnotationsValidator />
|
||||||
|
<div class="form-row">
|
||||||
|
<div class="col col-xs-12 col-sm-10 col-md-8 col-lg-6">
|
||||||
|
<div class="form-group">
|
||||||
|
<label for="realName" class="jjj-label">Real Name</label>
|
||||||
|
<InputText id="realName" @bind-Value=@ProfileForm.RealName class="form-control"
|
||||||
|
placeholder="Leave blank to use your NAS display name" />
|
||||||
|
<ValidationMessage For=@(() => ProfileForm.RealName) />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="form-check">
|
<div class="form-check">
|
||||||
|
|
|
@ -48,6 +48,7 @@ namespace JobsJobsJobs.Client.Pages.Citizen
|
||||||
ServerApi.SetJwt(http, state);
|
ServerApi.SetJwt(http, state);
|
||||||
var continentTask = state.GetContinents(http);
|
var continentTask = state.GetContinents(http);
|
||||||
var profileTask = ServerApi.RetrieveProfile(http, state);
|
var profileTask = ServerApi.RetrieveProfile(http, state);
|
||||||
|
//var citizenTask = ServerApi.RetrieveOne<Citizen>(http,)
|
||||||
|
|
||||||
await Task.WhenAll(continentTask, profileTask);
|
await Task.WhenAll(continentTask, profileTask);
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="col col-xs-10 col-sm-10 col-md-6">
|
<div class="col col-xs-10 col-sm-10 col-md-6">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="skillDesc@(Skill.Id)">Skill</label>
|
<label for="skillDesc@(Skill.Id)" class="jjj-label">Skill</label>
|
||||||
<input type="text" id="skillDesc@(Skill.Id)" @bind="@Skill.Description" class="form-control" maxlength="100"
|
<input type="text" id="skillDesc@(Skill.Id)" @bind="@Skill.Description" class="form-control" maxlength="100"
|
||||||
placeholder="A skill (language, design technique, process, etc.)">
|
placeholder="A skill (language, design technique, process, etc.)">
|
||||||
<ValidationMessage For="@(() => Skill.Description)" />
|
<ValidationMessage For="@(() => Skill.Description)" />
|
||||||
|
@ -13,7 +13,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="col col-xs-12 col-sm-12 col-md-5">
|
<div class="col col-xs-12 col-sm-12 col-md-5">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<label for="skillNotes@(Skill.Id)">Notes</label>
|
<label for="skillNotes@(Skill.Id)" class="jjj-label">Notes</label>
|
||||||
<input type="text" id="skillNotes@(Skill.Id)" @bind="@Skill.Notes" class="form-control" maxlength="100"
|
<input type="text" id="skillNotes@(Skill.Id)" @bind="@Skill.Notes" class="form-control" maxlength="100"
|
||||||
placeholder="A further description of the skill (100 characters max)">
|
placeholder="A further description of the skill (100 characters max)">
|
||||||
<ValidationMessage For="@(() => Skill.Notes)" />
|
<ValidationMessage For="@(() => Skill.Notes)" />
|
||||||
|
|
|
@ -66,6 +66,7 @@ label.jjj-required::after {
|
||||||
content: ' *';
|
content: ' *';
|
||||||
}
|
}
|
||||||
|
|
||||||
label.jjj-label {
|
label.jjj-label,
|
||||||
|
::placeholder {
|
||||||
font-style: italic;
|
font-style: italic;
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ namespace JobsJobsJobs.Server.Areas.Api.Controllers
|
||||||
private CitizenId CurrentCitizenId => CitizenId.Parse(User.FindFirst(ClaimTypes.NameIdentifier)!.Value);
|
private CitizenId CurrentCitizenId => CitizenId.Parse(User.FindFirst(ClaimTypes.NameIdentifier)!.Value);
|
||||||
|
|
||||||
// This returns 204 to indicate that there is no profile data for the current citizen (if, of course, that is
|
// This returns 204 to indicate that there is no profile data for the current citizen (if, of course, that is
|
||||||
// the case. The version where an ID is specified returns 404, which is an error condition, as it should not
|
// the case). The version where an ID is specified returns 404, which is an error condition, as it should not
|
||||||
// occur unless someone is messing with a URL.
|
// occur unless someone is messing with a URL.
|
||||||
[HttpGet("")]
|
[HttpGet("")]
|
||||||
public async Task<IActionResult> Get()
|
public async Task<IActionResult> Get()
|
||||||
|
@ -89,6 +89,10 @@ namespace JobsJobsJobs.Server.Areas.Api.Controllers
|
||||||
foreach (var skill in skills) await _db.SaveSkill(skill);
|
foreach (var skill in skills) await _db.SaveSkill(skill);
|
||||||
await _db.DeleteMissingSkills(CurrentCitizenId, skills.Select(s => s.Id));
|
await _db.DeleteMissingSkills(CurrentCitizenId, skills.Select(s => s.Id));
|
||||||
|
|
||||||
|
// Real Name
|
||||||
|
_db.Update((await _db.FindCitizenById(CurrentCitizenId))!
|
||||||
|
with { RealName = string.IsNullOrWhiteSpace(form.RealName) ? null : form.RealName });
|
||||||
|
|
||||||
await _db.SaveChangesAsync();
|
await _db.SaveChangesAsync();
|
||||||
return Ok();
|
return Ok();
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,6 +19,12 @@ namespace JobsJobsJobs.Shared.Api
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsPublic { get; set; }
|
public bool IsPublic { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The user's real name
|
||||||
|
/// </summary>
|
||||||
|
[StringLength(255)]
|
||||||
|
public string RealName { get; set; } = "";
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The ID of the continent on which the citizen is located
|
/// The ID of the continent on which the citizen is located
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user