@Model.ViewModel.Title
-
+
@@@Model.ViewModel.Author?.UserName
@Model.ViewModel.CreationTime
@@ -89,7 +90,7 @@
{
entityType = Volo.CmsKit.Blogs.BlogPostConsts.EntityType,
entityId = Model.ViewModel.Id.ToString(),
- urlFormat = $"/blogs/{Model.BlogSlug}?tagId={{TagId}}"
+ urlFormat = $"/{CmsBlogsWebConsts.BlogsRoutePrefix}/{Model.BlogSlug}?tagId={{TagId}}"
})
}
}
@@ -133,9 +134,11 @@
{
+
+
}
@if (isScrollIndexEnabled)
{
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml
index 060f0c5c95..6f2a82e220 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml
@@ -2,18 +2,19 @@
@using Volo.CmsKit.Public.Web.Pages
@using Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Blogs
+@using Volo.CmsKit.Web
@inherits CmsKitPublicPageBase
@model IndexModel
-@section styles{
-
+@section styles {
+
}
@section scripts {
-
+
}
@@ -21,29 +22,43 @@
const string dummyImageSource = "https://dummyimage.com/320x180/a3a3a3/fff.png";
}
-
-
-
-
+@if (Model.AuthorId.HasValue)
+{
+
+
+
+
-
+
+
+
+}
+
+@if (Model.TagId.HasValue)
+{
+
@L["Tags"]
+
@Model.FilteredTagName
+
+
+
+}
- @if(Model.SelectedAuthor != null)
- {
-
- }
-
-
-
-
@foreach (var blog in Model.Blogs.Items)
{
@@ -51,11 +66,11 @@
@if (blog.CoverImageMediaId != null)
{
-
+
}
else
{
-
+
}
@blog.Title
@@ -65,7 +80,7 @@
@blog.ShortDescription
@@ -76,6 +91,6 @@
-
+
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml.cs
index 7feab76946..e47dd40816 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml.cs
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml.cs
@@ -31,6 +31,8 @@ public class IndexModel : CmsKitPublicPageModelBase
public CmsUserDto SelectedAuthor { get; protected set; }
+ public string FilteredTagName { get; protected set; }
+
protected IBlogPostPublicAppService BlogPostPublicAppService { get; }
public IndexModel(IBlogPostPublicAppService blogPostPublicAppService)
@@ -54,7 +56,12 @@ public class IndexModel : CmsKitPublicPageModelBase
{
SelectedAuthor = await BlogPostPublicAppService.GetAuthorHasBlogPostAsync(AuthorId.Value);
}
-
+
+ if (TagId is not null)
+ {
+ FilteredTagName = await BlogPostPublicAppService.GetTagNameAsync(TagId.Value);
+ }
+
return Page();
}
}
diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/bootstrap-toc.css b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/bootstrap-toc.css
index b15e18ee85..8599b9146d 100644
--- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/bootstrap-toc.css
+++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/bootstrap-toc.css
@@ -20,15 +20,17 @@ nav[data-toggle='toc'] .nav > li > a:focus {
text-decoration: none;
background-color: transparent;
border-left: 1px solid #563d7c;
+ border-radius: 0;
}
nav[data-toggle='toc'] .nav-link.active,
nav[data-toggle='toc'] .nav-link.active:hover,
nav[data-toggle='toc'] .nav-link.active:focus {
- padding-left: 18px;
+ padding-left: 8px;
font-weight: bold;
color: #563d7c;
background-color: transparent;
border-left: 2px solid #563d7c;
+ border-radius: 0;
}
/* Nav: second level (shown on .active) */
@@ -40,18 +42,16 @@ nav[data-toggle='toc'] .nav-link + ul {
nav[data-toggle='toc'] .nav .nav > li > a {
padding-top: 1px;
padding-bottom: 1px;
- padding-left: 30px;
+ padding-left: 8px;
+ margin-left: 8px;
font-size: 12px;
font-weight: normal;
}
-nav[data-toggle='toc'] .nav .nav > li > a:hover,
-nav[data-toggle='toc'] .nav .nav > li > a:focus {
- padding-left: 29px;
-}
+
nav[data-toggle='toc'] .nav .nav > li > .active,
nav[data-toggle='toc'] .nav .nav > li > .active:hover,
nav[data-toggle='toc'] .nav .nav > li > .active:focus {
- padding-left: 28px;
+ padding-left: 8px;
font-weight: 500;
}
diff --git a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Blogs/BlogPostPublicAppService_Tests.cs b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Blogs/BlogPostPublicAppService_Tests.cs
index 677e1ac086..edbbe3e8de 100644
--- a/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Blogs/BlogPostPublicAppService_Tests.cs
+++ b/modules/cms-kit/test/Volo.CmsKit.Application.Tests/Blogs/BlogPostPublicAppService_Tests.cs
@@ -179,4 +179,19 @@ public class BlogPostPublicAppService_Tests : CmsKitApplicationTestBase
allItemsFromRepository.Any(x => x.Id == draftBlogPost2.Id).ShouldBeTrue();
allItemsFromRepository.Any(x => x.Id == publishedBlogPost1.Id).ShouldBeTrue();
}
+
+ [Fact]
+ public async Task GetTagNameAsync_ShouldReturnCorrectName()
+ {
+ var tagName = await blogPostAppService.GetTagNameAsync(cmsKitTestData.TagId_1);
+
+ tagName.ShouldBe(cmsKitTestData.TagName_1);
+ }
+
+ [Fact]
+ public async Task GetTagNameAsync_WithNonExistingIdShouldReturnCorrectName()
+ {
+ await Should.ThrowAsync
(
+ blogPostAppService.GetTagNameAsync(Guid.NewGuid()));
+ }
}