From 52294f03e999271d3e0d54e2db17ecf864458c5b Mon Sep 17 00:00:00 2001 From: Alper Ebicoglu Date: Sun, 23 Sep 2018 19:18:58 +0300 Subject: [PATCH] Closes #421 Implemented opened navigation item when it comes from URL --- .../Docs/Documents/ContentWithDetailsDto.cs | 25 +++++++++++ .../Helpers/TagHelpers/TreeTagHelper.cs | 43 +++++++++++++------ .../Pages/Documents/Project/Index.cshtml | 1 + .../src/Volo.Docs.Web/Pages/Documents/vs.js | 8 ++-- 4 files changed, 60 insertions(+), 17 deletions(-) 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 = @"