fix(admin): show template language status in editor
Center action controls and adjust template editor field heights. Ref: IT-1601
This commit is contained in:
@@ -69,8 +69,12 @@ public sealed class AdminTemplatesController(IMediator mediator, IEmailTemplateD
|
||||
var service = await services.GetAsync(serviceId, ct);
|
||||
if (service is null || model.ServiceId != serviceId || model.ServiceName != service.Name)
|
||||
return NotFound();
|
||||
if (model.Id is Guid definitionId && await OwnedDefinitionAsync(service, definitionId, ct) is null)
|
||||
var persisted = model.Id is Guid definitionId ? await OwnedDefinitionAsync(service, definitionId, ct) : null;
|
||||
if (model.Id is not null && persisted is null)
|
||||
return NotFound();
|
||||
var presentCodes = persisted?.Languages.Select(l => l.LanguageCode).ToHashSet(StringComparer.Ordinal);
|
||||
foreach (var language in model.Languages)
|
||||
language.IsPresent = presentCodes?.Contains(language.LanguageCode) == true;
|
||||
ValidateLanguageCatalog(model, service);
|
||||
if (!ModelState.IsValid)
|
||||
return EditorView(model, service);
|
||||
@@ -226,7 +230,8 @@ public sealed class AdminTemplatesController(IMediator mediator, IEmailTemplateD
|
||||
VariablesJson = JsonSerializer.Serialize(definition.Variables, JsonOptions),
|
||||
Languages = definition.Languages.Select(l => new EmailTemplateLanguageEditViewModel
|
||||
{
|
||||
LanguageCode = l.LanguageCode, Subject = l.Subject, HtmlBody = l.HtmlBody, TextBody = l.TextBody
|
||||
LanguageCode = l.LanguageCode, Subject = l.Subject, HtmlBody = l.HtmlBody, TextBody = l.TextBody,
|
||||
IsPresent = true
|
||||
}).ToList()
|
||||
};
|
||||
}
|
||||
|
||||
+3
@@ -1,4 +1,5 @@
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
using Microsoft.AspNetCore.Mvc.ModelBinding;
|
||||
|
||||
namespace HrynCo.NotificationService.Web.Controllers.Admin.ViewModels;
|
||||
|
||||
@@ -12,6 +13,8 @@ public sealed class EmailTemplateLanguageEditViewModel : IValidatableObject
|
||||
public string HtmlBody { get; set; } = "";
|
||||
[DisplayFormat(ConvertEmptyStringToNull = false)]
|
||||
public string TextBody { get; set; } = "";
|
||||
[BindNever]
|
||||
public bool IsPresent { get; set; }
|
||||
public bool HasContent => !string.IsNullOrWhiteSpace(Subject) || !string.IsNullOrWhiteSpace(HtmlBody) || !string.IsNullOrWhiteSpace(TextBody);
|
||||
|
||||
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
|
||||
|
||||
Reference in New Issue
Block a user