From d6c9e6b13e105b606133fa12f14d7bf4d682771d Mon Sep 17 00:00:00 2001 From: maliming Date: Mon, 9 Mar 2020 10:34:21 +0800 Subject: [PATCH] Add FullSearchEnabledAsync method. --- .../Docs/Documents/IDocumentAppService.cs | 2 ++ .../Volo/Docs/Documents/DocumentAppService.cs | 11 +++++++++- .../Docs/Documents/DocsDocumentController.cs | 7 +++++++ .../Pages/Documents/Project/Index.cshtml | 20 ++++++++++--------- .../Pages/Documents/Project/Index.cshtml.cs | 3 +++ .../Pages/Documents/Search.cshtml.cs | 5 +++++ 6 files changed, 38 insertions(+), 10 deletions(-) diff --git a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs index 68f62abce5..259d9edf0b 100644 --- a/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs +++ b/modules/docs/src/Volo.Docs.Application.Contracts/Volo/Docs/Documents/IDocumentAppService.cs @@ -17,5 +17,7 @@ namespace Volo.Docs.Documents Task GetResourceAsync(GetDocumentResourceInput input); Task> SearchAsync(DocumentSearchInput input); + + Task FullSearchEnabledAsync(); } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs index 77bb82579d..342130d530 100644 --- a/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs +++ b/modules/docs/src/Volo.Docs.Application/Volo/Docs/Documents/DocumentAppService.cs @@ -5,6 +5,7 @@ using System.Threading.Tasks; using Microsoft.Extensions.Caching.Distributed; using Microsoft.Extensions.Hosting; using Microsoft.Extensions.Logging; +using Microsoft.Extensions.Options; using Newtonsoft.Json; using Volo.Abp.Caching; using Volo.Docs.Documents.FullSearch.Elastic; @@ -22,6 +23,7 @@ namespace Volo.Docs.Documents protected IDistributedCache DocumentUpdateCache { get; } protected IHostEnvironment HostEnvironment { get; } private readonly IDocumentFullSearch _documentFullSearch; + private readonly DocsElasticSearchOptions _docsElasticSearchOptions; public DocumentAppService( IProjectRepository projectRepository, @@ -31,7 +33,8 @@ namespace Volo.Docs.Documents IDistributedCache resourceCache, IDistributedCache documentUpdateCache, IHostEnvironment hostEnvironment, - IDocumentFullSearch documentFullSearch) + IDocumentFullSearch documentFullSearch, + IOptions docsElasticSearchOptions) { _projectRepository = projectRepository; _documentRepository = documentRepository; @@ -41,6 +44,7 @@ namespace Volo.Docs.Documents DocumentUpdateCache = documentUpdateCache; HostEnvironment = hostEnvironment; _documentFullSearch = documentFullSearch; + _docsElasticSearchOptions = docsElasticSearchOptions.Value; } public virtual async Task GetAsync(GetDocumentInput input) @@ -145,6 +149,11 @@ namespace Volo.Docs.Documents }).ToList(); } + public async Task FullSearchEnabledAsync() + { + return await Task.FromResult(_docsElasticSearchOptions.Enable); + } + public async Task GetParametersAsync(GetParametersDocumentInput input) { var project = await _projectRepository.GetAsync(input.ProjectId); diff --git a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs index 3384ee3314..a2e4017dc1 100644 --- a/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs +++ b/modules/docs/src/Volo.Docs.HttpApi/Volo/Docs/Documents/DocsDocumentController.cs @@ -54,6 +54,13 @@ namespace Volo.Docs.Documents return DocumentAppService.SearchAsync(input); } + [HttpGet] + [Route("fullsearchenabled")] + public Task FullSearchEnabledAsync() + { + return DocumentAppService.FullSearchEnabledAsync(); + } + [HttpGet] [Route("parameters")] public Task GetParametersAsync(GetParametersDocumentInput input) diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml index 9da501c102..68ba541938 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml @@ -147,18 +147,20 @@ -
-
-
-
- -
+ @if (Model.FullSearchEnabled) + { +
+
+
+
+ +
- + +
-
- + } @if (Model.Navigation == null || !Model.Navigation.HasChildItems) { diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs index 5788743784..b5bfbf0a8c 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Project/Index.cshtml.cs @@ -64,6 +64,8 @@ namespace Volo.Docs.Pages.Documents.Project public DocumentParametersDto DocumentPreferences { get; set; } public DocumentRenderParameters UserPreferences { get; set; } = new DocumentRenderParameters(); + + public bool FullSearchEnabled { get; set; } private readonly IDocumentAppService _documentAppService; private readonly IDocumentToHtmlConverterFactory _documentToHtmlConverterFactory; @@ -106,6 +108,7 @@ namespace Volo.Docs.Pages.Documents.Project { DocumentsUrlPrefix = _uiOptions.RoutePrefix; ShowProjectsCombobox = _uiOptions.ShowProjectsCombobox; + FullSearchEnabled = await _documentAppService.FullSearchEnabledAsync(); try { diff --git a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs index 531f0201f1..7be8271b0f 100644 --- a/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Web/Pages/Documents/Search.cshtml.cs @@ -41,6 +41,11 @@ namespace Volo.Docs.Pages.Documents public async Task OnGetAsync(string keyword) { + if (!await _documentAppService.FullSearchEnabledAsync()) + { + return RedirectToPage("Index"); + } + KeyWord = keyword; Project = await _projectAppService.GetAsync(ProjectName);