From 3d8bb6d460d37aa66d09f80f25db904d1317425b Mon Sep 17 00:00:00 2001 From: Lombiq Date: Tue, 27 Aug 2019 22:50:56 +0200 Subject: [PATCH] ContentTypes: Fixing previous breaking change in validation when editing the display name of a type and a field --- .../Controllers/AdminController.cs | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs b/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs index 716393032..33af8562d 100644 --- a/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs +++ b/src/Orchard.Web/Modules/Orchard.ContentTypes/Controllers/AdminController.cs @@ -229,7 +229,9 @@ namespace Orchard.ContentTypes.Controllers { // Additional Display Name validation. if (!string.IsNullOrWhiteSpace(edited.DisplayName) && - _contentDefinitionService.GetTypes().Any(t => string.Equals(t.DisplayName.Trim(), edited.DisplayName.Trim(), StringComparison.OrdinalIgnoreCase))) { + _contentDefinitionService.GetTypes().Any(t => + !string.Equals(t.Name, edited.Name, StringComparison.OrdinalIgnoreCase) && + string.Equals(t.DisplayName.Trim(), edited.DisplayName.Trim(), StringComparison.OrdinalIgnoreCase))) { ModelState.AddModelError("DisplayName", T("A content type with this display name already exists.").Text); } @@ -577,12 +579,14 @@ namespace Orchard.ContentTypes.Controllers { if (partViewModel == null) return HttpNotFound(); - ValidateTechnicalName(viewModel.Name); + ValidateDisplayName(viewModel.Name); - // Additional Technical Name validation. - if (!string.IsNullOrWhiteSpace(viewModel.Name) && - partViewModel.Fields.Any(t => string.Equals(t.Name.ToSafeName(), viewModel.Name.ToSafeName(), StringComparison.OrdinalIgnoreCase))) { - ModelState.AddModelError("Name", T("A content field with this technical name already exists.").Text); + // Additional Display Name validation. + if (!string.IsNullOrWhiteSpace(viewModel.DisplayName) && + partViewModel.Fields.Any(f => + !string.Equals(f.Name, viewModel.Name, StringComparison.OrdinalIgnoreCase) && + string.Equals(f.DisplayName.Trim(), viewModel.DisplayName.Trim(), StringComparison.OrdinalIgnoreCase))) { + ModelState.AddModelError("DisplayName", T("A content field with this display name already exists on this content part.").Text); } if (!ModelState.IsValid) return View(viewModel);