mirror of https://github.com/abpframework/abp.git
committed by
GitHub
73 changed files with 1032 additions and 117 deletions
@ -1,11 +1,84 @@ |
|||
using Volo.Abp.Modularity; |
|||
using Volo.Abp.ObjectExtending; |
|||
using Volo.Abp.ObjectExtending.Modularity; |
|||
using Volo.Abp.Threading; |
|||
using Volo.CmsKit.Admin.Blogs; |
|||
using Volo.CmsKit.Admin.Comments; |
|||
using Volo.CmsKit.Admin.GlobalResources; |
|||
using Volo.CmsKit.Admin.MediaDescriptors; |
|||
using Volo.CmsKit.Admin.Menus; |
|||
using Volo.CmsKit.Admin.Pages; |
|||
using Volo.CmsKit.Admin.Tags; |
|||
|
|||
namespace Volo.CmsKit.Admin; |
|||
|
|||
[DependsOn( |
|||
typeof(CmsKitCommonApplicationContractsModule) |
|||
)] |
|||
)] |
|||
public class CmsKitAdminApplicationContractsModule : AbpModule |
|||
{ |
|||
private readonly static OneTimeRunner OneTimeRunner = new OneTimeRunner(); |
|||
|
|||
} |
|||
public override void PostConfigureServices(ServiceConfigurationContext context) |
|||
{ |
|||
OneTimeRunner.Run(() => |
|||
{ |
|||
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( |
|||
CmsKitModuleExtensionConsts.ModuleName, |
|||
CmsKitModuleExtensionConsts.EntityNames.Blog, |
|||
getApiTypes: new[] { typeof(BlogDto) }, |
|||
createApiTypes: new[] { typeof(CreateBlogDto) }, |
|||
updateApiTypes: new[] { typeof(UpdateBlogDto) } |
|||
); |
|||
|
|||
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( |
|||
CmsKitModuleExtensionConsts.ModuleName, |
|||
CmsKitModuleExtensionConsts.EntityNames.BlogPost, |
|||
getApiTypes: new[] { typeof(BlogPostDto), typeof(BlogPostListDto) }, |
|||
createApiTypes: new[] { typeof(CreateBlogPostDto) }, |
|||
updateApiTypes: new[] { typeof(UpdateBlogPostDto) } |
|||
); |
|||
|
|||
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( |
|||
CmsKitModuleExtensionConsts.ModuleName, |
|||
CmsKitModuleExtensionConsts.EntityNames.Comment, |
|||
getApiTypes: new[] { typeof(CommentDto), typeof(CommentWithAuthorDto) } |
|||
); |
|||
|
|||
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( |
|||
CmsKitModuleExtensionConsts.ModuleName, |
|||
CmsKitModuleExtensionConsts.EntityNames.GlobalResource, |
|||
getApiTypes: new[] { typeof(GlobalResourcesDto) }, |
|||
updateApiTypes: new[] { typeof(GlobalResourcesUpdateDto) } |
|||
); |
|||
|
|||
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( |
|||
CmsKitModuleExtensionConsts.ModuleName, |
|||
CmsKitModuleExtensionConsts.EntityNames.MediaDescriptor, |
|||
getApiTypes: new[] { typeof(MediaDescriptorDto) } |
|||
); |
|||
|
|||
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( |
|||
CmsKitModuleExtensionConsts.ModuleName, |
|||
CmsKitModuleExtensionConsts.EntityNames.MenuItem, |
|||
createApiTypes: new[] { typeof(MenuCreateInput) , typeof(MenuItemCreateInput)}, |
|||
updateApiTypes: new[] { typeof(MenuUpdateInput) , typeof(MenuItemUpdateInput)} |
|||
); |
|||
|
|||
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( |
|||
CmsKitModuleExtensionConsts.ModuleName, |
|||
CmsKitModuleExtensionConsts.EntityNames.Page, |
|||
getApiTypes: new[] { typeof(PageDto) }, |
|||
createApiTypes: new[] { typeof(CreatePageInputDto) }, |
|||
updateApiTypes: new[] { typeof(UpdatePageInputDto) } |
|||
); |
|||
|
|||
ModuleExtensionConfigurationHelper.ApplyEntityConfigurationToApi( |
|||
CmsKitModuleExtensionConsts.ModuleName, |
|||
CmsKitModuleExtensionConsts.EntityNames.Tag, |
|||
createApiTypes: new[] { typeof(TagCreateDto) }, |
|||
updateApiTypes: new[] { typeof(TagUpdateDto) } |
|||
); |
|||
}); |
|||
} |
|||
} |
|||
@ -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<Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts.CreateModel.CreateBlogPostViewModel, CreateBlogPostDto>().MapExtraProperties(); |
|||
CreateMap<Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts.UpdateModel.UpdateBlogPostViewModel, UpdateBlogPostDto>().MapExtraProperties(); |
|||
CreateMap<BlogPostDto, Volo.CmsKit.Admin.Web.Pages.CmsKit.BlogPosts.UpdateModel.UpdateBlogPostViewModel>().MapExtraProperties(); |
|||
} |
|||
|
|||
protected virtual void CreateBlogMappings() |
|||
{ |
|||
CreateMap<Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs.CreateModalModel.CreateBlogViewModel, CreateBlogDto>().MapExtraProperties(); |
|||
CreateMap<Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs.UpdateModalModel.UpdateBlogViewModel, UpdateBlogDto>().MapExtraProperties(); |
|||
CreateMap<BlogDto, Volo.CmsKit.Admin.Web.Pages.CmsKit.Blogs.UpdateModalModel.UpdateBlogViewModel>().MapExtraProperties(); |
|||
} |
|||
|
|||
protected virtual void CreateMenuMappings() |
|||
{ |
|||
CreateMap<Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems.CreateModalModel.MenuItemCreateViewModel, MenuItemCreateInput>().MapExtraProperties(); |
|||
CreateMap<Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems.UpdateModalModel.MenuItemUpdateViewModel, MenuItemUpdateInput>().MapExtraProperties(); |
|||
CreateMap<MenuItemDto, Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems.UpdateModalModel.MenuItemUpdateViewModel>().MapExtraProperties(); |
|||
} |
|||
|
|||
protected virtual void CreatePageMappings() |
|||
{ |
|||
CreateMap<Volo.CmsKit.Admin.Web.Pages.CmsKit.Pages.CreateModel.CreatePageViewModel, CreatePageInputDto>().MapExtraProperties(); |
|||
CreateMap<Volo.CmsKit.Admin.Web.Pages.CmsKit.Pages.UpdateModel.UpdatePageViewModel, UpdatePageInputDto>().MapExtraProperties(); |
|||
CreateMap<PageDto, Volo.CmsKit.Admin.Web.Pages.CmsKit.Pages.UpdateModel.UpdatePageViewModel>().MapExtraProperties(); |
|||
} |
|||
|
|||
protected virtual void CreateTagMappings() |
|||
{ |
|||
CreateMap<Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags.CreateModalModel.TagCreateViewModel, TagCreateDto>().MapExtraProperties(); |
|||
CreateMap<Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags.EditModalModel.TagEditViewModel, TagUpdateDto>().MapExtraProperties(); |
|||
CreateMap<TagDto, Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags.EditModalModel.TagEditViewModel>().MapExtraProperties(); |
|||
} |
|||
} |
|||
@ -1,24 +1,62 @@ |
|||
@page |
|||
@using Microsoft.AspNetCore.Mvc.Localization |
|||
@using Volo.CmsKit.Admin.Web.Pages |
|||
@using Microsoft.AspNetCore.Mvc.TagHelpers |
|||
@using Microsoft.Extensions.Localization |
|||
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form |
|||
@using Volo.CmsKit.Admin.Web.Pages.CmsKit.Tags |
|||
@using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Modal |
|||
@using Volo.Abp.Data |
|||
@using Volo.Abp.Localization |
|||
@using Volo.Abp.ObjectExtending |
|||
@using Volo.CmsKit.Localization |
|||
|
|||
@inject IHtmlLocalizer<CmsKitResource> L |
|||
@inject IStringLocalizerFactory StringLocalizerFactory |
|||
@model EditModalModel |
|||
|
|||
@{ |
|||
Layout = null; |
|||
} |
|||
|
|||
<abp-dynamic-form abp-model="ViewModel" asp-page="/CmsKit/Tags/EditModal"> |
|||
<form asp-page="/CmsKit/Tags/EditModal"> |
|||
<abp-modal> |
|||
<abp-modal-header title="@L["Edit"].Value"></abp-modal-header> |
|||
<abp-modal-body> |
|||
<abp-input asp-for="Id" /> |
|||
<abp-form-content /> |
|||
<abp-input asp-for="Id"/> |
|||
|
|||
<abp-input asp-for="ViewModel.Name" /> |
|||
|
|||
@foreach (var propertyInfo in ObjectExtensionManager.Instance.GetProperties<EditModalModel.TagEditViewModel>()) |
|||
{ |
|||
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); |
|||
} |
|||
<abp-select asp-for="ViewModel.ExtraProperties[propertyInfo.Name]" |
|||
label="@propertyInfo.GetLocalizedDisplayName(StringLocalizerFactory)" |
|||
autocomplete-api-url="@propertyInfo.Lookup.Url" |
|||
autocomplete-selected-item-name="@Model.ViewModel.GetProperty(propertyInfo.Name+"_Text")" |
|||
autocomplete-selected-item-value="@Model.ViewModel.GetProperty(propertyInfo.Name)" |
|||
autocomplete-filter-param-name="@propertyInfo.Lookup.FilterParamName" |
|||
autocomplete-items-property-name="@propertyInfo.Lookup.ResultListPropertyName" |
|||
autocomplete-display-property-name="@propertyInfo.Lookup.DisplayPropertyName" |
|||
autocomplete-value-property-name="@propertyInfo.Lookup.ValuePropertyName"></abp-select> |
|||
} |
|||
else |
|||
{ |
|||
<abp-input type="@propertyInfo.GetInputType()" |
|||
asp-for="ViewModel.ExtraProperties[propertyInfo.Name]" |
|||
label="@propertyInfo.GetLocalizedDisplayName(StringLocalizerFactory)" |
|||
asp-format="@propertyInfo.GetInputFormatOrNull()" |
|||
value="@propertyInfo.GetInputValueOrNull(Model.ViewModel.GetProperty(propertyInfo.Name))" /> |
|||
} |
|||
} |
|||
} |
|||
</abp-modal-body> |
|||
<abp-modal-footer buttons="@(AbpModalButtons.Cancel|AbpModalButtons.Save)"></abp-modal-footer> |
|||
</abp-modal> |
|||
</abp-dynamic-form> |
|||
</form> |
|||
@ -0,0 +1,97 @@ |
|||
using System; |
|||
using Volo.Abp.ObjectExtending.Modularity; |
|||
|
|||
namespace Volo.Abp.ObjectExtending; |
|||
|
|||
public class CmsKitModuleExtensionConfiguration : ModuleExtensionConfiguration |
|||
{ |
|||
public CmsKitModuleExtensionConfiguration ConfigureBlog( |
|||
Action<EntityExtensionConfiguration> configureAction) |
|||
{ |
|||
return this.ConfigureEntity( |
|||
CmsKitModuleExtensionConsts.EntityNames.Blog, |
|||
configureAction |
|||
); |
|||
} |
|||
|
|||
public CmsKitModuleExtensionConfiguration ConfigureBlogPost( |
|||
Action<EntityExtensionConfiguration> configureAction) |
|||
{ |
|||
return this.ConfigureEntity( |
|||
CmsKitModuleExtensionConsts.EntityNames.BlogPost, |
|||
configureAction |
|||
); |
|||
} |
|||
|
|||
public CmsKitModuleExtensionConfiguration ConfigureBlogFeature( |
|||
Action<EntityExtensionConfiguration> configureAction) |
|||
{ |
|||
return this.ConfigureEntity( |
|||
CmsKitModuleExtensionConsts.EntityNames.BlogFeature, |
|||
configureAction |
|||
); |
|||
} |
|||
|
|||
public CmsKitModuleExtensionConfiguration ConfigureMediaDescriptor( |
|||
Action<EntityExtensionConfiguration> configureAction) |
|||
{ |
|||
return this.ConfigureEntity( |
|||
CmsKitModuleExtensionConsts.EntityNames.MediaDescriptor, |
|||
configureAction |
|||
); |
|||
} |
|||
|
|||
public CmsKitModuleExtensionConfiguration ConfigurePage( |
|||
Action<EntityExtensionConfiguration> configureAction) |
|||
{ |
|||
return this.ConfigureEntity( |
|||
CmsKitModuleExtensionConsts.EntityNames.Page, |
|||
configureAction |
|||
); |
|||
} |
|||
|
|||
public CmsKitModuleExtensionConfiguration ConfigureTag( |
|||
Action<EntityExtensionConfiguration> configureAction) |
|||
{ |
|||
return this.ConfigureEntity( |
|||
CmsKitModuleExtensionConsts.EntityNames.Tag, |
|||
configureAction |
|||
); |
|||
} |
|||
|
|||
public CmsKitModuleExtensionConfiguration ConfigureComment( |
|||
Action<EntityExtensionConfiguration> configureAction) |
|||
{ |
|||
return this.ConfigureEntity( |
|||
CmsKitModuleExtensionConsts.EntityNames.Comment, |
|||
configureAction |
|||
); |
|||
} |
|||
|
|||
public CmsKitModuleExtensionConfiguration ConfigureMenuItem( |
|||
Action<EntityExtensionConfiguration> configureAction) |
|||
{ |
|||
return this.ConfigureEntity( |
|||
CmsKitModuleExtensionConsts.EntityNames.MenuItem, |
|||
configureAction |
|||
); |
|||
} |
|||
|
|||
public CmsKitModuleExtensionConfiguration ConfigureCmsUser( |
|||
Action<EntityExtensionConfiguration> configureAction) |
|||
{ |
|||
return this.ConfigureEntity( |
|||
CmsKitModuleExtensionConsts.EntityNames.CmsUser, |
|||
configureAction |
|||
); |
|||
} |
|||
|
|||
public CmsKitModuleExtensionConfiguration ConfigureGlobalResource( |
|||
Action<EntityExtensionConfiguration> configureAction) |
|||
{ |
|||
return this.ConfigureEntity( |
|||
CmsKitModuleExtensionConsts.EntityNames.GlobalResource, |
|||
configureAction |
|||
); |
|||
} |
|||
} |
|||
@ -0,0 +1,17 @@ |
|||
using System; |
|||
using Volo.Abp.ObjectExtending.Modularity; |
|||
|
|||
namespace Volo.Abp.ObjectExtending; |
|||
|
|||
public static class CmsKitModuleExtensionConfigurationDictionaryExtensions |
|||
{ |
|||
public static ModuleExtensionConfigurationDictionary ConfigureCmsKit( |
|||
this ModuleExtensionConfigurationDictionary modules, |
|||
Action<CmsKitModuleExtensionConfiguration> configureAction) |
|||
{ |
|||
return modules.ConfigureModule( |
|||
CmsKitModuleExtensionConsts.ModuleName, |
|||
configureAction |
|||
); |
|||
} |
|||
} |
|||
@ -0,0 +1,29 @@ |
|||
namespace Volo.Abp.ObjectExtending; |
|||
|
|||
public static class CmsKitModuleExtensionConsts |
|||
{ |
|||
public const string ModuleName = "CmsKit"; |
|||
|
|||
public static class EntityNames |
|||
{ |
|||
public const string Blog = "Blog"; |
|||
|
|||
public const string BlogPost = "BlogPost"; |
|||
|
|||
public const string BlogFeature = "BlogFeature"; |
|||
|
|||
public const string MediaDescriptor = "MediaDescriptor"; |
|||
|
|||
public const string Page = "Page"; |
|||
|
|||
public const string Tag = "Tag"; |
|||
|
|||
public const string Comment = "Comment"; |
|||
|
|||
public const string MenuItem = "MenuItem"; |
|||
|
|||
public const string CmsUser = "CmsUser"; |
|||
|
|||
public const string GlobalResource = "GlobalResource"; |
|||
} |
|||
} |
|||
Loading…
Reference in new issue