diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs index 20e573bac1..809fcf3c23 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostDto.cs @@ -1,10 +1,11 @@ using System; using Volo.Abp.Application.Dtos; +using Volo.Abp.Auditing; namespace Volo.CmsKit.Admin.Blogs { [Serializable] - public class BlogPostDto : EntityDto + public class BlogPostDto : EntityDto, IHasCreationTime, IHasModificationTime { public Guid BlogId { get; set; } @@ -17,5 +18,9 @@ namespace Volo.CmsKit.Admin.Blogs public string Content { get; set; } public Guid? CoverImageMediaId { get; set; } + + public DateTime CreationTime { get; set; } + + public DateTime? LastModificationTime { get; set; } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostListDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostListDto.cs new file mode 100644 index 0000000000..d3e3b5126c --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/BlogPostListDto.cs @@ -0,0 +1,28 @@ +using System; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Auditing; + +namespace Volo.CmsKit.Admin.Blogs +{ + [Serializable] + public class BlogPostListDto : EntityDto, IHasCreationTime, IHasModificationTime + { + public Guid BlogId { get; set; } + + public string BlogName { get; set; } + + public string Title { get; set; } + + public string Slug { get; set; } + + public string ShortDescription { get; set; } + + public string Content { get; set; } + + public Guid? CoverImageMediaId { get; set; } + + public DateTime CreationTime { get; set; } + + public DateTime? LastModificationTime { get; set; } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogPostAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogPostAdminAppService.cs index cb7364247d..32cfa36f32 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogPostAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Blogs/IBlogPostAdminAppService.cs @@ -6,6 +6,7 @@ namespace Volo.CmsKit.Admin.Blogs public interface IBlogPostAdminAppService : ICrudAppService< BlogPostDto, + BlogPostListDto, Guid, BlogPostGetListInput, CreateBlogPostDto, diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs index 670256b810..6660ea77aa 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Blogs/BlogPostAdminAppService.cs @@ -1,6 +1,7 @@ using Microsoft.AspNetCore.Authorization; using System; using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.GlobalFeatures; @@ -83,15 +84,28 @@ namespace Volo.CmsKit.Admin.Blogs } [Authorize(CmsKitAdminPermissions.BlogPosts.Default)] - public virtual async Task> GetListAsync(BlogPostGetListInput input) + public virtual async Task> GetListAsync(BlogPostGetListInput input) { + var blogs = (await BlogRepository.GetListAsync()).ToDictionary(x => x.Id); + var blogPosts = await BlogPostRepository.GetListAsync(input.Filter, input.BlogId, input.MaxResultCount, input.SkipCount, input.Sorting); var count = await BlogPostRepository.GetCountAsync(input.Filter); - var dtoList = ObjectMapper.Map, List>(blogPosts); + var dtoList = blogPosts.Select(x => new BlogPostListDto { + Id = x.Id, + BlogId = x.BlogId, + BlogName = blogs[x.BlogId].Name, + Title = x.Title, + Slug = x.Slug, + ShortDescription = x.ShortDescription, + Content = x.Content, + CoverImageMediaId = x.CoverImageMediaId, + CreationTime = x.CreationTime, + LastModificationTime = x.LastModificationTime + }).ToList(); - return new PagedResultDto(count, dtoList); + return new PagedResultDto(count, dtoList); } [Authorize(CmsKitAdminPermissions.BlogPosts.Delete)] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs index 72f16c5ef2..fffad5b86d 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Blogs/BlogPostAdminController.cs @@ -49,7 +49,7 @@ namespace Volo.CmsKit.Admin.Blogs [HttpGet] [Authorize(CmsKitAdminPermissions.BlogPosts.Default)] - public virtual Task> GetListAsync(BlogPostGetListInput input) + public virtual Task> GetListAsync(BlogPostGetListInput input) { return BlogPostAdminAppService.GetListAsync(input); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js index 25ac0a84af..8de20f2a2c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/index.js @@ -18,7 +18,7 @@ $(function () { scrollCollapse: true, scrollX: true, ordering: true, - order: [[1, "desc"]], + order: [[2, "desc"]], ajax: abp.libs.datatables.createAjax(blogsService.getList, getFilter), columnDefs: [ { @@ -50,6 +50,11 @@ $(function () { ] } }, + { + title: l("Blog"), + orderable: false, + data: "blogName" + }, { title: l("Title"), orderable: true, @@ -59,6 +64,12 @@ $(function () { title: l("Slug"), orderable: true, data: "slug" + }, + { + title: l("CreationTime"), + orderable: true, + data: 'creationTime', + dataFormat: "datetime" } ] }));