diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/Default.cshtml deleted file mode 100644 index d79e809c47..0000000000 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/Default.cshtml +++ /dev/null @@ -1,44 +0,0 @@ -@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap - -@using System.Dynamic -@using Volo.CmsKit.Public.Web.Renderers -@using Volo.Abp.Data -@using Volo.CmsKit.Contents - -@inject IMarkdownToHtmlRenderer MarkdownRenderer - -@model Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Pages.PageViewModel - - - - @foreach (ContentFragment contentFragment in Model.ContentFragments) - { - if (contentFragment.Type == "Markdown") //TODO: Constant - { - @Html.Raw(await MarkdownRenderer.RenderAsync(contentFragment.GetProperty("Content"))) - } - else if (contentFragment.Type == "Widget") //TODO: Constant - { - @await Component.InvokeAsync(contentFragment.GetProperty("Type"), ConvertToDynamicObject(contentFragment.ExtraProperties)) - } - } - - - - -@{ - dynamic ConvertToDynamicObject(Dictionary dict) - { - var eo = new ExpandoObject(); - var eoColl = (ICollection>)eo; - - foreach (var kvp in dict) - { - eoColl.Add(kvp); - } - - dynamic eoDynamic = eo; - - return eoDynamic; - } -} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/DefaultPageViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/DefaultPageViewComponent.cs deleted file mode 100644 index 43706cee56..0000000000 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/DefaultPageViewComponent.cs +++ /dev/null @@ -1,42 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Threading.Tasks; -using Microsoft.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc; -using Volo.Abp.AspNetCore.Mvc.UI.Packages.HighlightJs; -using Volo.Abp.AspNetCore.Mvc.UI.Widgets; -using Volo.CmsKit.Contents; - -namespace Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Pages; - -[Widget( - StyleTypes = new[] - { - typeof(HighlightJsStyleContributor) - }, - ScriptTypes = new[] - { - typeof(HighlightJsScriptContributor) - }, - ScriptFiles = new[] - { - "/Pages/Public/CmsKit/highlightOnLoad.js" - })] -public class DefaultPageViewComponent : AbpViewComponent //TODO: Remove component, directly render in the page -{ - public virtual async Task InvokeAsync( - Guid pageId, - string title, - string content, - List contentFragments) - { - var model = new PageViewModel - { - Id = pageId, - Title = title, - ContentFragments = contentFragments - }; - - return View("~/Pages/CmsKit/Shared/Components/Pages/Default.cshtml", model); - } -} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Tags/TagViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Tags/TagViewComponent.cs index a3dc23c61a..0e550a6ade 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Tags/TagViewComponent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Tags/TagViewComponent.cs @@ -1,9 +1,6 @@ -using Microsoft.AspNetCore.Mvc; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; +using System.Collections.Generic; using System.Threading.Tasks; +using Microsoft.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc.UI.Widgets; using Volo.CmsKit.Tags; diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml index 5296315e1c..498569c222 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml @@ -1,33 +1,63 @@ -@page -@using Microsoft.AspNetCore.Mvc.Localization + +@page +@addTagHelper *, Volo.Abp.AspNetCore.Mvc.UI.Bootstrap @using Volo.CmsKit.Contents -@using Volo.CmsKit.Localization -@using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Pages +@using System.Dynamic +@using Volo.CmsKit.Public.Web.Renderers +@using Volo.Abp.Data +@using Volo.Abp.AspNetCore.Mvc.UI.Packages.HighlightJs; +@using Volo.Abp.AspNetCore.Mvc.UI.Widgets; + +@inject IMarkdownToHtmlRenderer MarkdownRenderer + @model Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Pages.IndexModel -@inject IHtmlLocalizer L @section styles{ } @section scripts{ } -@await Component.InvokeAsync(typeof(DefaultPageViewComponent), - new + + + @foreach (ContentFragment contentFragment in Model.PageDto.ContentFragments) + { + if (contentFragment.Type == "Markdown") //TODO: Constant + { + @Html.Raw(await MarkdownRenderer.RenderAsync(contentFragment.GetProperty("Content"))) + } + else if (contentFragment.Type == "Widget") //TODO: Constant + { + @await Component.InvokeAsync(contentFragment.GetProperty("Type"), ConvertToDynamicObject(contentFragment.ExtraProperties)) + } + } + + + +@{ + dynamic ConvertToDynamicObject(Dictionary dict) { - pageId = Model.Page.Id, - title = Model.Page.Title, - content = Model.Page.Content, - contentFragments = Model.Page.ContentFragments - }) \ No newline at end of file + var eo = new ExpandoObject(); + var eoColl = (ICollection>)eo; + + foreach (var kvp in dict) + { + eoColl.Add(kvp); + } + + dynamic eoDynamic = eo; + + return eoDynamic; + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml.cs index 6eeac638cf..1434eccb4b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/Index.cshtml.cs @@ -12,18 +12,18 @@ public class IndexModel : CommonPageModel protected IPagePublicAppService PagePublicAppService { get; } - public PageDto Page; + public PageDto PageDto{ get; private set; } - public IndexModel(IPagePublicAppService pagePublicAppService) +public IndexModel(IPagePublicAppService pagePublicAppService) { PagePublicAppService = pagePublicAppService; } public async Task OnGetAsync() { - Page = await PagePublicAppService.FindBySlugAsync(Slug); + PageDto = await PagePublicAppService.FindBySlugAsync(Slug); - if (Page == null) + if (PageDto == null) { return NotFound(); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/PageViewModel.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/PageViewModel.cs similarity index 77% rename from modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/PageViewModel.cs rename to modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/PageViewModel.cs index 8dcc71c3b2..5e5df3e917 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Pages/PageViewModel.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Pages/PageViewModel.cs @@ -2,7 +2,7 @@ using System; using System.Collections.Generic; using Volo.CmsKit.Contents; -namespace Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Pages; +namespace Volo.CmsKit.Public.Web.Pages.Public.CmsKit.Pages; public class PageViewModel { diff --git a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs index 6445fb86f4..cfa54d2e55 100644 --- a/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs +++ b/modules/cms-kit/test/Volo.CmsKit.TestBase/CmsKitTestData.cs @@ -130,5 +130,5 @@ public class CmsKitTestData : ISingletonDependency public string PollName { get; } = "Poll"; - public string WidgetName { get; } = "CmsPollByName"; + public string WidgetName { get; } = "CmsPollByCode"; }