Browse Source

Refactor 3

pull/19919/head
Berkan Sasmaz 2 years ago
parent
commit
981db0c1be
  1. 2
      Directory.Packages.props
  2. 5
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs
  3. 5
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs
  4. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/ICommentAdminAppService.cs
  5. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs
  6. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs
  7. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj
  8. 94
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs
  9. 24
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs
  10. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs
  11. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs
  12. 13
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js
  13. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml
  14. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml
  15. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js
  16. 12
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js
  17. 10
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingPageContributor.cs
  18. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingScriptBundleContributor.cs
  19. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingViewComponent.cs
  20. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/Index.cshtml
  21. 10
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/index.js
  22. 11
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj
  23. 7
      modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs
  24. 2
      modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj
  25. 1
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj
  26. 4
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs
  27. 8
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/Comment.cs
  28. 58
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs
  29. 7
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettingDefinitionProvider.cs
  30. 11
      modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs
  31. 8
      modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj

2
Directory.Packages.props

@ -167,8 +167,6 @@
<PackageVersion Include="System.IdentityModel.Tokens.Jwt" Version="7.5.1" />
<PackageVersion Include="TimeZoneConverter" Version="6.1.0" />
<PackageVersion Include="Unidecode.NET" Version="2.1.0" />
<PackageVersion Include="Volo.Abp.SettingManagement.Domain" Version="8.1.3" />
<PackageVersion Include="Volo.Abp.SettingManagement.Web" Version="8.1.3" />
<PackageVersion Include="xunit" Version="2.6.1" />
<PackageVersion Include="xunit.extensibility.execution" Version="2.6.1" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.5.3" />

5
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; }
}

5
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; }
}

4
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<CommentSettingsDto> GetSettingsAsync();
Task<int> GetWaitingCountAsync();
Task<int> GetWaitingCountAsync();
}

2
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));

1
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

2
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj

@ -11,8 +11,6 @@
<ItemGroup>
<ProjectReference Include="..\Volo.CmsKit.Admin.Application.Contracts\Volo.CmsKit.Admin.Application.Contracts.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Common.Application\Volo.CmsKit.Common.Application.csproj" />
<ProjectReference Include="..\..\..\..\modules\setting-management\src\Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.csproj" />
</ItemGroup>
<ItemGroup>

94
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<PagedResultDto<CommentWithAuthorDto>> 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<Comment, CommentWithAuthorDto>(queryResultItem.Comment);
dto.Author = ObjectMapper.Map<CmsUser, CmsUserDto>(queryResultItem.Author);
return dto;
}).ToList();
return new PagedResultDto<CommentWithAuthorDto>(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<Comment, CommentWithAuthorDto>(queryResultItem.Comment);
dto.Author = ObjectMapper.Map<CmsUser, CmsUserDto>(queryResultItem.Author);
return dto;
}).ToList();
return new PagedResultDto<CommentWithAuthorDto>(totalCount, dtos);
}
public virtual async Task<CommentWithAuthorDto> 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<CommentSettingsDto> 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<int> GetWaitingCountAsync()
{
return (int) await CommentRepository.GetCountAsync(commentApproveState: CommentApproveState.Waiting);
return (int)await CommentRepository.GetCountAsync(commentApproveState: CommentApproveState.Waiting);
}
}

24
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<CommentSettingsDto> GetSettingsAsync()
{
return CommentAdminAppService.GetSettingsAsync();
}
[HttpGet]
[Route("waiting-count")]
[Authorize(CmsKitAdminPermissions.Comments.Default)]
[HttpGet]
[Route("waiting-count")]
public Task<int> GetWaitingCountAsync()
{
return CommentAdminAppService.GetWaitingCountAsync();
}
{
return CommentAdminAppService.GetWaitingCountAsync();
}
}

