From 3f147bb047aba087f4337f2f063ca1381c9db008 Mon Sep 17 00:00:00 2001 From: Salih Date: Wed, 24 Aug 2022 11:25:19 +0300 Subject: [PATCH] Combobox fill method changed --- .../Docs/Admin/Documents/DocumentInfoDto.cs | 11 ++ .../Documents/IDocumentAdminAppService.cs | 3 +- .../Admin/Projects/IProjectAdminAppService.cs | 2 + .../Projects/ProjectWithoutDetailsDto.cs | 9 ++ .../DocsAdminApplicationAutoMapperProfile.cs | 2 + .../Documents/DocumentAdminAppService.cs | 6 +- .../Admin/Projects/ProjectAdminAppService.cs | 6 + .../DocumentsAdminClientProxy.Generated.cs | 7 +- .../ProjectsAdminClientProxy.Generated.cs | 6 + .../Docs/Admin/DocumentsAdminController.cs | 6 +- .../Docs/Admin/ProjectsAdminController.cs | 8 + .../Pages/Docs/Admin/Documents/Index.cshtml | 23 ++- .../Docs/Admin/Documents/Index.cshtml.cs | 21 +-- .../Pages/Docs/Admin/Documents/index.js | 144 ++++++++++++------ .../Filter/FilterLanguageCodeItem.cs | 5 +- .../Documents/Filter/FilterVersionItem.cs | 5 +- .../Volo/Docs/Documents/DocumentInfo.cs | 11 ++ .../Docs/Documents/IDocumentRepository.cs | 2 +- .../Volo/Docs/Projects/IProjectRepository.cs | 1 + .../Docs/Projects/ProjectWithoutDetails.cs | 9 ++ .../Documents/EFCoreDocumentRepository.cs | 84 +++------- .../Docs/Projects/EfCoreProjectRepository.cs | 11 ++ .../Docs/Documents/MongoDocumentRepository.cs | 67 +------- .../Docs/DocumentAdminAppService_Tests.cs | 18 ++- .../Volo/Docs/DocsTestData.cs | 1 + .../Volo/Docs/DocsTestDataBuilder.cs | 46 ++++++ 26 files changed, 301 insertions(+), 213 deletions(-) create mode 100644 modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/DocumentInfoDto.cs create mode 100644 modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/ProjectWithoutDetailsDto.cs create mode 100644 modules/docs/src/Volo.Docs.Domain/Volo/Docs/Documents/DocumentInfo.cs create mode 100644 modules/docs/src/Volo.Docs.Domain/Volo/Docs/Projects/ProjectWithoutDetails.cs diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/DocumentInfoDto.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/DocumentInfoDto.cs new file mode 100644 index 0000000000..545e665869 --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/DocumentInfoDto.cs @@ -0,0 +1,11 @@ +using System; + +namespace Volo.Docs.Admin.Documents; + +public class DocumentInfoDto +{ + public string Version { get; set; } + public string Format { get; set; } + public string LanguageCode { get; set; } + public Guid ProjectId { get; set; } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/IDocumentAdminAppService.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/IDocumentAdminAppService.cs index daf2f87a86..79e3b5fc88 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/IDocumentAdminAppService.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Documents/IDocumentAdminAppService.cs @@ -21,6 +21,7 @@ namespace Volo.Docs.Admin.Documents Task RemoveFromCacheAsync(Guid documentId); Task ReindexAsync(Guid documentId); - Task GetFilterItemsAsync(); + + Task> GetUniqueListWithoutDetails(); } } diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/IProjectAdminAppService.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/IProjectAdminAppService.cs index 9b832165d1..6f3d503f44 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/IProjectAdminAppService.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/IProjectAdminAppService.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; @@ -20,5 +21,6 @@ namespace Volo.Docs.Admin.Projects Task ReindexAsync(ReindexInput input); Task ReindexAllAsync(); + Task> GetListWithoutDetailsAsync(); } } diff --git a/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/ProjectWithoutDetailsDto.cs b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/ProjectWithoutDetailsDto.cs new file mode 100644 index 0000000000..b6e6a301cb --- /dev/null +++ b/modules/docs/src/Volo.Docs.Admin.Application.Contracts/Volo/Docs/Admin/Projects/ProjectWithoutDetailsDto.cs @@ -0,0 +1,9 @@ +using System; + +namespace Volo.Docs.Admin.Projects; + +public class ProjectWithoutDetailsDto +{ + public Guid Id { get; set; } + public string Name { get; set; } +} \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs index eaeb59cabb..01a7250ce5 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/DocsAdminApplicationAutoMapperProfile.cs @@ -14,6 +14,8 @@ namespace Volo.Docs.Admin CreateMap(); CreateMap().Ignore(x => x.ProjectName); CreateMap(); + CreateMap(); + CreateMap(); } } } \ No newline at end of file diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs index 848805d09e..51e7297487 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Documents/DocumentAdminAppService.cs @@ -218,11 +218,13 @@ namespace Volo.Docs.Admin.Documents await _elasticSearchService.AddOrUpdateAsync(document); } - public Task GetFilterItemsAsync() + public async Task> GetUniqueListWithoutDetails() { - return _documentRepository.GetFilterItemsAsync(); + var documents = await _documentRepository.GetUniqueListWithoutDetails(); + return ObjectMapper.Map, List>(documents); } + private async Task UpdateDocumentUpdateInfoCache(Document document) { var cacheKey = $"DocumentUpdateInfo{document.ProjectId}#{document.Name}#{document.LanguageCode}#{document.Version}"; diff --git a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs index 14833cd3e4..540ecfe275 100644 --- a/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs +++ b/modules/docs/src/Volo.Docs.Admin.Application/Volo/Docs/Admin/Projects/ProjectAdminAppService.cs @@ -156,5 +156,11 @@ namespace Volo.Docs.Admin.Projects await ReindexProjectAsync(project.Id); } } + + public async Task> GetListWithoutDetailsAsync() + { + var projects = await _projectRepository.GetListWithoutDetailsAsync(); + return ObjectMapper.Map, List>(projects); + } } } diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.Generated.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.Generated.cs index 9dd8495dd6..099047438a 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.Generated.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/DocumentsAdminClientProxy.Generated.cs @@ -1,5 +1,6 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Http.Client; @@ -63,9 +64,9 @@ public partial class DocumentsAdminClientProxy : ClientProxyBase GetFilterItemsAsync() + + public Task> GetUniqueListWithoutDetails() { - return await RequestAsync(nameof(GetFilterItemsAsync)); + return RequestAsync>(nameof(GetUniqueListWithoutDetails)); } } diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.Generated.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.Generated.cs index cb8d5c3947..3ab665159e 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.Generated.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi.Client/ClientProxies/ProjectsAdminClientProxy.Generated.cs @@ -1,5 +1,6 @@ // This file is automatically generated by ABP framework to use MVC Controllers from CSharp using System; +using System.Collections.Generic; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Http.Client; @@ -61,6 +62,11 @@ public partial class ProjectsAdminClientProxy : ClientProxyBase> GetListWithoutDetailsAsync() + { + return RequestAsync>(nameof(GetListWithoutDetailsAsync)); + } + public virtual async Task ReindexAsync(ReindexInput input) { await RequestAsync(nameof(ReindexAsync), new ClientProxyRequestTypeValue diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs index 1a58ab9d02..c321b76614 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/DocumentsAdminController.cs @@ -66,10 +66,10 @@ namespace Volo.Docs.Admin } [HttpGet] - [Route("GetFilterItems")] - public Task GetFilterItemsAsync() + [Route("GetUniqueListDocumentWithoutDetails")] + public Task> GetUniqueListWithoutDetails() { - return _documentAdminAppService.GetFilterItemsAsync(); + return _documentAdminAppService.GetUniqueListWithoutDetails(); } } } diff --git a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/ProjectsAdminController.cs b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/ProjectsAdminController.cs index 1696229bf8..ea0c7f1afd 100644 --- a/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/ProjectsAdminController.cs +++ b/modules/docs/src/Volo.Docs.Admin.HttpApi/Volo/Docs/Admin/ProjectsAdminController.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; using Volo.Abp; @@ -61,6 +62,13 @@ namespace Volo.Docs.Admin return _projectAppService.ReindexAllAsync(); } + [HttpGet] + [Route("GetListProjectWithoutDetailsAsync")] + public Task> GetListWithoutDetailsAsync() + { + return _projectAppService.GetListWithoutDetailsAsync(); + } + [HttpPost] [Route("Reindex")] public Task ReindexAsync(ReindexInput input) diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml index 0d979ffd0d..c740a7ab07 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml @@ -43,7 +43,7 @@ name="ProjectId" class="form-select"> - @foreach (var project in Model.FilterItems.Projects) + @foreach (var project in Model.Projects) { } @@ -60,10 +60,10 @@ name="Version" class="form-select"> - @foreach (var version in Model.FilterItems.Versions) - { - - } + @* @foreach (var version in Model.FilterItems.Versions) *@ + @* { *@ + @* *@ + @* } *@ @@ -88,10 +88,10 @@ name="LanguageCode" class="form-select"> - @foreach (var language in Model.FilterItems.Languages) - { - - } + @* @foreach (var language in Model.FilterItems.Versions) *@ + @* { *@ + @* *@ + @* } *@ @@ -165,11 +165,6 @@ id="Format" name="Format" class="form-select"> - - @foreach (var format in Model.FilterItems.Formats) - { - - } diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml.cs b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml.cs index 34d4b9b578..194ad6780f 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml.cs +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/Index.cshtml.cs @@ -1,35 +1,24 @@ -using System; using System.Collections.Generic; -using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Mvc; -using Newtonsoft.Json; -using Volo.Docs.Admin.Documents; using Volo.Docs.Admin.Projects; -using Volo.Docs.Documents.Filter; namespace Volo.Docs.Admin.Pages.Docs.Admin.Documents; [Authorize(DocsAdminPermissions.Projects.Default)] public class IndexModel : DocsAdminPageModel { - private readonly IDocumentAdminAppService _documentAdminAppService; - public FilterItems FilterItems { get; set; } + private readonly IProjectAdminAppService _projectAdminAppService; + public List Projects { get; set; } - public IndexModel(IDocumentAdminAppService documentAdminAppService) + public IndexModel(IProjectAdminAppService projectAdminAppService) { - _documentAdminAppService = documentAdminAppService; - } - - - public string ToJson(object obj) - { - return JsonConvert.SerializeObject(obj); + _projectAdminAppService = projectAdminAppService; } public virtual async Task OnGet() { - FilterItems = await _documentAdminAppService.GetFilterItemsAsync(); + Projects = await _projectAdminAppService.GetListWithoutDetailsAsync(); return Page(); } } diff --git a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js index d891b61b29..8a7bdc6fb6 100644 --- a/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js +++ b/modules/docs/src/Volo.Docs.Admin.Web/Pages/Docs/Admin/Documents/index.js @@ -6,70 +6,120 @@ $(function () { return $datePicker.data().datepicker.getFormattedDate('yyyy-mm-dd'); }; + var comboboxItems = []; + abp.ajax({ + url: abp.appPath + 'api/docs/admin/documents/GetUniqueListDocumentWithoutDetails', + type: 'GET', + dataType: 'json', + success: function (data) { + comboboxItems = data; + fillOptions(); + } + }); + + var $projectId = $('#ProjectId'); var $version = $('#Version'); var $languageCode = $('#LanguageCode'); + var $format = $('#Format'); + + function fillOptions() { + var selectedVersion = $version.val(); + var selectedLanguageCode = $languageCode.val(); + var selectedFormat = $format.val(); + var selectedProjectId = $projectId.val(); - function $getOptions($select){ - var select = $select.get(0); - return $(select.options) - } + $version.empty(); + $languageCode.empty(); + $format.empty(); + + $version.append($('