diff --git a/BTCPayServer.Abstractions/Form/Form.cs b/BTCPayServer.Abstractions/Form/Form.cs index c882fd9bb..a6dac6a4f 100644 --- a/BTCPayServer.Abstractions/Form/Form.cs +++ b/BTCPayServer.Abstractions/Form/Form.cs @@ -50,7 +50,7 @@ public class Form HashSet nameReturned = new(); foreach (var f in GetAllFieldsCore(new List(), Fields)) { - var fullName = string.Join('_', f.Path); + var fullName = string.Join('_', f.Path.Where(s => !string.IsNullOrEmpty(s))); if (!nameReturned.Add(fullName)) continue; yield return (fullName, f.Path, f.Field); @@ -63,7 +63,7 @@ public class Form HashSet nameReturned = new(); foreach (var f in GetAllFieldsCore(new List(), Fields)) { - var fullName = string.Join('_', f.Path); + var fullName = string.Join('_', f.Path.Where(s => !string.IsNullOrEmpty(s))); if (!nameReturned.Add(fullName)) { errors.Add($"Form contains duplicate field names '{fullName}'"); @@ -128,8 +128,8 @@ public class Form } else if (prop.Value.Type == JTokenType.String) { - var fullname = String.Join('_', propPath); - if (fields.TryGetValue(fullname, out var f) && !f.Constant) + var fullName = string.Join('_', propPath.Where(s => !string.IsNullOrEmpty(s))); + if (fields.TryGetValue(fullName, out var f) && !f.Constant) f.Value = prop.Value.Value(); } } diff --git a/BTCPayServer/Views/Shared/Forms/FieldSetElement.cshtml b/BTCPayServer/Views/Shared/Forms/FieldSetElement.cshtml index 106ae001d..5c2731704 100644 --- a/BTCPayServer/Views/Shared/Forms/FieldSetElement.cshtml +++ b/BTCPayServer/Views/Shared/Forms/FieldSetElement.cshtml @@ -10,7 +10,7 @@ { if (FormComponentProviders.TypeToComponentProvider.TryGetValue(field.Type, out var partial)) { - field.Name = $"{Model.Name}_{field.Name}"; + field.Name = $"{(string.IsNullOrEmpty(Model.Name)? string.Empty: $"{Model.Name}_")}{field.Name}"; } } diff --git a/BTCPayServer/Views/Shared/Forms/InputElement.cshtml b/BTCPayServer/Views/Shared/Forms/InputElement.cshtml index de68756d5..4980f3555 100644 --- a/BTCPayServer/Views/Shared/Forms/InputElement.cshtml +++ b/BTCPayServer/Views/Shared/Forms/InputElement.cshtml @@ -21,6 +21,8 @@ @(isInvalid && errors.Any() ? errors.First().ErrorMessage : string.Empty) @if (!string.IsNullOrEmpty(Model.HelpText)) { -
@Model.HelpText
+
+ @Safe.Raw(Model.HelpText) +
}