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 232ff579fa..7a5277cf7b 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 @@ -10,7 +10,6 @@ using Volo.CmsKit.Comments; using Volo.CmsKit.Features; using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.Permissions; -using Volo.CmsKit.Settings; using Volo.CmsKit.Users; namespace Volo.CmsKit.Admin.Comments; diff --git a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml index 8675499749..413cd4241c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml @@ -13,7 +13,7 @@ @model IndexModel @{ - PageLayout.Content.Title = L["Comments"].Value; + PageLayout.Content.Title = L["CommentsAwaitingApproval"].Value; PageLayout.Content.BreadCrumb.Add(L["Menu:CMS"].Value); PageLayout.Content.MenuItemName = CmsKitAdminMenus.Comments.CommentsMenu; } 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 0f2d3cc3b9..23a84dee34 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 @@ -55,43 +55,26 @@ title: l("Actions"), targets: 0, orderable: false, - rowAction: { - items: [ - { - text: function (data) { - return l('Approve'); - }, - action: function (data) { - var newApprovalStatus = true; - - commentsService - .updateApprovalStatus(data.record.id, {IsApproved: newApprovalStatus}) - .then(function () { - _dataTable.ajax.reloadEx(); - var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); - abp.notify.success(message); - }) - } - }, - { - text: function (data) { - return l('Disapproved'); - }, - action: function (data) { - var newApprovalStatus = false; - - commentsService - .updateApprovalStatus(data.record.id, {IsApproved: newApprovalStatus}) - .then(function () { - _dataTable.ajax.reloadEx(); - var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); - abp.notify.success(message); - }) - } + visible: abp.auth.isGranted('CmsKit.Comments.Update'), + render: function (data, type, row) { + let approveButton = $(``); + let rejectButton = $(``); + let buttons = []; + buttons.push(approveButton); + buttons.push(rejectButton); + + let result = `
`; + + buttons.forEach(x => { + if(x.data("status") !== data) { + result += x.get(0).outerHTML; } - ] + } ); + + result += `
`; + return result; } - }, + }, { width: "10%", title: l("Username"), @@ -152,11 +135,30 @@ $(inputSelector).val(value); - _dataTable.ajax.reloadEx(); + _dataTable.ajax.reload(); }); filterForm.submit(function (e) { e.preventDefault(); - _dataTable.ajax.reloadEx(); + _dataTable.ajax.reload(); + }); + + _dataTable.on('draw.dt', function () { + var changeStatusButton = $(".change-status"); + changeStatusButton.click(function () { + $(this).html(""); + $(this).prop("disabled", true); + + let id = $(this).data("id"); + let isApproved = $(this).data("status"); + + commentsService + .updateApprovalStatus(id, {IsApproved: isApproved}) + .then(function (data) { + var message = isApproved ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully'); + abp.notify.success(message); + _dataTable.ajax.reload(); + }) + }); }); }); 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 58923ca618..58c7d5f5f5 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 @@ -73,7 +73,7 @@ $(function () { { text: l('Details'), action: function (data) { - location.href = 'Comments/' + data.record.id; + location.href = data.record.id; } }, { @@ -131,7 +131,7 @@ $(function () { }) }, visible: function (data) { - return commentRequireApprovement; + return commentRequireApprovement && data.isApproved == null; } } ] @@ -205,7 +205,6 @@ $(function () { width: "5%", title: l("ApproveState"), orderable: false, - data: "isApproved", render: function (data, type, row) { var icons = '' @@ -249,10 +248,14 @@ $(function () { if (count > 0) { var alertMessage = l("CommentAlertMessage", count); var alertElement = '' + alertMessage + ' ' + ' '; - $('#CommentsWaitingAlert').html(alertElement); - $('#CommentsWaitingAlert').click(function () { + + var commentAlert = $('#CommentsWaitingAlert'); + + commentAlert.html(alertElement); + commentAlert.click(function () { window.location.href = '/Cms/Comments/Approve' }); + commentAlert.css('cursor', 'pointer'); } else { $('#CommentsWaitingAlert').hide() } diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitSettingDefinitionProvider.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitSettingDefinitionProvider.cs new file mode 100644 index 0000000000..29f6272a9d --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitSettingDefinitionProvider.cs @@ -0,0 +1,11 @@ +using Volo.Abp.Settings; + +namespace Volo.CmsKit; + +public class CmsKitSettingDefinitionProvider : SettingDefinitionProvider +{ + public override void Define(ISettingDefinitionContext context) + { + context.Add(new SettingDefinition(CmsKitSettings.Comments.RequireApprovement, "false", null, null, true)); + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitSettings.cs b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitSettings.cs new file mode 100644 index 0000000000..6d2cc4e098 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitSettings.cs @@ -0,0 +1,12 @@ +namespace Volo.CmsKit; + +public static class CmsKitSettings +{ + private const string GroupName = "CmsKit"; + + public static class Comments + { + private const string Default = GroupName + ".Comments"; + public const string RequireApprovement = Default + ".RequireApprovement"; + } +} 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 3542886757..d45c3c207a 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 @@ -243,6 +243,9 @@ "Approve":"Approve", "Disapproved":"Disapproved", "CommentAlertMessage":"There are {0} comments waiting for approval", - "Settings:Menu:CmsKit":"CMS" + "Settings:Menu:CmsKit":"CMS", + "CommentsAwaitingApproval":"Comments Awaiting Approval", + "CommentSubmitted": "Your comment has been submitted.", + "CommentSubmittedForApproval": "Your comment has been submitted for approval." } } \ 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 e50e3a0e3d..dd73a9218a 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 @@ -1,4 +1,4 @@ -using Volo.Abp.Settings; +using Volo.Abp.Settings; namespace Volo.CmsKit.Settings; @@ -6,6 +6,8 @@ public class CmsKitSettingDefinitionProvider : SettingDefinitionProvider { public override void Define(ISettingDefinitionContext context) { - context.Add(new SettingDefinition(CmsKitSettings.Comments.RequireApprovement, "false")); + /* Define module settings here. + * Use names from CmsKitSettings class. + */ } -} +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettings.cs b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettings.cs index 78f1eb8b38..e3d5116ea5 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettings.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettings.cs @@ -1,12 +1,10 @@ -namespace Volo.CmsKit.Settings; +namespace Volo.CmsKit.Settings; public static class CmsKitSettings { - private const string GroupName = "CmsKit"; - - public static class Comments - { - private const string Default = GroupName + ".Comments"; - public const string RequireApprovement = Default + ".RequireApprovement"; - } -} + public const string GroupName = "CmsKit"; + + /* Add constants for setting names. Example: + * public const string MySettingName = GroupName + ".MySettingName"; + */ +} \ No newline at end of file diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs index 5e4f9a8347..d0937eb04c 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs @@ -18,7 +18,6 @@ using Volo.CmsKit.Comments; using Volo.CmsKit.Features; using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.Permissions; -using Volo.CmsKit.Settings; using Volo.CmsKit.Users; namespace Volo.CmsKit.Public.Comments; diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js index 0d4616fe51..23aa85a661 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js @@ -178,6 +178,9 @@ }), success: function () { widgetManager.refresh($widget); + if (abp.setting.getBoolean("CmsKit.Comments.RequireApprovement")) { + abp.message.success(l("CommentSubmittedForApproval"), l("CommentSubmitted")); + } abp.ui.clearBusy(); }, error: function (data) {