diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs index 5f2a73ae9c..eeb73ba918 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageDto.cs @@ -5,7 +5,7 @@ using Volo.Abp.Domain.Entities; namespace Volo.CmsKit.Admin.Pages; [Serializable] -public class PageDto : ExtensibleEntityDto, IHasConcurrencyStamp +public class PageDto : ExtensibleAuditedEntityDto, IHasConcurrencyStamp { public string Title { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebAutoMapperProfile.cs new file mode 100644 index 0000000000..b61b1842b5 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebAutoMapperProfile.cs @@ -0,0 +1,56 @@ +using AutoMapper; +using Volo.CmsKit.Admin.Blogs; +using Volo.CmsKit.Admin.Menus; +using Volo.CmsKit.Admin.Pages; +using Volo.CmsKit.Admin.Tags; +using Volo.CmsKit.Menus; +using Volo.CmsKit.Tags; + +namespace Volo.CmsKit.Admin.Web; + +public class CmsKitAdminWebAutoMapperProfile : Profile +{ + public CmsKitAdminWebAutoMapperProfile() + { + CreateBlogPostMappings(); + CreateBlogMappings(); + CreateMenuMappings(); + CreatePageMappings(); + CreateTagMappings(); + } + + protected virtual void CreateBlogPostMappings() + { + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + } + + protected virtual void CreateBlogMappings() + { + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + } + + protected virtual void CreateMenuMappings() + { + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + } + + protected virtual void CreatePageMappings() + { + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + } + + protected virtual void CreateTagMappings() + { + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + CreateMap().MapExtraProperties(); + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs index 4c886b9185..68220dd9ef 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs @@ -7,10 +7,14 @@ using Volo.Abp.AutoMapper; using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Localization; using Volo.Abp.Modularity; +using Volo.Abp.ObjectExtending; +using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.Threading; using Volo.Abp.UI.Navigation; using Volo.Abp.VirtualFileSystem; using Volo.CmsKit.Admin.MediaDescriptors; using Volo.CmsKit.Admin.Web.Menus; +using Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags; using Volo.CmsKit.Localization; using Volo.CmsKit.Permissions; using Volo.CmsKit.Web; @@ -23,6 +27,8 @@ namespace Volo.CmsKit.Admin.Web; )] public class CmsKitAdminWebModule : AbpModule { + private readonly static OneTimeRunner OneTimeRunner = new OneTimeRunner(); + public override void PreConfigureServices(ServiceConfigurationContext context) { context.Services.PreConfigure(options => @@ -169,4 +175,20 @@ public class CmsKitAdminWebModule : AbpModule options.ConventionalControllers.FormBodyBindingIgnoredTypes.Add(typeof(CreateMediaInputWithStream)); }); } + + public override void PostConfigureServices(ServiceConfigurationContext context) + { + OneTimeRunner.Run(() => + { + ModuleExtensionConfigurationHelper + .ApplyEntityConfigurationToUi( + CmsKitModuleExtensionConsts.ModuleName, + CmsKitModuleExtensionConsts.EntityNames.Blog, + createFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs.CreateModalModel.CreateBlogViewModel) }, + editFormTypes: new[] { typeof(Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs.UpdateModalModel.UpdateBlogViewModel) } + ); + + + }); + } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml index 27a5be8083..ab7cf99abe 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml @@ -2,6 +2,12 @@ @using System.Globalization @using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Mvc.TagHelpers +@using Microsoft.Extensions.Localization +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form +@using Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers @using Volo.Abp.AspNetCore.Mvc.UI.Packages.TuiEditor @using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Pages.Shared.Components.AbpPageToolbar @using Volo.CmsKit.Admin.Web.Pages @@ -11,10 +17,14 @@ @using Volo.CmsKit.Blogs @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Uppy @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Slugify +@using Volo.Abp.Data +@using Volo.Abp.Localization +@using Volo.Abp.ObjectExtending @using Volo.CmsKit.Permissions @inherits CmsKitAdminPageBase @inject IAuthorizationService AuthorizationService +@inject IStringLocalizerFactory StringLocalizerFactory @model CreateModel @{ @@ -54,7 +64,7 @@ - +
@@ -64,8 +74,8 @@ - - + +
- + @foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties()) + { + if (!propertyInfo.Name.EndsWith("_Text")) + { + if (propertyInfo.Type.IsEnum || !propertyInfo.Lookup.Url.IsNullOrEmpty()) + { + if (propertyInfo.Type.IsEnum) + { + Model.ViewModel.ExtraProperties.ToEnum(propertyInfo.Name, propertyInfo.Type); + } + + } + else + { + + } + } + } +
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml.cs index a76385491a..ff2c58e5e2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml.cs @@ -8,6 +8,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; +using Volo.Abp.ObjectExtending; using Volo.Abp.Validation; using Volo.CmsKit.Admin.Blogs; using Volo.CmsKit.Blogs; @@ -49,7 +50,7 @@ public class CreateModel : CmsKitAdminPageModel } [AutoMap(typeof(CreateBlogPostDto), ReverseMap = true)] - public class CreateBlogPostViewModel + public class CreateBlogPostViewModel : ExtensibleObject { [Required] [DynamicFormIgnore] diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml index fc7987cc5b..78a274660b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml @@ -1,6 +1,12 @@ @page "{Id}" @using System.Globalization +@using Microsoft.AspNetCore.Mvc.TagHelpers +@using Microsoft.Extensions.Localization +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Button +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Card +@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form +@using Volo.Abp.AspNetCore.Mvc.UI.Bundling.TagHelpers @using Volo.Abp.AspNetCore.Mvc.UI.Packages.TuiEditor @using Volo.CmsKit.Blogs @using Volo.CmsKit.Admin.Web.Pages @@ -10,6 +16,10 @@ @using Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags.Components.TagEditor @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Uppy @using Volo.Abp.AspNetCore.Mvc.UI.Packages.Slugify +@using Volo.Abp.Data +@using Volo.Abp.Localization +@using Volo.Abp.ObjectExtending +@inject IStringLocalizerFactory StringLocalizerFactory @inherits CmsKitAdminPageBase @@ -62,14 +72,15 @@
- +
- +