diff --git a/Directory.Packages.props b/Directory.Packages.props index 39c98ea5de..394366fe64 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -167,6 +167,8 @@ + + diff --git a/modules/cms-kit/.gitignore b/modules/cms-kit/.gitignore index e7ff758dd5..a770f90444 100644 --- a/modules/cms-kit/.gitignore +++ b/modules/cms-kit/.gitignore @@ -257,4 +257,5 @@ host/Volo.CmsKit.HttpApi.Host/Logs/logs.txt host/Volo.CmsKit.Web.Host/Logs/logs.txt host/Volo.CmsKit.Web.Unified/Logs/logs.txt -**/wwwroot/libs/** \ No newline at end of file + +**/wwwroot/libs/** 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 5c95eaf0e8..7ded0f91d0 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 @@ -1,4 +1,4 @@ - + @@ -11,6 +11,8 @@ + + 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 973a74b58e..7ce810a17f 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 @@ -20,9 +20,11 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp { protected ICommentRepository CommentRepository { get; } - public CommentAdminAppService(ICommentRepository commentRepository) + private readonly ISettingManager SettingManager; + public CommentAdminAppService(ICommentRepository commentRepository, ISettingManager settingManager) { CommentRepository = commentRepository; + SettingManager = settingManager; } public virtual async Task> GetListAsync(CommentGetListInput input) @@ -74,4 +76,34 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp var comment = await CommentRepository.GetAsync(id); await CommentRepository.DeleteWithRepliesAsync(comment); } + + [Authorize(CmsKitAdminPermissions.Comments.Update)] + public async Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input) + { + var comment = await CommentRepository.GetAsync(id); + comment.SetApprovalStatus(input.IsApproved); + + await CommentRepository.UpdateAsync(comment); + } + + [Authorize(CmsKitAdminPermissions.Comments.Update)] + public async Task SetSettingsAsync(CommentSettingsDto input) + { + await SettingManager.SetGlobalAsync(AppSettings.CommentRequireApprovement, input.CommentRequireApprovement.ToString()); + } + + public async Task GetSettingsAsync() + { + var isRequireApprovementEnabled = bool.Parse(await SettingManager.GetOrNullGlobalAsync(AppSettings.CommentRequireApprovement)); + + return new CommentSettingsDto + { + CommentRequireApprovement = isRequireApprovementEnabled + }; + } + + public async Task GetWaitingCountAsync() + { + return (int) await CommentRepository.GetCountAsync(commentApproveState: CommentApproveState.Waiting); + } } 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 d769d4fcb8..179294c34f 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 @@ -55,6 +55,18 @@ + + + @L["CommentFilter:ApproveState"].Value + + @L["CommentFilter:All"].Value + @L["CommentFilter:Approved"].Value + @L["CommentFilter:Disapproved"].Value + @L["CommentFilter:Waiting"].Value + + + + diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml.cs b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml.cs index 4502669669..36c03d4385 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml.cs @@ -11,4 +11,6 @@ public class IndexModel : CmsKitAdminPageModel public DateTime? CreationStartDate { get; set; } public DateTime? CreationEndDate { get; set; } + + public CommentApproveState CommentApproveState { get; set; } } 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 67b21f4f81..f86576a671 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 @@ -19,6 +19,7 @@ +