3
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<AbpPageToolbarOptions>(options =>
@ -187,7 +186,6 @@ public class CmsKitAdminWebModule : AbpModule
requiredPolicyName: CmsKitAdminPermissions.Menus.Update
);
});
});
Configure<DynamicJavaScriptProxyOptions>(options =>
@ -204,7 +202,6 @@ public class CmsKitAdminWebModule : AbpModule
{
options.Contributors.Add(new CommentSettingPageContributor());
});
}
public override void PostConfigureServices(ServiceConfigurationContext context)

4
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; }
}

13
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);
});
}

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml

@ -95,7 +95,7 @@
<abp-input asp-for="@Model.Author" label="@L["Username"].Value" type="text"/>
</abp-column>
<abp-column size-lg="_2" size-md="_12">
<div class="mb-3" id="isApprovedColumn">
<div class="mb-3" id="isApprovedColumn"> // TODO: Use standard id naming convention. For example: IsApprovedSelectInput
<label class="mb-1" for="isApprovedSelect">@L["CommentFilter:ApproveState"].Value</label>
<select id="isApprovedSelect" asp-for="@Model.CommentApproveState" class="form-control">
<option value="@CommentApproveState.All">@L["CommentFilter:All"].Value</option>

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml

@ -32,7 +32,7 @@
</abp-script-bundle>
}
<abp-alert id="commentsAlert" alert-type="Warning" style="display: none;">
<abp-alert id="commentsAlert" alert-type="Warning" style="display: none;"> // TODO: Use standard id naming convention. For example: IsApprovedSelectInput
</abp-alert>
<abp-card class="mb-4">

4
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);
});
}

12
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);

10
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<IStringLocalizer<CmsKitResource>>();
@ -24,9 +25,10 @@ public class CommentSettingPageContributor : ISettingPageContributor
return Task.CompletedTask;
}
public Task<bool> CheckPermissionsAsync(SettingPageCreationContext context)
public async Task<bool> CheckPermissionsAsync(SettingPageCreationContext context)
{
// Add permission
return Task.FromResult(true);
var authorizationService = context.ServiceProvider.GetRequiredService<IAuthorizationService>();
return await authorizationService.IsGrantedAsync(CmsKitAdminPermissions.Comments.SettingManagement);
}
}

2
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");
}
}

3
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()

8
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 {
<abp-script-bundle>
<abp-script src="/client-proxies/cms-kit-admin-proxy.js" />
<abp-script src="/client-proxies/cms-kit-common-proxy.js" />
<abp-script src="/client-proxies/cms-kit-admin-proxy.js" /> // TODO: Remove this line and then check
<abp-script src="/client-proxies/cms-kit-common-proxy.js" /> // TODO: Remove this line and then check
<abp-script src="/Pages/CmsKit/Shared/Components/Comments/index.js"></abp-script>
</abp-script-bundle>
}

10
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);
})
};

11
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj

@ -15,8 +15,6 @@
<ItemGroup>
<ProjectReference Include="..\Volo.CmsKit.Common.Web\Volo.CmsKit.Common.Web.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Admin.Application.Contracts\Volo.CmsKit.Admin.Application.Contracts.csproj" />
<ProjectReference Include="..\..\..\..\modules\setting-management\src\Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj" />
</ItemGroup>
<ItemGroup>
@ -26,21 +24,20 @@
<ItemGroup>
<EmbeddedResource Include="Pages\**\*.css" />
<EmbeddedResource Include="Pages\**\*.js" />
<EmbeddedResource Include="Components\**\*.js" />
<EmbeddedResource Include="Components\**\*.css" />
<EmbeddedResource Include="wwwroot\**\*.js" />
<EmbeddedResource Include="wwwroot\**\*.css" />
<Content Remove="Pages\**\*.css" />
<Content Remove="Pages\**\*.js" />
<Content Remove="Components\**\*.js" />
<Content Remove="Components\**\*.css" />
<Content Remove="wwwroot\**\*.js" />
<Content Remove="wwwroot\**\*.css" />
</ItemGroup>
<ItemGroup>
<None Remove="Pages\CmsKit\Comments\Approve\index.js" />
</ItemGroup>
<ItemGroup>
<_ContentIncludedByDefault Remove="Pages\Admin\Index.cshtml" />
<_ContentIncludedByDefault Remove="Pages\Admin\_ViewImports.cshtml" />
</ItemGroup>
</Project>

