diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/ContentWithDetailsDto.cs b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/ContentWithDetailsDto.cs index 9d9dcc63ba..067ad5e759 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/ContentWithDetailsDto.cs +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/ContentWithDetailsDto.cs @@ -42,6 +42,31 @@ namespace Volo.Docs.Documents public bool HasChildItems => Items != null && Items.Any(); public bool IsEmpty => Text == null && Path == null; + + public bool IsOpened(string documentName) + { + if (documentName == null) + { + return false; + } + + if (!HasChildItems) + { + return documentName == Path; + } + + var isOpened = false; + foreach (var n in Items) + { + if (n.IsOpened(documentName)) + { + isOpened = true; + break; + } + } + + return isOpened; + } } public class NavigationWithDetailsDto : DocumentWithDetailsDto diff --git a/modules/docs/src/Volo.Docs.Web/Areas/Documents/Helpers/TagHelpers/TreeTagHelper.cs b/modules/docs/src/Volo.Docs.Web/Areas/Documents/Helpers/TagHelpers/TreeTagHelper.cs index d1febd8b5b..1f38c22a78 100644 --- a/modules/docs/src/Volo.Docs.Web/Areas/Documents/Helpers/TagHelpers/TreeTagHelper.cs +++ b/modules/docs/src/Volo.Docs.Web/Areas/Documents/Helpers/TagHelpers/TreeTagHelper.cs @@ -1,4 +1,5 @@ using System; +using System.Linq; using System.Text; using Microsoft.AspNetCore.Razor.TagHelpers; using Volo.Docs.Documents; @@ -15,9 +16,10 @@ namespace Volo.Docs.Areas.Documents.Helpers.TagHelpers {1} - {2}"; + {2} + "; - private const string UlItemTemplate = @"