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 index e55c98b5a2..09e631ee62 100644 --- 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 @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; namespace Volo.CmsKit.Admin.Contents; @@ -6,4 +7,5 @@ namespace Volo.CmsKit.Admin.Contents; public class ContentWidgetDto { public string Key { get; set; } + public List Properties { get; set; } = new(); } 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 index 5a96b71c61..fb9243e96d 100644 --- 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 @@ -17,14 +17,19 @@ public class ContentAdminAppService : CmsKitAdminAppServiceBase, IContentAdminAp public Task> GetWidgetsAsync() { - var aa = _options.WidgetConfigs.ToList(); + //TODO remove + if (!_options.WidgetConfigs.Any()) + { + _options.AddWidget("Poll", "CmsPollByCode"); + } return Task.FromResult(new ListResultDto() { Items = _options.WidgetConfigs .Select(n => new ContentWidgetDto { - Key = n.Key + Key = n.Key, + Properties = n.Value.Properties }).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 654fd89b1a..83cb016c5c 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 @@ -17,13 +17,23 @@ } + -
+
- +
+ @foreach (var item in Model.ViewModel.Properties.FirstOrDefault(p=>p.Key == "Poll").Properties) + { +
+ + +
+ } +
+ 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 c6f13aa85a..4d2ac7a459 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,4 +1,5 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using Microsoft.AspNetCore.Mvc; @@ -26,8 +27,14 @@ public class AddWidgetModal : AbpPageModel public async Task OnGetAsync() { + ViewModel = new ContentViewModel(); + + var widgets = await ContentAdminAppService.GetWidgetsAsync(); + ViewModel.Properties = widgets.Items.ToArray(); + + Widgets = new List() { new("", "") }; - Widgets.AddRange((await ContentAdminAppService.GetWidgetsAsync()) + Widgets.AddRange(widgets .Items .Select(w => new SelectListItem(w.Key, w.Key)) .ToList()); @@ -37,5 +44,8 @@ public class AddWidgetModal : AbpPageModel { [SelectItems(nameof(Widgets))] public string Widget { get; set; } + + public ContentWidgetDto[] Properties { get; set; } = Array.Empty(); + } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/addWidgetModal.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/addWidgetModal.js index 54a1c8b869..ee2659d598 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/addWidgetModal.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Contents/addWidgetModal.js @@ -3,11 +3,32 @@ $(function () { abp.modals.addWidgetModal = function () { var initModal = function () { + + $('#PropertySideId').hide(); + + $("#ViewModel_Widget").change(function () { + $('#PropertySideId').show(); + }); + $("#save-changes").click(function () { - var updatedText = $("#textId").val(); + var keys = []; + var values = []; + $(".properties").each(function () { + if (($.trim($(this).val()).length > 0)) { + keys.push(this.id); + values.push($(this).val()); + } + }); var contentEditorText = $("#ContentEditor")[0].innerText.split("\n")[2]; + var updatedText = "[Widget "; + + for (var i = 0; i < keys.length; i++) { + updatedText += keys[i] + "=\"" + values[i] + "\" "; + } + + updatedText += "]"; $('.ProseMirror div').contents()[0].data = contentEditorText + updatedText; $('#addWidgetModal').modal('hide'); diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Contents/ContentWidgetConfig.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Contents/ContentWidgetConfig.cs index a5eab5930a..1b4591628c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Contents/ContentWidgetConfig.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Application/Volo/CmsKit/Contents/ContentWidgetConfig.cs @@ -1,8 +1,12 @@ -namespace Volo.CmsKit.Contents; +using System.Collections.Generic; + +namespace Volo.CmsKit.Contents; public class ContentWidgetConfig { public string Name { get; } + //TODO remove - just for example + public List Properties { get; } = new() { "Type", "Code" }; public ContentWidgetConfig(string widgetName) {