7
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);
});
}
}

2
modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj

@ -16,7 +16,7 @@
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared\Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.AutoMapper\Volo.Abp.AutoMapper.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Common.Application.Contracts\Volo.CmsKit.Common.Application.Contracts.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Domain\Volo.CmsKit.Domain.csproj" />
<ProjectReference Include="..\..\..\..\modules\setting-management\src\Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj" />
</ItemGroup>
<ItemGroup>

1
modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj

@ -18,6 +18,7 @@
<ProjectReference Include="..\Volo.CmsKit.Domain.Shared\Volo.CmsKit.Domain.Shared.csproj" />
<ProjectReference Include="..\..\..\..\modules\users\src\Volo.Abp.Users.Domain\Volo.Abp.Users.Domain.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.BlobStoring\Volo.Abp.BlobStoring.csproj" />
<ProjectReference Include="..\..\..\..\modules\setting-management\src\Volo.Abp.SettingManagement.Domain/Volo.Abp.SettingManagement.Domain.csproj" />
</ItemGroup>
</Project>

4
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
{

8
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/Comment.cs

@ -27,7 +27,7 @@ public class Comment : AggregateRoot<Guid>, 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<Guid>, IHasCreationTime, IMustHaveCreator,
{
Text = Check.NotNullOrWhiteSpace(text, nameof(text), CommentConsts.MaxTextLength);
}
public virtual Comment SetApprovalStatus([NotNull] bool isApproved)
{
IsApproved = isApproved;
return this;
}
}

58
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs

@ -9,44 +9,44 @@ namespace Volo.CmsKit.Comments;
public interface ICommentRepository : IBasicRepository<Comment, Guid>
{
Task<CommentWithAuthorQueryResultItem> GetWithAuthorAsync(Guid id, CancellationToken cancellationToken = default);
Task<CommentWithAuthorQueryResultItem> GetWithAuthorAsync(Guid id, CancellationToken cancellationToken = default);
Task<List<CommentWithAuthorQueryResultItem>> 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<List<CommentWithAuthorQueryResultItem>> 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<long> GetCountAsync(
Task<long> 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<List<CommentWithAuthorQueryResultItem>> GetListWithAuthorsAsync(
[NotNull] string entityType,
[NotNull] string entityId,
Task<List<CommentWithAuthorQueryResultItem>> 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<bool> ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default);
}
Task<bool> ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default);
}

7
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
);
}
}

11
modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs

@ -89,7 +89,6 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
DateTime? creationEndDate = null,
CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default
)
{
var token = GetCancellationToken(cancellationToken);
@ -125,13 +124,9 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
Author = user
};
query = commentApproveState switch
{
CommentApproveState.Approved => 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));
}

8
modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj

@ -9,15 +9,7 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Volo.CmsKit.Admin.Application.Contracts\Volo.CmsKit.Admin.Application.Contracts.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Common.Application\Volo.CmsKit.Common.Application.csproj" />
<ProjectReference Include="..\Volo.CmsKit.Public.Application.Contracts\Volo.CmsKit.Public.Application.Contracts.csproj" />
</ItemGroup>
<ItemGroup>
<Reference Include="Volo.Abp.SettingManagement.Domain">
<HintPath>..\..\..\setting-management\src\Volo.Abp.SettingManagement.Domain\obj\Debug\net8.0\ref\Volo.Abp.SettingManagement.Domain.dll</HintPath>
</Reference>
</ItemGroup>
</Project>

Loading…
Cancel
Save