From ffe8f0da8aa5288f3dba7be19741c986e84057aa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Enis=20Necipo=C4=9Flu?= Date: Wed, 9 Jun 2021 14:42:00 +0300 Subject: [PATCH] CmsKit - Implement Page selection at MenuItem --- .../CmsKit/Admin/Menus/MenuItemCreateInput.cs | 1 - .../CmsKit/Admin/Menus/MenuItemUpdateInput.cs | 1 - .../Admin/Pages/IPageAdminAppService.cs | 2 + .../Volo/CmsKit/Admin/Pages/PageLookupDto.cs | 12 +++++ ...CmsKitAdminApplicationAutoMapperProfile.cs | 1 + .../CmsKit/Admin/Menus/MenuAdminAppService.cs | 9 +++- .../CmsKit/Admin/Pages/PageAdminAppService.cs | 17 ++++++ .../CmsKit/Admin/Pages/PageAdminController.cs | 8 +++ .../CmsKit/Menus/MenuItems/CreateModal.cshtml | 29 +++++++++-- .../Menus/MenuItems/CreateModal.cshtml.cs | 6 +-- .../Pages/CmsKit/Menus/MenuItems/Index.cshtml | 2 + .../CmsKit/Menus/MenuItems/UpdateModal.cshtml | 26 ++++++++-- .../Menus/MenuItems/UpdateModal.cshtml.cs | 3 +- .../CmsKit/Menus/MenuItems/createModal.js | 52 +++++++++++++++++++ .../Pages/CmsKit/Menus/MenuItems/index.js | 4 +- .../CmsKit/Menus/MenuItems/updateModal.js | 52 +++++++++++++++++++ .../CmsKit/Localization/Resources/en.json | 4 ++ .../CmsKit/Localization/Resources/tr.json | 4 ++ .../Volo/CmsKit/Menus/PageChangedHandler.cs | 26 ++++++++++ 19 files changed, 242 insertions(+), 17 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageLookupDto.cs create mode 100644 modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/createModal.js create mode 100644 modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/updateModal.js create mode 100644 modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Menus/PageChangedHandler.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemCreateInput.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemCreateInput.cs index 6890819fa5..690bb366e7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemCreateInput.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemCreateInput.cs @@ -14,7 +14,6 @@ namespace Volo.CmsKit.Admin.Menus public bool IsActive { get; set; } - [Required] public string Url { get; set; } public string Icon { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemUpdateInput.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemUpdateInput.cs index 1010d84dcc..864d7fc129 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemUpdateInput.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Menus/MenuItemUpdateInput.cs @@ -10,7 +10,6 @@ namespace Volo.CmsKit.Admin.Menus public bool IsActive { get; set; } - [Required] public string Url { get; set; } public string Icon { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/IPageAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/IPageAdminAppService.cs index 6ac96bbbfa..861a0cc1a0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/IPageAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/IPageAdminAppService.cs @@ -1,5 +1,6 @@ using System; using System.Threading.Tasks; +using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; using Volo.Abp.Content; @@ -7,5 +8,6 @@ namespace Volo.CmsKit.Admin.Pages { public interface IPageAdminAppService : ICrudAppService { + Task> GetLookupAsync(GetPagesInputDto input); } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageLookupDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageLookupDto.cs new file mode 100644 index 0000000000..3b1f458a1e --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Pages/PageLookupDto.cs @@ -0,0 +1,12 @@ +using System; +using Volo.Abp.Application.Dtos; + +namespace Volo.CmsKit.Admin.Pages +{ + public class PageLookupDto : EntityDto + { + public string Title { get; set; } + + public string Slug { get; set; } + } +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs index 5a998f58b5..44de42e0ed 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs @@ -27,6 +27,7 @@ namespace Volo.CmsKit.Admin .Ignore(x => x.Author); CreateMap(); + CreateMap(); CreateMap(MemberList.Destination); CreateMap() diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Menus/MenuAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Menus/MenuAdminAppService.cs index 243004f541..8833d9973e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Menus/MenuAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Menus/MenuAdminAppService.cs @@ -2,7 +2,6 @@ using System; using System.Collections.Generic; using System.Linq; -using System.Runtime.InteropServices.ComTypes; using System.Text; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; @@ -103,7 +102,7 @@ namespace Volo.CmsKit.Admin.Menus GuidGenerator.Create(), menuId, input.DisplayName, - input.Url, + input.Url.IsNullOrEmpty() ? "#" : input.Url, input.IsActive, input.ParentId, input.Icon, @@ -113,6 +112,12 @@ namespace Volo.CmsKit.Admin.Menus input.CssClass, input.RequiredPermissionName); + if (input.PageId.HasValue) + { + var page = await PageRepository.GetAsync(input.PageId.Value); + MenuManager.SetPageUrl(menuItem, page); + } + menu.Items.Add(menuItem); MenuManager.OrganizeTreeOrderForMenuItem(menu, menuItem); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs index e8c203e39d..a37e489a58 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Pages/PageAdminAppService.cs @@ -82,5 +82,22 @@ namespace Volo.CmsKit.Admin.Pages { await PageRepository.DeleteAsync(id); } + + public virtual async Task> GetLookupAsync(GetPagesInputDto input) + { + var count = await PageRepository.GetCountAsync(input.Filter); + + var pages = await PageRepository.GetListAsync( + input.Filter, + input.MaxResultCount, + input.SkipCount, + input.Sorting + ); + + return new PagedResultDto( + count, + ObjectMapper.Map, List>(pages) + ); + } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs index 3b11c3f850..5b46ebc17a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Pages/PageAdminController.cs @@ -59,5 +59,13 @@ namespace Volo.CmsKit.Admin.Pages { return PageAdminAppService.DeleteAsync(id); } + + [HttpGet] + [Route("lookup")] + [AllowAnonymous] // TODO: Find a way to get lookup + public virtual Task> GetLookupAsync(GetPagesInputDto input) + { + return PageAdminAppService.GetLookupAsync(input); + } } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml index c43f3ec439..87a6c10d76 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml @@ -12,12 +12,35 @@ Layout = null; } - +
- + +
+ + + + + +
+ + + +
+ + + + + + + + + + + +
- \ No newline at end of file +
\ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml.cs index a5cb4517f0..bdc54e3701 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/CreateModal.cshtml.cs @@ -6,6 +6,7 @@ using System.ComponentModel.DataAnnotations; using System.Linq; using System.Text; using System.Threading.Tasks; +using Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.TagHelpers.Form; using Volo.CmsKit.Admin.Menus; namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems @@ -53,10 +54,9 @@ namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems public string DisplayName { get; set; } public bool IsActive { get; set; } - - [Required] + public string Url { get; set; } - + public Guid? PageId { get; set; } public string Icon { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/Index.cshtml index bf48f82cb0..1cee7a6be3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/Index.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/Index.cshtml @@ -28,6 +28,8 @@ + + } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml index f2c3d4fcba..aadbc88851 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml @@ -12,14 +12,34 @@ Layout = null; } - +
- + +
+ + + + + +
+ + + +
+ + + + + + + + +
- \ No newline at end of file +
\ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml.cs index 72866da230..b7661e2582 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/UpdateModal.cshtml.cs @@ -52,8 +52,7 @@ namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Menus.MenuItems public string DisplayName { get; set; } public bool IsActive { get; set; } - - [Required] + public string Url { get; set; } public string Icon { get; set; } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/createModal.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/createModal.js new file mode 100644 index 0000000000..6f74dbf0d6 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/createModal.js @@ -0,0 +1,52 @@ +var abp = abp || {}; +$(function () { + abp.modals.createMenuItem = function () { + + var initModal = function (publicApi, args) { + + var $pageId = $('#ViewModel_PageId'); + var $url = $('#ViewModel_Url'); + var $displayName = $('#ViewModel_DisplayName'); + var $pageIdClearButton = $('#page-id-clear-button'); + + initSelectPageId(); + + $pageIdClearButton.hide(); + + $pageId.on('change', function (params) { + $url.prop('disabled', $pageId.val()); + + if ($pageId.val()) + { + $pageIdClearButton.show(); + if (!$displayName.val()){ + $displayName.val($pageId.text()); + } + } + else + { + $pageIdClearButton.hide(); + } + }) + + $pageIdClearButton.click(function (){ + $pageId.val(''); + $pageId.trigger('change'); + }) + + function initSelectPageId() { + $pageId.data('autocompleteApiUrl', '/api/cms-kit-admin/pages/lookup'); + $pageId.data('autocompleteDisplayProperty', 'title'); + $pageId.data('autocompleteValueProperty', 'id'); + $pageId.data('autocompleteItemsProperty', 'items'); + $pageId.data('autocompleteFilterParamName', 'filter'); + + abp.dom.initializers.initializeAutocompleteSelects($pageId); + } + }; + + return { + initModal: initModal + }; + }; +}); \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/index.js index fe5beaedd9..732db91404 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/index.js @@ -6,8 +6,8 @@ $(function () { var menuService = volo.cmsKit.admin.menus.menuAdmin; - var createModal = new abp.ModalManager(abp.appPath + 'CmsKit/Menus/MenuItems/CreateModal'); - var updateModal = new abp.ModalManager(abp.appPath + 'CmsKit/Menus/MenuItems/UpdateModal'); + var createModal = new abp.ModalManager({ viewUrl: abp.appPath + 'CmsKit/Menus/MenuItems/CreateModal', modalClass: 'createMenuItem' }); + var updateModal = new abp.ModalManager({ viewUrl: abp.appPath + 'CmsKit/Menus/MenuItems/UpdateModal', modalClass: 'updateMenuItem'}); var menuTree = { diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/updateModal.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/updateModal.js new file mode 100644 index 0000000000..b5c4c1da1c --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Menus/MenuItems/updateModal.js @@ -0,0 +1,52 @@ +var abp = abp || {}; +$(function () { + abp.modals.updateMenuItem = function () { + + var initModal = function (publicApi, args) { + + var $pageId = $('#ViewModel_PageId'); + var $url = $('#ViewModel_Url'); + var $displayName = $('#ViewModel_DisplayName'); + var $pageIdClearButton = $('#page-id-clear-button'); + + initSelectPageId(); + + $pageId.on('change', function (params) { + $url.prop('disabled', $pageId.val()); + + if ($pageId.val()) + { + $pageIdClearButton.show(); + if (!$displayName.val()){ + $displayName.val($pageId.text()); + } + } + else + { + $pageIdClearButton.hide(); + } + }) + + $pageId.trigger('change'); + + $pageIdClearButton.click(function (){ + $pageId.val(''); + $pageId.trigger('change'); + }); + + function initSelectPageId() { + $pageId.data('autocompleteApiUrl', '/api/cms-kit-admin/pages/lookup'); + $pageId.data('autocompleteDisplayProperty', 'title'); + $pageId.data('autocompleteValueProperty', 'id'); + $pageId.data('autocompleteItemsProperty', 'items'); + $pageId.data('autocompleteFilterParamName', 'filter'); + + abp.dom.initializers.initializeAutocompleteSelects($pageId); + } + }; + + return { + initModal: initModal + }; + }; +}); \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json index 52d6cb5d48..b6553f678e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json @@ -38,6 +38,7 @@ "Delete": "Delete", "Detail": "Detail", "Details": "Details", + "DisplayName": "Display Name", "DoYouPreferAdditionalEmails": "Do you prefer additional emails?", "Edit": "Edit", "EndDate": "End Date", @@ -46,6 +47,7 @@ "ExportCSV": "Export CSV", "Features": "Features", "GenericDeletionConfirmationMessage": "Are you sure to delete '{0}'?", + "IsActive" : "Active", "LastModification": "Last Modification", "LastModificationTime": "Last Modification Time", "LoginToAddComment": "Login to add comment", @@ -69,6 +71,7 @@ "NoMenuItems": "There is no menu item yet!", "OK": "OK", "PageDeletionConfirmationMessage": "Are you sure to delete this page?", + "PageId": "Page", "Pages": "Pages", "PageSlugInformation": "Slug is used on url. Your url will be '/pages/{{slug}}'.", "Permission:BlogManagement": "Blog Management", @@ -115,6 +118,7 @@ "RatingUndoMessage": "Your rating will be undo.", "Reactions": "Reactions", "Read": "Read", + "RequiredPermissionName": "Required permission name", "RepliesToThisComment": "Replies to this comment", "Reply": "Reply", "ReplyTo": "Reply to", diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json index 94b5456b8e..e418132f26 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/tr.json @@ -37,6 +37,7 @@ "DeleteSubscriptionSubject": "E-posta adresiniz silinmiştir.", "Detail": "Detay", "Details": "Detaylar", + "DisplayName": "İsim", "DoYouPreferAdditionalEmails": "Ek e-postaları tercih ediyor musunuz?", "Edit": "Düzenle", "EndDate": "Bitiş Tarihi", @@ -45,6 +46,7 @@ "ExportCSV": "CSV olarak dışa aktar", "Features": "Özellikler", "GenericDeletionConfirmationMessage": "'{0}' kaydını silmek istediğinize emin misiniz?", + "IsActive" : "Aktif", "LastModification": "Son Güncellenme", "LastModificationTime": "Son Güncelleme Zamanı", "LoginToAddComment": "Yorum yapmak için giriş yap", @@ -69,6 +71,7 @@ "NoMenuItems": "Herhangi bir menü elemanı bulunmuyor.", "OK": "Tamam", "PageDeletionConfirmationMessage": "Bu sayfayı silmek istediğinize emin misiniz?", + "PageId": "Sayfa", "PageSlugInformation": "Etiket URL'de kullanılır. Url şöyle görünür: '/pages/{{slug}}'.", "Permission:BlogManagement": "Blog Yönetimi", "Permission:BlogManagement.Create": "Oluşturma", @@ -105,6 +108,7 @@ "RatingUndoMessage": "Oylamanız geri alınacak.", "Reactions": "Reaksiyonlar", "Read": "Oku", + "RequiredPermissionName": "Gerekli yetki adı", "RepliesToThisComment": "Bu yoruma yapılan yorumlar", "Reply": "Cevapla", "ReplyTo": "Cevap", diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Menus/PageChangedHandler.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Menus/PageChangedHandler.cs new file mode 100644 index 0000000000..1ea62f0656 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Menus/PageChangedHandler.cs @@ -0,0 +1,26 @@ +using System; +using System.Threading.Tasks; +using Volo.Abp.DependencyInjection; +using Volo.Abp.Domain.Entities.Events; +using Volo.Abp.EventBus; +using Volo.CmsKit.Pages; + +namespace Volo.CmsKit.Menus +{ + public class PageChangedHandler: ILocalEventHandler>, + ITransientDependency + { + protected IMenuRepository MenuRepository { get; } + + public PageChangedHandler(IMenuRepository menuRepository) + { + MenuRepository = menuRepository; + } + + public Task HandleEventAsync(EntityCreatedEventData eventData) + { + // TODO: Find a way to get affected MenuItems. + throw new NotImplementedException(); + } + } +} \ No newline at end of file