diff --git a/LearningHub.Nhs.WebUI/Controllers/AccountController.cs b/LearningHub.Nhs.WebUI/Controllers/AccountController.cs index ded28c046..00def9c2d 100644 --- a/LearningHub.Nhs.WebUI/Controllers/AccountController.cs +++ b/LearningHub.Nhs.WebUI/Controllers/AccountController.cs @@ -429,6 +429,7 @@ public async Task CreateAccountCountrySearch() public async Task CreateAccountCountrySelection(AccountCreationViewModel accountCreationViewModel) { var accountDetails = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); if (!string.IsNullOrWhiteSpace(accountCreationViewModel.FilterText)) { string filterText = Regex.Replace(accountCreationViewModel.FilterText, "[:!@#$%^&*()}{|\":?><\\[\\]\\;'/.,~\\\"\"\\'\\\\/]", " "); @@ -469,6 +470,7 @@ public async Task CreateAccountRegionSelection(AccountCreationVie { var countryCheck = int.TryParse(accountCreationViewModel.CountryId, out int countryId); var accountCreation = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); if (accountCreationViewModel.CountryId != null) { accountCreation.CountryId = accountCreationViewModel.CountryId; @@ -535,7 +537,7 @@ public async Task CreateAccountRegionSelection(AccountCreationVie public async Task CreateAccountSubmitRegionSelection(AccountCreationViewModel accountCreationViewModel) { var accountCreation = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); - + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); if (string.IsNullOrWhiteSpace(accountCreationViewModel.RegionId)) { if (accountCreation.CountryId == "1" || accountCreation.CountryId == null) @@ -593,6 +595,7 @@ public async Task CreateAccountSearchRole(AccountCreationViewMode public async Task CreateAccountCurrentRole(AccountCreationViewModel accountCreationViewModel) { var accountCreation = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); if (!string.IsNullOrWhiteSpace(accountCreationViewModel.FilterText)) { string filterText = Regex.Replace(accountCreationViewModel.FilterText, "[:!@#$%^&*()}{|\":?><\\[\\]\\;'/.,~\\\"\"\\'\\\\/]", " "); @@ -649,6 +652,7 @@ public async Task CreateAccountCurrentRole(AccountCreationViewMod public async Task CreateAccountProfessionalRegNumber(AccountCreationViewModel accountCreationViewModel) { var roleCheck = int.TryParse(accountCreationViewModel.CurrentRole, out int roleId); + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); var accountCreation = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); if (string.IsNullOrWhiteSpace(accountCreationViewModel.CurrentRole) || !roleCheck) @@ -681,6 +685,7 @@ public async Task CreateAccountProfessionalRegNumber(AccountCreat public async Task CreateAccountGradeSelection(AccountCreationViewModel accountCreationViewModel) { var accountCreation = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); int gradePageSize = UserRegistrationContentPageSize + 5; var roleCheck = int.TryParse(accountCreation.CurrentRole, out int roleId); if (!roleCheck || roleId == 0) @@ -745,6 +750,7 @@ public async Task CreateAccountGradeSelection(AccountCreationView public async Task CreateAccountPrimarySpecialty(AccountCreationViewModel accountCreationViewModel) { var accountCreation = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); var gradeCheck = int.TryParse(accountCreationViewModel.GradeId, out int gradeId); if (string.IsNullOrWhiteSpace(accountCreationViewModel.GradeId) || !gradeCheck) { @@ -777,6 +783,7 @@ public async Task CreateAccountPrimarySpecialty(AccountCreationVi public async Task CreateAccountPrimarySpecialtySelection(AccountCreationViewModel accountCreationViewModel) { var accountCreation = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); if (accountCreationViewModel.PrimarySpecialtyId?.ToLower() == "not applicable") { var specialties = await this.specialtyService.GetSpecialtiesAsync(); @@ -953,6 +960,7 @@ public async Task CreateAccountStartDate(bool? returnToConfirmati public async Task CreateAccountWorkPlaceSearch() { var accountCreation = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); if (!string.IsNullOrWhiteSpace(accountCreation.LocationId) && !this.CheckConfirmationUpdate()) { return this.RedirectToAction("CreateAccountWorkPlace", new AccountCreationViewModel { LocationId = accountCreation.LocationId }); @@ -972,6 +980,7 @@ public async Task CreateAccountWorkPlaceSearch() public async Task CreateAccountWorkPlace(AccountCreationViewModel accountCreationViewModel) { var accountCreation = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); if (string.IsNullOrWhiteSpace(accountCreationViewModel.FilterText)) { if (!string.IsNullOrWhiteSpace(accountCreation.LocationId)) @@ -1014,7 +1023,7 @@ public async Task CreateAccountWorkPlace(AccountCreationViewModel public async Task CreateAccountConfirmation(AccountCreationViewModel accountCreationViewModel) { var accountCreation = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); - + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); if (accountCreation.AccountCreationType == AccountCreationTypeEnum.FullAccess) { var placeOfWorkCheck = int.TryParse(accountCreationViewModel.LocationId, out int locationId); @@ -1051,7 +1060,7 @@ public async Task CreateAccountConfirmation() { var accountCreation = await this.multiPageFormService.GetMultiPageFormData(MultiPageFormDataFeature.AddRegistrationPrompt, this.TempData); this.ViewBag.AccountCreationType = accountCreation.AccountCreationType; - + AccountCreationFormHelper.PopulateGroupedFormControlMetadata(this.ViewData); if (accountCreation.CountryId == "1" && (string.IsNullOrWhiteSpace(accountCreation.RegionId) || accountCreation.RegionId == "0")) { this.ModelState.AddModelError(string.Empty, CommonValidationErrorMessages.RegionRequiredSummary); diff --git a/LearningHub.Nhs.WebUI/Helpers/AccountCreationFormHelper.cs b/LearningHub.Nhs.WebUI/Helpers/AccountCreationFormHelper.cs new file mode 100644 index 000000000..657c0828f --- /dev/null +++ b/LearningHub.Nhs.WebUI/Helpers/AccountCreationFormHelper.cs @@ -0,0 +1,28 @@ +namespace LearningHub.Nhs.WebUI.Helpers +{ + using System.Collections.Generic; + using Microsoft.AspNetCore.Mvc.ViewFeatures; + + /// + /// Defines the . + /// + public static class AccountCreationFormHelper + { + /// + /// The PopulateGroupedFormControlMetadata. + /// + /// viewData. + public static void PopulateGroupedFormControlMetadata(ViewDataDictionary viewData) + { + viewData["GroupedFormControlMetadata"] = new Dictionary + { + { "CountryId", true }, + { "RegionId", true }, + { "CurrentRole", true }, + { "PrimarySpecialtyId", true }, + { "GradeId", true }, + { "LocationId", true }, + }; + } + } +} diff --git a/LearningHub.Nhs.WebUI/LearningHub.Nhs.WebUI.csproj b/LearningHub.Nhs.WebUI/LearningHub.Nhs.WebUI.csproj index e44f4f060..47744a321 100644 --- a/LearningHub.Nhs.WebUI/LearningHub.Nhs.WebUI.csproj +++ b/LearningHub.Nhs.WebUI/LearningHub.Nhs.WebUI.csproj @@ -128,7 +128,7 @@ - + all runtime; build; native; contentfiles; analyzers; buildtransitive diff --git a/LearningHub.Nhs.WebUI/Views/Account/CreateAccountPrimarySpecialty.cshtml b/LearningHub.Nhs.WebUI/Views/Account/CreateAccountPrimarySpecialty.cshtml index 5a7e9d41c..0bc9979cf 100644 --- a/LearningHub.Nhs.WebUI/Views/Account/CreateAccountPrimarySpecialty.cshtml +++ b/LearningHub.Nhs.WebUI/Views/Account/CreateAccountPrimarySpecialty.cshtml @@ -62,7 +62,7 @@
- + diff --git a/LearningHub.Nhs.WebUI/Views/Account/CreateAccountPrimarySpecialtySelection.cshtml b/LearningHub.Nhs.WebUI/Views/Account/CreateAccountPrimarySpecialtySelection.cshtml index 56c18a5a8..495df4081 100644 --- a/LearningHub.Nhs.WebUI/Views/Account/CreateAccountPrimarySpecialtySelection.cshtml +++ b/LearningHub.Nhs.WebUI/Views/Account/CreateAccountPrimarySpecialtySelection.cshtml @@ -144,7 +144,7 @@
- + diff --git a/LearningHub.Nhs.WebUI/Views/Shared/Components/RadioList/Default.cshtml b/LearningHub.Nhs.WebUI/Views/Shared/Components/RadioList/Default.cshtml index eddfb332c..c901ebde3 100644 --- a/LearningHub.Nhs.WebUI/Views/Shared/Components/RadioList/Default.cshtml +++ b/LearningHub.Nhs.WebUI/Views/Shared/Components/RadioList/Default.cshtml @@ -52,7 +52,7 @@ @foreach (var (radio, index) in Model.Radios.Select((r, i) => (r, i))) { counter = index; - var radioId = $"{radio.Value}-{index}"; + var radioId = $"{Model.AspFor}-{index}"; if (!string.IsNullOrWhiteSpace(Model.Class)) {
@@ -106,7 +106,7 @@ @if (Model.OptionalRadio != null) {
or
- var radioId = $"{Model.OptionalRadio.Value}-{++counter}"; + var radioId = $"{Model.AspFor}-{++counter}";