ContentTypes: Fixing previous breaking change in validation when editing the display name of a type and a field

This commit is contained in:
Lombiq
2019-08-27 22:50:56 +02:00
committed by Benedek Farkas
parent f46be479a3
commit 3d8bb6d460

View File

@@ -229,7 +229,9 @@ namespace Orchard.ContentTypes.Controllers {
// Additional Display Name validation. // Additional Display Name validation.
if (!string.IsNullOrWhiteSpace(edited.DisplayName) && 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); 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(); if (partViewModel == null) return HttpNotFound();
ValidateTechnicalName(viewModel.Name); ValidateDisplayName(viewModel.Name);
// Additional Technical Name validation. // Additional Display Name validation.
if (!string.IsNullOrWhiteSpace(viewModel.Name) && if (!string.IsNullOrWhiteSpace(viewModel.DisplayName) &&
partViewModel.Fields.Any(t => string.Equals(t.Name.ToSafeName(), viewModel.Name.ToSafeName(), StringComparison.OrdinalIgnoreCase))) { partViewModel.Fields.Any(f =>
ModelState.AddModelError("Name", T("A content field with this technical name already exists.").Text); !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); if (!ModelState.IsValid) return View(viewModel);