diff --git a/Directory.Packages.props b/Directory.Packages.props index 394366fe64..39c98ea5de 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -167,8 +167,6 @@ - - diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs index 9dfc34211d..44e0c47ef8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs @@ -1,4 +1,4 @@ -using System; +using System; using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.Comments; @@ -20,6 +20,5 @@ public class CommentDto : ExtensibleObject public DateTime CreationTime { get; set; } - public bool? IsApproved { get; set; } - + public bool? IsApproved { get; set; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs index 4b47c6d153..71cb884cb2 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs @@ -1,4 +1,4 @@ -using System; +using System; using Volo.Abp.ObjectExtending; namespace Volo.CmsKit.Admin.Comments; @@ -24,6 +24,5 @@ public class CommentWithAuthorDto : ExtensibleObject public string Url { get; set; } - public bool? IsApproved { get; set; } - + public bool? IsApproved { get; set; } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/ICommentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/ICommentAdminAppService.cs index f714d1bcad..18c5c1a1ba 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/ICommentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/ICommentAdminAppService.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Threading.Tasks; using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Services; @@ -19,5 +19,5 @@ public interface ICommentAdminAppService : IApplicationService Task GetSettingsAsync(); - Task GetWaitingCountAsync(); + Task GetWaitingCountAsync(); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs index 51554a1deb..93f9f740df 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs @@ -19,6 +19,8 @@ public class CmsKitAdminPermissionDefinitionProvider : PermissionDefinitionProvi .RequireGlobalFeatures(typeof(CommentsFeature)); contentGroup.AddChild(CmsKitAdminPermissions.Comments.Update, L("Permission:Comments.Update")) .RequireGlobalFeatures(typeof(CommentsFeature)); + contentGroup.AddChild(CmsKitAdminPermissions.Comments.SettingManagement, L("Permission:Comments.SettingManagement")) + .RequireGlobalFeatures(typeof(CommentsFeature)); var tagGroup = cmsGroup.AddPermission(CmsKitAdminPermissions.Tags.Default, L("Permission:TagManagement")) .RequireGlobalFeatures(typeof(TagsFeature)); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs index f06d2ada9b..0cb2ad884e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs @@ -9,6 +9,7 @@ public static class CmsKitAdminPermissions public const string Default = GroupName + ".Comments"; public const string Delete = Default + ".Delete"; public const string Update = Default + ".Update"; + public const string SettingManagement = Default + ".SettingManagement"; } public static class Tags diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj index 1be5ee95ea..ef9bb92ab3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj @@ -11,8 +11,6 @@ - - diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs index 561c9eb625..966d4fa002 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs @@ -22,8 +22,11 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp { protected ICommentRepository CommentRepository { get; } - private readonly ISettingManager SettingManager; - public CommentAdminAppService(ICommentRepository commentRepository, ISettingManager settingManager) + protected ISettingManager SettingManager { get; } + + public CommentAdminAppService( + ICommentRepository commentRepository, + ISettingManager settingManager) { CommentRepository = commentRepository; SettingManager = settingManager; @@ -31,39 +34,39 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp public virtual async Task> GetListAsync(CommentGetListInput input) { - var totalCount = await CommentRepository.GetCountAsync( - input.Text, - input.EntityType, - input.RepliedCommentId, - input.Author, - input.CreationStartDate, - input.CreationEndDate, - input.CommentApproveState - ); - - - var comments = await CommentRepository.GetListAsync( - input.Text, - input.EntityType, - input.RepliedCommentId, - input.Author, - input.CreationStartDate, - input.CreationEndDate, - input.Sorting, - input.MaxResultCount, - input.SkipCount, - input.CommentApproveState - ); - - var dtos = comments.Select(queryResultItem => - { - var dto = ObjectMapper.Map(queryResultItem.Comment); - dto.Author = ObjectMapper.Map(queryResultItem.Author); - - return dto; - }).ToList(); - - return new PagedResultDto(totalCount, dtos); + var totalCount = await CommentRepository.GetCountAsync( + input.Text, + input.EntityType, + input.RepliedCommentId, + input.Author, + input.CreationStartDate, + input.CreationEndDate, + input.CommentApproveState + ); + + + var comments = await CommentRepository.GetListAsync( + input.Text, + input.EntityType, + input.RepliedCommentId, + input.Author, + input.CreationStartDate, + input.CreationEndDate, + input.Sorting, + input.MaxResultCount, + input.SkipCount, + input.CommentApproveState + ); + + var dtos = comments.Select(queryResultItem => + { + var dto = ObjectMapper.Map(queryResultItem.Comment); + dto.Author = ObjectMapper.Map(queryResultItem.Author); + + return dto; + }).ToList(); + + return new PagedResultDto(totalCount, dtos); } public virtual async Task GetAsync(Guid id) @@ -86,30 +89,31 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp [Authorize(CmsKitAdminPermissions.Comments.Update)] public async Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input) { - var comment = await CommentRepository.GetAsync(id); - comment.SetApprovalStatus(input.IsApproved); + var comment = await CommentRepository.GetAsync(id); + comment.SetApprovalStatus(input.IsApproved); - await CommentRepository.UpdateAsync(comment); + await CommentRepository.UpdateAsync(comment); } - [Authorize(CmsKitAdminPermissions.Comments.Update)] + [Authorize(CmsKitAdminPermissions.Comments.SettingManagement)] public async Task SetSettingsAsync(CommentSettingsDto input) { await SettingManager.SetGlobalAsync(AppSettings.CommentRequireApprovement, input.CommentRequireApprovement.ToString()); } + [Authorize(CmsKitAdminPermissions.Comments.SettingManagement)] public async Task GetSettingsAsync() { - var isRequireApprovementEnabled = bool.Parse(await SettingManager.GetOrNullGlobalAsync(AppSettings.CommentRequireApprovement)); - + var isRequireApprovementEnabled = bool.Parse(await SettingManager.GetOrNullGlobalAsync(AppSettings.CommentRequireApprovement)); + return new CommentSettingsDto - { - CommentRequireApprovement = isRequireApprovementEnabled - }; + { + CommentRequireApprovement = isRequireApprovementEnabled + }; } public async Task GetWaitingCountAsync() { - return (int) await CommentRepository.GetCountAsync(commentApproveState: CommentApproveState.Waiting); + return (int)await CommentRepository.GetCountAsync(commentApproveState: CommentApproveState.Waiting); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs index 04ba3f505b..8a154bd0b6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs @@ -22,7 +22,6 @@ public class CommentAdminController : CmsKitAdminController, ICommentAdminAppSer { protected ICommentAdminAppService CommentAdminAppService { get; } - public CommentAdminController(ICommentAdminAppService commentAdminAppService) { CommentAdminAppService = commentAdminAppService; @@ -49,17 +48,17 @@ public class CommentAdminController : CmsKitAdminController, ICommentAdminAppSer return CommentAdminAppService.DeleteAsync(id); } - [HttpPut] - [Route("{id}/approval-status")] + [HttpPut] + [Route("{id}/approval-status")] [Authorize(CmsKitAdminPermissions.Comments.Update)] public Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input) { - return CommentAdminAppService.UpdateApprovalStatusAsync(id, input); - } + return CommentAdminAppService.UpdateApprovalStatusAsync(id, input); + } [HttpPost] [Route("settings")] - [Authorize(CmsKitAdminPermissions.Comments.Update)] + [Authorize(CmsKitAdminPermissions.Comments.SettingManagement)] public Task SetSettingsAsync(CommentSettingsDto input) { return CommentAdminAppService.SetSettingsAsync(input); @@ -67,17 +66,16 @@ public class CommentAdminController : CmsKitAdminController, ICommentAdminAppSer [HttpGet] [Route("settings")] - [Authorize(CmsKitAdminPermissions.Comments.Default)] + [Authorize(CmsKitAdminPermissions.Comments.SettingManagement)] public Task GetSettingsAsync() { return CommentAdminAppService.GetSettingsAsync(); } - [HttpGet] - [Route("waiting-count")] - [Authorize(CmsKitAdminPermissions.Comments.Default)] + [HttpGet] + [Route("waiting-count")] public Task GetWaitingCountAsync() - { - return CommentAdminAppService.GetWaitingCountAsync(); - } + { + return CommentAdminAppService.GetWaitingCountAsync(); + } } 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 1032c340b5..0a21521835 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs @@ -123,7 +123,6 @@ public class CmsKitAdminWebModule : AbpModule options.Conventions.AddPageRoute("/CmsKit/Menus/MenuItems/Index", "/Cms/Menus/Items"); options.Conventions.AddPageRoute("/CmsKit/GlobalResources/Index", "/Cms/GlobalResources"); options.Conventions.AddPageRoute("/CmsKit/Comments/Approve/Index", "/Cms/Comments/Approve"); - }); Configure(options => @@ -187,7 +186,6 @@ public class CmsKitAdminWebModule : AbpModule requiredPolicyName: CmsKitAdminPermissions.Menus.Update ); }); - }); Configure(options => @@ -204,7 +202,6 @@ public class CmsKitAdminWebModule : AbpModule { options.Contributors.Add(new CommentSettingPageContributor()); }); - } public override void PostConfigureServices(ServiceConfigurationContext context) diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs index b129f16e8b..54693bbe7b 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs @@ -1,10 +1,7 @@ using System; -using Microsoft.AspNetCore.Mvc; -using Microsoft.AspNetCore.Mvc.RazorPages; namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments.Approve; - public class IndexModel : CmsKitAdminPageModel { public string EntityType { get; set; } @@ -16,5 +13,4 @@ public class IndexModel : CmsKitAdminPageModel public DateTime? CreationEndDate { get; set; } public string IsApproved { get; set; } - } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js index 86965227d1..80fc523490 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js @@ -1,11 +1,8 @@ $(function () { - var l = abp.localization.getResource("CmsKit"); var commentsService = volo.cmsKit.admin.comments.commentAdmin; - var detailsModal = new abp.ModalManager(abp.appPath + "CmsKit/Comments/DetailsModal"); - moment()._locale.preparse = (string) => string; moment()._locale.postformat = (string) => string; @@ -17,7 +14,6 @@ return momentDate.isValid() ? momentDate.toISOString() : null; }; - $('.singledatepicker').daterangepicker({ "singleDatePicker": true, "showDropdowns": true, @@ -27,14 +23,12 @@ "drops": "auto" }); - $('.singledatepicker').attr('autocomplete', 'off'); $('.singledatepicker').on('apply.daterangepicker', function (ev, picker) { $(this).val(picker.startDate.format('l')); }); - var filterForm = $('#CmsKitCommentsFilterForm'); var getFilter = function () { @@ -47,7 +41,6 @@ return filterObj; }; - var _dataTable = $('#CommentsTable').DataTable(abp.libs.datatables.normalizeConfiguration({ processing: true, serverSide: true, @@ -78,8 +71,8 @@ var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); abp.notify.success(message); }) - .catch(function (error) { - abp.notify.error(error.message); + .catch(function (error) { // TODO: Is it necessary in ABP Framework? + abp.notify.error(error.message); }); } }, @@ -97,7 +90,7 @@ var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); abp.notify.success(message); }) - .catch(function (error) { + .catch(function (error) { // TODO: Is it necessary in ABP Framework? abp.notify.error(error.message); }); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml index 3fe93fc527..8f544afa65 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml @@ -95,7 +95,7 @@ - + // TODO: Use standard id naming convention. For example: IsApprovedSelectInput @L["CommentFilter:ApproveState"].Value @L["CommentFilter:All"].Value diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml index b9aeb4f19a..9035783666 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml @@ -32,7 +32,7 @@ } - + // TODO: Use standard id naming convention. For example: IsApprovedSelectInput diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js index 8da63877c6..de7eaa0a3c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js @@ -93,7 +93,7 @@ $(function (){ var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); abp.notify.success(message); }) - .catch(function (error) { + .catch(function (error) { // TODO: Is it necessary in ABP Framework? abp.notify.error(error.message); }); } @@ -114,7 +114,7 @@ $(function (){ var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); abp.notify.success(message); }) - .catch(function (error) { + .catch(function (error) { // TODO: Is it necessary in ABP Framework? abp.notify.error(error.message); }); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js index d56a354bf9..76b37481a8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js @@ -3,8 +3,6 @@ $(function () { var commentsService = volo.cmsKit.admin.comments.commentAdmin; - var detailsModal = new abp.ModalManager(abp.appPath + "CmsKit/Comments/DetailsModal"); - moment()._locale.preparse = (string) => string; moment()._locale.postformat = (string) => string; @@ -16,7 +14,6 @@ $(function () { return momentDate.isValid() ? momentDate.toISOString() : null; }; - $('.singledatepicker').daterangepicker({ "singleDatePicker": true, "showDropdowns": true, @@ -26,15 +23,12 @@ $(function () { "drops": "auto" }); - - $('.singledatepicker').attr('autocomplete', 'off'); $('.singledatepicker').on('apply.daterangepicker', function (ev, picker) { $(this).val(picker.startDate.format('l')); }); - var filterForm = $('#CmsKitCommentsFilterForm'); var getFilter = function () { @@ -100,7 +94,7 @@ $(function () { var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); abp.notify.success(message); }) - .catch(function (error) { + .catch(function (error) { // TODO: Is it necessary in ABP Framework? abp.notify.error(error.message); }); } @@ -122,7 +116,7 @@ $(function () { var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); abp.notify.success(message); }) - .catch(function (error) { + .catch(function (error) { // TODO: Is it necessary in ABP Framework? abp.notify.error(error.message); }); } @@ -237,7 +231,7 @@ $(function () { _dataTable.ajax.reloadEx(); }); - function checkWaitingComments() { + function checkWaitingComments() { // TODO: Rename this function. CheckWaitingComments is not a good name for this function. commentsService.getWaitingCount().then(function (count) { if (count > 0) { var alertMessage = l("CommentAlertMessage", count); diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingPageContributor.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingPageContributor.cs index 160360d69a..fda6999709 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingPageContributor.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingPageContributor.cs @@ -1,14 +1,15 @@ using System.Threading.Tasks; +using Microsoft.AspNetCore.Authorization; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Localization; using Volo.Abp.SettingManagement.Web.Pages.SettingManagement; using Volo.CmsKit.Localization; +using Volo.CmsKit.Permissions; namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Shared.Components.Comments; public class CommentSettingPageContributor : ISettingPageContributor { - public Task ConfigureAsync(SettingPageCreationContext context) { var l = context.ServiceProvider.GetRequiredService>(); @@ -24,9 +25,10 @@ public class CommentSettingPageContributor : ISettingPageContributor return Task.CompletedTask; } - public Task CheckPermissionsAsync(SettingPageCreationContext context) + public async Task CheckPermissionsAsync(SettingPageCreationContext context) { - // Add permission - return Task.FromResult(true); + var authorizationService = context.ServiceProvider.GetRequiredService(); + + return await authorizationService.IsGrantedAsync(CmsKitAdminPermissions.Comments.SettingManagement); } } \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingScriptBundleContributor.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingScriptBundleContributor.cs index 8b48eb799d..aca2ace0b3 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingScriptBundleContributor.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingScriptBundleContributor.cs @@ -7,7 +7,7 @@ public class CommentSettingScriptBundleContributor : BundleContributor { public override void ConfigureBundle(BundleConfigurationContext context) { - context.Files.AddIfNotContains("/client-proxies/cms-kit-admin-proxy.js"); + context.Files.AddIfNotContains("/client-proxies/cms-kit-admin-proxy.js"); // TODO: is it necessary? context.Files.AddIfNotContains("/Pages/CmsKit/Shared/Components/Comments/index.js"); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingViewComponent.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingViewComponent.cs index 5c5e6ede9c..952fb4f10a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingViewComponent.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingViewComponent.cs @@ -3,11 +3,12 @@ using Volo.Abp.AspNetCore.Mvc.UI.Widgets; using Volo.Abp.AspNetCore.Mvc; namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Shared.Components.Comments; -[ViewComponent(Name = "CmsCommentSetting")] + [Widget( ScriptTypes = new[] { typeof(CommentSettingScriptBundleContributor) }, AutoInitialize = true )] +[ViewComponent(Name = "CmsCommentSetting")] public class CommentSettingViewComponent : AbpViewComponent { public virtual IViewComponentResult Invoke() diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/Index.cshtml index 0b15ebbb9e..7d0240d326 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/Index.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/Index.cshtml @@ -1,14 +1,10 @@ @using Microsoft.AspNetCore.Mvc.Localization @using Volo.CmsKit.Localization -@* - For more information on enabling MVC for empty projects, visit https://go.microsoft.com/fwlink/?LinkID=397860 - -*@ @section scripts { - - + // TODO: Remove this line and then check + // TODO: Remove this line and then check } diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/index.js b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/index.js index bf9b99b67f..0c509a016a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/index.js +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/index.js @@ -1,16 +1,16 @@ - -var l = abp.localization.getResource("CmsKit"); +var l = abp.localization.getResource("CmsKit"); (function () { abp.widgets.CmsCommentSetting = function ($wrapper) { - - var _service = volo.cmsKit.admin.comments.commentAdmin; + var _service = volo.cmsKit.admin.comments.commentAdmin + ; var _init = function () { _getSettings(); _bindEvents(); }; var _getSettings = function () { _service.getSettings().then(function (response) { - $('#checkbox').prop('checked', response.commentRequireApprovement); + // TODO: Rename checkbox id to something more meaningful. + $('#checkbox').prop('checked', response.commentRequireApprovement); // TODO: use $wrapper.find('#checkbox').prop('checked', response.commentRequireApprovement); }) }; diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj index bf58b8f1aa..a6c0d9cb0a 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj @@ -15,8 +15,6 @@ - - @@ -26,21 +24,20 @@ + + + + - - - - <_ContentIncludedByDefault Remove="Pages\Admin\Index.cshtml" /> <_ContentIncludedByDefault Remove="Pages\Admin\_ViewImports.cshtml" /> - diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs index b27a4c88e8..5f27f785f8 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs @@ -7,15 +7,15 @@ using Volo.CmsKit.Reactions; using Volo.CmsKit.Web.Icons; using Markdig; using Microsoft.Extensions.DependencyInjection; -using Volo.Abp.Settings; -using Volo.CmsKit.Settings; +using Volo.Abp.SettingManagement.Web; namespace Volo.CmsKit.Web; [DependsOn( typeof(AbpAspNetCoreMvcUiThemeSharedModule), typeof(CmsKitCommonApplicationContractsModule), - typeof(AbpAutoMapperModule) + typeof(AbpAutoMapperModule), + typeof(AbpSettingManagementWebModule) )] public class CmsKitCommonWebModule : AbpModule { @@ -54,7 +54,6 @@ public class CmsKitCommonWebModule : AbpModule { options.DisableModule(CmsKitCommonRemoteServiceConsts.ModuleName); }); - } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj index 28bfbce1cc..9b8de76772 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj @@ -16,7 +16,7 @@ - + diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj index cc8cfb53b5..d54c87c4f9 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj @@ -18,6 +18,7 @@ + diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs index 13055db98a..e3824063e6 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs @@ -5,6 +5,7 @@ using Volo.Abp.Localization; using Volo.Abp.Modularity; using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending.Modularity; +using Volo.Abp.SettingManagement; using Volo.Abp.Threading; using Volo.Abp.Users; using Volo.CmsKit.Blogs; @@ -25,7 +26,8 @@ namespace Volo.CmsKit; typeof(CmsKitDomainSharedModule), typeof(AbpUsersDomainModule), typeof(AbpDddDomainModule), - typeof(AbpBlobStoringModule) + typeof(AbpBlobStoringModule), + typeof(AbpSettingManagementDomainModule) )] public class CmsKitDomainModule : AbpModule { diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/Comment.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/Comment.cs index 9d88a68c85..943350170e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/Comment.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/Comment.cs @@ -27,7 +27,7 @@ public class Comment : AggregateRoot, IHasCreationTime, IMustHaveCreator, public virtual string IdempotencyToken { get; set; } - public virtual bool? IsApproved { get; private set; } + public virtual bool? IsApproved { get; set; } protected Comment() { @@ -64,10 +64,4 @@ public class Comment : AggregateRoot, IHasCreationTime, IMustHaveCreator, { Text = Check.NotNullOrWhiteSpace(text, nameof(text), CommentConsts.MaxTextLength); } - - public virtual Comment SetApprovalStatus([NotNull] bool isApproved) - { - IsApproved = isApproved; - return this; - } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs index 4ded829588..2bba78505e 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs @@ -9,44 +9,44 @@ namespace Volo.CmsKit.Comments; public interface ICommentRepository : IBasicRepository { - Task GetWithAuthorAsync(Guid id, CancellationToken cancellationToken = default); + Task GetWithAuthorAsync(Guid id, CancellationToken cancellationToken = default); - Task> GetListAsync( - string filter = null, - string entityType = null, - Guid? repliedCommentId = null, - string authorUsername = null, - DateTime? creationStartDate = null, - DateTime? creationEndDate = null, - string sorting = null, - int maxResultCount = int.MaxValue, - int skipCount = 0, + Task> GetListAsync( + string filter = null, + string entityType = null, + Guid? repliedCommentId = null, + string authorUsername = null, + DateTime? creationStartDate = null, + DateTime? creationEndDate = null, + string sorting = null, + int maxResultCount = int.MaxValue, + int skipCount = 0, CommentApproveState commentApproveState = CommentApproveState.All, CancellationToken cancellationToken = default - ); + ); - Task GetCountAsync( + Task GetCountAsync( string text = null, - string entityType = null, - Guid? repliedCommentId = null, - string authorUsername = null, - DateTime? creationStartDate = null, - DateTime? creationEndDate = null, + string entityType = null, + Guid? repliedCommentId = null, + string authorUsername = null, + DateTime? creationStartDate = null, + DateTime? creationEndDate = null, CommentApproveState commentApproveState = CommentApproveState.All, CancellationToken cancellationToken = default - ); + ); - Task> GetListWithAuthorsAsync( - [NotNull] string entityType, - [NotNull] string entityId, + Task> GetListWithAuthorsAsync( + [NotNull] string entityType, + [NotNull] string entityId, CommentApproveState commentApproveState = CommentApproveState.All, CancellationToken cancellationToken = default - ); + ); - Task DeleteWithRepliesAsync( - Comment comment, - CancellationToken cancellationToken = default - ); + Task DeleteWithRepliesAsync( + Comment comment, + CancellationToken cancellationToken = default + ); - Task ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default); -} + Task ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default); +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettingDefinitionProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettingDefinitionProvider.cs index ae64e51a36..614ccc64d7 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettingDefinitionProvider.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettingDefinitionProvider.cs @@ -6,11 +6,8 @@ public class CmsKitSettingDefinitionProvider : SettingDefinitionProvider { public override void Define(ISettingDefinitionContext context) { - /* Define module settings here. - * Use names from CmsKitSettings class. - */ context.Add( - new SettingDefinition(AppSettings.CommentRequireApprovement, "true") - ) ; + new SettingDefinition(AppSettings.CommentRequireApprovement, "true") // Check the default value + ); } } diff --git a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs index 28a69b7173..41cba8ca75 100644 --- a/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs +++ b/modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs @@ -89,7 +89,6 @@ public class EfCoreCommentRepository : EfCoreRepository query.Where(c => c.Comment.IsApproved == true), - CommentApproveState.Approved | CommentApproveState.Waiting => query.Where(c => c.Comment.IsApproved == true || c.Comment.IsApproved == null), - _ => query - }; - + query.WhereIf(commentApproveState == CommentApproveState.Approved, c => c.Comment.IsApproved == true); + query.WhereIf(commentApproveState == (CommentApproveState.Approved | CommentApproveState.Waiting), c => c.Comment.IsApproved == true || c.Comment.IsApproved == null); + return await query.ToListAsync(GetCancellationToken(cancellationToken)); } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj index fa1cb5ce9c..d1625e8c7c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj @@ -9,15 +9,7 @@ - - - - - ..\..\..\setting-management\src\Volo.Abp.SettingManagement.Domain\obj\Debug\net8.0\ref\Volo.Abp.SettingManagement.Domain.dll - - -