diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentWidgetDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentWidgetDto.cs new file mode 100644 index 0000000000..e55c98b5a2 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/ContentWidgetDto.cs @@ -0,0 +1,9 @@ +using System; + +namespace Volo.CmsKit.Admin.Contents; + +[Serializable] +public class ContentWidgetDto +{ + public string Key { get; set; } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs new file mode 100644 index 0000000000..28a1e7d992 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Contents/IContentAdminAppService.cs @@ -0,0 +1,9 @@ +using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; +using Volo.Abp.Application.Services; + +namespace Volo.CmsKit.Admin.Contents; +public interface IContentAdminAppService : IApplicationService +{ + Task> GetWidgetsAsync(); +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs new file mode 100644 index 0000000000..5a96b71c61 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Contents/ContentAdminAppService.cs @@ -0,0 +1,32 @@ +using System.Linq; +using System.Threading.Tasks; +using Microsoft.Extensions.Options; +using Volo.Abp.Application.Dtos; +using Volo.CmsKit.Contents; + +namespace Volo.CmsKit.Admin.Contents; + +public class ContentAdminAppService : CmsKitAdminAppServiceBase, IContentAdminAppService +{ + private readonly CmsKitContentWidgetOptions _options; + + public ContentAdminAppService(IOptions options) + { + _options = options.Value; + } + + public Task> GetWidgetsAsync() + { + var aa = _options.WidgetConfigs.ToList(); + return Task.FromResult(new ListResultDto() + { + Items = _options.WidgetConfigs + .Select(n => + new ContentWidgetDto + { + Key = n.Key + + }).ToList() + }); + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/AddWidgetModal.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/AddWidgetModal.cshtml index 00ec2f251d..654fd89b1a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/AddWidgetModal.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/AddWidgetModal.cshtml @@ -20,9 +20,9 @@ -
- Text - +
+ +
diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/AddWidgetModal.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/AddWidgetModal.cshtml.cs index 8c2f25a2ad..c6f13aa85a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/AddWidgetModal.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/AddWidgetModal.cshtml.cs @@ -1,30 +1,41 @@ -using System; +using System.Collections.Generic; +using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.Rendering; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; using Volo.Abp.AspNetCore.Mvc.UI.RazorPages; +using Volo.CmsKit.Admin.Contents; namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Contents; public class AddWidgetModal : AbpPageModel { - [BindProperty(SupportsGet = true)] - public Guid Id { get; set; } + protected IContentAdminAppService ContentAdminAppService { get; } - [BindProperty(SupportsGet = true)] - public string Text { get; set; } + [BindProperty] + public ContentViewModel ViewModel { get; set; } - public AddWidgetModal() + public List Widgets { get; set; } = new(); + + public AddWidgetModal(IContentAdminAppService contentAdminAppService) { + ContentAdminAppService = contentAdminAppService; } public async Task OnGetAsync() { - + Widgets = new List() { new("", "") }; + Widgets.AddRange((await ContentAdminAppService.GetWidgetsAsync()) + .Items + .Select(w => new SelectListItem(w.Key, w.Key)) + .ToList()); } - public async Task OnPostAsync() + public class ContentViewModel { - + [SelectItems(nameof(Widgets))] + public string Widget { get; set; } } }