Fixed missing required fields and other issues in users view

This commit is contained in:
2025-11-24 13:03:55 +01:00
parent 3f6ecbe617
commit 8641e11ad3
2 changed files with 16 additions and 11 deletions

View File

@@ -197,7 +197,7 @@
</div>
<div class="col-md-6">
<label class="form-label" for="updateAddressStreetNr">@T["Street Nr."]</label>
<input type="text" id="updateAddressStreetNr" name="Description.Address.StreetNr" class="form-control" />
<input type="number" id="updateAddressStreetNr" name="Description.Address.StreetNr" class="form-control" />
</div>
<hr class="my-3">
<h4 class="fw-bold">@T["Workplace & account"]</h4>
@@ -213,7 +213,7 @@
</div>
<div class="col-md-6">
<label class="form-label" for="updatePassword">@T["New Password"]</label>
<input type="password" id="updatePassword" name="UserPassword" class="form-control" />
<input type="password" id="updatePassword" name="UserPassword" class="form-control" pattern="(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,}" title="@T["Password must be at least 8 characters long and include upper, lower, number, and special character"]" />
</div>
<div class="col-md-6">
<label class="form-label" for="updatePhotoFile">@T["Photo"]</label>
@@ -278,6 +278,9 @@
var dataFromEntries = Object.fromEntries(new FormData(updateForm).entries());
var data = unflatten(dataFromEntries);
data.Description.Groups = Array.from(updateForm.querySelector('#updateGroups').selectedOptions).map(option => option.value);
if (data.Description.Address.StreetNr == "") {
delete(data.Description.Address.StreetNr);
}
try {
const response = await fetch('/Users/Update', {
method: 'POST',
@@ -435,11 +438,11 @@
</div>
<div class="col-md-6">
<label class="form-label" for="createName">@T["Name"]</label>
<input type="text" name="Cn" id="createName" class="form-control" />
<input type="text" name="Cn" id="createName" required class="form-control" />
</div>
<div class="col-md-6">
<label class="form-label" for="createSurname">@T["Surname"]</label>
<input type="text" name="Sn" id="createSurname" class="form-control" />
<input type="text" name="Sn" id="createSurname" required class="form-control" />
</div>
<div class="col-md-6">
<label class="form-label" for="createBirthDate">@T["Birth Date"]</label>
@@ -455,7 +458,7 @@
</div>
<div class="col-md-6">
<label class="form-label" for="createStreetNr">@T["Street Nr."]</label>
<input type="text" id="createStreetNr" name="Description.Address.StreetNr" class="form-control" />
<input type="number" id="createStreetNr" name="Description.Address.StreetNr" class="form-control" />
</div>
<hr class="my-3">
<h4 class="fw-bold">@T["Workplace & account"]</h4>
@@ -471,7 +474,7 @@
</div>
<div class="col-md-6">
<label class="form-label" for="createPassword">@T["Password"]</label>
<input type="password" id="createPassword" name="UserPassword" class="form-control" />
<input type="password" id="createPassword" name="UserPassword" class="form-control" pattern="(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[^A-Za-z0-9]).{8,}" title="@T["Password must be at least 8 characters long and include upper, lower, number, and special character"]" required />
</div>
<div class="col-md-6">
<label class="form-label" for="createPhotoFile">@T["Photo"]</label>
@@ -539,7 +542,9 @@
const dataFromEntries = Object.fromEntries(new FormData(createForm).entries());
const data = unflatten(dataFromEntries);
data.Description.Groups = Array.from(createGroupsSelect.selectedOptions).map(o => o.value);
if (data.Description.Address.StreetNr == "") {
delete(data.Description.Address.StreetNr);
}
try {
const response = await fetch('/Users/Create', {
method: 'POST',
@@ -572,7 +577,7 @@
data-user-birthdate="${data.Description.BirthDate}"
data-user-address-city="${data.Description.Address.City}"
data-user-address-street="${data.Description.Address.Street}"
data-user-address-streetnr="${data.Description.Address.StreetNr}"
data-user-address-streetnr="${data.Description.Address.StreetNr || ""}"
data-user-workplace="${data.Description?.Workplace || ''}"
data-user-groups='${JSON.stringify(data.Description?.Groups || [])}'
data-bs-toggle="modal"