Browse Source

Merge branch 'dev' of https://github.com/abpframework/abp into dev

pull/20092/head
Ebicoglu 2 years ago
parent
commit
134eddfc94
  1. 4
      abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json
  2. 6
      docs/en/Modules/Cms-Kit/Comments.md
  3. 4
      docs/en/docs-nav.json
  4. BIN
      docs/en/images/cmskit-module-comments-settings.png
  5. 14
      framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs
  6. 169
      framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs
  7. 16
      framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisExtensions.cs
  8. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/UpdateCommand.cs
  9. 9
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs
  10. 13
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFileStep.cs
  11. 5
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs
  12. 4
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs
  13. 4
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs
  14. 11
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs
  15. 2
      framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs
  16. 6
      modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json
  17. 276
      modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock
  18. 4
      modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json
  19. 280
      modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock
  20. 1
      modules/blogging/app/Volo.BloggingTestApp/Program.cs
  21. 4
      modules/blogging/app/Volo.BloggingTestApp/package.json
  22. 318
      modules/blogging/app/Volo.BloggingTestApp/yarn.lock
  23. 2
      modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/en.json
  24. 2
      modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/tr.json
  25. 45
      modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Members/Index.cshtml
  26. 2
      modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json
  27. 258
      modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock
  28. 10
      modules/cms-kit/angular/package.json
  29. 4
      modules/cms-kit/angular/projects/cms-kit/package.json
  30. 2
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json
  31. 258
      modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock
  32. 2
      modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json
  33. 258
      modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock
  34. 4
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json
  35. 392
      modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock
  36. 11
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentApprovalDto.cs
  37. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentDto.cs
  38. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentGetListInput.cs
  39. 9
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentSettingsDto.cs
  40. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentWithAuthorDto.cs
  41. 8
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/ICommentAdminAppService.cs
  42. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs
  43. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs
  44. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo.CmsKit.Admin.Application.csproj
  45. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs
  46. 45
      modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs
  47. 22
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/ClientProxies/Volo/CmsKit/Admin/Comments/CommentAdminClientProxy.Generated.cs
  48. 171
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/ClientProxies/cms-kit-admin-generate-proxy.json
  49. 21
      modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs
  50. 31
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs
  51. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml
  52. 4
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml
  53. 75
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml
  54. 16
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs
  55. 164
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js
  56. 12
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml
  57. 3
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Details.cshtml.cs
  58. 22
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml
  59. 5
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Index.cshtml.cs
  60. 69
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js
  61. 2
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.css
  62. 135
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js
  63. 31
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingPageContributor.cs
  64. 13
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingScriptBundleContributor.cs
  65. 18
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingViewComponent.cs
  66. 36
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/Default.cshtml
  67. 37
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/default.js
  68. 1
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/Volo.CmsKit.Admin.Web.csproj
  69. 377
      modules/cms-kit/src/Volo.CmsKit.Admin.Web/wwwroot/client-proxies/cms-kit-admin-proxy.js
  70. 136
      modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/ClientProxies/cms-kit-common-generate-proxy.json
  71. 4
      modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs
  72. 1
      modules/cms-kit/src/Volo.CmsKit.Common.Web/Volo.CmsKit.Common.Web.csproj
  73. 16
      modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/client-proxies/cms-kit-common-proxy.js
  74. 11
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitSettingDefinitionProvider.cs
  75. 12
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/CmsKitSettings.cs
  76. 12
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Comments/CommentApproveState.cs
  77. 20
      modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json
  78. 1
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo.CmsKit.Domain.csproj
  79. 4
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/CmsKitDomainModule.cs
  80. 20
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/Comment.cs
  81. 51
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/CommentManager.cs
  82. 5
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/ICommentRepository.cs
  83. 4
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettingDefinitionProvider.cs
  84. 4
      modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettings.cs
  85. 25
      modules/cms-kit/src/Volo.CmsKit.EntityFrameworkCore/Volo/CmsKit/Comments/EfCoreCommentRepository.cs
  86. 37
      modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs
  87. 1
      modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo.CmsKit.Public.Application.csproj
  88. 17
      modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs
  89. 1804
      modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/cms-kit-generate-proxy.json
  90. 5
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js
  91. 2
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml
  92. 2
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml
  93. 5
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/blogPost.css
  94. 12
      modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/index.css
  95. 179
      modules/cms-kit/src/Volo.CmsKit.Public.Web/wwwroot/client-proxies/cms-kit-proxy.js
  96. 2
      modules/cms-kit/test/Volo.CmsKit.Application.Tests/Comments/CommentAdminAppService_Tests.cs
  97. 14
      modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/EntityFrameworkCore/CmsKitEntityFrameworkCoreTestModule.cs
  98. 1
      modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj
  99. 4
      modules/docs/app/VoloDocs.Web/package.json
  100. 318
      modules/docs/app/VoloDocs.Web/yarn.lock

4
abp_io/AbpIoLocalization/AbpIoLocalization/Www/Localization/Resources/zh-Hans.json

@ -158,7 +158,7 @@
"IndexPageHeroSection": "<span class=\"first-line shine\"><strong>open source</strong></span><span class=\"second-line text-uppercase\">Web Application<br />Framework</span><span class=\"third-line shine2\"><strong>for asp.net core</strong></span>", "IndexPageHeroSection": "<span class=\"first-line shine\"><strong>open source</strong></span><span class=\"second-line text-uppercase\">Web Application<br />Framework</span><span class=\"third-line shine2\"><strong>for asp.net core</strong></span>",
"UiFramework": "UI框架", "UiFramework": "UI框架",
"EmailAddress": "电子邮件地址", "EmailAddress": "电子邮件地址",
"Mobile": "移动电话", "Mobile": "选择移动应用程序框架",
"ReactNative": "React Native", "ReactNative": "React Native",
"Strong": "强大", "Strong": "强大",
"Complete": "完整", "Complete": "完整",
@ -476,4 +476,4 @@
"ABPVideoCoursesPageDescription": "通过ABP团队创建的视频课程学习ABP框架的基础知识。在本视频系列中,您将学习ABP框架的基本主题。每个视频上的数字都是根据学习流程编写的。", "ABPVideoCoursesPageDescription": "通过ABP团队创建的视频课程学习ABP框架的基础知识。在本视频系列中,您将学习ABP框架的基本主题。每个视频上的数字都是根据学习流程编写的。",
"ABPVideoCoursesTitle": "ABP 基本视频" "ABPVideoCoursesTitle": "ABP 基本视频"
} }
} }

6
docs/en/Modules/Cms-Kit/Comments.md

@ -80,6 +80,12 @@ You can also view and manage replies on this page.
![comments-detail](../../images/cmskit-module-comments-detail.png) ![comments-detail](../../images/cmskit-module-comments-detail.png)
## Settings
You can configure the approval status of comments using the "Comment" tab under the "Cms" section on the Settings page. When this feature is enabled, you can approve and reject comments. In this way, users can only see the comments that you approve. By default, this feature is set to "false."
![comments-settings](../../images/cmskit-module-comments-settings.png)
## Internals ## Internals
### Domain Layer ### Domain Layer

4
docs/en/docs-nav.json

@ -1165,6 +1165,10 @@
"text": "Ellipsis", "text": "Ellipsis",
"path": "UI/Angular/Ellipsis-Directive.md" "path": "UI/Angular/Ellipsis-Directive.md"
}, },
{
"text": "Projection Strategy",
"path": "UI/Angular/Projection-Strategy.md"
},
{ {
"text": "Context Strategy", "text": "Context Strategy",
"path": "UI/Angular/Context-Strategy.md" "path": "UI/Angular/Context-Strategy.md"

BIN
docs/en/images/cmskit-module-comments-settings.png

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

14
framework/src/Volo.Abp.BlazoriseUI/BlazoriseUiObjectExtensionPropertyInfoExtensions.cs

@ -46,6 +46,12 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions
public static string? GetDateEditInputFormatOrNull(this IBasicObjectExtensionPropertyInfo property) public static string? GetDateEditInputFormatOrNull(this IBasicObjectExtensionPropertyInfo property)
{ {
var dataFormatString = property.GetDataFormatStringOrNull();
if (dataFormatString != null)
{
return dataFormatString;
}
if (property.IsDate()) if (property.IsDate())
{ {
return "{0:yyyy-MM-dd}"; return "{0:yyyy-MM-dd}";
@ -59,6 +65,14 @@ public static class BlazoriseUiObjectExtensionPropertyInfoExtensions
return null; return null;
} }
public static string? GetDataFormatStringOrNull(this IBasicObjectExtensionPropertyInfo property)
{
return property
.Attributes
.OfType<DisplayFormatAttribute>()
.FirstOrDefault()?.DataFormatString;
}
public static string? GetTextInputValueOrNull(this IBasicObjectExtensionPropertyInfo property, object? value) public static string? GetTextInputValueOrNull(this IBasicObjectExtensionPropertyInfo property, object? value)
{ {
if (value == null) if (value == null)

169
framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisCache.cs

@ -2,6 +2,7 @@
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Reflection; using System.Reflection;
using System.Text;
using System.Threading; using System.Threading;
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.Extensions.Caching.Distributed; using Microsoft.Extensions.Caching.Distributed;
@ -19,6 +20,8 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
protected static readonly string SlidingExpirationKey; protected static readonly string SlidingExpirationKey;
protected static readonly string DataKey; protected static readonly string DataKey;
protected static readonly long NotPresent; protected static readonly long NotPresent;
protected static readonly RedisValue[] HashMembersAbsoluteExpirationSlidingExpirationData;
protected static readonly RedisValue[] HashMembersAbsoluteExpirationSlidingExpiration;
private readonly static FieldInfo SetScriptField; private readonly static FieldInfo SetScriptField;
private readonly static FieldInfo RedisDatabaseField; private readonly static FieldInfo RedisDatabaseField;
@ -27,29 +30,29 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
private readonly static MethodInfo MapMetadataMethod; private readonly static MethodInfo MapMetadataMethod;
private readonly static MethodInfo GetAbsoluteExpirationMethod; private readonly static MethodInfo GetAbsoluteExpirationMethod;
private readonly static MethodInfo GetExpirationInSecondsMethod; private readonly static MethodInfo GetExpirationInSecondsMethod;
private readonly static MethodInfo OnRedisErrorMethod;
protected IDatabase RedisDatabase => GetRedisDatabase()!; protected RedisKey InstancePrefix { get; }
private IDatabase? _redisDatabase;
protected string Instance { get; }
static AbpRedisCache() static AbpRedisCache()
{ {
var type = typeof(RedisCache); var type = typeof(RedisCache);
RedisDatabaseField = Check.NotNull(type.GetField("_cache", BindingFlags.Instance | BindingFlags.NonPublic), nameof(RedisDatabaseField))!; RedisDatabaseField = Check.NotNull(type.GetField("_cache", BindingFlags.Instance | BindingFlags.NonPublic), nameof(RedisDatabaseField));
SetScriptField = Check.NotNull(type.GetField("_setScript", BindingFlags.Instance | BindingFlags.NonPublic), nameof(SetScriptField))!; SetScriptField = Check.NotNull(type.GetField("_setScript", BindingFlags.Instance | BindingFlags.NonPublic), nameof(SetScriptField));
ConnectMethod = Check.NotNull(type.GetMethod("Connect", BindingFlags.Instance | BindingFlags.NonPublic), nameof(ConnectMethod))!; ConnectMethod = Check.NotNull(type.GetMethod("Connect", BindingFlags.Instance | BindingFlags.NonPublic), nameof(ConnectMethod));
ConnectAsyncMethod = Check.NotNull(type.GetMethod("ConnectAsync", BindingFlags.Instance | BindingFlags.NonPublic), nameof(ConnectAsyncMethod))!; ConnectAsyncMethod = Check.NotNull(type.GetMethod("ConnectAsync", BindingFlags.Instance | BindingFlags.NonPublic), nameof(ConnectAsyncMethod));
MapMetadataMethod = Check.NotNull(type.GetMethod("MapMetadata", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static), nameof(MapMetadataMethod))!; MapMetadataMethod = Check.NotNull(type.GetMethod("MapMetadata", BindingFlags.Instance | BindingFlags.NonPublic | BindingFlags.Static), nameof(MapMetadataMethod));
GetAbsoluteExpirationMethod = Check.NotNull(type.GetMethod("GetAbsoluteExpiration", BindingFlags.Static | BindingFlags.NonPublic), nameof(GetAbsoluteExpirationMethod))!; GetAbsoluteExpirationMethod = Check.NotNull(type.GetMethod("GetAbsoluteExpiration", BindingFlags.Static | BindingFlags.NonPublic), nameof(GetAbsoluteExpirationMethod));
GetExpirationInSecondsMethod = Check.NotNull(type.GetMethod("GetExpirationInSeconds", BindingFlags.Static | BindingFlags.NonPublic), nameof(GetExpirationInSecondsMethod))!; GetExpirationInSecondsMethod = Check.NotNull(type.GetMethod("GetExpirationInSeconds", BindingFlags.Static | BindingFlags.NonPublic), nameof(GetExpirationInSecondsMethod));
OnRedisErrorMethod = Check.NotNull(type.GetMethod("OnRedisError", BindingFlags.Instance | BindingFlags.NonPublic), nameof(OnRedisErrorMethod));
AbsoluteExpirationKey = type.GetField("AbsoluteExpirationKey", BindingFlags.Static | BindingFlags.NonPublic)!.GetValue(null)!.ToString()!; AbsoluteExpirationKey = type.GetField("AbsoluteExpirationKey", BindingFlags.Static | BindingFlags.NonPublic)!.GetValue(null)!.ToString()!;
@ -58,32 +61,29 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
DataKey = type.GetField("DataKey", BindingFlags.Static | BindingFlags.NonPublic)!.GetValue(null)!.ToString()!; DataKey = type.GetField("DataKey", BindingFlags.Static | BindingFlags.NonPublic)!.GetValue(null)!.ToString()!;
NotPresent = type.GetField("NotPresent", BindingFlags.Static | BindingFlags.NonPublic)!.GetValue(null)!.To<int>(); NotPresent = type.GetField("NotPresent", BindingFlags.Static | BindingFlags.NonPublic)!.GetValue(null)!.To<int>();
HashMembersAbsoluteExpirationSlidingExpirationData = [AbsoluteExpirationKey, SlidingExpirationKey, DataKey];
HashMembersAbsoluteExpirationSlidingExpiration = [AbsoluteExpirationKey, SlidingExpirationKey];
} }
public AbpRedisCache(IOptions<RedisCacheOptions> optionsAccessor) public AbpRedisCache(IOptions<RedisCacheOptions> optionsAccessor)
: base(optionsAccessor) : base(optionsAccessor)
{ {
Instance = optionsAccessor.Value.InstanceName ?? string.Empty; var instanceName = optionsAccessor.Value.InstanceName;
} if (!string.IsNullOrEmpty(instanceName))
protected virtual void Connect()
{
if (GetRedisDatabase() != null)
{ {
return; InstancePrefix = (RedisKey)Encoding.UTF8.GetBytes(instanceName);
} }
}
ConnectMethod.Invoke(this, Array.Empty<object>()); protected virtual IDatabase Connect()
{
return (IDatabase)ConnectMethod.Invoke(this, Array.Empty<object>())!;
} }
protected virtual async ValueTask<IDatabase> ConnectAsync(CancellationToken token = default) protected virtual async ValueTask<IDatabase> ConnectAsync(CancellationToken token = default)
{ {
var redisDatabase = GetRedisDatabase();
if (redisDatabase != null)
{
return redisDatabase;
}
return await (ValueTask<IDatabase>)ConnectAsyncMethod.Invoke(this, new object[] { token })!; return await (ValueTask<IDatabase>)ConnectAsyncMethod.Invoke(this, new object[] { token })!;
} }
@ -108,9 +108,17 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
IEnumerable<KeyValuePair<string, byte[]>> items, IEnumerable<KeyValuePair<string, byte[]>> items,
DistributedCacheEntryOptions options) DistributedCacheEntryOptions options)
{ {
Connect(); var cache = Connect();
Task.WaitAll(PipelineSetMany(items, options)); try
{
Task.WaitAll(PipelineSetMany(cache, items, options));
}
catch (Exception ex)
{
OnRedisError(ex, cache);
throw;
}
} }
public async Task SetManyAsync( public async Task SetManyAsync(
@ -120,9 +128,17 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
{ {
token.ThrowIfCancellationRequested(); token.ThrowIfCancellationRequested();
await ConnectAsync(token); var cache = await ConnectAsync(token);
await Task.WhenAll(PipelineSetMany(items, options)); try
{
await Task.WhenAll(PipelineSetMany(cache, items, options));
}
catch (Exception ex)
{
OnRedisError(ex, cache);
throw;
}
} }
public void RefreshMany( public void RefreshMany(
@ -146,9 +162,17 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
{ {
keys = Check.NotNull(keys, nameof(keys)); keys = Check.NotNull(keys, nameof(keys));
Connect(); var cache = Connect();
RedisDatabase.KeyDelete(keys.Select(key => (RedisKey)(Instance + key)).ToArray()); try
{
cache.KeyDelete(keys.Select(key => InstancePrefix.Append(key)).ToArray());
}
catch (Exception ex)
{
OnRedisError(ex, cache);
throw;
}
} }
public async Task RemoveManyAsync(IEnumerable<string> keys, CancellationToken token = default) public async Task RemoveManyAsync(IEnumerable<string> keys, CancellationToken token = default)
@ -156,33 +180,40 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
keys = Check.NotNull(keys, nameof(keys)); keys = Check.NotNull(keys, nameof(keys));
token.ThrowIfCancellationRequested(); token.ThrowIfCancellationRequested();
await ConnectAsync(token); var cache = await ConnectAsync(token);
await RedisDatabase.KeyDeleteAsync(keys.Select(key => (RedisKey)(Instance + key)).ToArray()); try
{
await cache.KeyDeleteAsync(keys.Select(key => InstancePrefix.Append(key)).ToArray());
}
catch (Exception ex)
{
OnRedisError(ex, cache);
throw;
}
} }
protected virtual byte[]?[] GetAndRefreshMany( protected virtual byte[]?[] GetAndRefreshMany(
IEnumerable<string> keys, IEnumerable<string> keys,
bool getData) bool getData)
{ {
Connect(); var cache = Connect();
var keyArray = keys.Select(key => Instance + key).ToArray(); var keyArray = keys.Select(key => InstancePrefix.Append( key)).ToArray();
RedisValue[][] results; byte[]?[] bytes;
if (getData) try
{ {
results = RedisDatabase.HashMemberGetMany(keyArray, AbsoluteExpirationKey, var results = cache.HashMemberGetMany(keyArray, GetHashFields(getData));
SlidingExpirationKey, DataKey);
Task.WaitAll(PipelineRefreshManyAndOutData(cache, keyArray, results, out bytes));
} }
else catch (Exception ex)
{ {
results = RedisDatabase.HashMemberGetMany(keyArray, AbsoluteExpirationKey, OnRedisError(ex, cache);
SlidingExpirationKey); throw;
} }
Task.WaitAll(PipelineRefreshManyAndOutData(keyArray, results, out var bytes));
return bytes; return bytes;
} }
@ -193,29 +224,28 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
{ {
token.ThrowIfCancellationRequested(); token.ThrowIfCancellationRequested();
await ConnectAsync(token); var cache = await ConnectAsync(token);
var keyArray = keys.Select(key => Instance + key).ToArray(); var keyArray = keys.Select(key => InstancePrefix.Append(key)).ToArray();
RedisValue[][] results; byte[]?[] bytes;
if (getData) try
{ {
results = await RedisDatabase.HashMemberGetManyAsync(keyArray, AbsoluteExpirationKey, var results = await cache.HashMemberGetManyAsync(keyArray, GetHashFields(getData));
SlidingExpirationKey, DataKey); await Task.WhenAll(PipelineRefreshManyAndOutData(cache, keyArray, results, out bytes));
} }
else catch (Exception ex)
{ {
results = await RedisDatabase.HashMemberGetManyAsync(keyArray, AbsoluteExpirationKey, OnRedisError(ex, cache);
SlidingExpirationKey); throw;
} }
await Task.WhenAll(PipelineRefreshManyAndOutData(keyArray, results, out var bytes));
return bytes; return bytes;
} }
protected virtual Task[] PipelineRefreshManyAndOutData( protected virtual Task[] PipelineRefreshManyAndOutData(
string[] keys, IDatabase cache,
RedisKey[] keys,
RedisValue[][] results, RedisValue[][] results,
out byte[]?[] bytes) out byte[]?[] bytes)
{ {
@ -242,7 +272,7 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
expr = sldExpr; expr = sldExpr;
} }
tasks[i] = RedisDatabase.KeyExpireAsync(keys[i], expr); tasks[i] = cache.KeyExpireAsync(keys[i], expr);
} }
else else
{ {
@ -264,6 +294,7 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
} }
protected virtual Task[] PipelineSetMany( protected virtual Task[] PipelineSetMany(
IDatabase cache,
IEnumerable<KeyValuePair<string, byte[]>> items, IEnumerable<KeyValuePair<string, byte[]>> items,
DistributedCacheEntryOptions options) DistributedCacheEntryOptions options)
{ {
@ -277,14 +308,13 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
for (var i = 0; i < itemArray.Length; i++) for (var i = 0; i < itemArray.Length; i++)
{ {
tasks[i] = RedisDatabase.ScriptEvaluateAsync(GetSetScript(), new RedisKey[] { Instance + itemArray[i].Key }, tasks[i] = cache.ScriptEvaluateAsync(GetSetScript(), new RedisKey[] { InstancePrefix.Append(itemArray[i].Key) },
new RedisValue[] [
{ absoluteExpiration?.Ticks ?? NotPresent,
absoluteExpiration?.Ticks ?? NotPresent,
options.SlidingExpiration?.Ticks ?? NotPresent, options.SlidingExpiration?.Ticks ?? NotPresent,
GetExpirationInSeconds(creationTime, absoluteExpiration, options) ?? NotPresent, GetExpirationInSeconds(creationTime, absoluteExpiration, options) ?? NotPresent,
itemArray[i].Value itemArray[i].Value
}); ]);
} }
return tasks; return tasks;
@ -317,14 +347,21 @@ public class AbpRedisCache : RedisCache, ICacheSupportsMultipleItems
{ {
return (DateTimeOffset?)GetAbsoluteExpirationMethod.Invoke(null, new object[] { creationTime, options }); return (DateTimeOffset?)GetAbsoluteExpirationMethod.Invoke(null, new object[] { creationTime, options });
} }
private IDatabase? GetRedisDatabase() protected virtual void OnRedisError(Exception ex, IDatabase cache)
{ {
return _redisDatabase ??= RedisDatabaseField.GetValue(this) as IDatabase; OnRedisErrorMethod.Invoke(this, [ex, cache]);
} }
private string GetSetScript() private string GetSetScript()
{ {
return SetScriptField.GetValue(this)!.ToString()!; return SetScriptField.GetValue(this)!.ToString()!;
} }
private static RedisValue[] GetHashFields(bool getData)
{
return getData
? HashMembersAbsoluteExpirationSlidingExpirationData
: HashMembersAbsoluteExpirationSlidingExpiration;
}
} }

16
framework/src/Volo.Abp.Caching.StackExchangeRedis/Volo/Abp/Caching/StackExchangeRedis/AbpRedisExtensions.cs

@ -8,16 +8,15 @@ public static class AbpRedisExtensions
{ {
public static RedisValue[][] HashMemberGetMany( public static RedisValue[][] HashMemberGetMany(
this IDatabase cache, this IDatabase cache,
string[] keys, RedisKey[] keys,
params string[] members) RedisValue[] fields)
{ {
var tasks = new Task<RedisValue[]>[keys.Length]; var tasks = new Task<RedisValue[]>[keys.Length];
var fields = members.Select(member => (RedisValue)member).ToArray();
var results = new RedisValue[keys.Length][]; var results = new RedisValue[keys.Length][];
for (var i = 0; i < keys.Length; i++) for (var i = 0; i < keys.Length; i++)
{ {
tasks[i] = cache.HashGetAsync((RedisKey)keys[i], fields); tasks[i] = cache.HashGetAsync(keys[i], fields);
} }
for (var i = 0; i < tasks.Length; i++) for (var i = 0; i < tasks.Length; i++)
@ -28,17 +27,16 @@ public static class AbpRedisExtensions
return results; return results;
} }
public static async Task<RedisValue[][]> HashMemberGetManyAsync( public async static Task<RedisValue[][]> HashMemberGetManyAsync(
this IDatabase cache, this IDatabase cache,
string[] keys, RedisKey[] keys,
params string[] members) RedisValue[] fields)
{ {
var tasks = new Task<RedisValue[]>[keys.Length]; var tasks = new Task<RedisValue[]>[keys.Length];
var fields = members.Select(member => (RedisValue)member).ToArray();
for (var i = 0; i < keys.Length; i++) for (var i = 0; i < keys.Length; i++)
{ {
tasks[i] = cache.HashGetAsync((RedisKey)keys[i], fields); tasks[i] = cache.HashGetAsync(keys[i], fields);
} }
return await Task.WhenAll(tasks); return await Task.WhenAll(tasks);

2
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Commands/UpdateCommand.cs

@ -84,7 +84,7 @@ public class UpdateCommand : IConsoleCommand, ITransientDependency
return; return;
} }
var project = Directory.GetFiles(Directory.GetCurrentDirectory(), "*.csproj").FirstOrDefault(); var project = Directory.GetFiles(directory, "*.csproj").FirstOrDefault();
if (project != null) if (project != null)
{ {

9
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/ChangeThemeStep.cs

@ -627,11 +627,16 @@ public class ChangeThemeStep : ProjectBuildPipelineStep
private static void ChangeThemeToBasicForMvcProjects(ProjectBuildContext context, string defaultThemeName) private static void ChangeThemeToBasicForMvcProjects(ProjectBuildContext context, string defaultThemeName)
{ {
var projectNames = new[] var projectNames = new List<string>
{ {
".Web", ".HttpApi.Host", ".AuthServer", ".Web.Public", ".Web.Public.Host", ".Web", ".AuthServer", ".Web.Public", ".Web.Public.Host",
"" //for app-nolayers-mvc "" //for app-nolayers-mvc
}; };
if(!context.Symbols.Contains("tiered"))
{
projectNames.Add(".HttpApi.Host");
}
foreach (var projectName in projectNames) foreach (var projectName in projectNames)
{ {

13
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Building/Steps/RemoveFileStep.cs

@ -1,18 +1,21 @@
using System; namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps;
namespace Volo.Abp.Cli.ProjectBuilding.Building.Steps;
public class RemoveFileStep : ProjectBuildPipelineStep public class RemoveFileStep : ProjectBuildPipelineStep
{ {
private readonly string _filePath; private readonly string _filePath;
public RemoveFileStep(string filePath) private readonly bool _fullPath;
public RemoveFileStep(string filePath, bool fullPath = true)
{ {
_filePath = filePath; _filePath = filePath;
_fullPath = fullPath;
} }
public override void Execute(ProjectBuildContext context) public override void Execute(ProjectBuildContext context)
{ {
var fileToRemove = context.Files.Find(x => x.Name == _filePath);; var fileToRemove = _fullPath
? context.Files.Find(x => x.Name == _filePath)
: context.Files.Find(x => x.Name.EndsWith(_filePath));
if (fileToRemove != null) if (fileToRemove != null)
{ {
context.Files.Remove(fileToRemove); context.Files.Remove(fileToRemove);

5
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppNoLayersTemplateBase.cs

@ -249,6 +249,11 @@ public abstract class AppNoLayersTemplateBase : TemplateInfo
steps.Add(new ChangeThemeStyleStep()); steps.Add(new ChangeThemeStyleStep());
} }
if (context.BuildArgs.Theme != Theme.LeptonX)
{
steps.Add(new RemoveFileStep("LeptonXFooter.razor", false));
}
RemoveThemeLogoFolders(context, steps); RemoveThemeLogoFolders(context, steps);
if (IsDefaultThemeForTemplate(context.BuildArgs)) if (IsDefaultThemeForTemplate(context.BuildArgs))

4
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/App/AppTemplateBase.cs

@ -235,6 +235,10 @@ public abstract class AppTemplateBase : TemplateInfo
{ {
steps.Add(new ChangeThemeStyleStep()); steps.Add(new ChangeThemeStyleStep());
} }
else
{
steps.Add(new RemoveFileStep("LeptonXFooter.razor", false));
}
RemoveThemeLogoFolders(context, steps); RemoveThemeLogoFolders(context, steps);

4
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectBuilding/Templates/Microservice/MicroserviceTemplateBase.cs

@ -49,6 +49,10 @@ public abstract class MicroserviceTemplateBase : TemplateInfo
steps.Add(new ChangeThemeStyleStep()); steps.Add(new ChangeThemeStyleStep());
return; return;
} }
else
{
steps.Add(new RemoveFileStep("LeptonXFooter.razor", false));
}
steps.Add(new ChangeThemeStep()); steps.Add(new ChangeThemeStep());
ReplaceLeptonXThemePackagesFromPackageJsonFiles(steps, uiFramework: context.BuildArgs.UiFramework, theme: context.BuildArgs.Theme, version: context.BuildArgs.Version ?? context.TemplateFile.Version); ReplaceLeptonXThemePackagesFromPackageJsonFiles(steps, uiFramework: context.BuildArgs.UiFramework, theme: context.BuildArgs.Theme, version: context.BuildArgs.Version ?? context.TemplateFile.Version);

11
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/ProjectModification/NpmPackagesUpdater.cs

@ -250,6 +250,17 @@ public class NpmPackagesUpdater : ITransientDependency
return false; return false;
} }
var prefix = string.Empty;
if (package.Value.ToString().StartsWith("~"))
{
prefix = "~";
}
else if (package.Value.ToString().StartsWith("^"))
{
prefix = "^";
}
version = prefix + version.RemovePreFix("~", "^");
package.Value.Replace(version); package.Value.Replace(version);
Logger.LogInformation( Logger.LogInformation(

2
framework/src/Volo.Abp.Cli.Core/Volo/Abp/Cli/Version/PackageVersionCheckerService.cs

@ -62,7 +62,7 @@ public class PackageVersionCheckerService : ITransientDependency
public async Task<LatestVersionInfo> GetLatestVersionOrNullAsync(string packageId, bool includeNightly = false, bool includeReleaseCandidates = false) public async Task<LatestVersionInfo> GetLatestVersionOrNullAsync(string packageId, bool includeNightly = false, bool includeReleaseCandidates = false)
{ {
if (!includeNightly && !includeReleaseCandidates && !packageId.Contains("LeptonX")) if (!includeNightly && !includeReleaseCandidates && !packageId.Contains("LeptonX") && !packageId.StartsWith("Volo.Abp.Studio."))
{ {
return await GetLatestStableVersionFromGithubAsync(); return await GetLatestStableVersionFromGithubAsync();
} }

6
modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/package.json

@ -3,8 +3,8 @@
"name": "asp.net", "name": "asp.net",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@abp/aspnetcore.mvc.ui.theme.shared": "~8.2.0-rc.4", "@abp/aspnetcore.mvc.ui.theme.shared": "~8.2.0-rc.5",
"@abp/prismjs": "~8.2.0-rc.4", "@abp/prismjs": "~8.2.0-rc.5",
"@abp/highlight.js": "~8.2.0-rc.4" "@abp/highlight.js": "~8.2.0-rc.5"
} }
} }

276
modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Bootstrap.Demo/yarn.lock

@ -2,212 +2,212 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.4.tgz#2b1468bf05fc505d11d5c0253a782a328088d283" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.5.tgz#97b86ea4daf4392a1067e2a7e7c03b4c381ccc82"
integrity sha512-QveGyyMKAMnY48+AsUqkB/LnqtnTc3Fd5m1wLPNVF+P0j6CaaETmfJNc0xw+WYF14r+NC8K4PeC58z3SYMGlLw== integrity sha512-lR3XbbNct+8QH1dRhED5s/CHCgkANVyNBrWCQbo4BwBFJ27d3wuJDVt39VxQUsgNfxEmyoJdVZNDRUKDv6fTOw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui" "~8.2.0-rc.5"
"@abp/bootstrap" "~8.2.0-rc.4" "@abp/bootstrap" "~8.2.0-rc.5"
"@abp/bootstrap-datepicker" "~8.2.0-rc.4" "@abp/bootstrap-datepicker" "~8.2.0-rc.5"
"@abp/bootstrap-daterangepicker" "~8.2.0-rc.4" "@abp/bootstrap-daterangepicker" "~8.2.0-rc.5"
"@abp/datatables.net-bs5" "~8.2.0-rc.4" "@abp/datatables.net-bs5" "~8.2.0-rc.5"
"@abp/font-awesome" "~8.2.0-rc.4" "@abp/font-awesome" "~8.2.0-rc.5"
"@abp/jquery-form" "~8.2.0-rc.4" "@abp/jquery-form" "~8.2.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~8.2.0-rc.4" "@abp/jquery-validation-unobtrusive" "~8.2.0-rc.5"
"@abp/lodash" "~8.2.0-rc.4" "@abp/lodash" "~8.2.0-rc.5"
"@abp/luxon" "~8.2.0-rc.4" "@abp/luxon" "~8.2.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.4" "@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.5"
"@abp/moment" "~8.2.0-rc.4" "@abp/moment" "~8.2.0-rc.5"
"@abp/select2" "~8.2.0-rc.4" "@abp/select2" "~8.2.0-rc.5"
"@abp/sweetalert2" "~8.2.0-rc.4" "@abp/sweetalert2" "~8.2.0-rc.5"
"@abp/timeago" "~8.2.0-rc.4" "@abp/timeago" "~8.2.0-rc.5"
"@abp/toastr" "~8.2.0-rc.4" "@abp/toastr" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.4.tgz#5e4613f506a02d45d7adcee1060032774e635fe5" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.5.tgz#4a845ebd4b6465b9ac04641d7479b449ca9e1c5f"
integrity sha512-rr3BE6RhimlHcNv0HKT3xIi/+6Sq5TSqRDvmiFqa7bvxemKMstHiEa2lxpx5XP9CPpV9gNzjC/NV+TQy4YDIqg== integrity sha512-l3brGHAD2jnlAWwITGNAY5zOtmc0WItVabYCTvKrYyNuKIPEtW9getUNFp9BFMT9x0KZiGnkkrRkvxH+DzIcug==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
"@abp/bootstrap-datepicker@~8.2.0-rc.4": "@abp/bootstrap-datepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.4.tgz#7f6b7b0da2c8fd46dc08b1976c57b80b65069246" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.5.tgz#0e8755a51d7a691837951f7a071a9e59a2e9e6cf"
integrity sha512-+Ylw8PFuAmpza714vQPjfU/lCOS2NsUX2cGp12Yyy4fS36udPCa/HYWTVdpH36OGae1dV/GzrfgnlZsCvUNhBA== integrity sha512-bLt8l6kYbVblThd2iuXcp6Ydss8TefpnZXHyXrQCxZGmVb79I/vf48CekJo1OWY/WcyEi/bm0m4LEI8Q0Y/LZQ==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap-daterangepicker@~8.2.0-rc.4": "@abp/bootstrap-daterangepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.4.tgz#579e8a4fd9d235385514da3f2ca73283294a78e3" resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.5.tgz#e37792f24c3c8a8643e5ba5744967505e54f836c"
integrity sha512-KIinwEwkCzlYd7gDJt3htgflfrdWnyW4fr/V6GVi2EGxK6UA5HWMRG8MkvUKXmJ4rCHfEUdpWeGBXLbPR8R4eQ== integrity sha512-dN02S1g9sVgACMz+A5FJw0uz4u5lXTFd/7xjE+cmhj0p5AcGvDD3gTbes6d3QNKiwvsPge063lG9pisdn3uEjg==
dependencies: dependencies:
bootstrap-daterangepicker "^3.1.0" bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.2.0-rc.4": "@abp/bootstrap@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.4.tgz#dc08a0db67a2a652c03087d299da1abfab677ebf" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.5.tgz#1acc191f8156d81e1794bc161bfb394ae8f7372e"
integrity sha512-wwZQk2XU6puEzBJ7W+80Oh/8z6n+DNc2YJnCnJNPbURgclMsN4v3/WJ2iKlO4g0fOkepvlgYkbYWPf+pusxSCQ== integrity sha512-FacgSrDlS3QSR+5WdOy06Qw0qF7OoqoBwAGqro2WOfY5sFR5OwEiqXHXUF95+a/q9B9NuYKXBjBfOPhljdiuuA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
bootstrap "^5.1.3" bootstrap "^5.1.3"
"@abp/clipboard@~8.2.0-rc.4": "@abp/clipboard@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.0-rc.4.tgz#c3d20d642765dc235749d4f95f599cb97f23325d" resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.0-rc.5.tgz#5cec3d9c89bdad8d50f41807b3be68d4cdecb003"
integrity sha512-w94YGLT/UVn1haLGlH8zOcgrCS64OrnVlzh3QXps+8m4S9g7KDeVk3g4ju/VUao2YKCHmRJ3uRhOGCb58of1iw== integrity sha512-cBaMy8A1CIU00X6SoGyuMTVf6z9iyEaR6smVRWCVmkf2VayAHFES981+iE+VmT2bezgbCidA2GXtkBZ/kunbJg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
clipboard "^2.0.8" clipboard "^2.0.8"
"@abp/core@~8.2.0-rc.4": "@abp/core@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.4.tgz#bf6b343ab43468ca88cdb4697caf25d65aa2c269" resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.5.tgz#67eb75df046f8997f6af14e86bf8dbf249388a8d"
integrity sha512-rGUDzLIiUJZ+7ZgzOGXxzc4k//9EBjVY4P4kO0XKCOEv08YwsUJmTzddsiMHZLIqRJ2wdT1UiH7PrcolBiW1UQ== integrity sha512-XVunQMbK/MApkfnpL+8WsVqsJxARBl6W0TZwKfPyfm1QzPWE75P4oW3CIdNis0+Ob5HfhSFFp78tVrbSoEdzYQ==
dependencies: dependencies:
"@abp/utils" "~8.2.0-rc.4" "@abp/utils" "~8.2.0-rc.5"
"@abp/datatables.net-bs5@~8.2.0-rc.4": "@abp/datatables.net-bs5@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.4.tgz#869021a6639d765abb645a5de7501881b67e7095" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.5.tgz#fe04af4b14530545a05c4c58361aadfdddd8e8c2"
integrity sha512-CdYfn4qhB/KdTYfOrAsUSPtw8AGAbZHOTc4EyWAmxDKFCFyakj27+uoV/Stgs25nCaAXn1JHysfOxoNkP1ikyg== integrity sha512-yZKC111JVxcOkDz/WxJyQ0lw3JpbBBWr21LVNjyhEiN62w8tJN1Gwo7CjL+7WFm7RPnAUUf/qwitRWmWl7M4YA==
dependencies: dependencies:
"@abp/datatables.net" "~8.2.0-rc.4" "@abp/datatables.net" "~8.2.0-rc.5"
datatables.net-bs5 "^1.11.4" datatables.net-bs5 "^1.11.4"
"@abp/datatables.net@~8.2.0-rc.4": "@abp/datatables.net@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.4.tgz#4f0e612a11813f38331aae221c342efc4443138d" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.5.tgz#94e4b933750332732eeef02119a6cdfca67811e7"
integrity sha512-omEYXlB/OzUGmvTy7k7rhZjWtXILpl7idLwV1yXzJUkdjLjaBzIgrbWj/80YAI5K7MdpKE0/pdPnORX6G5ij9Q== integrity sha512-IAXbC29eiHvA3unVMsFh2sNfiw+Jlgah0D++IUKOlz1eAzHMrpwP5KE4jmF6GESF7Al95NkgqH7cd6MUst+UlA==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
datatables.net "^1.11.4" datatables.net "^1.11.4"
"@abp/font-awesome@~8.2.0-rc.4": "@abp/font-awesome@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.4.tgz#5c977e54c428e80af2a93166e968ec7635b0694d" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.5.tgz#5ae19305a373a6dd083944bd825ccea84aadf40b"
integrity sha512-zyQwZhhOgKi6JLWbkI+iycwS1lcCx/tvn+AskQSdV2+ycnrcjm9TMWmWosAGwS6VW9demRamuegUNOgiVpy/SA== integrity sha512-VbcM80e9KrZzY6TJ9l/eW42CTpdQ0eBr5gOEW+/UWGTRalCLdGve9YVJZJA55bD1VtcgaR1sV342jw2B1XeN8w==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
"@fortawesome/fontawesome-free" "^6.5.1" "@fortawesome/fontawesome-free" "^6.5.1"
"@abp/highlight.js@~8.2.0-rc.4": "@abp/highlight.js@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.2.0-rc.4.tgz#94587632517396f3d251d2c457ea8a452203f086" resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.2.0-rc.5.tgz#24c329217ad4092172cba3e9e23a67814f9a164f"
integrity sha512-RHSrR0qqXncosbHDfYBB8aXh0BQ6M8BpjbyXeqe+vKDIznzjv3jcyF2SIP/l6TBBYcaBPnAOdjfuC9i9B8Rfzg== integrity sha512-NHoUAVrGDV+BQ1rtC4orZ0xYX/4VkjZgouIktpuCAEs8wiP6/5Ddjzf2uYFv8c6XVqBm1Mx9Bufxx7aYo2O/Uw==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
"@highlightjs/cdn-assets" "~11.4.0" "@highlightjs/cdn-assets" "~11.4.0"
"@abp/jquery-form@~8.2.0-rc.4": "@abp/jquery-form@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.4.tgz#3ef39f9f716ff17b34d61eeb3c234ed3867b91da" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.5.tgz#b955fe2c226f1f35a3736aa3b2170f265a797552"
integrity sha512-nD5c2g4aPlDSggoR2lJ0Zd9Jg/2yrpVKnJqNuvx7DIdxPIZed2LL5ONaOtO8pLTsKqh5ua1UsqgsyfJ/mb9T1w== integrity sha512-M9fUUYywljudem/K7aYlcIG2W+KTzUJPviSeOLo5KNxvVrScWr+Jf4M8Nbj6uWX1saYWmm5kYnfsDs+nOUcmDg==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.2.0-rc.4": "@abp/jquery-validation-unobtrusive@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.4.tgz#5124068f01db8c0e4365594fefb236f91bd60e8d" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.5.tgz#c790dc1b707ee7d24fe99c2b7be6bc558af09667"
integrity sha512-JKtZoeSSbSGbTl28ZEHvqCvC2cCX3aOV7PHKhpIzQSfVK22Uo3swsc2bv3sH2HdxNi3jWAGcd7YUG093STMm3Q== integrity sha512-sUkfb17cR2zM669U83R8dviv+p+uGNl5nmOV0AP4ch6CzLfnTOYzKsqV7ESGVxqB8oVHO/Wnr8sXaaLdsoQzJw==
dependencies: dependencies:
"@abp/jquery-validation" "~8.2.0-rc.4" "@abp/jquery-validation" "~8.2.0-rc.5"
jquery-validation-unobtrusive "^3.2.12" jquery-validation-unobtrusive "^3.2.12"
"@abp/jquery-validation@~8.2.0-rc.4": "@abp/jquery-validation@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.4.tgz#95540b7a6ef1f27b511e42b03cdf0c1c364ce8df" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.5.tgz#294254556e804d641d3bf4ea50d1c3eb42f191d1"
integrity sha512-fN2ZJ0eCjQ5nu5fdwKx0cmGTWZyzltwrfhnI0JG27EsBP8EtyO8aWHZEFKgL+vXTy07LraTJD1KSpIIZSsrHVw== integrity sha512-C7sOuSShkX5Ba6LiSBGuxlrORcxiYczZtsxyjRZzNzATYwEBHcLqMxDvgAsWeWtvtkMotkbB2k99vD93nlGuCQ==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-validation "^1.19.3" jquery-validation "^1.19.3"
"@abp/jquery@~8.2.0-rc.4": "@abp/jquery@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.4.tgz#327452ce3f49f6a9fe32a1934a6f347e2a0a309b" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.5.tgz#9b01156a80d8da6407abb6d51541cb89624cb906"
integrity sha512-JYeQwpa671AyYf7sv+XgCaie2mOjWCDZYlFHEqH4whjTqT5SU8WwSkhux+/KLtBImSeQyTzyup7CuQYWBuk15w== integrity sha512-KcRVhxEmUuJHd4JNBSeJV+3Ush4w9ambKxwPi3+q1fqdePekrLk9jKNud5HkP6JredBoESJ+TkeVFFQ5HnYPVg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~8.2.0-rc.4": "@abp/lodash@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.4.tgz#229be25a0e09f4e1b74b7e064113c3a1347d28c7" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.5.tgz#b6fa8754258dd2db59b0df65fb9f7d90c8611af6"
integrity sha512-zhLlPlhrCZNngx2ns3reKG2Nmec8g2KWbN55Z1gx0XYqaymT/0zuzfkfPBdpuoyIqrXcPJL0aK21SH4Tu8LjUA== integrity sha512-LvK03DSk9lDNGEFrjMdiaAkaH58ll+PIn663KJk0kVZvtNLy/egCOMCc6EBuE5DUsjwebLi6YZYzgRQRRKirgw==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
lodash "^4.17.21" lodash "^4.17.21"
"@abp/luxon@~8.2.0-rc.4": "@abp/luxon@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.4.tgz#fdb6c8d13be6ded1d531e2d66b532d0453597c01" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.5.tgz#e4300d1deebab16432737c831cfae0025b7c5891"
integrity sha512-3iat30cVfmymoW208PjCLlrKO6VTuU8lgk/Vg0XnaX/DbNldNhBUHHzEgC9TiHLUejBSd5cunz88rhFuODz14Q== integrity sha512-UdAToIlS0CwmavErMtd5dwyssKNPa6oqlHrll5h7T26nHDPEdXzSi9rP8RvwqBkrt+BFPMctRSv6DYk8OwoWzA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
luxon "^2.3.0" luxon "^2.3.0"
"@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.4": "@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.4.tgz#1eb1621edd8559b43734590f123c331a360a2d93" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.5.tgz#8f39683e55fbc5487de08b9209a552cf32ea8087"
integrity sha512-OoqjoW1e5U/J77zr6A5DPyWha/b4UeTWaAXtl8xigJmhcDhvKe0jfvE33iHgZupFWiGu354mICNT+rQ1S2wMyA== integrity sha512-e20kLUvnu6tD5GBjzGLQjTMeyeco4q5wO4H4mMuahJpCHue+EUrL0tT1IbWiE+eEmbePw/lAn7Yfhfwjq/+Eeg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.2.0-rc.4": "@abp/moment@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.4.tgz#97eef0f868ad95057493e97f386c791871c063c3" resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.5.tgz#e38c7e66ee383a986c7972f4ba2b19d79a43f60e"
integrity sha512-q06AsfUbut7Rxgp0JMlN0dvP7C1QRMfPNO+95ZXEEnqDDlajqaIt4X/7l1gb/Iz+7yc5XVT7FJdmT+bR22etGA== integrity sha512-F//4TZySaFBTfWgBxzwTFLeStrS0nklmKcTMU+MOtb/7Zx3QtscJpNm4CmxiBpB8pLwK8xiJQGoiuMQdoTuq+g==
dependencies: dependencies:
moment "^2.9.0" moment "^2.9.0"
"@abp/prismjs@~8.2.0-rc.4": "@abp/prismjs@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.0-rc.4.tgz#f6df729333d4dc934c3978c29e62dddf6a22c19a" resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.0-rc.5.tgz#7a7428bb2f118cef5121a196bc45cc5d1a5a8e93"
integrity sha512-+fLF7ndhgV9v3zcWFoNSR0kPasIcagJC6FT90ALWs2XccBtjAYOm9/365DK5lyDUh0ynHx9fBgDdCdIX0Zv9RA== integrity sha512-lNPqRvisf8jAxyL/05ppH26ZH4DEEzZUKqO7zqqS+yl7sBTpR/Wh8xX09spQl+wBQTLWAz2z+MouBZnMQIYKjg==
dependencies: dependencies:
"@abp/clipboard" "~8.2.0-rc.4" "@abp/clipboard" "~8.2.0-rc.5"
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
prismjs "^1.26.0" prismjs "^1.26.0"
"@abp/select2@~8.2.0-rc.4": "@abp/select2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.4.tgz#085ec0f915099201b75cbb7b4bfe6826039f542d" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.5.tgz#5fc1dfa4bb871961db0ce9eb68a2c655c38b32d0"
integrity sha512-DrRNVxB0UcRCBhYkkp9TTmu3SDwaJ6kR3WCH7zMZgjYx/K250ojcuIot98fzuecuT3Te3qiGxKwBIclr2Yt/aw== integrity sha512-fT5L+mgiEOBtf2mmXNv6GtXVNjv22qQlgWp1UjI7c0jLtNPHa7P8idVTaP3g6d8b7VCP5zxIUGgjf6sZMxhADg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert2@~8.2.0-rc.4": "@abp/sweetalert2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.4.tgz#6866295a91602167cf314f1eb3bc315825cc0cb3" resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.5.tgz#502d6dbaf2c5296f67722e085e52dd0fe62e8dde"
integrity sha512-3NdBP/4ZhkroWrCVyfHoc0PM6ZJD0IhqXkPO/bMDTjX8scilU85SkC2iAnReD6BoLF6ywriMpozHiU2Ax8aH2Q== integrity sha512-S0LTMU0a9SPdSA3ezEpo03ZGfrr7XtouEs0O5c4fA0kWYsddNkalighy3CYTgZZwaR9oWNnY6t4pyka3WXAaqg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
sweetalert2 "^11.3.6" sweetalert2 "^11.3.6"
"@abp/timeago@~8.2.0-rc.4": "@abp/timeago@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.4.tgz#777793699f0271e81b3fe96d46066a30925ed298" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.5.tgz#8bd78f2ee6b27b8ffd77e75a2851b61013e481ee"
integrity sha512-TfxUi1gn0dPuWFYCwo+g3xh4kkCo1otbvoUQOvrHp6VuQdHbXtSz0kP8VBPGKtVtlRsNe91+gDkv7n8njwrQ9g== integrity sha512-eLG9WFtP1dOoYHaNxyV8gOx1xnKmqSTwgviTU45qUFSNsgQHH1n0bpBxUXSSvaFw5mWRbF3R/JJQHql+Dl6Cow==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~8.2.0-rc.4": "@abp/toastr@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.4.tgz#5edfc10d6123219cc86286ed8b1249af5dbadfde" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.5.tgz#baecda4e6fed5676f58de2228bf8d1c6ae66d49e"
integrity sha512-QDJXroe1Fp2VEWU0Yza/L+DU9R0ZDBw0RcopRcliwAm5RgsVVaaxHZ+jO7LLDfP8JQ6Pi0wTamhKwrfglnG7Ww== integrity sha512-y7aOY1LF62yRwXRSrvimtqIilrsOgSAM8lHcp2RogZAFdmw7yU1R5a6fJlLDGeRBIgjdcIlSpaOuoi6T2hCjFw==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@~8.2.0-rc.4": "@abp/utils@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.4.tgz#be59dd4b5dfc085b88528639047699a9e5486e81" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.5.tgz#526d64aa3e059d2f6e595b22e35dda2d652377e4"
integrity sha512-imIFmlP0gY+rXFbwufo8jMzcmEuz/6uKr/e8/bW4bOhPDD65go/3TTVkNLr0hzB9qSahZG/LGu2eDFTqlowlrg== integrity sha512-ZU7jHFpDh7jDYgCrX6aXqy/v4LrMGgYJN+siyWUMpVddg2lTTO2MsxI+KmSxJwD7H01Mqj1sZ+LBAOVxGR3hsw==
dependencies: dependencies:
just-compare "^2.3.0" just-compare "^2.3.0"

4
modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/package.json

@ -3,8 +3,8 @@
"name": "asp.net", "name": "asp.net",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.4", "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.5",
"@abp/prismjs": "~8.2.0-rc.4" "@abp/prismjs": "~8.2.0-rc.5"
}, },
"devDependencies": {} "devDependencies": {}
} }

280
modules/basic-theme/test/Volo.Abp.AspNetCore.Mvc.UI.Theme.Basic.Demo/yarn.lock

@ -2,211 +2,211 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.4.tgz#dc9e9e6541694531726127e2e387156a24dd7f9e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.5.tgz#5cc3231d27e9e12e6fdc3e4fc5eb3e6f2019cf13"
integrity sha512-Ixs3yr5fHkB1h8PuuJdPiY0uDf+Dq9jUdbaHsoJmaYRdOSqhLDpNkyAqFFrqDmoEmZvmrThCupt5ZSg9laQ8yw== integrity sha512-SKr5Zm6k2SxrRBW2gqJAsTag4KacVzuVG3sTCD5P5BZLYn5OvknwSeky4tg/wzCodWp20wf89hWyET4E0iKExg==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.4.tgz#2b1468bf05fc505d11d5c0253a782a328088d283" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.5.tgz#97b86ea4daf4392a1067e2a7e7c03b4c381ccc82"
integrity sha512-QveGyyMKAMnY48+AsUqkB/LnqtnTc3Fd5m1wLPNVF+P0j6CaaETmfJNc0xw+WYF14r+NC8K4PeC58z3SYMGlLw== integrity sha512-lR3XbbNct+8QH1dRhED5s/CHCgkANVyNBrWCQbo4BwBFJ27d3wuJDVt39VxQUsgNfxEmyoJdVZNDRUKDv6fTOw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui" "~8.2.0-rc.5"
"@abp/bootstrap" "~8.2.0-rc.4" "@abp/bootstrap" "~8.2.0-rc.5"
"@abp/bootstrap-datepicker" "~8.2.0-rc.4" "@abp/bootstrap-datepicker" "~8.2.0-rc.5"
"@abp/bootstrap-daterangepicker" "~8.2.0-rc.4" "@abp/bootstrap-daterangepicker" "~8.2.0-rc.5"
"@abp/datatables.net-bs5" "~8.2.0-rc.4" "@abp/datatables.net-bs5" "~8.2.0-rc.5"
"@abp/font-awesome" "~8.2.0-rc.4" "@abp/font-awesome" "~8.2.0-rc.5"
"@abp/jquery-form" "~8.2.0-rc.4" "@abp/jquery-form" "~8.2.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~8.2.0-rc.4" "@abp/jquery-validation-unobtrusive" "~8.2.0-rc.5"
"@abp/lodash" "~8.2.0-rc.4" "@abp/lodash" "~8.2.0-rc.5"
"@abp/luxon" "~8.2.0-rc.4" "@abp/luxon" "~8.2.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.4" "@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.5"
"@abp/moment" "~8.2.0-rc.4" "@abp/moment" "~8.2.0-rc.5"
"@abp/select2" "~8.2.0-rc.4" "@abp/select2" "~8.2.0-rc.5"
"@abp/sweetalert2" "~8.2.0-rc.4" "@abp/sweetalert2" "~8.2.0-rc.5"
"@abp/timeago" "~8.2.0-rc.4" "@abp/timeago" "~8.2.0-rc.5"
"@abp/toastr" "~8.2.0-rc.4" "@abp/toastr" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.4.tgz#5e4613f506a02d45d7adcee1060032774e635fe5" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.5.tgz#4a845ebd4b6465b9ac04641d7479b449ca9e1c5f"
integrity sha512-rr3BE6RhimlHcNv0HKT3xIi/+6Sq5TSqRDvmiFqa7bvxemKMstHiEa2lxpx5XP9CPpV9gNzjC/NV+TQy4YDIqg== integrity sha512-l3brGHAD2jnlAWwITGNAY5zOtmc0WItVabYCTvKrYyNuKIPEtW9getUNFp9BFMT9x0KZiGnkkrRkvxH+DzIcug==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
"@abp/bootstrap-datepicker@~8.2.0-rc.4": "@abp/bootstrap-datepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.4.tgz#7f6b7b0da2c8fd46dc08b1976c57b80b65069246" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.5.tgz#0e8755a51d7a691837951f7a071a9e59a2e9e6cf"
integrity sha512-+Ylw8PFuAmpza714vQPjfU/lCOS2NsUX2cGp12Yyy4fS36udPCa/HYWTVdpH36OGae1dV/GzrfgnlZsCvUNhBA== integrity sha512-bLt8l6kYbVblThd2iuXcp6Ydss8TefpnZXHyXrQCxZGmVb79I/vf48CekJo1OWY/WcyEi/bm0m4LEI8Q0Y/LZQ==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap-daterangepicker@~8.2.0-rc.4": "@abp/bootstrap-daterangepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.4.tgz#579e8a4fd9d235385514da3f2ca73283294a78e3" resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.5.tgz#e37792f24c3c8a8643e5ba5744967505e54f836c"
integrity sha512-KIinwEwkCzlYd7gDJt3htgflfrdWnyW4fr/V6GVi2EGxK6UA5HWMRG8MkvUKXmJ4rCHfEUdpWeGBXLbPR8R4eQ== integrity sha512-dN02S1g9sVgACMz+A5FJw0uz4u5lXTFd/7xjE+cmhj0p5AcGvDD3gTbes6d3QNKiwvsPge063lG9pisdn3uEjg==
dependencies: dependencies:
bootstrap-daterangepicker "^3.1.0" bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.2.0-rc.4": "@abp/bootstrap@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.4.tgz#dc08a0db67a2a652c03087d299da1abfab677ebf" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.5.tgz#1acc191f8156d81e1794bc161bfb394ae8f7372e"
integrity sha512-wwZQk2XU6puEzBJ7W+80Oh/8z6n+DNc2YJnCnJNPbURgclMsN4v3/WJ2iKlO4g0fOkepvlgYkbYWPf+pusxSCQ== integrity sha512-FacgSrDlS3QSR+5WdOy06Qw0qF7OoqoBwAGqro2WOfY5sFR5OwEiqXHXUF95+a/q9B9NuYKXBjBfOPhljdiuuA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
bootstrap "^5.1.3" bootstrap "^5.1.3"
"@abp/clipboard@~8.2.0-rc.4": "@abp/clipboard@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.0-rc.4.tgz#c3d20d642765dc235749d4f95f599cb97f23325d" resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.0-rc.5.tgz#5cec3d9c89bdad8d50f41807b3be68d4cdecb003"
integrity sha512-w94YGLT/UVn1haLGlH8zOcgrCS64OrnVlzh3QXps+8m4S9g7KDeVk3g4ju/VUao2YKCHmRJ3uRhOGCb58of1iw== integrity sha512-cBaMy8A1CIU00X6SoGyuMTVf6z9iyEaR6smVRWCVmkf2VayAHFES981+iE+VmT2bezgbCidA2GXtkBZ/kunbJg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
clipboard "^2.0.8" clipboard "^2.0.8"
"@abp/core@~8.2.0-rc.4": "@abp/core@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.4.tgz#bf6b343ab43468ca88cdb4697caf25d65aa2c269" resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.5.tgz#67eb75df046f8997f6af14e86bf8dbf249388a8d"
integrity sha512-rGUDzLIiUJZ+7ZgzOGXxzc4k//9EBjVY4P4kO0XKCOEv08YwsUJmTzddsiMHZLIqRJ2wdT1UiH7PrcolBiW1UQ== integrity sha512-XVunQMbK/MApkfnpL+8WsVqsJxARBl6W0TZwKfPyfm1QzPWE75P4oW3CIdNis0+Ob5HfhSFFp78tVrbSoEdzYQ==
dependencies: dependencies:
"@abp/utils" "~8.2.0-rc.4" "@abp/utils" "~8.2.0-rc.5"
"@abp/datatables.net-bs5@~8.2.0-rc.4": "@abp/datatables.net-bs5@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.4.tgz#869021a6639d765abb645a5de7501881b67e7095" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.5.tgz#fe04af4b14530545a05c4c58361aadfdddd8e8c2"
integrity sha512-CdYfn4qhB/KdTYfOrAsUSPtw8AGAbZHOTc4EyWAmxDKFCFyakj27+uoV/Stgs25nCaAXn1JHysfOxoNkP1ikyg== integrity sha512-yZKC111JVxcOkDz/WxJyQ0lw3JpbBBWr21LVNjyhEiN62w8tJN1Gwo7CjL+7WFm7RPnAUUf/qwitRWmWl7M4YA==
dependencies: dependencies:
"@abp/datatables.net" "~8.2.0-rc.4" "@abp/datatables.net" "~8.2.0-rc.5"
datatables.net-bs5 "^1.11.4" datatables.net-bs5 "^1.11.4"
"@abp/datatables.net@~8.2.0-rc.4": "@abp/datatables.net@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.4.tgz#4f0e612a11813f38331aae221c342efc4443138d" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.5.tgz#94e4b933750332732eeef02119a6cdfca67811e7"
integrity sha512-omEYXlB/OzUGmvTy7k7rhZjWtXILpl7idLwV1yXzJUkdjLjaBzIgrbWj/80YAI5K7MdpKE0/pdPnORX6G5ij9Q== integrity sha512-IAXbC29eiHvA3unVMsFh2sNfiw+Jlgah0D++IUKOlz1eAzHMrpwP5KE4jmF6GESF7Al95NkgqH7cd6MUst+UlA==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
datatables.net "^1.11.4" datatables.net "^1.11.4"
"@abp/font-awesome@~8.2.0-rc.4": "@abp/font-awesome@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.4.tgz#5c977e54c428e80af2a93166e968ec7635b0694d" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.5.tgz#5ae19305a373a6dd083944bd825ccea84aadf40b"
integrity sha512-zyQwZhhOgKi6JLWbkI+iycwS1lcCx/tvn+AskQSdV2+ycnrcjm9TMWmWosAGwS6VW9demRamuegUNOgiVpy/SA== integrity sha512-VbcM80e9KrZzY6TJ9l/eW42CTpdQ0eBr5gOEW+/UWGTRalCLdGve9YVJZJA55bD1VtcgaR1sV342jw2B1XeN8w==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
"@fortawesome/fontawesome-free" "^6.5.1" "@fortawesome/fontawesome-free" "^6.5.1"
"@abp/jquery-form@~8.2.0-rc.4": "@abp/jquery-form@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.4.tgz#3ef39f9f716ff17b34d61eeb3c234ed3867b91da" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.5.tgz#b955fe2c226f1f35a3736aa3b2170f265a797552"
integrity sha512-nD5c2g4aPlDSggoR2lJ0Zd9Jg/2yrpVKnJqNuvx7DIdxPIZed2LL5ONaOtO8pLTsKqh5ua1UsqgsyfJ/mb9T1w== integrity sha512-M9fUUYywljudem/K7aYlcIG2W+KTzUJPviSeOLo5KNxvVrScWr+Jf4M8Nbj6uWX1saYWmm5kYnfsDs+nOUcmDg==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.2.0-rc.4": "@abp/jquery-validation-unobtrusive@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.4.tgz#5124068f01db8c0e4365594fefb236f91bd60e8d" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.5.tgz#c790dc1b707ee7d24fe99c2b7be6bc558af09667"
integrity sha512-JKtZoeSSbSGbTl28ZEHvqCvC2cCX3aOV7PHKhpIzQSfVK22Uo3swsc2bv3sH2HdxNi3jWAGcd7YUG093STMm3Q== integrity sha512-sUkfb17cR2zM669U83R8dviv+p+uGNl5nmOV0AP4ch6CzLfnTOYzKsqV7ESGVxqB8oVHO/Wnr8sXaaLdsoQzJw==
dependencies: dependencies:
"@abp/jquery-validation" "~8.2.0-rc.4" "@abp/jquery-validation" "~8.2.0-rc.5"
jquery-validation-unobtrusive "^3.2.12" jquery-validation-unobtrusive "^3.2.12"
"@abp/jquery-validation@~8.2.0-rc.4": "@abp/jquery-validation@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.4.tgz#95540b7a6ef1f27b511e42b03cdf0c1c364ce8df" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.5.tgz#294254556e804d641d3bf4ea50d1c3eb42f191d1"
integrity sha512-fN2ZJ0eCjQ5nu5fdwKx0cmGTWZyzltwrfhnI0JG27EsBP8EtyO8aWHZEFKgL+vXTy07LraTJD1KSpIIZSsrHVw== integrity sha512-C7sOuSShkX5Ba6LiSBGuxlrORcxiYczZtsxyjRZzNzATYwEBHcLqMxDvgAsWeWtvtkMotkbB2k99vD93nlGuCQ==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-validation "^1.19.3" jquery-validation "^1.19.3"
"@abp/jquery@~8.2.0-rc.4": "@abp/jquery@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.4.tgz#327452ce3f49f6a9fe32a1934a6f347e2a0a309b" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.5.tgz#9b01156a80d8da6407abb6d51541cb89624cb906"
integrity sha512-JYeQwpa671AyYf7sv+XgCaie2mOjWCDZYlFHEqH4whjTqT5SU8WwSkhux+/KLtBImSeQyTzyup7CuQYWBuk15w== integrity sha512-KcRVhxEmUuJHd4JNBSeJV+3Ush4w9ambKxwPi3+q1fqdePekrLk9jKNud5HkP6JredBoESJ+TkeVFFQ5HnYPVg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~8.2.0-rc.4": "@abp/lodash@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.4.tgz#229be25a0e09f4e1b74b7e064113c3a1347d28c7" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.5.tgz#b6fa8754258dd2db59b0df65fb9f7d90c8611af6"
integrity sha512-zhLlPlhrCZNngx2ns3reKG2Nmec8g2KWbN55Z1gx0XYqaymT/0zuzfkfPBdpuoyIqrXcPJL0aK21SH4Tu8LjUA== integrity sha512-LvK03DSk9lDNGEFrjMdiaAkaH58ll+PIn663KJk0kVZvtNLy/egCOMCc6EBuE5DUsjwebLi6YZYzgRQRRKirgw==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
lodash "^4.17.21" lodash "^4.17.21"
"@abp/luxon@~8.2.0-rc.4": "@abp/luxon@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.4.tgz#fdb6c8d13be6ded1d531e2d66b532d0453597c01" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.5.tgz#e4300d1deebab16432737c831cfae0025b7c5891"
integrity sha512-3iat30cVfmymoW208PjCLlrKO6VTuU8lgk/Vg0XnaX/DbNldNhBUHHzEgC9TiHLUejBSd5cunz88rhFuODz14Q== integrity sha512-UdAToIlS0CwmavErMtd5dwyssKNPa6oqlHrll5h7T26nHDPEdXzSi9rP8RvwqBkrt+BFPMctRSv6DYk8OwoWzA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
luxon "^2.3.0" luxon "^2.3.0"
"@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.4": "@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.4.tgz#1eb1621edd8559b43734590f123c331a360a2d93" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.5.tgz#8f39683e55fbc5487de08b9209a552cf32ea8087"
integrity sha512-OoqjoW1e5U/J77zr6A5DPyWha/b4UeTWaAXtl8xigJmhcDhvKe0jfvE33iHgZupFWiGu354mICNT+rQ1S2wMyA== integrity sha512-e20kLUvnu6tD5GBjzGLQjTMeyeco4q5wO4H4mMuahJpCHue+EUrL0tT1IbWiE+eEmbePw/lAn7Yfhfwjq/+Eeg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.2.0-rc.4": "@abp/moment@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.4.tgz#97eef0f868ad95057493e97f386c791871c063c3" resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.5.tgz#e38c7e66ee383a986c7972f4ba2b19d79a43f60e"
integrity sha512-q06AsfUbut7Rxgp0JMlN0dvP7C1QRMfPNO+95ZXEEnqDDlajqaIt4X/7l1gb/Iz+7yc5XVT7FJdmT+bR22etGA== integrity sha512-F//4TZySaFBTfWgBxzwTFLeStrS0nklmKcTMU+MOtb/7Zx3QtscJpNm4CmxiBpB8pLwK8xiJQGoiuMQdoTuq+g==
dependencies: dependencies:
moment "^2.9.0" moment "^2.9.0"
"@abp/prismjs@~8.2.0-rc.4": "@abp/prismjs@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.0-rc.4.tgz#f6df729333d4dc934c3978c29e62dddf6a22c19a" resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.0-rc.5.tgz#7a7428bb2f118cef5121a196bc45cc5d1a5a8e93"
integrity sha512-+fLF7ndhgV9v3zcWFoNSR0kPasIcagJC6FT90ALWs2XccBtjAYOm9/365DK5lyDUh0ynHx9fBgDdCdIX0Zv9RA== integrity sha512-lNPqRvisf8jAxyL/05ppH26ZH4DEEzZUKqO7zqqS+yl7sBTpR/Wh8xX09spQl+wBQTLWAz2z+MouBZnMQIYKjg==
dependencies: dependencies:
"@abp/clipboard" "~8.2.0-rc.4" "@abp/clipboard" "~8.2.0-rc.5"
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
prismjs "^1.26.0" prismjs "^1.26.0"
"@abp/select2@~8.2.0-rc.4": "@abp/select2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.4.tgz#085ec0f915099201b75cbb7b4bfe6826039f542d" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.5.tgz#5fc1dfa4bb871961db0ce9eb68a2c655c38b32d0"
integrity sha512-DrRNVxB0UcRCBhYkkp9TTmu3SDwaJ6kR3WCH7zMZgjYx/K250ojcuIot98fzuecuT3Te3qiGxKwBIclr2Yt/aw== integrity sha512-fT5L+mgiEOBtf2mmXNv6GtXVNjv22qQlgWp1UjI7c0jLtNPHa7P8idVTaP3g6d8b7VCP5zxIUGgjf6sZMxhADg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert2@~8.2.0-rc.4": "@abp/sweetalert2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.4.tgz#6866295a91602167cf314f1eb3bc315825cc0cb3" resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.5.tgz#502d6dbaf2c5296f67722e085e52dd0fe62e8dde"
integrity sha512-3NdBP/4ZhkroWrCVyfHoc0PM6ZJD0IhqXkPO/bMDTjX8scilU85SkC2iAnReD6BoLF6ywriMpozHiU2Ax8aH2Q== integrity sha512-S0LTMU0a9SPdSA3ezEpo03ZGfrr7XtouEs0O5c4fA0kWYsddNkalighy3CYTgZZwaR9oWNnY6t4pyka3WXAaqg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
sweetalert2 "^11.3.6" sweetalert2 "^11.3.6"
"@abp/timeago@~8.2.0-rc.4": "@abp/timeago@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.4.tgz#777793699f0271e81b3fe96d46066a30925ed298" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.5.tgz#8bd78f2ee6b27b8ffd77e75a2851b61013e481ee"
integrity sha512-TfxUi1gn0dPuWFYCwo+g3xh4kkCo1otbvoUQOvrHp6VuQdHbXtSz0kP8VBPGKtVtlRsNe91+gDkv7n8njwrQ9g== integrity sha512-eLG9WFtP1dOoYHaNxyV8gOx1xnKmqSTwgviTU45qUFSNsgQHH1n0bpBxUXSSvaFw5mWRbF3R/JJQHql+Dl6Cow==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~8.2.0-rc.4": "@abp/toastr@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.4.tgz#5edfc10d6123219cc86286ed8b1249af5dbadfde" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.5.tgz#baecda4e6fed5676f58de2228bf8d1c6ae66d49e"
integrity sha512-QDJXroe1Fp2VEWU0Yza/L+DU9R0ZDBw0RcopRcliwAm5RgsVVaaxHZ+jO7LLDfP8JQ6Pi0wTamhKwrfglnG7Ww== integrity sha512-y7aOY1LF62yRwXRSrvimtqIilrsOgSAM8lHcp2RogZAFdmw7yU1R5a6fJlLDGeRBIgjdcIlSpaOuoi6T2hCjFw==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@~8.2.0-rc.4": "@abp/utils@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.4.tgz#be59dd4b5dfc085b88528639047699a9e5486e81" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.5.tgz#526d64aa3e059d2f6e595b22e35dda2d652377e4"
integrity sha512-imIFmlP0gY+rXFbwufo8jMzcmEuz/6uKr/e8/bW4bOhPDD65go/3TTVkNLr0hzB9qSahZG/LGu2eDFTqlowlrg== integrity sha512-ZU7jHFpDh7jDYgCrX6aXqy/v4LrMGgYJN+siyWUMpVddg2lTTO2MsxI+KmSxJwD7H01Mqj1sZ+LBAOVxGR3hsw==
dependencies: dependencies:
just-compare "^2.3.0" just-compare "^2.3.0"

1
modules/blogging/app/Volo.BloggingTestApp/Program.cs

@ -16,6 +16,7 @@ namespace Volo.BloggingTestApp
.MinimumLevel.Override("Microsoft", LogEventLevel.Information) .MinimumLevel.Override("Microsoft", LogEventLevel.Information)
.Enrich.FromLogContext() .Enrich.FromLogContext()
.WriteTo.File("Logs/logs.txt") .WriteTo.File("Logs/logs.txt")
.WriteTo.Console()
.CreateLogger(); .CreateLogger();
try try

4
modules/blogging/app/Volo.BloggingTestApp/package.json

@ -3,7 +3,7 @@
"name": "volo.blogtestapp", "name": "volo.blogtestapp",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.4", "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.5",
"@abp/blogging": "~8.2.0-rc.4" "@abp/blogging": "~8.2.0-rc.5"
} }
} }

318
modules/blogging/app/Volo.BloggingTestApp/yarn.lock

@ -2,237 +2,237 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.4.tgz#dc9e9e6541694531726127e2e387156a24dd7f9e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.5.tgz#5cc3231d27e9e12e6fdc3e4fc5eb3e6f2019cf13"
integrity sha512-Ixs3yr5fHkB1h8PuuJdPiY0uDf+Dq9jUdbaHsoJmaYRdOSqhLDpNkyAqFFrqDmoEmZvmrThCupt5ZSg9laQ8yw== integrity sha512-SKr5Zm6k2SxrRBW2gqJAsTag4KacVzuVG3sTCD5P5BZLYn5OvknwSeky4tg/wzCodWp20wf89hWyET4E0iKExg==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.4.tgz#2b1468bf05fc505d11d5c0253a782a328088d283" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.5.tgz#97b86ea4daf4392a1067e2a7e7c03b4c381ccc82"
integrity sha512-QveGyyMKAMnY48+AsUqkB/LnqtnTc3Fd5m1wLPNVF+P0j6CaaETmfJNc0xw+WYF14r+NC8K4PeC58z3SYMGlLw== integrity sha512-lR3XbbNct+8QH1dRhED5s/CHCgkANVyNBrWCQbo4BwBFJ27d3wuJDVt39VxQUsgNfxEmyoJdVZNDRUKDv6fTOw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui" "~8.2.0-rc.5"
"@abp/bootstrap" "~8.2.0-rc.4" "@abp/bootstrap" "~8.2.0-rc.5"
"@abp/bootstrap-datepicker" "~8.2.0-rc.4" "@abp/bootstrap-datepicker" "~8.2.0-rc.5"
"@abp/bootstrap-daterangepicker" "~8.2.0-rc.4" "@abp/bootstrap-daterangepicker" "~8.2.0-rc.5"
"@abp/datatables.net-bs5" "~8.2.0-rc.4" "@abp/datatables.net-bs5" "~8.2.0-rc.5"
"@abp/font-awesome" "~8.2.0-rc.4" "@abp/font-awesome" "~8.2.0-rc.5"
"@abp/jquery-form" "~8.2.0-rc.4" "@abp/jquery-form" "~8.2.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~8.2.0-rc.4" "@abp/jquery-validation-unobtrusive" "~8.2.0-rc.5"
"@abp/lodash" "~8.2.0-rc.4" "@abp/lodash" "~8.2.0-rc.5"
"@abp/luxon" "~8.2.0-rc.4" "@abp/luxon" "~8.2.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.4" "@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.5"
"@abp/moment" "~8.2.0-rc.4" "@abp/moment" "~8.2.0-rc.5"
"@abp/select2" "~8.2.0-rc.4" "@abp/select2" "~8.2.0-rc.5"
"@abp/sweetalert2" "~8.2.0-rc.4" "@abp/sweetalert2" "~8.2.0-rc.5"
"@abp/timeago" "~8.2.0-rc.4" "@abp/timeago" "~8.2.0-rc.5"
"@abp/toastr" "~8.2.0-rc.4" "@abp/toastr" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.4.tgz#5e4613f506a02d45d7adcee1060032774e635fe5" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.5.tgz#4a845ebd4b6465b9ac04641d7479b449ca9e1c5f"
integrity sha512-rr3BE6RhimlHcNv0HKT3xIi/+6Sq5TSqRDvmiFqa7bvxemKMstHiEa2lxpx5XP9CPpV9gNzjC/NV+TQy4YDIqg== integrity sha512-l3brGHAD2jnlAWwITGNAY5zOtmc0WItVabYCTvKrYyNuKIPEtW9getUNFp9BFMT9x0KZiGnkkrRkvxH+DzIcug==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
"@abp/blogging@~8.2.0-rc.4": "@abp/blogging@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.2.0-rc.4.tgz#3d33c0e17411307f2fad9b84763bae2b29b903f2" resolved "https://registry.yarnpkg.com/@abp/blogging/-/blogging-8.2.0-rc.5.tgz#821d5b01862d896591892e97e435adadcda07108"
integrity sha512-uzhuHLk4GceYEnc2auIMC79gsncVplTCA2RbYCKs1aKC45/FYhOjpOke5fBsYiRrvvK5ZYVkDLKb/GvXxTnX0w== integrity sha512-l6tbuaAkFTLv8BMcLFMLUE4ioYyuUmQecmnadDTE47DxZskIasyk7gvbpx8qDYwXr5IHAXgA7A7tTZX5K+tJAw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.5"
"@abp/owl.carousel" "~8.2.0-rc.4" "@abp/owl.carousel" "~8.2.0-rc.5"
"@abp/prismjs" "~8.2.0-rc.4" "@abp/prismjs" "~8.2.0-rc.5"
"@abp/tui-editor" "~8.2.0-rc.4" "@abp/tui-editor" "~8.2.0-rc.5"
"@abp/bootstrap-datepicker@~8.2.0-rc.4": "@abp/bootstrap-datepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.4.tgz#7f6b7b0da2c8fd46dc08b1976c57b80b65069246" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.5.tgz#0e8755a51d7a691837951f7a071a9e59a2e9e6cf"
integrity sha512-+Ylw8PFuAmpza714vQPjfU/lCOS2NsUX2cGp12Yyy4fS36udPCa/HYWTVdpH36OGae1dV/GzrfgnlZsCvUNhBA== integrity sha512-bLt8l6kYbVblThd2iuXcp6Ydss8TefpnZXHyXrQCxZGmVb79I/vf48CekJo1OWY/WcyEi/bm0m4LEI8Q0Y/LZQ==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap-daterangepicker@~8.2.0-rc.4": "@abp/bootstrap-daterangepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.4.tgz#579e8a4fd9d235385514da3f2ca73283294a78e3" resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.5.tgz#e37792f24c3c8a8643e5ba5744967505e54f836c"
integrity sha512-KIinwEwkCzlYd7gDJt3htgflfrdWnyW4fr/V6GVi2EGxK6UA5HWMRG8MkvUKXmJ4rCHfEUdpWeGBXLbPR8R4eQ== integrity sha512-dN02S1g9sVgACMz+A5FJw0uz4u5lXTFd/7xjE+cmhj0p5AcGvDD3gTbes6d3QNKiwvsPge063lG9pisdn3uEjg==
dependencies: dependencies:
bootstrap-daterangepicker "^3.1.0" bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.2.0-rc.4": "@abp/bootstrap@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.4.tgz#dc08a0db67a2a652c03087d299da1abfab677ebf" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.5.tgz#1acc191f8156d81e1794bc161bfb394ae8f7372e"
integrity sha512-wwZQk2XU6puEzBJ7W+80Oh/8z6n+DNc2YJnCnJNPbURgclMsN4v3/WJ2iKlO4g0fOkepvlgYkbYWPf+pusxSCQ== integrity sha512-FacgSrDlS3QSR+5WdOy06Qw0qF7OoqoBwAGqro2WOfY5sFR5OwEiqXHXUF95+a/q9B9NuYKXBjBfOPhljdiuuA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
bootstrap "^5.1.3" bootstrap "^5.1.3"
"@abp/clipboard@~8.2.0-rc.4": "@abp/clipboard@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.0-rc.4.tgz#c3d20d642765dc235749d4f95f599cb97f23325d" resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.0-rc.5.tgz#5cec3d9c89bdad8d50f41807b3be68d4cdecb003"
integrity sha512-w94YGLT/UVn1haLGlH8zOcgrCS64OrnVlzh3QXps+8m4S9g7KDeVk3g4ju/VUao2YKCHmRJ3uRhOGCb58of1iw== integrity sha512-cBaMy8A1CIU00X6SoGyuMTVf6z9iyEaR6smVRWCVmkf2VayAHFES981+iE+VmT2bezgbCidA2GXtkBZ/kunbJg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
clipboard "^2.0.8" clipboard "^2.0.8"
"@abp/core@~8.2.0-rc.4": "@abp/core@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.4.tgz#bf6b343ab43468ca88cdb4697caf25d65aa2c269" resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.5.tgz#67eb75df046f8997f6af14e86bf8dbf249388a8d"
integrity sha512-rGUDzLIiUJZ+7ZgzOGXxzc4k//9EBjVY4P4kO0XKCOEv08YwsUJmTzddsiMHZLIqRJ2wdT1UiH7PrcolBiW1UQ== integrity sha512-XVunQMbK/MApkfnpL+8WsVqsJxARBl6W0TZwKfPyfm1QzPWE75P4oW3CIdNis0+Ob5HfhSFFp78tVrbSoEdzYQ==
dependencies: dependencies:
"@abp/utils" "~8.2.0-rc.4" "@abp/utils" "~8.2.0-rc.5"
"@abp/datatables.net-bs5@~8.2.0-rc.4": "@abp/datatables.net-bs5@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.4.tgz#869021a6639d765abb645a5de7501881b67e7095" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.5.tgz#fe04af4b14530545a05c4c58361aadfdddd8e8c2"
integrity sha512-CdYfn4qhB/KdTYfOrAsUSPtw8AGAbZHOTc4EyWAmxDKFCFyakj27+uoV/Stgs25nCaAXn1JHysfOxoNkP1ikyg== integrity sha512-yZKC111JVxcOkDz/WxJyQ0lw3JpbBBWr21LVNjyhEiN62w8tJN1Gwo7CjL+7WFm7RPnAUUf/qwitRWmWl7M4YA==
dependencies: dependencies:
"@abp/datatables.net" "~8.2.0-rc.4" "@abp/datatables.net" "~8.2.0-rc.5"
datatables.net-bs5 "^1.11.4" datatables.net-bs5 "^1.11.4"
"@abp/datatables.net@~8.2.0-rc.4": "@abp/datatables.net@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.4.tgz#4f0e612a11813f38331aae221c342efc4443138d" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.5.tgz#94e4b933750332732eeef02119a6cdfca67811e7"
integrity sha512-omEYXlB/OzUGmvTy7k7rhZjWtXILpl7idLwV1yXzJUkdjLjaBzIgrbWj/80YAI5K7MdpKE0/pdPnORX6G5ij9Q== integrity sha512-IAXbC29eiHvA3unVMsFh2sNfiw+Jlgah0D++IUKOlz1eAzHMrpwP5KE4jmF6GESF7Al95NkgqH7cd6MUst+UlA==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
datatables.net "^1.11.4" datatables.net "^1.11.4"
"@abp/font-awesome@~8.2.0-rc.4": "@abp/font-awesome@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.4.tgz#5c977e54c428e80af2a93166e968ec7635b0694d" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.5.tgz#5ae19305a373a6dd083944bd825ccea84aadf40b"
integrity sha512-zyQwZhhOgKi6JLWbkI+iycwS1lcCx/tvn+AskQSdV2+ycnrcjm9TMWmWosAGwS6VW9demRamuegUNOgiVpy/SA== integrity sha512-VbcM80e9KrZzY6TJ9l/eW42CTpdQ0eBr5gOEW+/UWGTRalCLdGve9YVJZJA55bD1VtcgaR1sV342jw2B1XeN8w==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
"@fortawesome/fontawesome-free" "^6.5.1" "@fortawesome/fontawesome-free" "^6.5.1"
"@abp/jquery-form@~8.2.0-rc.4": "@abp/jquery-form@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.4.tgz#3ef39f9f716ff17b34d61eeb3c234ed3867b91da" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.5.tgz#b955fe2c226f1f35a3736aa3b2170f265a797552"
integrity sha512-nD5c2g4aPlDSggoR2lJ0Zd9Jg/2yrpVKnJqNuvx7DIdxPIZed2LL5ONaOtO8pLTsKqh5ua1UsqgsyfJ/mb9T1w== integrity sha512-M9fUUYywljudem/K7aYlcIG2W+KTzUJPviSeOLo5KNxvVrScWr+Jf4M8Nbj6uWX1saYWmm5kYnfsDs+nOUcmDg==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.2.0-rc.4": "@abp/jquery-validation-unobtrusive@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.4.tgz#5124068f01db8c0e4365594fefb236f91bd60e8d" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.5.tgz#c790dc1b707ee7d24fe99c2b7be6bc558af09667"
integrity sha512-JKtZoeSSbSGbTl28ZEHvqCvC2cCX3aOV7PHKhpIzQSfVK22Uo3swsc2bv3sH2HdxNi3jWAGcd7YUG093STMm3Q== integrity sha512-sUkfb17cR2zM669U83R8dviv+p+uGNl5nmOV0AP4ch6CzLfnTOYzKsqV7ESGVxqB8oVHO/Wnr8sXaaLdsoQzJw==
dependencies: dependencies:
"@abp/jquery-validation" "~8.2.0-rc.4" "@abp/jquery-validation" "~8.2.0-rc.5"
jquery-validation-unobtrusive "^3.2.12" jquery-validation-unobtrusive "^3.2.12"
"@abp/jquery-validation@~8.2.0-rc.4": "@abp/jquery-validation@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.4.tgz#95540b7a6ef1f27b511e42b03cdf0c1c364ce8df" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.5.tgz#294254556e804d641d3bf4ea50d1c3eb42f191d1"
integrity sha512-fN2ZJ0eCjQ5nu5fdwKx0cmGTWZyzltwrfhnI0JG27EsBP8EtyO8aWHZEFKgL+vXTy07LraTJD1KSpIIZSsrHVw== integrity sha512-C7sOuSShkX5Ba6LiSBGuxlrORcxiYczZtsxyjRZzNzATYwEBHcLqMxDvgAsWeWtvtkMotkbB2k99vD93nlGuCQ==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-validation "^1.19.3" jquery-validation "^1.19.3"
"@abp/jquery@~8.2.0-rc.4": "@abp/jquery@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.4.tgz#327452ce3f49f6a9fe32a1934a6f347e2a0a309b" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.5.tgz#9b01156a80d8da6407abb6d51541cb89624cb906"
integrity sha512-JYeQwpa671AyYf7sv+XgCaie2mOjWCDZYlFHEqH4whjTqT5SU8WwSkhux+/KLtBImSeQyTzyup7CuQYWBuk15w== integrity sha512-KcRVhxEmUuJHd4JNBSeJV+3Ush4w9ambKxwPi3+q1fqdePekrLk9jKNud5HkP6JredBoESJ+TkeVFFQ5HnYPVg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~8.2.0-rc.4": "@abp/lodash@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.4.tgz#229be25a0e09f4e1b74b7e064113c3a1347d28c7" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.5.tgz#b6fa8754258dd2db59b0df65fb9f7d90c8611af6"
integrity sha512-zhLlPlhrCZNngx2ns3reKG2Nmec8g2KWbN55Z1gx0XYqaymT/0zuzfkfPBdpuoyIqrXcPJL0aK21SH4Tu8LjUA== integrity sha512-LvK03DSk9lDNGEFrjMdiaAkaH58ll+PIn663KJk0kVZvtNLy/egCOMCc6EBuE5DUsjwebLi6YZYzgRQRRKirgw==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
lodash "^4.17.21" lodash "^4.17.21"
"@abp/luxon@~8.2.0-rc.4": "@abp/luxon@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.4.tgz#fdb6c8d13be6ded1d531e2d66b532d0453597c01" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.5.tgz#e4300d1deebab16432737c831cfae0025b7c5891"
integrity sha512-3iat30cVfmymoW208PjCLlrKO6VTuU8lgk/Vg0XnaX/DbNldNhBUHHzEgC9TiHLUejBSd5cunz88rhFuODz14Q== integrity sha512-UdAToIlS0CwmavErMtd5dwyssKNPa6oqlHrll5h7T26nHDPEdXzSi9rP8RvwqBkrt+BFPMctRSv6DYk8OwoWzA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
luxon "^2.3.0" luxon "^2.3.0"
"@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.4": "@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.4.tgz#1eb1621edd8559b43734590f123c331a360a2d93" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.5.tgz#8f39683e55fbc5487de08b9209a552cf32ea8087"
integrity sha512-OoqjoW1e5U/J77zr6A5DPyWha/b4UeTWaAXtl8xigJmhcDhvKe0jfvE33iHgZupFWiGu354mICNT+rQ1S2wMyA== integrity sha512-e20kLUvnu6tD5GBjzGLQjTMeyeco4q5wO4H4mMuahJpCHue+EUrL0tT1IbWiE+eEmbePw/lAn7Yfhfwjq/+Eeg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.2.0-rc.4": "@abp/moment@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.4.tgz#97eef0f868ad95057493e97f386c791871c063c3" resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.5.tgz#e38c7e66ee383a986c7972f4ba2b19d79a43f60e"
integrity sha512-q06AsfUbut7Rxgp0JMlN0dvP7C1QRMfPNO+95ZXEEnqDDlajqaIt4X/7l1gb/Iz+7yc5XVT7FJdmT+bR22etGA== integrity sha512-F//4TZySaFBTfWgBxzwTFLeStrS0nklmKcTMU+MOtb/7Zx3QtscJpNm4CmxiBpB8pLwK8xiJQGoiuMQdoTuq+g==
dependencies: dependencies:
moment "^2.9.0" moment "^2.9.0"
"@abp/owl.carousel@~8.2.0-rc.4": "@abp/owl.carousel@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.2.0-rc.4.tgz#05d8f959873a9813f7a358d376000d8eb36b2507" resolved "https://registry.yarnpkg.com/@abp/owl.carousel/-/owl.carousel-8.2.0-rc.5.tgz#4f0dc2ebf8aa4120ae33136fc9fa20544ce36f73"
integrity sha512-uWkUD8ZknBSrnAekFhE/1D+ttIn/x9zZPTvSWiKXX8uN3hiiAICtnm5ONc+Io8BPSYPkRycFL+aIZAr73UgBRQ== integrity sha512-eaYUpSsLvlmAovXPtmXHiP11xFkOgmiw6fbIl8JpyTRn/xS9I5wNVawr6vVXbL6JK90H7ZbKI/GY0KzsbDeWDQ==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
owl.carousel "^2.3.4" owl.carousel "^2.3.4"
"@abp/prismjs@~8.2.0-rc.4": "@abp/prismjs@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.0-rc.4.tgz#f6df729333d4dc934c3978c29e62dddf6a22c19a" resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.0-rc.5.tgz#7a7428bb2f118cef5121a196bc45cc5d1a5a8e93"
integrity sha512-+fLF7ndhgV9v3zcWFoNSR0kPasIcagJC6FT90ALWs2XccBtjAYOm9/365DK5lyDUh0ynHx9fBgDdCdIX0Zv9RA== integrity sha512-lNPqRvisf8jAxyL/05ppH26ZH4DEEzZUKqO7zqqS+yl7sBTpR/Wh8xX09spQl+wBQTLWAz2z+MouBZnMQIYKjg==
dependencies: dependencies:
"@abp/clipboard" "~8.2.0-rc.4" "@abp/clipboard" "~8.2.0-rc.5"
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
prismjs "^1.26.0" prismjs "^1.26.0"
"@abp/select2@~8.2.0-rc.4": "@abp/select2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.4.tgz#085ec0f915099201b75cbb7b4bfe6826039f542d" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.5.tgz#5fc1dfa4bb871961db0ce9eb68a2c655c38b32d0"
integrity sha512-DrRNVxB0UcRCBhYkkp9TTmu3SDwaJ6kR3WCH7zMZgjYx/K250ojcuIot98fzuecuT3Te3qiGxKwBIclr2Yt/aw== integrity sha512-fT5L+mgiEOBtf2mmXNv6GtXVNjv22qQlgWp1UjI7c0jLtNPHa7P8idVTaP3g6d8b7VCP5zxIUGgjf6sZMxhADg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert2@~8.2.0-rc.4": "@abp/sweetalert2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.4.tgz#6866295a91602167cf314f1eb3bc315825cc0cb3" resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.5.tgz#502d6dbaf2c5296f67722e085e52dd0fe62e8dde"
integrity sha512-3NdBP/4ZhkroWrCVyfHoc0PM6ZJD0IhqXkPO/bMDTjX8scilU85SkC2iAnReD6BoLF6ywriMpozHiU2Ax8aH2Q== integrity sha512-S0LTMU0a9SPdSA3ezEpo03ZGfrr7XtouEs0O5c4fA0kWYsddNkalighy3CYTgZZwaR9oWNnY6t4pyka3WXAaqg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
sweetalert2 "^11.3.6" sweetalert2 "^11.3.6"
"@abp/timeago@~8.2.0-rc.4": "@abp/timeago@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.4.tgz#777793699f0271e81b3fe96d46066a30925ed298" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.5.tgz#8bd78f2ee6b27b8ffd77e75a2851b61013e481ee"
integrity sha512-TfxUi1gn0dPuWFYCwo+g3xh4kkCo1otbvoUQOvrHp6VuQdHbXtSz0kP8VBPGKtVtlRsNe91+gDkv7n8njwrQ9g== integrity sha512-eLG9WFtP1dOoYHaNxyV8gOx1xnKmqSTwgviTU45qUFSNsgQHH1n0bpBxUXSSvaFw5mWRbF3R/JJQHql+Dl6Cow==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~8.2.0-rc.4": "@abp/toastr@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.4.tgz#5edfc10d6123219cc86286ed8b1249af5dbadfde" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.5.tgz#baecda4e6fed5676f58de2228bf8d1c6ae66d49e"
integrity sha512-QDJXroe1Fp2VEWU0Yza/L+DU9R0ZDBw0RcopRcliwAm5RgsVVaaxHZ+jO7LLDfP8JQ6Pi0wTamhKwrfglnG7Ww== integrity sha512-y7aOY1LF62yRwXRSrvimtqIilrsOgSAM8lHcp2RogZAFdmw7yU1R5a6fJlLDGeRBIgjdcIlSpaOuoi6T2hCjFw==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/tui-editor@~8.2.0-rc.4": "@abp/tui-editor@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.2.0-rc.4.tgz#105b5245b59a00ca3dc92900f051dfc55119c0ff" resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.2.0-rc.5.tgz#809ef1bb0f90576d2ad7e67b13e707fe889a7e27"
integrity sha512-bKfHMbgelmrzqKzdKT6xONwjWDTKiSXroQaHCHcoCmAH6dRboIFCvltMY1xvOk5BAjWUOOgOB+G8PA3rhdlBYg== integrity sha512-M1rKE0IhOmj6b/RopK2zDLSe0c7uSngWTv7MYEQjmGwHBG1+M0CEBSXVZWEJQ+LZjB+83oc4Z4UOW+yUW0suXg==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
"@abp/prismjs" "~8.2.0-rc.4" "@abp/prismjs" "~8.2.0-rc.5"
"@abp/utils@~8.2.0-rc.4": "@abp/utils@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.4.tgz#be59dd4b5dfc085b88528639047699a9e5486e81" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.5.tgz#526d64aa3e059d2f6e595b22e35dda2d652377e4"
integrity sha512-imIFmlP0gY+rXFbwufo8jMzcmEuz/6uKr/e8/bW4bOhPDD65go/3TTVkNLr0hzB9qSahZG/LGu2eDFTqlowlrg== integrity sha512-ZU7jHFpDh7jDYgCrX6aXqy/v4LrMGgYJN+siyWUMpVddg2lTTO2MsxI+KmSxJwD7H01Mqj1sZ+LBAOVxGR3hsw==
dependencies: dependencies:
just-compare "^2.3.0" just-compare "^2.3.0"

2
modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/en.json

@ -85,7 +85,7 @@
"MoreFromUser": "More From {0}", "MoreFromUser": "More From {0}",
"BlogPosts": "Posts", "BlogPosts": "Posts",
"Views": "views", "Views": "views",
"Biography": "biography", "Biography": "Biography",
"Social": "Social", "Social": "Social",
"NewBlogPost" : "New Blog Post" "NewBlogPost" : "New Blog Post"
} }

2
modules/blogging/src/Volo.Blogging.Domain.Shared/Volo/Blogging/Localization/Resources/tr.json

@ -83,7 +83,7 @@
"EditProfile": "Profili Düzenle", "EditProfile": "Profili Düzenle",
"MoreFromBlog": "Daha Fazla Blog", "MoreFromBlog": "Daha Fazla Blog",
"MoreFromUser": "{0}'dan Daha Fazla", "MoreFromUser": "{0}'dan Daha Fazla",
"Biography": "biyografi", "Biography": "Biyografi",
"Social": "Sosyal", "Social": "Sosyal",
"BlogPosts": "Gönderiler", "BlogPosts": "Gönderiler",
"NewBlogPost": "Yeni Blog Gönderisi" "NewBlogPost": "Yeni Blog Gönderisi"

45
modules/blogging/src/Volo.Blogging.Web/Pages/Blogs/Members/Index.cshtml

@ -107,9 +107,10 @@
@if (CurrentUser.Id == Model.User.Id) @if (CurrentUser.Id == Model.User.Id)
{ {
<abp-tabs> <abp-tabs>
@if (Model.Posts is not null && Model.Posts.Any())
{ <abp-tab name="all-posts" title="@L["Posts"]">
<abp-tab name="all-posts" title="@L["Posts"]"> @if (Model.Posts is not null && Model.Posts.Any())
{
<div class="mt-4 pt-3"> <div class="mt-4 pt-3">
@foreach (var post in Model.Posts) @foreach (var post in Model.Posts)
{ {
@ -117,7 +118,7 @@
<div class="post-type-cont" style="text-align: center;"> <div class="post-type-cont" style="text-align: center;">
<a href="@Model.GetMemberProfileUrl(Model.User)" class="text-decoration-none"> <a href="@Model.GetMemberProfileUrl(Model.User)" class="text-decoration-none">
<img gravatar-email="@Model.User.Email" default-image="Identicon" id="gravatar" class="post-member-img rounded-circle d-block" /> <img gravatar-email="@Model.User.Email" default-image="Identicon" id="gravatar" class="post-member-img rounded-circle d-block"/>
</a> </a>
</div> </div>
@ -149,39 +150,39 @@
</div> </div>
} }
</div> </div>
</abp-tab> }
} else
else {
{ <div class="col-md-8">
<div class="col-md-8"> <div class="mt-5 pt-6">
<div class="mt-5 pt-6"> <p>@L["MemberNotPublishedPostYet"]</p>
<p>@L["MemberNotPublishedPostYet"]</p> </div>
</div> </div>
</div> }
} </abp-tab>
<abp-tab name="edit-profile" title="Edit Profile"> <abp-tab name="edit-profile" title="Edit Profile">
<div class="mt-4 mb-3 pt-3"> <div class="mt-4 mb-3 pt-3">
<form method="post"> <form method="post">
<abp-row> <abp-row>
<abp-column size="_12" v-align="Center"> <abp-column size="_12" v-align="Center">
<abp-input class="form-control" asp-for="CustomUserUpdate.Name" required-symbol="false" label="@($"{L["Name"].Value} ({L["Optional"].Value})")" value="@Model.User.Name"></abp-input> <abp-input class="form-control" asp-for="CustomUserUpdate.Name" required-symbol="false" label="@($"{L["Name"].Value}")" value="@Model.User.Name"></abp-input>
<abp-input class="form-control" asp-for="CustomUserUpdate.Surname" required-symbol="false" label="@($"{L["Surname"].Value} ({L["Optional"].Value})")" value="@Model.User.Surname"></abp-input> <abp-input class="form-control" asp-for="CustomUserUpdate.Surname" required-symbol="false" label="@($"{L["Surname"].Value}")" value="@Model.User.Surname"></abp-input>
<abp-input class="form-control" asp-for="CustomUserUpdate.WebSite" required-symbol="false" label="@($"{L["WebSite"].Value} ({L["Optional"].Value})")" value="@Model.User.WebSite" info="@L["UpdateUserWebSiteInfo"].Value"></abp-input> <abp-input class="form-control" asp-for="CustomUserUpdate.WebSite" required-symbol="false" label="@($"{L["WebSite"].Value}")" value="@Model.User.WebSite" info="@L["UpdateUserWebSiteInfo"].Value"></abp-input>
<abp-input class="form-control" asp-for="CustomUserUpdate.Twitter" required-symbol="false" label="Twitter @($"{L["UserName"].Value} ({L["Optional"].Value})")" value="@Model.User.Twitter" info="@L["UpdateUserTwitterInfo"].Value"></abp-input> <abp-input class="form-control" asp-for="CustomUserUpdate.Twitter" required-symbol="false" label="Twitter @($"{L["UserName"].Value}")" value="@Model.User.Twitter" info="@L["UpdateUserTwitterInfo"].Value"></abp-input>
<abp-input class="form-control" asp-for="CustomUserUpdate.Github" required-symbol="false" label="Github @($"{L["UserName"].Value} ({L["Optional"].Value})")" value="@Model.User.Github" info="@L["UpdateUserGithubInfo"].Value"></abp-input> <abp-input class="form-control" asp-for="CustomUserUpdate.Github" required-symbol="false" label="GitHub @($"{L["UserName"].Value}")" value="@Model.User.Github" info="@L["UpdateUserGithubInfo"].Value"></abp-input>
<abp-input class="form-control" asp-for="CustomUserUpdate.Linkedin" required-symbol="false" label="Linkedin @($"{L["FullURL"].Value} ({L["Optional"].Value})")" value="@Model.User.Linkedin" info="@L["UpdateUserLinkedinInfo"].Value"></abp-input> <abp-input class="form-control" asp-for="CustomUserUpdate.Linkedin" required-symbol="false" label="Linkedin @($"{L["FullURL"].Value}")" value="@Model.User.Linkedin" info="@L["UpdateUserLinkedinInfo"].Value"></abp-input>
<abp-input class="form-control" asp-for="CustomUserUpdate.Company" required-symbol="false" label="@($"{L["Company"].Value} ({L["Optional"].Value})")" value="@Model.User.Company" info="@L["UpdateUserCompanyInfo"].Value"></abp-input> <abp-input class="form-control" asp-for="CustomUserUpdate.Company" required-symbol="false" label="@($"{L["Company"].Value}")" value="@Model.User.Company" info="@L["UpdateUserCompanyInfo"].Value"></abp-input>
<abp-input class="form-control" asp-for="CustomUserUpdate.JobTitle" required-symbol="false" label="@($"{L["JobTitle"].Value} ({L["Optional"].Value})")" value="@Model.User.JobTitle" info="@L["UpdateUserJobTitleInfo"].Value"></abp-input> <abp-input class="form-control" asp-for="CustomUserUpdate.JobTitle" required-symbol="false" label="@($"{L["JobTitle"].Value}")" value="@Model.User.JobTitle" info="@L["UpdateUserJobTitleInfo"].Value"></abp-input>
<div class="mb-3"> <div class="mb-3">
<label class="form-label">@L["Biography"] (@L["Optional"])</label> <label class="form-label">@L["Biography"]</label>
<textarea id="CustomUserUpdate_Biography" name="CustomUserUpdate.Biography" class="form-control " rows="7" data-val-length="The field Biography must be a string with a maximum length of 1000." data-val-length-max="1000" maxlength="1000">@Model.User.Biography</textarea> <textarea id="CustomUserUpdate_Biography" name="CustomUserUpdate.Biography" class="form-control " rows="7" data-val-length="The field Biography must be a string with a maximum length of 1000." data-val-length-max="1000" maxlength="1000">@Model.User.Biography</textarea>
</div> </div>
</abp-column> </abp-column>

2
modules/client-simulation/demo/Volo.ClientSimulation.Demo/package.json

@ -3,6 +3,6 @@
"name": "client-simulation-web", "name": "client-simulation-web",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.5"
} }
} }

258
modules/client-simulation/demo/Volo.ClientSimulation.Demo/yarn.lock

@ -2,194 +2,194 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.4.tgz#dc9e9e6541694531726127e2e387156a24dd7f9e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.5.tgz#5cc3231d27e9e12e6fdc3e4fc5eb3e6f2019cf13"
integrity sha512-Ixs3yr5fHkB1h8PuuJdPiY0uDf+Dq9jUdbaHsoJmaYRdOSqhLDpNkyAqFFrqDmoEmZvmrThCupt5ZSg9laQ8yw== integrity sha512-SKr5Zm6k2SxrRBW2gqJAsTag4KacVzuVG3sTCD5P5BZLYn5OvknwSeky4tg/wzCodWp20wf89hWyET4E0iKExg==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.4.tgz#2b1468bf05fc505d11d5c0253a782a328088d283" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.5.tgz#97b86ea4daf4392a1067e2a7e7c03b4c381ccc82"
integrity sha512-QveGyyMKAMnY48+AsUqkB/LnqtnTc3Fd5m1wLPNVF+P0j6CaaETmfJNc0xw+WYF14r+NC8K4PeC58z3SYMGlLw== integrity sha512-lR3XbbNct+8QH1dRhED5s/CHCgkANVyNBrWCQbo4BwBFJ27d3wuJDVt39VxQUsgNfxEmyoJdVZNDRUKDv6fTOw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui" "~8.2.0-rc.5"
"@abp/bootstrap" "~8.2.0-rc.4" "@abp/bootstrap" "~8.2.0-rc.5"
"@abp/bootstrap-datepicker" "~8.2.0-rc.4" "@abp/bootstrap-datepicker" "~8.2.0-rc.5"
"@abp/bootstrap-daterangepicker" "~8.2.0-rc.4" "@abp/bootstrap-daterangepicker" "~8.2.0-rc.5"
"@abp/datatables.net-bs5" "~8.2.0-rc.4" "@abp/datatables.net-bs5" "~8.2.0-rc.5"
"@abp/font-awesome" "~8.2.0-rc.4" "@abp/font-awesome" "~8.2.0-rc.5"
"@abp/jquery-form" "~8.2.0-rc.4" "@abp/jquery-form" "~8.2.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~8.2.0-rc.4" "@abp/jquery-validation-unobtrusive" "~8.2.0-rc.5"
"@abp/lodash" "~8.2.0-rc.4" "@abp/lodash" "~8.2.0-rc.5"
"@abp/luxon" "~8.2.0-rc.4" "@abp/luxon" "~8.2.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.4" "@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.5"
"@abp/moment" "~8.2.0-rc.4" "@abp/moment" "~8.2.0-rc.5"
"@abp/select2" "~8.2.0-rc.4" "@abp/select2" "~8.2.0-rc.5"
"@abp/sweetalert2" "~8.2.0-rc.4" "@abp/sweetalert2" "~8.2.0-rc.5"
"@abp/timeago" "~8.2.0-rc.4" "@abp/timeago" "~8.2.0-rc.5"
"@abp/toastr" "~8.2.0-rc.4" "@abp/toastr" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.4.tgz#5e4613f506a02d45d7adcee1060032774e635fe5" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.5.tgz#4a845ebd4b6465b9ac04641d7479b449ca9e1c5f"
integrity sha512-rr3BE6RhimlHcNv0HKT3xIi/+6Sq5TSqRDvmiFqa7bvxemKMstHiEa2lxpx5XP9CPpV9gNzjC/NV+TQy4YDIqg== integrity sha512-l3brGHAD2jnlAWwITGNAY5zOtmc0WItVabYCTvKrYyNuKIPEtW9getUNFp9BFMT9x0KZiGnkkrRkvxH+DzIcug==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
"@abp/bootstrap-datepicker@~8.2.0-rc.4": "@abp/bootstrap-datepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.4.tgz#7f6b7b0da2c8fd46dc08b1976c57b80b65069246" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.5.tgz#0e8755a51d7a691837951f7a071a9e59a2e9e6cf"
integrity sha512-+Ylw8PFuAmpza714vQPjfU/lCOS2NsUX2cGp12Yyy4fS36udPCa/HYWTVdpH36OGae1dV/GzrfgnlZsCvUNhBA== integrity sha512-bLt8l6kYbVblThd2iuXcp6Ydss8TefpnZXHyXrQCxZGmVb79I/vf48CekJo1OWY/WcyEi/bm0m4LEI8Q0Y/LZQ==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap-daterangepicker@~8.2.0-rc.4": "@abp/bootstrap-daterangepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.4.tgz#579e8a4fd9d235385514da3f2ca73283294a78e3" resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.5.tgz#e37792f24c3c8a8643e5ba5744967505e54f836c"
integrity sha512-KIinwEwkCzlYd7gDJt3htgflfrdWnyW4fr/V6GVi2EGxK6UA5HWMRG8MkvUKXmJ4rCHfEUdpWeGBXLbPR8R4eQ== integrity sha512-dN02S1g9sVgACMz+A5FJw0uz4u5lXTFd/7xjE+cmhj0p5AcGvDD3gTbes6d3QNKiwvsPge063lG9pisdn3uEjg==
dependencies: dependencies:
bootstrap-daterangepicker "^3.1.0" bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.2.0-rc.4": "@abp/bootstrap@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.4.tgz#dc08a0db67a2a652c03087d299da1abfab677ebf" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.5.tgz#1acc191f8156d81e1794bc161bfb394ae8f7372e"
integrity sha512-wwZQk2XU6puEzBJ7W+80Oh/8z6n+DNc2YJnCnJNPbURgclMsN4v3/WJ2iKlO4g0fOkepvlgYkbYWPf+pusxSCQ== integrity sha512-FacgSrDlS3QSR+5WdOy06Qw0qF7OoqoBwAGqro2WOfY5sFR5OwEiqXHXUF95+a/q9B9NuYKXBjBfOPhljdiuuA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
bootstrap "^5.1.3" bootstrap "^5.1.3"
"@abp/core@~8.2.0-rc.4": "@abp/core@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.4.tgz#bf6b343ab43468ca88cdb4697caf25d65aa2c269" resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.5.tgz#67eb75df046f8997f6af14e86bf8dbf249388a8d"
integrity sha512-rGUDzLIiUJZ+7ZgzOGXxzc4k//9EBjVY4P4kO0XKCOEv08YwsUJmTzddsiMHZLIqRJ2wdT1UiH7PrcolBiW1UQ== integrity sha512-XVunQMbK/MApkfnpL+8WsVqsJxARBl6W0TZwKfPyfm1QzPWE75P4oW3CIdNis0+Ob5HfhSFFp78tVrbSoEdzYQ==
dependencies: dependencies:
"@abp/utils" "~8.2.0-rc.4" "@abp/utils" "~8.2.0-rc.5"
"@abp/datatables.net-bs5@~8.2.0-rc.4": "@abp/datatables.net-bs5@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.4.tgz#869021a6639d765abb645a5de7501881b67e7095" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.5.tgz#fe04af4b14530545a05c4c58361aadfdddd8e8c2"
integrity sha512-CdYfn4qhB/KdTYfOrAsUSPtw8AGAbZHOTc4EyWAmxDKFCFyakj27+uoV/Stgs25nCaAXn1JHysfOxoNkP1ikyg== integrity sha512-yZKC111JVxcOkDz/WxJyQ0lw3JpbBBWr21LVNjyhEiN62w8tJN1Gwo7CjL+7WFm7RPnAUUf/qwitRWmWl7M4YA==
dependencies: dependencies:
"@abp/datatables.net" "~8.2.0-rc.4" "@abp/datatables.net" "~8.2.0-rc.5"
datatables.net-bs5 "^1.11.4" datatables.net-bs5 "^1.11.4"
"@abp/datatables.net@~8.2.0-rc.4": "@abp/datatables.net@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.4.tgz#4f0e612a11813f38331aae221c342efc4443138d" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.5.tgz#94e4b933750332732eeef02119a6cdfca67811e7"
integrity sha512-omEYXlB/OzUGmvTy7k7rhZjWtXILpl7idLwV1yXzJUkdjLjaBzIgrbWj/80YAI5K7MdpKE0/pdPnORX6G5ij9Q== integrity sha512-IAXbC29eiHvA3unVMsFh2sNfiw+Jlgah0D++IUKOlz1eAzHMrpwP5KE4jmF6GESF7Al95NkgqH7cd6MUst+UlA==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
datatables.net "^1.11.4" datatables.net "^1.11.4"
"@abp/font-awesome@~8.2.0-rc.4": "@abp/font-awesome@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.4.tgz#5c977e54c428e80af2a93166e968ec7635b0694d" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.5.tgz#5ae19305a373a6dd083944bd825ccea84aadf40b"
integrity sha512-zyQwZhhOgKi6JLWbkI+iycwS1lcCx/tvn+AskQSdV2+ycnrcjm9TMWmWosAGwS6VW9demRamuegUNOgiVpy/SA== integrity sha512-VbcM80e9KrZzY6TJ9l/eW42CTpdQ0eBr5gOEW+/UWGTRalCLdGve9YVJZJA55bD1VtcgaR1sV342jw2B1XeN8w==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
"@fortawesome/fontawesome-free" "^6.5.1" "@fortawesome/fontawesome-free" "^6.5.1"
"@abp/jquery-form@~8.2.0-rc.4": "@abp/jquery-form@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.4.tgz#3ef39f9f716ff17b34d61eeb3c234ed3867b91da" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.5.tgz#b955fe2c226f1f35a3736aa3b2170f265a797552"
integrity sha512-nD5c2g4aPlDSggoR2lJ0Zd9Jg/2yrpVKnJqNuvx7DIdxPIZed2LL5ONaOtO8pLTsKqh5ua1UsqgsyfJ/mb9T1w== integrity sha512-M9fUUYywljudem/K7aYlcIG2W+KTzUJPviSeOLo5KNxvVrScWr+Jf4M8Nbj6uWX1saYWmm5kYnfsDs+nOUcmDg==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.2.0-rc.4": "@abp/jquery-validation-unobtrusive@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.4.tgz#5124068f01db8c0e4365594fefb236f91bd60e8d" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.5.tgz#c790dc1b707ee7d24fe99c2b7be6bc558af09667"
integrity sha512-JKtZoeSSbSGbTl28ZEHvqCvC2cCX3aOV7PHKhpIzQSfVK22Uo3swsc2bv3sH2HdxNi3jWAGcd7YUG093STMm3Q== integrity sha512-sUkfb17cR2zM669U83R8dviv+p+uGNl5nmOV0AP4ch6CzLfnTOYzKsqV7ESGVxqB8oVHO/Wnr8sXaaLdsoQzJw==
dependencies: dependencies:
"@abp/jquery-validation" "~8.2.0-rc.4" "@abp/jquery-validation" "~8.2.0-rc.5"
jquery-validation-unobtrusive "^3.2.12" jquery-validation-unobtrusive "^3.2.12"
"@abp/jquery-validation@~8.2.0-rc.4": "@abp/jquery-validation@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.4.tgz#95540b7a6ef1f27b511e42b03cdf0c1c364ce8df" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.5.tgz#294254556e804d641d3bf4ea50d1c3eb42f191d1"
integrity sha512-fN2ZJ0eCjQ5nu5fdwKx0cmGTWZyzltwrfhnI0JG27EsBP8EtyO8aWHZEFKgL+vXTy07LraTJD1KSpIIZSsrHVw== integrity sha512-C7sOuSShkX5Ba6LiSBGuxlrORcxiYczZtsxyjRZzNzATYwEBHcLqMxDvgAsWeWtvtkMotkbB2k99vD93nlGuCQ==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-validation "^1.19.3" jquery-validation "^1.19.3"
"@abp/jquery@~8.2.0-rc.4": "@abp/jquery@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.4.tgz#327452ce3f49f6a9fe32a1934a6f347e2a0a309b" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.5.tgz#9b01156a80d8da6407abb6d51541cb89624cb906"
integrity sha512-JYeQwpa671AyYf7sv+XgCaie2mOjWCDZYlFHEqH4whjTqT5SU8WwSkhux+/KLtBImSeQyTzyup7CuQYWBuk15w== integrity sha512-KcRVhxEmUuJHd4JNBSeJV+3Ush4w9ambKxwPi3+q1fqdePekrLk9jKNud5HkP6JredBoESJ+TkeVFFQ5HnYPVg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~8.2.0-rc.4": "@abp/lodash@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.4.tgz#229be25a0e09f4e1b74b7e064113c3a1347d28c7" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.5.tgz#b6fa8754258dd2db59b0df65fb9f7d90c8611af6"
integrity sha512-zhLlPlhrCZNngx2ns3reKG2Nmec8g2KWbN55Z1gx0XYqaymT/0zuzfkfPBdpuoyIqrXcPJL0aK21SH4Tu8LjUA== integrity sha512-LvK03DSk9lDNGEFrjMdiaAkaH58ll+PIn663KJk0kVZvtNLy/egCOMCc6EBuE5DUsjwebLi6YZYzgRQRRKirgw==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
lodash "^4.17.21" lodash "^4.17.21"
"@abp/luxon@~8.2.0-rc.4": "@abp/luxon@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.4.tgz#fdb6c8d13be6ded1d531e2d66b532d0453597c01" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.5.tgz#e4300d1deebab16432737c831cfae0025b7c5891"
integrity sha512-3iat30cVfmymoW208PjCLlrKO6VTuU8lgk/Vg0XnaX/DbNldNhBUHHzEgC9TiHLUejBSd5cunz88rhFuODz14Q== integrity sha512-UdAToIlS0CwmavErMtd5dwyssKNPa6oqlHrll5h7T26nHDPEdXzSi9rP8RvwqBkrt+BFPMctRSv6DYk8OwoWzA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
luxon "^2.3.0" luxon "^2.3.0"
"@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.4": "@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.4.tgz#1eb1621edd8559b43734590f123c331a360a2d93" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.5.tgz#8f39683e55fbc5487de08b9209a552cf32ea8087"
integrity sha512-OoqjoW1e5U/J77zr6A5DPyWha/b4UeTWaAXtl8xigJmhcDhvKe0jfvE33iHgZupFWiGu354mICNT+rQ1S2wMyA== integrity sha512-e20kLUvnu6tD5GBjzGLQjTMeyeco4q5wO4H4mMuahJpCHue+EUrL0tT1IbWiE+eEmbePw/lAn7Yfhfwjq/+Eeg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.2.0-rc.4": "@abp/moment@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.4.tgz#97eef0f868ad95057493e97f386c791871c063c3" resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.5.tgz#e38c7e66ee383a986c7972f4ba2b19d79a43f60e"
integrity sha512-q06AsfUbut7Rxgp0JMlN0dvP7C1QRMfPNO+95ZXEEnqDDlajqaIt4X/7l1gb/Iz+7yc5XVT7FJdmT+bR22etGA== integrity sha512-F//4TZySaFBTfWgBxzwTFLeStrS0nklmKcTMU+MOtb/7Zx3QtscJpNm4CmxiBpB8pLwK8xiJQGoiuMQdoTuq+g==
dependencies: dependencies:
moment "^2.9.0" moment "^2.9.0"
"@abp/select2@~8.2.0-rc.4": "@abp/select2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.4.tgz#085ec0f915099201b75cbb7b4bfe6826039f542d" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.5.tgz#5fc1dfa4bb871961db0ce9eb68a2c655c38b32d0"
integrity sha512-DrRNVxB0UcRCBhYkkp9TTmu3SDwaJ6kR3WCH7zMZgjYx/K250ojcuIot98fzuecuT3Te3qiGxKwBIclr2Yt/aw== integrity sha512-fT5L+mgiEOBtf2mmXNv6GtXVNjv22qQlgWp1UjI7c0jLtNPHa7P8idVTaP3g6d8b7VCP5zxIUGgjf6sZMxhADg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert2@~8.2.0-rc.4": "@abp/sweetalert2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.4.tgz#6866295a91602167cf314f1eb3bc315825cc0cb3" resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.5.tgz#502d6dbaf2c5296f67722e085e52dd0fe62e8dde"
integrity sha512-3NdBP/4ZhkroWrCVyfHoc0PM6ZJD0IhqXkPO/bMDTjX8scilU85SkC2iAnReD6BoLF6ywriMpozHiU2Ax8aH2Q== integrity sha512-S0LTMU0a9SPdSA3ezEpo03ZGfrr7XtouEs0O5c4fA0kWYsddNkalighy3CYTgZZwaR9oWNnY6t4pyka3WXAaqg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
sweetalert2 "^11.3.6" sweetalert2 "^11.3.6"
"@abp/timeago@~8.2.0-rc.4": "@abp/timeago@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.4.tgz#777793699f0271e81b3fe96d46066a30925ed298" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.5.tgz#8bd78f2ee6b27b8ffd77e75a2851b61013e481ee"
integrity sha512-TfxUi1gn0dPuWFYCwo+g3xh4kkCo1otbvoUQOvrHp6VuQdHbXtSz0kP8VBPGKtVtlRsNe91+gDkv7n8njwrQ9g== integrity sha512-eLG9WFtP1dOoYHaNxyV8gOx1xnKmqSTwgviTU45qUFSNsgQHH1n0bpBxUXSSvaFw5mWRbF3R/JJQHql+Dl6Cow==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~8.2.0-rc.4": "@abp/toastr@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.4.tgz#5edfc10d6123219cc86286ed8b1249af5dbadfde" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.5.tgz#baecda4e6fed5676f58de2228bf8d1c6ae66d49e"
integrity sha512-QDJXroe1Fp2VEWU0Yza/L+DU9R0ZDBw0RcopRcliwAm5RgsVVaaxHZ+jO7LLDfP8JQ6Pi0wTamhKwrfglnG7Ww== integrity sha512-y7aOY1LF62yRwXRSrvimtqIilrsOgSAM8lHcp2RogZAFdmw7yU1R5a6fJlLDGeRBIgjdcIlSpaOuoi6T2hCjFw==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@~8.2.0-rc.4": "@abp/utils@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.4.tgz#be59dd4b5dfc085b88528639047699a9e5486e81" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.5.tgz#526d64aa3e059d2f6e595b22e35dda2d652377e4"
integrity sha512-imIFmlP0gY+rXFbwufo8jMzcmEuz/6uKr/e8/bW4bOhPDD65go/3TTVkNLr0hzB9qSahZG/LGu2eDFTqlowlrg== integrity sha512-ZU7jHFpDh7jDYgCrX6aXqy/v4LrMGgYJN+siyWUMpVddg2lTTO2MsxI+KmSxJwD7H01Mqj1sZ+LBAOVxGR3hsw==
dependencies: dependencies:
just-compare "^2.3.0" just-compare "^2.3.0"

10
modules/cms-kit/angular/package.json

@ -15,11 +15,11 @@
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@abp/ng.account": "~8.2.0-rc.4", "@abp/ng.account": "~8.2.0-rc.5",
"@abp/ng.identity": "~8.2.0-rc.4", "@abp/ng.identity": "~8.2.0-rc.5",
"@abp/ng.setting-management": "~8.2.0-rc.4", "@abp/ng.setting-management": "~8.2.0-rc.5",
"@abp/ng.tenant-management": "~8.2.0-rc.4", "@abp/ng.tenant-management": "~8.2.0-rc.5",
"@abp/ng.theme.basic": "~8.2.0-rc.4", "@abp/ng.theme.basic": "~8.2.0-rc.5",
"@angular/animations": "~10.0.0", "@angular/animations": "~10.0.0",
"@angular/common": "~10.0.0", "@angular/common": "~10.0.0",
"@angular/compiler": "~10.0.0", "@angular/compiler": "~10.0.0",

4
modules/cms-kit/angular/projects/cms-kit/package.json

@ -4,8 +4,8 @@
"peerDependencies": { "peerDependencies": {
"@angular/common": "^9.1.11", "@angular/common": "^9.1.11",
"@angular/core": "^9.1.11", "@angular/core": "^9.1.11",
"@abp/ng.core": ">=8.2.0-rc.4", "@abp/ng.core": ">=8.2.0-rc.5",
"@abp/ng.theme.shared": ">=8.2.0-rc.4" "@abp/ng.theme.shared": ">=8.2.0-rc.5"
}, },
"dependencies": { "dependencies": {
"tslib": "^2.0.0" "tslib": "^2.0.0"

2
modules/cms-kit/host/Volo.CmsKit.IdentityServer/package.json

@ -3,6 +3,6 @@
"name": "my-app-identityserver", "name": "my-app-identityserver",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.5"
} }
} }

258
modules/cms-kit/host/Volo.CmsKit.IdentityServer/yarn.lock

@ -2,194 +2,194 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.4.tgz#dc9e9e6541694531726127e2e387156a24dd7f9e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.5.tgz#5cc3231d27e9e12e6fdc3e4fc5eb3e6f2019cf13"
integrity sha512-Ixs3yr5fHkB1h8PuuJdPiY0uDf+Dq9jUdbaHsoJmaYRdOSqhLDpNkyAqFFrqDmoEmZvmrThCupt5ZSg9laQ8yw== integrity sha512-SKr5Zm6k2SxrRBW2gqJAsTag4KacVzuVG3sTCD5P5BZLYn5OvknwSeky4tg/wzCodWp20wf89hWyET4E0iKExg==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.4.tgz#2b1468bf05fc505d11d5c0253a782a328088d283" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.5.tgz#97b86ea4daf4392a1067e2a7e7c03b4c381ccc82"
integrity sha512-QveGyyMKAMnY48+AsUqkB/LnqtnTc3Fd5m1wLPNVF+P0j6CaaETmfJNc0xw+WYF14r+NC8K4PeC58z3SYMGlLw== integrity sha512-lR3XbbNct+8QH1dRhED5s/CHCgkANVyNBrWCQbo4BwBFJ27d3wuJDVt39VxQUsgNfxEmyoJdVZNDRUKDv6fTOw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui" "~8.2.0-rc.5"
"@abp/bootstrap" "~8.2.0-rc.4" "@abp/bootstrap" "~8.2.0-rc.5"
"@abp/bootstrap-datepicker" "~8.2.0-rc.4" "@abp/bootstrap-datepicker" "~8.2.0-rc.5"
"@abp/bootstrap-daterangepicker" "~8.2.0-rc.4" "@abp/bootstrap-daterangepicker" "~8.2.0-rc.5"
"@abp/datatables.net-bs5" "~8.2.0-rc.4" "@abp/datatables.net-bs5" "~8.2.0-rc.5"
"@abp/font-awesome" "~8.2.0-rc.4" "@abp/font-awesome" "~8.2.0-rc.5"
"@abp/jquery-form" "~8.2.0-rc.4" "@abp/jquery-form" "~8.2.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~8.2.0-rc.4" "@abp/jquery-validation-unobtrusive" "~8.2.0-rc.5"
"@abp/lodash" "~8.2.0-rc.4" "@abp/lodash" "~8.2.0-rc.5"
"@abp/luxon" "~8.2.0-rc.4" "@abp/luxon" "~8.2.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.4" "@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.5"
"@abp/moment" "~8.2.0-rc.4" "@abp/moment" "~8.2.0-rc.5"
"@abp/select2" "~8.2.0-rc.4" "@abp/select2" "~8.2.0-rc.5"
"@abp/sweetalert2" "~8.2.0-rc.4" "@abp/sweetalert2" "~8.2.0-rc.5"
"@abp/timeago" "~8.2.0-rc.4" "@abp/timeago" "~8.2.0-rc.5"
"@abp/toastr" "~8.2.0-rc.4" "@abp/toastr" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.4.tgz#5e4613f506a02d45d7adcee1060032774e635fe5" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.5.tgz#4a845ebd4b6465b9ac04641d7479b449ca9e1c5f"
integrity sha512-rr3BE6RhimlHcNv0HKT3xIi/+6Sq5TSqRDvmiFqa7bvxemKMstHiEa2lxpx5XP9CPpV9gNzjC/NV+TQy4YDIqg== integrity sha512-l3brGHAD2jnlAWwITGNAY5zOtmc0WItVabYCTvKrYyNuKIPEtW9getUNFp9BFMT9x0KZiGnkkrRkvxH+DzIcug==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
"@abp/bootstrap-datepicker@~8.2.0-rc.4": "@abp/bootstrap-datepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.4.tgz#7f6b7b0da2c8fd46dc08b1976c57b80b65069246" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.5.tgz#0e8755a51d7a691837951f7a071a9e59a2e9e6cf"
integrity sha512-+Ylw8PFuAmpza714vQPjfU/lCOS2NsUX2cGp12Yyy4fS36udPCa/HYWTVdpH36OGae1dV/GzrfgnlZsCvUNhBA== integrity sha512-bLt8l6kYbVblThd2iuXcp6Ydss8TefpnZXHyXrQCxZGmVb79I/vf48CekJo1OWY/WcyEi/bm0m4LEI8Q0Y/LZQ==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap-daterangepicker@~8.2.0-rc.4": "@abp/bootstrap-daterangepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.4.tgz#579e8a4fd9d235385514da3f2ca73283294a78e3" resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.5.tgz#e37792f24c3c8a8643e5ba5744967505e54f836c"
integrity sha512-KIinwEwkCzlYd7gDJt3htgflfrdWnyW4fr/V6GVi2EGxK6UA5HWMRG8MkvUKXmJ4rCHfEUdpWeGBXLbPR8R4eQ== integrity sha512-dN02S1g9sVgACMz+A5FJw0uz4u5lXTFd/7xjE+cmhj0p5AcGvDD3gTbes6d3QNKiwvsPge063lG9pisdn3uEjg==
dependencies: dependencies:
bootstrap-daterangepicker "^3.1.0" bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.2.0-rc.4": "@abp/bootstrap@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.4.tgz#dc08a0db67a2a652c03087d299da1abfab677ebf" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.5.tgz#1acc191f8156d81e1794bc161bfb394ae8f7372e"
integrity sha512-wwZQk2XU6puEzBJ7W+80Oh/8z6n+DNc2YJnCnJNPbURgclMsN4v3/WJ2iKlO4g0fOkepvlgYkbYWPf+pusxSCQ== integrity sha512-FacgSrDlS3QSR+5WdOy06Qw0qF7OoqoBwAGqro2WOfY5sFR5OwEiqXHXUF95+a/q9B9NuYKXBjBfOPhljdiuuA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
bootstrap "^5.1.3" bootstrap "^5.1.3"
"@abp/core@~8.2.0-rc.4": "@abp/core@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.4.tgz#bf6b343ab43468ca88cdb4697caf25d65aa2c269" resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.5.tgz#67eb75df046f8997f6af14e86bf8dbf249388a8d"
integrity sha512-rGUDzLIiUJZ+7ZgzOGXxzc4k//9EBjVY4P4kO0XKCOEv08YwsUJmTzddsiMHZLIqRJ2wdT1UiH7PrcolBiW1UQ== integrity sha512-XVunQMbK/MApkfnpL+8WsVqsJxARBl6W0TZwKfPyfm1QzPWE75P4oW3CIdNis0+Ob5HfhSFFp78tVrbSoEdzYQ==
dependencies: dependencies:
"@abp/utils" "~8.2.0-rc.4" "@abp/utils" "~8.2.0-rc.5"
"@abp/datatables.net-bs5@~8.2.0-rc.4": "@abp/datatables.net-bs5@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.4.tgz#869021a6639d765abb645a5de7501881b67e7095" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.5.tgz#fe04af4b14530545a05c4c58361aadfdddd8e8c2"
integrity sha512-CdYfn4qhB/KdTYfOrAsUSPtw8AGAbZHOTc4EyWAmxDKFCFyakj27+uoV/Stgs25nCaAXn1JHysfOxoNkP1ikyg== integrity sha512-yZKC111JVxcOkDz/WxJyQ0lw3JpbBBWr21LVNjyhEiN62w8tJN1Gwo7CjL+7WFm7RPnAUUf/qwitRWmWl7M4YA==
dependencies: dependencies:
"@abp/datatables.net" "~8.2.0-rc.4" "@abp/datatables.net" "~8.2.0-rc.5"
datatables.net-bs5 "^1.11.4" datatables.net-bs5 "^1.11.4"
"@abp/datatables.net@~8.2.0-rc.4": "@abp/datatables.net@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.4.tgz#4f0e612a11813f38331aae221c342efc4443138d" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.5.tgz#94e4b933750332732eeef02119a6cdfca67811e7"
integrity sha512-omEYXlB/OzUGmvTy7k7rhZjWtXILpl7idLwV1yXzJUkdjLjaBzIgrbWj/80YAI5K7MdpKE0/pdPnORX6G5ij9Q== integrity sha512-IAXbC29eiHvA3unVMsFh2sNfiw+Jlgah0D++IUKOlz1eAzHMrpwP5KE4jmF6GESF7Al95NkgqH7cd6MUst+UlA==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
datatables.net "^1.11.4" datatables.net "^1.11.4"
"@abp/font-awesome@~8.2.0-rc.4": "@abp/font-awesome@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.4.tgz#5c977e54c428e80af2a93166e968ec7635b0694d" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.5.tgz#5ae19305a373a6dd083944bd825ccea84aadf40b"
integrity sha512-zyQwZhhOgKi6JLWbkI+iycwS1lcCx/tvn+AskQSdV2+ycnrcjm9TMWmWosAGwS6VW9demRamuegUNOgiVpy/SA== integrity sha512-VbcM80e9KrZzY6TJ9l/eW42CTpdQ0eBr5gOEW+/UWGTRalCLdGve9YVJZJA55bD1VtcgaR1sV342jw2B1XeN8w==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
"@fortawesome/fontawesome-free" "^6.5.1" "@fortawesome/fontawesome-free" "^6.5.1"
"@abp/jquery-form@~8.2.0-rc.4": "@abp/jquery-form@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.4.tgz#3ef39f9f716ff17b34d61eeb3c234ed3867b91da" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.5.tgz#b955fe2c226f1f35a3736aa3b2170f265a797552"
integrity sha512-nD5c2g4aPlDSggoR2lJ0Zd9Jg/2yrpVKnJqNuvx7DIdxPIZed2LL5ONaOtO8pLTsKqh5ua1UsqgsyfJ/mb9T1w== integrity sha512-M9fUUYywljudem/K7aYlcIG2W+KTzUJPviSeOLo5KNxvVrScWr+Jf4M8Nbj6uWX1saYWmm5kYnfsDs+nOUcmDg==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.2.0-rc.4": "@abp/jquery-validation-unobtrusive@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.4.tgz#5124068f01db8c0e4365594fefb236f91bd60e8d" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.5.tgz#c790dc1b707ee7d24fe99c2b7be6bc558af09667"
integrity sha512-JKtZoeSSbSGbTl28ZEHvqCvC2cCX3aOV7PHKhpIzQSfVK22Uo3swsc2bv3sH2HdxNi3jWAGcd7YUG093STMm3Q== integrity sha512-sUkfb17cR2zM669U83R8dviv+p+uGNl5nmOV0AP4ch6CzLfnTOYzKsqV7ESGVxqB8oVHO/Wnr8sXaaLdsoQzJw==
dependencies: dependencies:
"@abp/jquery-validation" "~8.2.0-rc.4" "@abp/jquery-validation" "~8.2.0-rc.5"
jquery-validation-unobtrusive "^3.2.12" jquery-validation-unobtrusive "^3.2.12"
"@abp/jquery-validation@~8.2.0-rc.4": "@abp/jquery-validation@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.4.tgz#95540b7a6ef1f27b511e42b03cdf0c1c364ce8df" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.5.tgz#294254556e804d641d3bf4ea50d1c3eb42f191d1"
integrity sha512-fN2ZJ0eCjQ5nu5fdwKx0cmGTWZyzltwrfhnI0JG27EsBP8EtyO8aWHZEFKgL+vXTy07LraTJD1KSpIIZSsrHVw== integrity sha512-C7sOuSShkX5Ba6LiSBGuxlrORcxiYczZtsxyjRZzNzATYwEBHcLqMxDvgAsWeWtvtkMotkbB2k99vD93nlGuCQ==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-validation "^1.19.3" jquery-validation "^1.19.3"
"@abp/jquery@~8.2.0-rc.4": "@abp/jquery@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.4.tgz#327452ce3f49f6a9fe32a1934a6f347e2a0a309b" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.5.tgz#9b01156a80d8da6407abb6d51541cb89624cb906"
integrity sha512-JYeQwpa671AyYf7sv+XgCaie2mOjWCDZYlFHEqH4whjTqT5SU8WwSkhux+/KLtBImSeQyTzyup7CuQYWBuk15w== integrity sha512-KcRVhxEmUuJHd4JNBSeJV+3Ush4w9ambKxwPi3+q1fqdePekrLk9jKNud5HkP6JredBoESJ+TkeVFFQ5HnYPVg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~8.2.0-rc.4": "@abp/lodash@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.4.tgz#229be25a0e09f4e1b74b7e064113c3a1347d28c7" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.5.tgz#b6fa8754258dd2db59b0df65fb9f7d90c8611af6"
integrity sha512-zhLlPlhrCZNngx2ns3reKG2Nmec8g2KWbN55Z1gx0XYqaymT/0zuzfkfPBdpuoyIqrXcPJL0aK21SH4Tu8LjUA== integrity sha512-LvK03DSk9lDNGEFrjMdiaAkaH58ll+PIn663KJk0kVZvtNLy/egCOMCc6EBuE5DUsjwebLi6YZYzgRQRRKirgw==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
lodash "^4.17.21" lodash "^4.17.21"
"@abp/luxon@~8.2.0-rc.4": "@abp/luxon@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.4.tgz#fdb6c8d13be6ded1d531e2d66b532d0453597c01" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.5.tgz#e4300d1deebab16432737c831cfae0025b7c5891"
integrity sha512-3iat30cVfmymoW208PjCLlrKO6VTuU8lgk/Vg0XnaX/DbNldNhBUHHzEgC9TiHLUejBSd5cunz88rhFuODz14Q== integrity sha512-UdAToIlS0CwmavErMtd5dwyssKNPa6oqlHrll5h7T26nHDPEdXzSi9rP8RvwqBkrt+BFPMctRSv6DYk8OwoWzA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
luxon "^2.3.0" luxon "^2.3.0"
"@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.4": "@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.4.tgz#1eb1621edd8559b43734590f123c331a360a2d93" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.5.tgz#8f39683e55fbc5487de08b9209a552cf32ea8087"
integrity sha512-OoqjoW1e5U/J77zr6A5DPyWha/b4UeTWaAXtl8xigJmhcDhvKe0jfvE33iHgZupFWiGu354mICNT+rQ1S2wMyA== integrity sha512-e20kLUvnu6tD5GBjzGLQjTMeyeco4q5wO4H4mMuahJpCHue+EUrL0tT1IbWiE+eEmbePw/lAn7Yfhfwjq/+Eeg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.2.0-rc.4": "@abp/moment@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.4.tgz#97eef0f868ad95057493e97f386c791871c063c3" resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.5.tgz#e38c7e66ee383a986c7972f4ba2b19d79a43f60e"
integrity sha512-q06AsfUbut7Rxgp0JMlN0dvP7C1QRMfPNO+95ZXEEnqDDlajqaIt4X/7l1gb/Iz+7yc5XVT7FJdmT+bR22etGA== integrity sha512-F//4TZySaFBTfWgBxzwTFLeStrS0nklmKcTMU+MOtb/7Zx3QtscJpNm4CmxiBpB8pLwK8xiJQGoiuMQdoTuq+g==
dependencies: dependencies:
moment "^2.9.0" moment "^2.9.0"
"@abp/select2@~8.2.0-rc.4": "@abp/select2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.4.tgz#085ec0f915099201b75cbb7b4bfe6826039f542d" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.5.tgz#5fc1dfa4bb871961db0ce9eb68a2c655c38b32d0"
integrity sha512-DrRNVxB0UcRCBhYkkp9TTmu3SDwaJ6kR3WCH7zMZgjYx/K250ojcuIot98fzuecuT3Te3qiGxKwBIclr2Yt/aw== integrity sha512-fT5L+mgiEOBtf2mmXNv6GtXVNjv22qQlgWp1UjI7c0jLtNPHa7P8idVTaP3g6d8b7VCP5zxIUGgjf6sZMxhADg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert2@~8.2.0-rc.4": "@abp/sweetalert2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.4.tgz#6866295a91602167cf314f1eb3bc315825cc0cb3" resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.5.tgz#502d6dbaf2c5296f67722e085e52dd0fe62e8dde"
integrity sha512-3NdBP/4ZhkroWrCVyfHoc0PM6ZJD0IhqXkPO/bMDTjX8scilU85SkC2iAnReD6BoLF6ywriMpozHiU2Ax8aH2Q== integrity sha512-S0LTMU0a9SPdSA3ezEpo03ZGfrr7XtouEs0O5c4fA0kWYsddNkalighy3CYTgZZwaR9oWNnY6t4pyka3WXAaqg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
sweetalert2 "^11.3.6" sweetalert2 "^11.3.6"
"@abp/timeago@~8.2.0-rc.4": "@abp/timeago@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.4.tgz#777793699f0271e81b3fe96d46066a30925ed298" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.5.tgz#8bd78f2ee6b27b8ffd77e75a2851b61013e481ee"
integrity sha512-TfxUi1gn0dPuWFYCwo+g3xh4kkCo1otbvoUQOvrHp6VuQdHbXtSz0kP8VBPGKtVtlRsNe91+gDkv7n8njwrQ9g== integrity sha512-eLG9WFtP1dOoYHaNxyV8gOx1xnKmqSTwgviTU45qUFSNsgQHH1n0bpBxUXSSvaFw5mWRbF3R/JJQHql+Dl6Cow==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~8.2.0-rc.4": "@abp/toastr@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.4.tgz#5edfc10d6123219cc86286ed8b1249af5dbadfde" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.5.tgz#baecda4e6fed5676f58de2228bf8d1c6ae66d49e"
integrity sha512-QDJXroe1Fp2VEWU0Yza/L+DU9R0ZDBw0RcopRcliwAm5RgsVVaaxHZ+jO7LLDfP8JQ6Pi0wTamhKwrfglnG7Ww== integrity sha512-y7aOY1LF62yRwXRSrvimtqIilrsOgSAM8lHcp2RogZAFdmw7yU1R5a6fJlLDGeRBIgjdcIlSpaOuoi6T2hCjFw==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@~8.2.0-rc.4": "@abp/utils@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.4.tgz#be59dd4b5dfc085b88528639047699a9e5486e81" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.5.tgz#526d64aa3e059d2f6e595b22e35dda2d652377e4"
integrity sha512-imIFmlP0gY+rXFbwufo8jMzcmEuz/6uKr/e8/bW4bOhPDD65go/3TTVkNLr0hzB9qSahZG/LGu2eDFTqlowlrg== integrity sha512-ZU7jHFpDh7jDYgCrX6aXqy/v4LrMGgYJN+siyWUMpVddg2lTTO2MsxI+KmSxJwD7H01Mqj1sZ+LBAOVxGR3hsw==
dependencies: dependencies:
just-compare "^2.3.0" just-compare "^2.3.0"

2
modules/cms-kit/host/Volo.CmsKit.Web.Host/package.json

@ -3,6 +3,6 @@
"name": "my-app", "name": "my-app",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.5"
} }
} }

258
modules/cms-kit/host/Volo.CmsKit.Web.Host/yarn.lock

@ -2,194 +2,194 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.4.tgz#dc9e9e6541694531726127e2e387156a24dd7f9e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.5.tgz#5cc3231d27e9e12e6fdc3e4fc5eb3e6f2019cf13"
integrity sha512-Ixs3yr5fHkB1h8PuuJdPiY0uDf+Dq9jUdbaHsoJmaYRdOSqhLDpNkyAqFFrqDmoEmZvmrThCupt5ZSg9laQ8yw== integrity sha512-SKr5Zm6k2SxrRBW2gqJAsTag4KacVzuVG3sTCD5P5BZLYn5OvknwSeky4tg/wzCodWp20wf89hWyET4E0iKExg==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.4.tgz#2b1468bf05fc505d11d5c0253a782a328088d283" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.5.tgz#97b86ea4daf4392a1067e2a7e7c03b4c381ccc82"
integrity sha512-QveGyyMKAMnY48+AsUqkB/LnqtnTc3Fd5m1wLPNVF+P0j6CaaETmfJNc0xw+WYF14r+NC8K4PeC58z3SYMGlLw== integrity sha512-lR3XbbNct+8QH1dRhED5s/CHCgkANVyNBrWCQbo4BwBFJ27d3wuJDVt39VxQUsgNfxEmyoJdVZNDRUKDv6fTOw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui" "~8.2.0-rc.5"
"@abp/bootstrap" "~8.2.0-rc.4" "@abp/bootstrap" "~8.2.0-rc.5"
"@abp/bootstrap-datepicker" "~8.2.0-rc.4" "@abp/bootstrap-datepicker" "~8.2.0-rc.5"
"@abp/bootstrap-daterangepicker" "~8.2.0-rc.4" "@abp/bootstrap-daterangepicker" "~8.2.0-rc.5"
"@abp/datatables.net-bs5" "~8.2.0-rc.4" "@abp/datatables.net-bs5" "~8.2.0-rc.5"
"@abp/font-awesome" "~8.2.0-rc.4" "@abp/font-awesome" "~8.2.0-rc.5"
"@abp/jquery-form" "~8.2.0-rc.4" "@abp/jquery-form" "~8.2.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~8.2.0-rc.4" "@abp/jquery-validation-unobtrusive" "~8.2.0-rc.5"
"@abp/lodash" "~8.2.0-rc.4" "@abp/lodash" "~8.2.0-rc.5"
"@abp/luxon" "~8.2.0-rc.4" "@abp/luxon" "~8.2.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.4" "@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.5"
"@abp/moment" "~8.2.0-rc.4" "@abp/moment" "~8.2.0-rc.5"
"@abp/select2" "~8.2.0-rc.4" "@abp/select2" "~8.2.0-rc.5"
"@abp/sweetalert2" "~8.2.0-rc.4" "@abp/sweetalert2" "~8.2.0-rc.5"
"@abp/timeago" "~8.2.0-rc.4" "@abp/timeago" "~8.2.0-rc.5"
"@abp/toastr" "~8.2.0-rc.4" "@abp/toastr" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.4.tgz#5e4613f506a02d45d7adcee1060032774e635fe5" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.5.tgz#4a845ebd4b6465b9ac04641d7479b449ca9e1c5f"
integrity sha512-rr3BE6RhimlHcNv0HKT3xIi/+6Sq5TSqRDvmiFqa7bvxemKMstHiEa2lxpx5XP9CPpV9gNzjC/NV+TQy4YDIqg== integrity sha512-l3brGHAD2jnlAWwITGNAY5zOtmc0WItVabYCTvKrYyNuKIPEtW9getUNFp9BFMT9x0KZiGnkkrRkvxH+DzIcug==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
"@abp/bootstrap-datepicker@~8.2.0-rc.4": "@abp/bootstrap-datepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.4.tgz#7f6b7b0da2c8fd46dc08b1976c57b80b65069246" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.5.tgz#0e8755a51d7a691837951f7a071a9e59a2e9e6cf"
integrity sha512-+Ylw8PFuAmpza714vQPjfU/lCOS2NsUX2cGp12Yyy4fS36udPCa/HYWTVdpH36OGae1dV/GzrfgnlZsCvUNhBA== integrity sha512-bLt8l6kYbVblThd2iuXcp6Ydss8TefpnZXHyXrQCxZGmVb79I/vf48CekJo1OWY/WcyEi/bm0m4LEI8Q0Y/LZQ==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap-daterangepicker@~8.2.0-rc.4": "@abp/bootstrap-daterangepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.4.tgz#579e8a4fd9d235385514da3f2ca73283294a78e3" resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.5.tgz#e37792f24c3c8a8643e5ba5744967505e54f836c"
integrity sha512-KIinwEwkCzlYd7gDJt3htgflfrdWnyW4fr/V6GVi2EGxK6UA5HWMRG8MkvUKXmJ4rCHfEUdpWeGBXLbPR8R4eQ== integrity sha512-dN02S1g9sVgACMz+A5FJw0uz4u5lXTFd/7xjE+cmhj0p5AcGvDD3gTbes6d3QNKiwvsPge063lG9pisdn3uEjg==
dependencies: dependencies:
bootstrap-daterangepicker "^3.1.0" bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.2.0-rc.4": "@abp/bootstrap@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.4.tgz#dc08a0db67a2a652c03087d299da1abfab677ebf" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.5.tgz#1acc191f8156d81e1794bc161bfb394ae8f7372e"
integrity sha512-wwZQk2XU6puEzBJ7W+80Oh/8z6n+DNc2YJnCnJNPbURgclMsN4v3/WJ2iKlO4g0fOkepvlgYkbYWPf+pusxSCQ== integrity sha512-FacgSrDlS3QSR+5WdOy06Qw0qF7OoqoBwAGqro2WOfY5sFR5OwEiqXHXUF95+a/q9B9NuYKXBjBfOPhljdiuuA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
bootstrap "^5.1.3" bootstrap "^5.1.3"
"@abp/core@~8.2.0-rc.4": "@abp/core@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.4.tgz#bf6b343ab43468ca88cdb4697caf25d65aa2c269" resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.5.tgz#67eb75df046f8997f6af14e86bf8dbf249388a8d"
integrity sha512-rGUDzLIiUJZ+7ZgzOGXxzc4k//9EBjVY4P4kO0XKCOEv08YwsUJmTzddsiMHZLIqRJ2wdT1UiH7PrcolBiW1UQ== integrity sha512-XVunQMbK/MApkfnpL+8WsVqsJxARBl6W0TZwKfPyfm1QzPWE75P4oW3CIdNis0+Ob5HfhSFFp78tVrbSoEdzYQ==
dependencies: dependencies:
"@abp/utils" "~8.2.0-rc.4" "@abp/utils" "~8.2.0-rc.5"
"@abp/datatables.net-bs5@~8.2.0-rc.4": "@abp/datatables.net-bs5@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.4.tgz#869021a6639d765abb645a5de7501881b67e7095" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.5.tgz#fe04af4b14530545a05c4c58361aadfdddd8e8c2"
integrity sha512-CdYfn4qhB/KdTYfOrAsUSPtw8AGAbZHOTc4EyWAmxDKFCFyakj27+uoV/Stgs25nCaAXn1JHysfOxoNkP1ikyg== integrity sha512-yZKC111JVxcOkDz/WxJyQ0lw3JpbBBWr21LVNjyhEiN62w8tJN1Gwo7CjL+7WFm7RPnAUUf/qwitRWmWl7M4YA==
dependencies: dependencies:
"@abp/datatables.net" "~8.2.0-rc.4" "@abp/datatables.net" "~8.2.0-rc.5"
datatables.net-bs5 "^1.11.4" datatables.net-bs5 "^1.11.4"
"@abp/datatables.net@~8.2.0-rc.4": "@abp/datatables.net@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.4.tgz#4f0e612a11813f38331aae221c342efc4443138d" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.5.tgz#94e4b933750332732eeef02119a6cdfca67811e7"
integrity sha512-omEYXlB/OzUGmvTy7k7rhZjWtXILpl7idLwV1yXzJUkdjLjaBzIgrbWj/80YAI5K7MdpKE0/pdPnORX6G5ij9Q== integrity sha512-IAXbC29eiHvA3unVMsFh2sNfiw+Jlgah0D++IUKOlz1eAzHMrpwP5KE4jmF6GESF7Al95NkgqH7cd6MUst+UlA==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
datatables.net "^1.11.4" datatables.net "^1.11.4"
"@abp/font-awesome@~8.2.0-rc.4": "@abp/font-awesome@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.4.tgz#5c977e54c428e80af2a93166e968ec7635b0694d" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.5.tgz#5ae19305a373a6dd083944bd825ccea84aadf40b"
integrity sha512-zyQwZhhOgKi6JLWbkI+iycwS1lcCx/tvn+AskQSdV2+ycnrcjm9TMWmWosAGwS6VW9demRamuegUNOgiVpy/SA== integrity sha512-VbcM80e9KrZzY6TJ9l/eW42CTpdQ0eBr5gOEW+/UWGTRalCLdGve9YVJZJA55bD1VtcgaR1sV342jw2B1XeN8w==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
"@fortawesome/fontawesome-free" "^6.5.1" "@fortawesome/fontawesome-free" "^6.5.1"
"@abp/jquery-form@~8.2.0-rc.4": "@abp/jquery-form@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.4.tgz#3ef39f9f716ff17b34d61eeb3c234ed3867b91da" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.5.tgz#b955fe2c226f1f35a3736aa3b2170f265a797552"
integrity sha512-nD5c2g4aPlDSggoR2lJ0Zd9Jg/2yrpVKnJqNuvx7DIdxPIZed2LL5ONaOtO8pLTsKqh5ua1UsqgsyfJ/mb9T1w== integrity sha512-M9fUUYywljudem/K7aYlcIG2W+KTzUJPviSeOLo5KNxvVrScWr+Jf4M8Nbj6uWX1saYWmm5kYnfsDs+nOUcmDg==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.2.0-rc.4": "@abp/jquery-validation-unobtrusive@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.4.tgz#5124068f01db8c0e4365594fefb236f91bd60e8d" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.5.tgz#c790dc1b707ee7d24fe99c2b7be6bc558af09667"
integrity sha512-JKtZoeSSbSGbTl28ZEHvqCvC2cCX3aOV7PHKhpIzQSfVK22Uo3swsc2bv3sH2HdxNi3jWAGcd7YUG093STMm3Q== integrity sha512-sUkfb17cR2zM669U83R8dviv+p+uGNl5nmOV0AP4ch6CzLfnTOYzKsqV7ESGVxqB8oVHO/Wnr8sXaaLdsoQzJw==
dependencies: dependencies:
"@abp/jquery-validation" "~8.2.0-rc.4" "@abp/jquery-validation" "~8.2.0-rc.5"
jquery-validation-unobtrusive "^3.2.12" jquery-validation-unobtrusive "^3.2.12"
"@abp/jquery-validation@~8.2.0-rc.4": "@abp/jquery-validation@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.4.tgz#95540b7a6ef1f27b511e42b03cdf0c1c364ce8df" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.5.tgz#294254556e804d641d3bf4ea50d1c3eb42f191d1"
integrity sha512-fN2ZJ0eCjQ5nu5fdwKx0cmGTWZyzltwrfhnI0JG27EsBP8EtyO8aWHZEFKgL+vXTy07LraTJD1KSpIIZSsrHVw== integrity sha512-C7sOuSShkX5Ba6LiSBGuxlrORcxiYczZtsxyjRZzNzATYwEBHcLqMxDvgAsWeWtvtkMotkbB2k99vD93nlGuCQ==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-validation "^1.19.3" jquery-validation "^1.19.3"
"@abp/jquery@~8.2.0-rc.4": "@abp/jquery@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.4.tgz#327452ce3f49f6a9fe32a1934a6f347e2a0a309b" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.5.tgz#9b01156a80d8da6407abb6d51541cb89624cb906"
integrity sha512-JYeQwpa671AyYf7sv+XgCaie2mOjWCDZYlFHEqH4whjTqT5SU8WwSkhux+/KLtBImSeQyTzyup7CuQYWBuk15w== integrity sha512-KcRVhxEmUuJHd4JNBSeJV+3Ush4w9ambKxwPi3+q1fqdePekrLk9jKNud5HkP6JredBoESJ+TkeVFFQ5HnYPVg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~8.2.0-rc.4": "@abp/lodash@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.4.tgz#229be25a0e09f4e1b74b7e064113c3a1347d28c7" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.5.tgz#b6fa8754258dd2db59b0df65fb9f7d90c8611af6"
integrity sha512-zhLlPlhrCZNngx2ns3reKG2Nmec8g2KWbN55Z1gx0XYqaymT/0zuzfkfPBdpuoyIqrXcPJL0aK21SH4Tu8LjUA== integrity sha512-LvK03DSk9lDNGEFrjMdiaAkaH58ll+PIn663KJk0kVZvtNLy/egCOMCc6EBuE5DUsjwebLi6YZYzgRQRRKirgw==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
lodash "^4.17.21" lodash "^4.17.21"
"@abp/luxon@~8.2.0-rc.4": "@abp/luxon@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.4.tgz#fdb6c8d13be6ded1d531e2d66b532d0453597c01" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.5.tgz#e4300d1deebab16432737c831cfae0025b7c5891"
integrity sha512-3iat30cVfmymoW208PjCLlrKO6VTuU8lgk/Vg0XnaX/DbNldNhBUHHzEgC9TiHLUejBSd5cunz88rhFuODz14Q== integrity sha512-UdAToIlS0CwmavErMtd5dwyssKNPa6oqlHrll5h7T26nHDPEdXzSi9rP8RvwqBkrt+BFPMctRSv6DYk8OwoWzA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
luxon "^2.3.0" luxon "^2.3.0"
"@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.4": "@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.4.tgz#1eb1621edd8559b43734590f123c331a360a2d93" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.5.tgz#8f39683e55fbc5487de08b9209a552cf32ea8087"
integrity sha512-OoqjoW1e5U/J77zr6A5DPyWha/b4UeTWaAXtl8xigJmhcDhvKe0jfvE33iHgZupFWiGu354mICNT+rQ1S2wMyA== integrity sha512-e20kLUvnu6tD5GBjzGLQjTMeyeco4q5wO4H4mMuahJpCHue+EUrL0tT1IbWiE+eEmbePw/lAn7Yfhfwjq/+Eeg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.2.0-rc.4": "@abp/moment@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.4.tgz#97eef0f868ad95057493e97f386c791871c063c3" resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.5.tgz#e38c7e66ee383a986c7972f4ba2b19d79a43f60e"
integrity sha512-q06AsfUbut7Rxgp0JMlN0dvP7C1QRMfPNO+95ZXEEnqDDlajqaIt4X/7l1gb/Iz+7yc5XVT7FJdmT+bR22etGA== integrity sha512-F//4TZySaFBTfWgBxzwTFLeStrS0nklmKcTMU+MOtb/7Zx3QtscJpNm4CmxiBpB8pLwK8xiJQGoiuMQdoTuq+g==
dependencies: dependencies:
moment "^2.9.0" moment "^2.9.0"
"@abp/select2@~8.2.0-rc.4": "@abp/select2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.4.tgz#085ec0f915099201b75cbb7b4bfe6826039f542d" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.5.tgz#5fc1dfa4bb871961db0ce9eb68a2c655c38b32d0"
integrity sha512-DrRNVxB0UcRCBhYkkp9TTmu3SDwaJ6kR3WCH7zMZgjYx/K250ojcuIot98fzuecuT3Te3qiGxKwBIclr2Yt/aw== integrity sha512-fT5L+mgiEOBtf2mmXNv6GtXVNjv22qQlgWp1UjI7c0jLtNPHa7P8idVTaP3g6d8b7VCP5zxIUGgjf6sZMxhADg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert2@~8.2.0-rc.4": "@abp/sweetalert2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.4.tgz#6866295a91602167cf314f1eb3bc315825cc0cb3" resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.5.tgz#502d6dbaf2c5296f67722e085e52dd0fe62e8dde"
integrity sha512-3NdBP/4ZhkroWrCVyfHoc0PM6ZJD0IhqXkPO/bMDTjX8scilU85SkC2iAnReD6BoLF6ywriMpozHiU2Ax8aH2Q== integrity sha512-S0LTMU0a9SPdSA3ezEpo03ZGfrr7XtouEs0O5c4fA0kWYsddNkalighy3CYTgZZwaR9oWNnY6t4pyka3WXAaqg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
sweetalert2 "^11.3.6" sweetalert2 "^11.3.6"
"@abp/timeago@~8.2.0-rc.4": "@abp/timeago@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.4.tgz#777793699f0271e81b3fe96d46066a30925ed298" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.5.tgz#8bd78f2ee6b27b8ffd77e75a2851b61013e481ee"
integrity sha512-TfxUi1gn0dPuWFYCwo+g3xh4kkCo1otbvoUQOvrHp6VuQdHbXtSz0kP8VBPGKtVtlRsNe91+gDkv7n8njwrQ9g== integrity sha512-eLG9WFtP1dOoYHaNxyV8gOx1xnKmqSTwgviTU45qUFSNsgQHH1n0bpBxUXSSvaFw5mWRbF3R/JJQHql+Dl6Cow==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~8.2.0-rc.4": "@abp/toastr@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.4.tgz#5edfc10d6123219cc86286ed8b1249af5dbadfde" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.5.tgz#baecda4e6fed5676f58de2228bf8d1c6ae66d49e"
integrity sha512-QDJXroe1Fp2VEWU0Yza/L+DU9R0ZDBw0RcopRcliwAm5RgsVVaaxHZ+jO7LLDfP8JQ6Pi0wTamhKwrfglnG7Ww== integrity sha512-y7aOY1LF62yRwXRSrvimtqIilrsOgSAM8lHcp2RogZAFdmw7yU1R5a6fJlLDGeRBIgjdcIlSpaOuoi6T2hCjFw==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@~8.2.0-rc.4": "@abp/utils@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.4.tgz#be59dd4b5dfc085b88528639047699a9e5486e81" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.5.tgz#526d64aa3e059d2f6e595b22e35dda2d652377e4"
integrity sha512-imIFmlP0gY+rXFbwufo8jMzcmEuz/6uKr/e8/bW4bOhPDD65go/3TTVkNLr0hzB9qSahZG/LGu2eDFTqlowlrg== integrity sha512-ZU7jHFpDh7jDYgCrX6aXqy/v4LrMGgYJN+siyWUMpVddg2lTTO2MsxI+KmSxJwD7H01Mqj1sZ+LBAOVxGR3hsw==
dependencies: dependencies:
just-compare "^2.3.0" just-compare "^2.3.0"

4
modules/cms-kit/host/Volo.CmsKit.Web.Unified/package.json

@ -3,7 +3,7 @@
"name": "my-app", "name": "my-app",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.4", "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.5",
"@abp/cms-kit": "8.2.0-rc.4" "@abp/cms-kit": "8.2.0-rc.5"
} }
} }

392
modules/cms-kit/host/Volo.CmsKit.Web.Unified/yarn.lock

@ -2,293 +2,293 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.4.tgz#dc9e9e6541694531726127e2e387156a24dd7f9e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.5.tgz#5cc3231d27e9e12e6fdc3e4fc5eb3e6f2019cf13"
integrity sha512-Ixs3yr5fHkB1h8PuuJdPiY0uDf+Dq9jUdbaHsoJmaYRdOSqhLDpNkyAqFFrqDmoEmZvmrThCupt5ZSg9laQ8yw== integrity sha512-SKr5Zm6k2SxrRBW2gqJAsTag4KacVzuVG3sTCD5P5BZLYn5OvknwSeky4tg/wzCodWp20wf89hWyET4E0iKExg==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.4.tgz#2b1468bf05fc505d11d5c0253a782a328088d283" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.5.tgz#97b86ea4daf4392a1067e2a7e7c03b4c381ccc82"
integrity sha512-QveGyyMKAMnY48+AsUqkB/LnqtnTc3Fd5m1wLPNVF+P0j6CaaETmfJNc0xw+WYF14r+NC8K4PeC58z3SYMGlLw== integrity sha512-lR3XbbNct+8QH1dRhED5s/CHCgkANVyNBrWCQbo4BwBFJ27d3wuJDVt39VxQUsgNfxEmyoJdVZNDRUKDv6fTOw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui" "~8.2.0-rc.5"
"@abp/bootstrap" "~8.2.0-rc.4" "@abp/bootstrap" "~8.2.0-rc.5"
"@abp/bootstrap-datepicker" "~8.2.0-rc.4" "@abp/bootstrap-datepicker" "~8.2.0-rc.5"
"@abp/bootstrap-daterangepicker" "~8.2.0-rc.4" "@abp/bootstrap-daterangepicker" "~8.2.0-rc.5"
"@abp/datatables.net-bs5" "~8.2.0-rc.4" "@abp/datatables.net-bs5" "~8.2.0-rc.5"
"@abp/font-awesome" "~8.2.0-rc.4" "@abp/font-awesome" "~8.2.0-rc.5"
"@abp/jquery-form" "~8.2.0-rc.4" "@abp/jquery-form" "~8.2.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~8.2.0-rc.4" "@abp/jquery-validation-unobtrusive" "~8.2.0-rc.5"
"@abp/lodash" "~8.2.0-rc.4" "@abp/lodash" "~8.2.0-rc.5"
"@abp/luxon" "~8.2.0-rc.4" "@abp/luxon" "~8.2.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.4" "@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.5"
"@abp/moment" "~8.2.0-rc.4" "@abp/moment" "~8.2.0-rc.5"
"@abp/select2" "~8.2.0-rc.4" "@abp/select2" "~8.2.0-rc.5"
"@abp/sweetalert2" "~8.2.0-rc.4" "@abp/sweetalert2" "~8.2.0-rc.5"
"@abp/timeago" "~8.2.0-rc.4" "@abp/timeago" "~8.2.0-rc.5"
"@abp/toastr" "~8.2.0-rc.4" "@abp/toastr" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.4.tgz#5e4613f506a02d45d7adcee1060032774e635fe5" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.5.tgz#4a845ebd4b6465b9ac04641d7479b449ca9e1c5f"
integrity sha512-rr3BE6RhimlHcNv0HKT3xIi/+6Sq5TSqRDvmiFqa7bvxemKMstHiEa2lxpx5XP9CPpV9gNzjC/NV+TQy4YDIqg== integrity sha512-l3brGHAD2jnlAWwITGNAY5zOtmc0WItVabYCTvKrYyNuKIPEtW9getUNFp9BFMT9x0KZiGnkkrRkvxH+DzIcug==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
"@abp/bootstrap-datepicker@~8.2.0-rc.4": "@abp/bootstrap-datepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.4.tgz#7f6b7b0da2c8fd46dc08b1976c57b80b65069246" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.5.tgz#0e8755a51d7a691837951f7a071a9e59a2e9e6cf"
integrity sha512-+Ylw8PFuAmpza714vQPjfU/lCOS2NsUX2cGp12Yyy4fS36udPCa/HYWTVdpH36OGae1dV/GzrfgnlZsCvUNhBA== integrity sha512-bLt8l6kYbVblThd2iuXcp6Ydss8TefpnZXHyXrQCxZGmVb79I/vf48CekJo1OWY/WcyEi/bm0m4LEI8Q0Y/LZQ==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap-daterangepicker@~8.2.0-rc.4": "@abp/bootstrap-daterangepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.4.tgz#579e8a4fd9d235385514da3f2ca73283294a78e3" resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.5.tgz#e37792f24c3c8a8643e5ba5744967505e54f836c"
integrity sha512-KIinwEwkCzlYd7gDJt3htgflfrdWnyW4fr/V6GVi2EGxK6UA5HWMRG8MkvUKXmJ4rCHfEUdpWeGBXLbPR8R4eQ== integrity sha512-dN02S1g9sVgACMz+A5FJw0uz4u5lXTFd/7xjE+cmhj0p5AcGvDD3gTbes6d3QNKiwvsPge063lG9pisdn3uEjg==
dependencies: dependencies:
bootstrap-daterangepicker "^3.1.0" bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.2.0-rc.4": "@abp/bootstrap@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.4.tgz#dc08a0db67a2a652c03087d299da1abfab677ebf" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.5.tgz#1acc191f8156d81e1794bc161bfb394ae8f7372e"
integrity sha512-wwZQk2XU6puEzBJ7W+80Oh/8z6n+DNc2YJnCnJNPbURgclMsN4v3/WJ2iKlO4g0fOkepvlgYkbYWPf+pusxSCQ== integrity sha512-FacgSrDlS3QSR+5WdOy06Qw0qF7OoqoBwAGqro2WOfY5sFR5OwEiqXHXUF95+a/q9B9NuYKXBjBfOPhljdiuuA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
bootstrap "^5.1.3" bootstrap "^5.1.3"
"@abp/clipboard@~8.2.0-rc.4": "@abp/clipboard@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.0-rc.4.tgz#c3d20d642765dc235749d4f95f599cb97f23325d" resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.0-rc.5.tgz#5cec3d9c89bdad8d50f41807b3be68d4cdecb003"
integrity sha512-w94YGLT/UVn1haLGlH8zOcgrCS64OrnVlzh3QXps+8m4S9g7KDeVk3g4ju/VUao2YKCHmRJ3uRhOGCb58of1iw== integrity sha512-cBaMy8A1CIU00X6SoGyuMTVf6z9iyEaR6smVRWCVmkf2VayAHFES981+iE+VmT2bezgbCidA2GXtkBZ/kunbJg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
clipboard "^2.0.8" clipboard "^2.0.8"
"@abp/cms-kit.admin@~8.2.0-rc.4": "@abp/cms-kit.admin@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.2.0-rc.4.tgz#755926c1b6d259c6d88858b7cf1d6c3c3a0b3792" resolved "https://registry.yarnpkg.com/@abp/cms-kit.admin/-/cms-kit.admin-8.2.0-rc.5.tgz#c91c4c4a3fb1d28e8ebbdb7eddcc9d739da0f5e0"
integrity sha512-90BYx3YhYYs6zk5j0AeSlvge6sFZF7h8PeER6VZ/jL2y74hRQ51Wc0zY6DjJpMgrzy7fpYDrJHMF/NaZe8qgNw== integrity sha512-0l6BfoKiqa2PqgucHwTL1uvrgQB9KV7OiT9OukwJfYi//9fgxi7ZNzqyjnI3ypb5yKRHYEX8pvFUpkDSBz+5Rg==
dependencies: dependencies:
"@abp/codemirror" "~8.2.0-rc.4" "@abp/codemirror" "~8.2.0-rc.5"
"@abp/jstree" "~8.2.0-rc.4" "@abp/jstree" "~8.2.0-rc.5"
"@abp/slugify" "~8.2.0-rc.4" "@abp/slugify" "~8.2.0-rc.5"
"@abp/tui-editor" "~8.2.0-rc.4" "@abp/tui-editor" "~8.2.0-rc.5"
"@abp/uppy" "~8.2.0-rc.4" "@abp/uppy" "~8.2.0-rc.5"
"@abp/cms-kit.public@~8.2.0-rc.4": "@abp/cms-kit.public@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.2.0-rc.4.tgz#eccc6768693c3e29e85fcab4327e91eec83a3a8b" resolved "https://registry.yarnpkg.com/@abp/cms-kit.public/-/cms-kit.public-8.2.0-rc.5.tgz#a7b55b0c9a15ea634e68b1399d215442d7b6791f"
integrity sha512-bu6TJ10aKDx/EgSau6WIKKaHKWbjPz4+FPfukU5iVZ8KorwVs1YBRVIBSTOn/MeRyxSm8VSFcAYeWft5LskMsA== integrity sha512-BdaPklN/NrSAmd5g0Gm/5rYVm1yyIo+8k+N8owqDQl56PuNS6nYV2z0s2kJGSgq1+rGLIBCoAsYwHTGchSl3Og==
dependencies: dependencies:
"@abp/highlight.js" "~8.2.0-rc.4" "@abp/highlight.js" "~8.2.0-rc.5"
"@abp/star-rating-svg" "~8.2.0-rc.4" "@abp/star-rating-svg" "~8.2.0-rc.5"
"@abp/cms-kit@8.2.0-rc.4": "@abp/cms-kit@8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.2.0-rc.4.tgz#88573612c7bd8d7a873c61b0b843b029b9292e94" resolved "https://registry.yarnpkg.com/@abp/cms-kit/-/cms-kit-8.2.0-rc.5.tgz#f56b0fc4bfc449e1f5089b56d5b31d8f9a3b52e3"
integrity sha512-1nhEyG3uU3n38xGbglTDKgJA9C+NGhtF0XlaCXoasHRY45xUVQjv7c5XhZKMUWmzeFRk2FiqrU3Lanszf7VUYw== integrity sha512-yd1kzK5ozgtyo7NL1Cvpy1hi2M/nVmtkvlQpzLjj4Sh66ETX5RGqMn+c5F9RHWQG0htRbJADdnKEX92wyyqSzQ==
dependencies: dependencies:
"@abp/cms-kit.admin" "~8.2.0-rc.4" "@abp/cms-kit.admin" "~8.2.0-rc.5"
"@abp/cms-kit.public" "~8.2.0-rc.4" "@abp/cms-kit.public" "~8.2.0-rc.5"
"@abp/codemirror@~8.2.0-rc.4": "@abp/codemirror@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.2.0-rc.4.tgz#c237035fcf35143cc4607d3808511470008b7163" resolved "https://registry.yarnpkg.com/@abp/codemirror/-/codemirror-8.2.0-rc.5.tgz#aaaac96018847901b77e49a5b49889abc7b63534"
integrity sha512-FhiaQH87k9C/iZDOolEmTYTqUlvTVgg3LW99pjBfhmNgC7/nrN8kZFIckyKRFC5u5Vri4scpM036e5Cze47kvQ== integrity sha512-eIy9kML6ObXLy8tX177Mhqvbv9w6nJ1vX3UpPT3bCc0CUu9MpqvUnj3MWd9SA3RqPiy23Jy4DS/M/6Nd40Um7A==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
codemirror "^5.65.1" codemirror "^5.65.1"
"@abp/core@~8.2.0-rc.4": "@abp/core@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.4.tgz#bf6b343ab43468ca88cdb4697caf25d65aa2c269" resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.5.tgz#67eb75df046f8997f6af14e86bf8dbf249388a8d"
integrity sha512-rGUDzLIiUJZ+7ZgzOGXxzc4k//9EBjVY4P4kO0XKCOEv08YwsUJmTzddsiMHZLIqRJ2wdT1UiH7PrcolBiW1UQ== integrity sha512-XVunQMbK/MApkfnpL+8WsVqsJxARBl6W0TZwKfPyfm1QzPWE75P4oW3CIdNis0+Ob5HfhSFFp78tVrbSoEdzYQ==
dependencies: dependencies:
"@abp/utils" "~8.2.0-rc.4" "@abp/utils" "~8.2.0-rc.5"
"@abp/datatables.net-bs5@~8.2.0-rc.4": "@abp/datatables.net-bs5@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.4.tgz#869021a6639d765abb645a5de7501881b67e7095" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.5.tgz#fe04af4b14530545a05c4c58361aadfdddd8e8c2"
integrity sha512-CdYfn4qhB/KdTYfOrAsUSPtw8AGAbZHOTc4EyWAmxDKFCFyakj27+uoV/Stgs25nCaAXn1JHysfOxoNkP1ikyg== integrity sha512-yZKC111JVxcOkDz/WxJyQ0lw3JpbBBWr21LVNjyhEiN62w8tJN1Gwo7CjL+7WFm7RPnAUUf/qwitRWmWl7M4YA==
dependencies: dependencies:
"@abp/datatables.net" "~8.2.0-rc.4" "@abp/datatables.net" "~8.2.0-rc.5"
datatables.net-bs5 "^1.11.4" datatables.net-bs5 "^1.11.4"
"@abp/datatables.net@~8.2.0-rc.4": "@abp/datatables.net@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.4.tgz#4f0e612a11813f38331aae221c342efc4443138d" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.5.tgz#94e4b933750332732eeef02119a6cdfca67811e7"
integrity sha512-omEYXlB/OzUGmvTy7k7rhZjWtXILpl7idLwV1yXzJUkdjLjaBzIgrbWj/80YAI5K7MdpKE0/pdPnORX6G5ij9Q== integrity sha512-IAXbC29eiHvA3unVMsFh2sNfiw+Jlgah0D++IUKOlz1eAzHMrpwP5KE4jmF6GESF7Al95NkgqH7cd6MUst+UlA==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
datatables.net "^1.11.4" datatables.net "^1.11.4"
"@abp/font-awesome@~8.2.0-rc.4": "@abp/font-awesome@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.4.tgz#5c977e54c428e80af2a93166e968ec7635b0694d" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.5.tgz#5ae19305a373a6dd083944bd825ccea84aadf40b"
integrity sha512-zyQwZhhOgKi6JLWbkI+iycwS1lcCx/tvn+AskQSdV2+ycnrcjm9TMWmWosAGwS6VW9demRamuegUNOgiVpy/SA== integrity sha512-VbcM80e9KrZzY6TJ9l/eW42CTpdQ0eBr5gOEW+/UWGTRalCLdGve9YVJZJA55bD1VtcgaR1sV342jw2B1XeN8w==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
"@fortawesome/fontawesome-free" "^6.5.1" "@fortawesome/fontawesome-free" "^6.5.1"
"@abp/highlight.js@~8.2.0-rc.4": "@abp/highlight.js@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.2.0-rc.4.tgz#94587632517396f3d251d2c457ea8a452203f086" resolved "https://registry.yarnpkg.com/@abp/highlight.js/-/highlight.js-8.2.0-rc.5.tgz#24c329217ad4092172cba3e9e23a67814f9a164f"
integrity sha512-RHSrR0qqXncosbHDfYBB8aXh0BQ6M8BpjbyXeqe+vKDIznzjv3jcyF2SIP/l6TBBYcaBPnAOdjfuC9i9B8Rfzg== integrity sha512-NHoUAVrGDV+BQ1rtC4orZ0xYX/4VkjZgouIktpuCAEs8wiP6/5Ddjzf2uYFv8c6XVqBm1Mx9Bufxx7aYo2O/Uw==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
"@highlightjs/cdn-assets" "~11.4.0" "@highlightjs/cdn-assets" "~11.4.0"
"@abp/jquery-form@~8.2.0-rc.4": "@abp/jquery-form@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.4.tgz#3ef39f9f716ff17b34d61eeb3c234ed3867b91da" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.5.tgz#b955fe2c226f1f35a3736aa3b2170f265a797552"
integrity sha512-nD5c2g4aPlDSggoR2lJ0Zd9Jg/2yrpVKnJqNuvx7DIdxPIZed2LL5ONaOtO8pLTsKqh5ua1UsqgsyfJ/mb9T1w== integrity sha512-M9fUUYywljudem/K7aYlcIG2W+KTzUJPviSeOLo5KNxvVrScWr+Jf4M8Nbj6uWX1saYWmm5kYnfsDs+nOUcmDg==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.2.0-rc.4": "@abp/jquery-validation-unobtrusive@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.4.tgz#5124068f01db8c0e4365594fefb236f91bd60e8d" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.5.tgz#c790dc1b707ee7d24fe99c2b7be6bc558af09667"
integrity sha512-JKtZoeSSbSGbTl28ZEHvqCvC2cCX3aOV7PHKhpIzQSfVK22Uo3swsc2bv3sH2HdxNi3jWAGcd7YUG093STMm3Q== integrity sha512-sUkfb17cR2zM669U83R8dviv+p+uGNl5nmOV0AP4ch6CzLfnTOYzKsqV7ESGVxqB8oVHO/Wnr8sXaaLdsoQzJw==
dependencies: dependencies:
"@abp/jquery-validation" "~8.2.0-rc.4" "@abp/jquery-validation" "~8.2.0-rc.5"
jquery-validation-unobtrusive "^3.2.12" jquery-validation-unobtrusive "^3.2.12"
"@abp/jquery-validation@~8.2.0-rc.4": "@abp/jquery-validation@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.4.tgz#95540b7a6ef1f27b511e42b03cdf0c1c364ce8df" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.5.tgz#294254556e804d641d3bf4ea50d1c3eb42f191d1"
integrity sha512-fN2ZJ0eCjQ5nu5fdwKx0cmGTWZyzltwrfhnI0JG27EsBP8EtyO8aWHZEFKgL+vXTy07LraTJD1KSpIIZSsrHVw== integrity sha512-C7sOuSShkX5Ba6LiSBGuxlrORcxiYczZtsxyjRZzNzATYwEBHcLqMxDvgAsWeWtvtkMotkbB2k99vD93nlGuCQ==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-validation "^1.19.3" jquery-validation "^1.19.3"
"@abp/jquery@~8.2.0-rc.4": "@abp/jquery@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.4.tgz#327452ce3f49f6a9fe32a1934a6f347e2a0a309b" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.5.tgz#9b01156a80d8da6407abb6d51541cb89624cb906"
integrity sha512-JYeQwpa671AyYf7sv+XgCaie2mOjWCDZYlFHEqH4whjTqT5SU8WwSkhux+/KLtBImSeQyTzyup7CuQYWBuk15w== integrity sha512-KcRVhxEmUuJHd4JNBSeJV+3Ush4w9ambKxwPi3+q1fqdePekrLk9jKNud5HkP6JredBoESJ+TkeVFFQ5HnYPVg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/jstree@~8.2.0-rc.4": "@abp/jstree@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.2.0-rc.4.tgz#7f3e492b950a33caaa45dde106e0409bc2139c2a" resolved "https://registry.yarnpkg.com/@abp/jstree/-/jstree-8.2.0-rc.5.tgz#7aa921da7a37a1616256041974b322cd237f38b2"
integrity sha512-877rG+Y1kKGC6xg6E8R0J/bsyYLTXqhVnUA4HnZLdkVdwgOxRUwHZXiaR3zadbkpeFYACBkMdBGI0ozWkjn1PA== integrity sha512-VxnrLSZfQ+ln8vSm6Hu3DWCfsnb+L+dGzCP1Lkgv1/MrDiRBhp52zzJHcvxjNhoM7pgHQ6ivHwCiYQ+0ru+3hg==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jstree "^3.3.12" jstree "^3.3.12"
"@abp/lodash@~8.2.0-rc.4": "@abp/lodash@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.4.tgz#229be25a0e09f4e1b74b7e064113c3a1347d28c7" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.5.tgz#b6fa8754258dd2db59b0df65fb9f7d90c8611af6"
integrity sha512-zhLlPlhrCZNngx2ns3reKG2Nmec8g2KWbN55Z1gx0XYqaymT/0zuzfkfPBdpuoyIqrXcPJL0aK21SH4Tu8LjUA== integrity sha512-LvK03DSk9lDNGEFrjMdiaAkaH58ll+PIn663KJk0kVZvtNLy/egCOMCc6EBuE5DUsjwebLi6YZYzgRQRRKirgw==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
lodash "^4.17.21" lodash "^4.17.21"
"@abp/luxon@~8.2.0-rc.4": "@abp/luxon@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.4.tgz#fdb6c8d13be6ded1d531e2d66b532d0453597c01" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.5.tgz#e4300d1deebab16432737c831cfae0025b7c5891"
integrity sha512-3iat30cVfmymoW208PjCLlrKO6VTuU8lgk/Vg0XnaX/DbNldNhBUHHzEgC9TiHLUejBSd5cunz88rhFuODz14Q== integrity sha512-UdAToIlS0CwmavErMtd5dwyssKNPa6oqlHrll5h7T26nHDPEdXzSi9rP8RvwqBkrt+BFPMctRSv6DYk8OwoWzA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
luxon "^2.3.0" luxon "^2.3.0"
"@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.4": "@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.4.tgz#1eb1621edd8559b43734590f123c331a360a2d93" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.5.tgz#8f39683e55fbc5487de08b9209a552cf32ea8087"
integrity sha512-OoqjoW1e5U/J77zr6A5DPyWha/b4UeTWaAXtl8xigJmhcDhvKe0jfvE33iHgZupFWiGu354mICNT+rQ1S2wMyA== integrity sha512-e20kLUvnu6tD5GBjzGLQjTMeyeco4q5wO4H4mMuahJpCHue+EUrL0tT1IbWiE+eEmbePw/lAn7Yfhfwjq/+Eeg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.2.0-rc.4": "@abp/moment@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.4.tgz#97eef0f868ad95057493e97f386c791871c063c3" resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.5.tgz#e38c7e66ee383a986c7972f4ba2b19d79a43f60e"
integrity sha512-q06AsfUbut7Rxgp0JMlN0dvP7C1QRMfPNO+95ZXEEnqDDlajqaIt4X/7l1gb/Iz+7yc5XVT7FJdmT+bR22etGA== integrity sha512-F//4TZySaFBTfWgBxzwTFLeStrS0nklmKcTMU+MOtb/7Zx3QtscJpNm4CmxiBpB8pLwK8xiJQGoiuMQdoTuq+g==
dependencies: dependencies:
moment "^2.9.0" moment "^2.9.0"
"@abp/prismjs@~8.2.0-rc.4": "@abp/prismjs@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.0-rc.4.tgz#f6df729333d4dc934c3978c29e62dddf6a22c19a" resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.0-rc.5.tgz#7a7428bb2f118cef5121a196bc45cc5d1a5a8e93"
integrity sha512-+fLF7ndhgV9v3zcWFoNSR0kPasIcagJC6FT90ALWs2XccBtjAYOm9/365DK5lyDUh0ynHx9fBgDdCdIX0Zv9RA== integrity sha512-lNPqRvisf8jAxyL/05ppH26ZH4DEEzZUKqO7zqqS+yl7sBTpR/Wh8xX09spQl+wBQTLWAz2z+MouBZnMQIYKjg==
dependencies: dependencies:
"@abp/clipboard" "~8.2.0-rc.4" "@abp/clipboard" "~8.2.0-rc.5"
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
prismjs "^1.26.0" prismjs "^1.26.0"
"@abp/select2@~8.2.0-rc.4": "@abp/select2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.4.tgz#085ec0f915099201b75cbb7b4bfe6826039f542d" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.5.tgz#5fc1dfa4bb871961db0ce9eb68a2c655c38b32d0"
integrity sha512-DrRNVxB0UcRCBhYkkp9TTmu3SDwaJ6kR3WCH7zMZgjYx/K250ojcuIot98fzuecuT3Te3qiGxKwBIclr2Yt/aw== integrity sha512-fT5L+mgiEOBtf2mmXNv6GtXVNjv22qQlgWp1UjI7c0jLtNPHa7P8idVTaP3g6d8b7VCP5zxIUGgjf6sZMxhADg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/slugify@~8.2.0-rc.4": "@abp/slugify@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.2.0-rc.4.tgz#f98961f363fa13648d03b0c23728e36e1cac3ea3" resolved "https://registry.yarnpkg.com/@abp/slugify/-/slugify-8.2.0-rc.5.tgz#99f074e35a92d36912ccc984886682d225994ed2"
integrity sha512-f3PDG3PFj4CNgRdPUue1rtwy5kNcpSlxUBuQPg3rwSQzdVZQS+dbTOFlkwtt/p8tcAkKaTOWL625Ezk02OS88g== integrity sha512-NuEwyxW97VxHH4XEb1fejn/HMYlPCiVJgKdhxQB1XXw7yLqO9QTL6Z5v3H3gafllz/z6OyHdZFCOxq3lkgWt5Q==
dependencies: dependencies:
slugify "^1.6.5" slugify "^1.6.5"
"@abp/star-rating-svg@~8.2.0-rc.4": "@abp/star-rating-svg@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.2.0-rc.4.tgz#c9d4d9f91a198aae5e436b88ce2163aa084f1b25" resolved "https://registry.yarnpkg.com/@abp/star-rating-svg/-/star-rating-svg-8.2.0-rc.5.tgz#59b231f053e67543eb259a516c03f62586bf0257"
integrity sha512-TdFt8FQhkStWfQ1d3OpupAxnw9f0sI53biMDLWweK40nuGEEtdaHHwU17yHcHMxQSMKm4xamxDsOPBD0xWYf+A== integrity sha512-VLudGc14ui8qKXA8zjIjPUJCjCdOsF7bhd6y2E1tNrOOYyjKQqmrDEyslo8G7uCQhJ7kPhBULHDfJk8oViYruA==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
star-rating-svg "^3.5.0" star-rating-svg "^3.5.0"
"@abp/sweetalert2@~8.2.0-rc.4": "@abp/sweetalert2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.4.tgz#6866295a91602167cf314f1eb3bc315825cc0cb3" resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.5.tgz#502d6dbaf2c5296f67722e085e52dd0fe62e8dde"
integrity sha512-3NdBP/4ZhkroWrCVyfHoc0PM6ZJD0IhqXkPO/bMDTjX8scilU85SkC2iAnReD6BoLF6ywriMpozHiU2Ax8aH2Q== integrity sha512-S0LTMU0a9SPdSA3ezEpo03ZGfrr7XtouEs0O5c4fA0kWYsddNkalighy3CYTgZZwaR9oWNnY6t4pyka3WXAaqg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
sweetalert2 "^11.3.6" sweetalert2 "^11.3.6"
"@abp/timeago@~8.2.0-rc.4": "@abp/timeago@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.4.tgz#777793699f0271e81b3fe96d46066a30925ed298" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.5.tgz#8bd78f2ee6b27b8ffd77e75a2851b61013e481ee"
integrity sha512-TfxUi1gn0dPuWFYCwo+g3xh4kkCo1otbvoUQOvrHp6VuQdHbXtSz0kP8VBPGKtVtlRsNe91+gDkv7n8njwrQ9g== integrity sha512-eLG9WFtP1dOoYHaNxyV8gOx1xnKmqSTwgviTU45qUFSNsgQHH1n0bpBxUXSSvaFw5mWRbF3R/JJQHql+Dl6Cow==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~8.2.0-rc.4": "@abp/toastr@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.4.tgz#5edfc10d6123219cc86286ed8b1249af5dbadfde" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.5.tgz#baecda4e6fed5676f58de2228bf8d1c6ae66d49e"
integrity sha512-QDJXroe1Fp2VEWU0Yza/L+DU9R0ZDBw0RcopRcliwAm5RgsVVaaxHZ+jO7LLDfP8JQ6Pi0wTamhKwrfglnG7Ww== integrity sha512-y7aOY1LF62yRwXRSrvimtqIilrsOgSAM8lHcp2RogZAFdmw7yU1R5a6fJlLDGeRBIgjdcIlSpaOuoi6T2hCjFw==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/tui-editor@~8.2.0-rc.4": "@abp/tui-editor@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.2.0-rc.4.tgz#105b5245b59a00ca3dc92900f051dfc55119c0ff" resolved "https://registry.yarnpkg.com/@abp/tui-editor/-/tui-editor-8.2.0-rc.5.tgz#809ef1bb0f90576d2ad7e67b13e707fe889a7e27"
integrity sha512-bKfHMbgelmrzqKzdKT6xONwjWDTKiSXroQaHCHcoCmAH6dRboIFCvltMY1xvOk5BAjWUOOgOB+G8PA3rhdlBYg== integrity sha512-M1rKE0IhOmj6b/RopK2zDLSe0c7uSngWTv7MYEQjmGwHBG1+M0CEBSXVZWEJQ+LZjB+83oc4Z4UOW+yUW0suXg==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
"@abp/prismjs" "~8.2.0-rc.4" "@abp/prismjs" "~8.2.0-rc.5"
"@abp/uppy@~8.2.0-rc.4": "@abp/uppy@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.2.0-rc.4.tgz#d22105ae16bd9c8254b15c54f7b64ab8960822a5" resolved "https://registry.yarnpkg.com/@abp/uppy/-/uppy-8.2.0-rc.5.tgz#5ff805da9d2ff6370c2b67ef4d4feac271dca89e"
integrity sha512-MmoM5AULSBKLi97T5fmZ1WZaBj2GO/L4v6AR4SNsw9ID8frCUYadk8tb+qEitVW+d2ji9M91C4A22ILMmsVjeg== integrity sha512-Wgkvo1KLLNQy61u8yRQ4/FyyL+PVOTBAzHh/GqLdgazToO+F22Z+7C0asX4P4dM77PmJ+Ynyp0uiohK1+ep+MQ==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
uppy "^3.0.0" uppy "^3.0.0"
"@abp/utils@~8.2.0-rc.4": "@abp/utils@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.4.tgz#be59dd4b5dfc085b88528639047699a9e5486e81" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.5.tgz#526d64aa3e059d2f6e595b22e35dda2d652377e4"
integrity sha512-imIFmlP0gY+rXFbwufo8jMzcmEuz/6uKr/e8/bW4bOhPDD65go/3TTVkNLr0hzB9qSahZG/LGu2eDFTqlowlrg== integrity sha512-ZU7jHFpDh7jDYgCrX6aXqy/v4LrMGgYJN+siyWUMpVddg2lTTO2MsxI+KmSxJwD7H01Mqj1sZ+LBAOVxGR3hsw==
dependencies: dependencies:
just-compare "^2.3.0" just-compare "^2.3.0"

11
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentApprovalDto.cs

@ -0,0 +1,11 @@
using System;
using System.Collections.Generic;
using System.Text;
namespace Volo.CmsKit.Admin.Comments;
[Serializable]
public class CommentApprovalDto
{
public bool IsApproved { get; set; }
}

4
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; using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.Comments; namespace Volo.CmsKit.Admin.Comments;
@ -19,4 +19,6 @@ public class CommentDto : ExtensibleObject
public Guid CreatorId { get; set; } public Guid CreatorId { get; set; }
public DateTime CreationTime { get; set; } public DateTime CreationTime { get; set; }
public bool? IsApproved { get; set; }
} }

3
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentGetListInput.cs

@ -1,5 +1,6 @@
using System; using System;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.CmsKit.Comments;
namespace Volo.CmsKit.Admin.Comments; namespace Volo.CmsKit.Admin.Comments;
@ -17,4 +18,6 @@ public class CommentGetListInput : PagedAndSortedResultRequestDto
public DateTime? CreationStartDate { get; set; } public DateTime? CreationStartDate { get; set; }
public DateTime? CreationEndDate { get; set; } public DateTime? CreationEndDate { get; set; }
public CommentApproveState CommentApproveState { get; set; }
} }

9
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Admin/Comments/CommentSettingsDto.cs

@ -0,0 +1,9 @@
using System;
namespace Volo.CmsKit.Admin.Comments;
[Serializable]
public class CommentSettingsDto
{
public bool CommentRequireApprovement { get; set; }
}

4
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; using Volo.Abp.ObjectExtending;
namespace Volo.CmsKit.Admin.Comments; namespace Volo.CmsKit.Admin.Comments;
@ -23,4 +23,6 @@ public class CommentWithAuthorDto : ExtensibleObject
public CmsUserDto Author { get; set; } public CmsUserDto Author { get; set; }
public string Url { get; set; } public string Url { get; set; }
public bool? IsApproved { get; set; }
} }

8
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 System.Threading.Tasks;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services; using Volo.Abp.Application.Services;
@ -12,4 +12,10 @@ public interface ICommentAdminAppService : IApplicationService
Task<CommentWithAuthorDto> GetAsync(Guid id); Task<CommentWithAuthorDto> GetAsync(Guid id);
Task DeleteAsync(Guid id); Task DeleteAsync(Guid id);
Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input);
Task UpdateSettingsAsync(CommentSettingsDto input);
Task<int> GetWaitingCountAsync();
} }

4
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissionDefinitionProvider.cs

@ -17,6 +17,10 @@ public class CmsKitAdminPermissionDefinitionProvider : PermissionDefinitionProvi
.RequireGlobalFeatures(typeof(CommentsFeature)); .RequireGlobalFeatures(typeof(CommentsFeature));
contentGroup.AddChild(CmsKitAdminPermissions.Comments.Delete, L("Permission:Comments.Delete")) contentGroup.AddChild(CmsKitAdminPermissions.Comments.Delete, L("Permission:Comments.Delete"))
.RequireGlobalFeatures(typeof(CommentsFeature)); .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")) var tagGroup = cmsGroup.AddPermission(CmsKitAdminPermissions.Tags.Default, L("Permission:TagManagement"))
.RequireGlobalFeatures(typeof(TagsFeature)); .RequireGlobalFeatures(typeof(TagsFeature));

2
modules/cms-kit/src/Volo.CmsKit.Admin.Application.Contracts/Volo/CmsKit/Permissions/CmsKitAdminPermissions.cs

@ -8,6 +8,8 @@ public static class CmsKitAdminPermissions
{ {
public const string Default = GroupName + ".Comments"; public const string Default = GroupName + ".Comments";
public const string Delete = Default + ".Delete"; public const string Delete = Default + ".Delete";
public const string Update = Default + ".Update";
public const string SettingManagement = Default + ".SettingManagement";
} }
public static class Tags public static class Tags

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

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk"> <Project Sdk="Microsoft.NET.Sdk">
<Import Project="..\..\..\..\common.props" /> <Import Project="..\..\..\..\common.props" />
<Import Project="..\..\..\..\configureawait.props" /> <Import Project="..\..\..\..\configureawait.props" />
@ -17,4 +17,5 @@
<Folder Include="Volo\CmsKit\Admin\Contents\" /> <Folder Include="Volo\CmsKit\Admin\Contents\" />
</ItemGroup> </ItemGroup>
</Project> </Project>

1
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/CmsKitAdminApplicationAutoMapperProfile.cs

@ -34,6 +34,7 @@ public class CmsKitAdminApplicationAutoMapperProfile : Profile
CreateMap<BlogPost, BlogPostListDto>() CreateMap<BlogPost, BlogPostListDto>()
.Ignore(d => d.BlogName) .Ignore(d => d.BlogName)
.MapExtraProperties(); .MapExtraProperties();
CreateMap<CreateBlogPostDto, BlogPost>(MemberList.Source).MapExtraProperties(); CreateMap<CreateBlogPostDto, BlogPost>(MemberList.Source).MapExtraProperties();
CreateMap<UpdateBlogPostDto, BlogPost>(MemberList.Source).MapExtraProperties(); CreateMap<UpdateBlogPostDto, BlogPost>(MemberList.Source).MapExtraProperties();

45
modules/cms-kit/src/Volo.CmsKit.Admin.Application/Volo/CmsKit/Admin/Comments/CommentAdminAppService.cs

@ -5,6 +5,7 @@ using Microsoft.AspNetCore.Authorization;
using Volo.Abp.Application.Dtos; using Volo.Abp.Application.Dtos;
using Volo.Abp.Features; using Volo.Abp.Features;
using Volo.Abp.GlobalFeatures; using Volo.Abp.GlobalFeatures;
using Volo.Abp.SettingManagement;
using Volo.CmsKit.Comments; using Volo.CmsKit.Comments;
using Volo.CmsKit.Features; using Volo.CmsKit.Features;
using Volo.CmsKit.GlobalFeatures; using Volo.CmsKit.GlobalFeatures;
@ -20,9 +21,14 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp
{ {
protected ICommentRepository CommentRepository { get; } protected ICommentRepository CommentRepository { get; }
public CommentAdminAppService(ICommentRepository commentRepository) protected ISettingManager SettingManager { get; }
public CommentAdminAppService(
ICommentRepository commentRepository,
ISettingManager settingManager)
{ {
CommentRepository = commentRepository; CommentRepository = commentRepository;
SettingManager = settingManager;
} }
public virtual async Task<PagedResultDto<CommentWithAuthorDto>> GetListAsync(CommentGetListInput input) public virtual async Task<PagedResultDto<CommentWithAuthorDto>> GetListAsync(CommentGetListInput input)
@ -33,7 +39,9 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp
input.RepliedCommentId, input.RepliedCommentId,
input.Author, input.Author,
input.CreationStartDate, input.CreationStartDate,
input.CreationEndDate); input.CreationEndDate,
input.CommentApproveState
);
var comments = await CommentRepository.GetListAsync( var comments = await CommentRepository.GetListAsync(
input.Text, input.Text,
@ -44,7 +52,8 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp
input.CreationEndDate, input.CreationEndDate,
input.Sorting, input.Sorting,
input.MaxResultCount, input.MaxResultCount,
input.SkipCount input.SkipCount,
input.CommentApproveState
); );
var dtos = comments.Select(queryResultItem => var dtos = comments.Select(queryResultItem =>
@ -74,4 +83,32 @@ public class CommentAdminAppService : CmsKitAdminAppServiceBase, ICommentAdminAp
var comment = await CommentRepository.GetAsync(id); var comment = await CommentRepository.GetAsync(id);
await CommentRepository.DeleteWithRepliesAsync(comment); await CommentRepository.DeleteWithRepliesAsync(comment);
} }
}
[Authorize(CmsKitAdminPermissions.Comments.Update)]
public async Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input)
{
var comment = await CommentRepository.GetAsync(id);
if (input.IsApproved)
{
comment.Approve();
}
else
{
comment.Reject();
}
await CommentRepository.UpdateAsync(comment);
}
[Authorize(CmsKitAdminPermissions.Comments.SettingManagement)]
public async Task UpdateSettingsAsync(CommentSettingsDto input)
{
await SettingManager.SetGlobalAsync(CmsKitSettings.Comments.RequireApprovement, input.CommentRequireApprovement.ToString());
}
public async Task<int> GetWaitingCountAsync()
{
return (int)await CommentRepository.GetCountAsync(commentApproveState: CommentApproveState.Waiting);
}
}

22
modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/ClientProxies/Volo/CmsKit/Admin/Comments/CommentAdminClientProxy.Generated.cs

@ -40,4 +40,26 @@ public partial class CommentAdminClientProxy : ClientProxyBase<ICommentAdminAppS
{ typeof(Guid), id } { typeof(Guid), id }
}); });
} }
public virtual async Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input)
{
await RequestAsync(nameof(UpdateApprovalStatusAsync), new ClientProxyRequestTypeValue
{
{ typeof(Guid), id },
{ typeof(CommentApprovalDto), input }
});
}
public virtual async Task UpdateSettingsAsync(CommentSettingsDto input)
{
await RequestAsync(nameof(UpdateSettingsAsync), new ClientProxyRequestTypeValue
{
{ typeof(CommentSettingsDto), input }
});
}
public virtual async Task<int> GetWaitingCountAsync()
{
return await RequestAsync<int>(nameof(GetWaitingCountAsync));
}
} }

171
modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi.Client/ClientProxies/cms-kit-admin-generate-proxy.json

@ -1267,6 +1267,56 @@
"type": "System.Void", "type": "System.Void",
"typeSimple": "System.Void" "typeSimple": "System.Void"
} }
},
{
"name": "UpdateApprovalStatusAsync",
"parametersOnMethod": [
{
"name": "id",
"typeAsString": "System.Guid, System.Private.CoreLib",
"type": "System.Guid",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null
},
{
"name": "input",
"typeAsString": "Volo.CmsKit.Admin.Comments.CommentApprovalDto, Volo.CmsKit.Admin.Application.Contracts",
"type": "Volo.CmsKit.Admin.Comments.CommentApprovalDto",
"typeSimple": "Volo.CmsKit.Admin.Comments.CommentApprovalDto",
"isOptional": false,
"defaultValue": null
}
],
"returnValue": {
"type": "System.Void",
"typeSimple": "System.Void"
}
},
{
"name": "UpdateSettingsAsync",
"parametersOnMethod": [
{
"name": "input",
"typeAsString": "Volo.CmsKit.Admin.Comments.CommentSettingsDto, Volo.CmsKit.Admin.Application.Contracts",
"type": "Volo.CmsKit.Admin.Comments.CommentSettingsDto",
"typeSimple": "Volo.CmsKit.Admin.Comments.CommentSettingsDto",
"isOptional": false,
"defaultValue": null
}
],
"returnValue": {
"type": "System.Void",
"typeSimple": "System.Void"
}
},
{
"name": "GetWaitingCountAsync",
"parametersOnMethod": [],
"returnValue": {
"type": "System.Int32",
"typeSimple": "number"
}
} }
] ]
} }
@ -1361,6 +1411,18 @@
"bindingSourceId": "ModelBinding", "bindingSourceId": "ModelBinding",
"descriptorName": "input" "descriptorName": "input"
}, },
{
"nameOnMethod": "input",
"name": "CommentApproveState",
"jsonName": null,
"type": "System.String",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null,
"constraintTypes": null,
"bindingSourceId": "ModelBinding",
"descriptorName": "input"
},
{ {
"nameOnMethod": "input", "nameOnMethod": "input",
"name": "Sorting", "name": "Sorting",
@ -1478,6 +1540,115 @@
}, },
"allowAnonymous": false, "allowAnonymous": false,
"implementFrom": "Volo.CmsKit.Admin.Comments.ICommentAdminAppService" "implementFrom": "Volo.CmsKit.Admin.Comments.ICommentAdminAppService"
},
"UpdateApprovalStatusAsyncByIdAndInput": {
"uniqueName": "UpdateApprovalStatusAsyncByIdAndInput",
"name": "UpdateApprovalStatusAsync",
"httpMethod": "PUT",
"url": "api/cms-kit-admin/comments/{id}/approval-status",
"supportedVersions": [],
"parametersOnMethod": [
{
"name": "id",
"typeAsString": "System.Guid, System.Private.CoreLib",
"type": "System.Guid",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null
},
{
"name": "input",
"typeAsString": "Volo.CmsKit.Admin.Comments.CommentApprovalDto, Volo.CmsKit.Admin.Application.Contracts",
"type": "Volo.CmsKit.Admin.Comments.CommentApprovalDto",
"typeSimple": "Volo.CmsKit.Admin.Comments.CommentApprovalDto",
"isOptional": false,
"defaultValue": null
}
],
"parameters": [
{
"nameOnMethod": "id",
"name": "id",
"jsonName": null,
"type": "System.Guid",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null,
"constraintTypes": [],
"bindingSourceId": "Path",
"descriptorName": ""
},
{
"nameOnMethod": "input",
"name": "input",
"jsonName": null,
"type": "Volo.CmsKit.Admin.Comments.CommentApprovalDto",
"typeSimple": "Volo.CmsKit.Admin.Comments.CommentApprovalDto",
"isOptional": false,
"defaultValue": null,
"constraintTypes": null,
"bindingSourceId": "Body",
"descriptorName": ""
}
],
"returnValue": {
"type": "System.Void",
"typeSimple": "System.Void"
},
"allowAnonymous": false,
"implementFrom": "Volo.CmsKit.Admin.Comments.ICommentAdminAppService"
},
"UpdateSettingsAsyncByInput": {
"uniqueName": "UpdateSettingsAsyncByInput",
"name": "UpdateSettingsAsync",
"httpMethod": "POST",
"url": "api/cms-kit-admin/comments/settings",
"supportedVersions": [],
"parametersOnMethod": [
{
"name": "input",
"typeAsString": "Volo.CmsKit.Admin.Comments.CommentSettingsDto, Volo.CmsKit.Admin.Application.Contracts",
"type": "Volo.CmsKit.Admin.Comments.CommentSettingsDto",
"typeSimple": "Volo.CmsKit.Admin.Comments.CommentSettingsDto",
"isOptional": false,
"defaultValue": null
}
],
"parameters": [
{
"nameOnMethod": "input",
"name": "input",
"jsonName": null,
"type": "Volo.CmsKit.Admin.Comments.CommentSettingsDto",
"typeSimple": "Volo.CmsKit.Admin.Comments.CommentSettingsDto",
"isOptional": false,
"defaultValue": null,
"constraintTypes": null,
"bindingSourceId": "Body",
"descriptorName": ""
}
],
"returnValue": {
"type": "System.Void",
"typeSimple": "System.Void"
},
"allowAnonymous": false,
"implementFrom": "Volo.CmsKit.Admin.Comments.ICommentAdminAppService"
},
"GetWaitingCountAsync": {
"uniqueName": "GetWaitingCountAsync",
"name": "GetWaitingCountAsync",
"httpMethod": "GET",
"url": "api/cms-kit-admin/comments/waiting-count",
"supportedVersions": [],
"parametersOnMethod": [],
"parameters": [],
"returnValue": {
"type": "System.Int32",
"typeSimple": "number"
},
"allowAnonymous": false,
"implementFrom": "Volo.CmsKit.Admin.Comments.ICommentAdminAppService"
} }
} }
}, },

21
modules/cms-kit/src/Volo.CmsKit.Admin.HttpApi/Volo/CmsKit/Admin/Comments/CommentAdminController.cs

@ -47,4 +47,25 @@ public class CommentAdminController : CmsKitAdminController, ICommentAdminAppSer
{ {
return CommentAdminAppService.DeleteAsync(id); return CommentAdminAppService.DeleteAsync(id);
} }
[HttpPut]
[Route("{id}/approval-status")]
public Task UpdateApprovalStatusAsync(Guid id, CommentApprovalDto input)
{
return CommentAdminAppService.UpdateApprovalStatusAsync(id, input);
}
[HttpPost]
[Route("settings")]
public Task UpdateSettingsAsync(CommentSettingsDto input)
{
return CommentAdminAppService.UpdateSettingsAsync(input);
}
[HttpGet]
[Route("waiting-count")]
public Task<int> GetWaitingCountAsync()
{
return CommentAdminAppService.GetWaitingCountAsync();
}
} }

31
modules/cms-kit/src/Volo.CmsKit.Admin.Web/CmsKitAdminWebModule.cs

@ -2,6 +2,10 @@
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.AspNetCore.Mvc; using Volo.Abp.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc.Localization; using Volo.Abp.AspNetCore.Mvc.Localization;
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
using Volo.Abp.AspNetCore.Mvc.UI.Packages.MarkdownIt;
using Volo.Abp.AspNetCore.Mvc.UI.Packages.Prismjs;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.Bundling;
using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.PageToolbars; using Volo.Abp.AspNetCore.Mvc.UI.Theme.Shared.PageToolbars;
using Volo.Abp.AutoMapper; using Volo.Abp.AutoMapper;
using Volo.Abp.Http.ProxyScripting.Generators.JQuery; using Volo.Abp.Http.ProxyScripting.Generators.JQuery;
@ -9,11 +13,14 @@ using Volo.Abp.Localization;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending;
using Volo.Abp.ObjectExtending.Modularity; using Volo.Abp.ObjectExtending.Modularity;
using Volo.Abp.SettingManagement.Web.Pages.SettingManagement;
using Volo.Abp.Threading; using Volo.Abp.Threading;
using Volo.Abp.UI.Navigation; using Volo.Abp.UI.Navigation;
using Volo.Abp.VirtualFileSystem; using Volo.Abp.VirtualFileSystem;
using Volo.CmsKit.Admin.MediaDescriptors; using Volo.CmsKit.Admin.MediaDescriptors;
using Volo.CmsKit.Admin.Web.Menus; using Volo.CmsKit.Admin.Web.Menus;
using Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments.Approve;
using Volo.CmsKit.Admin.Web.Pages.CmsKit.Shared.Components.Comments;
using Volo.CmsKit.Localization; using Volo.CmsKit.Localization;
using Volo.CmsKit.Permissions; using Volo.CmsKit.Permissions;
using Volo.CmsKit.Web; using Volo.CmsKit.Web;
@ -53,6 +60,21 @@ public class CmsKitAdminWebModule : AbpModule
options.MenuContributors.Add(new CmsKitAdminMenuContributor()); options.MenuContributors.Add(new CmsKitAdminMenuContributor());
}); });
Configure<AbpBundlingOptions>(options =>
{
options.ScriptBundles
.Configure(typeof(Abp.SettingManagement.Web.Pages.SettingManagement.IndexModel).FullName,
configuration =>
{
configuration.AddContributors(typeof(CommentSettingScriptBundleContributor));
})
.Configure(StandardBundles.Scripts.Global,
configuration =>
{
configuration.AddContributors(typeof(MarkdownItScriptContributor));
});
});
Configure<AbpVirtualFileSystemOptions>(options => Configure<AbpVirtualFileSystemOptions>(options =>
{ {
options.FileSets.AddEmbedded<CmsKitAdminWebModule>("Volo.CmsKit.Admin.Web"); options.FileSets.AddEmbedded<CmsKitAdminWebModule>("Volo.CmsKit.Admin.Web");
@ -77,6 +99,7 @@ public class CmsKitAdminWebModule : AbpModule
options.Conventions.AuthorizeFolder("/CmsKit/BlogPosts/Create", CmsKitAdminPermissions.BlogPosts.Create); options.Conventions.AuthorizeFolder("/CmsKit/BlogPosts/Create", CmsKitAdminPermissions.BlogPosts.Create);
options.Conventions.AuthorizeFolder("/CmsKit/BlogPosts/Update", CmsKitAdminPermissions.BlogPosts.Update); options.Conventions.AuthorizeFolder("/CmsKit/BlogPosts/Update", CmsKitAdminPermissions.BlogPosts.Update);
options.Conventions.AuthorizeFolder("/CmsKit/Comments/", CmsKitAdminPermissions.Comments.Default); options.Conventions.AuthorizeFolder("/CmsKit/Comments/", CmsKitAdminPermissions.Comments.Default);
options.Conventions.AuthorizeFolder("/CmsKit/Comments/Approve", CmsKitAdminPermissions.Comments.Default);
options.Conventions.AuthorizeFolder("/CmsKit/Comments/Details", CmsKitAdminPermissions.Comments.Default); options.Conventions.AuthorizeFolder("/CmsKit/Comments/Details", CmsKitAdminPermissions.Comments.Default);
options.Conventions.AuthorizeFolder("/CmsKit/Menus", CmsKitAdminPermissions.Menus.Default); options.Conventions.AuthorizeFolder("/CmsKit/Menus", CmsKitAdminPermissions.Menus.Default);
options.Conventions.AuthorizePage("/CmsKit/Menus/MenuItems/CreateModal", CmsKitAdminPermissions.Menus.Create); options.Conventions.AuthorizePage("/CmsKit/Menus/MenuItems/CreateModal", CmsKitAdminPermissions.Menus.Create);
@ -99,6 +122,7 @@ public class CmsKitAdminWebModule : AbpModule
options.Conventions.AddPageRoute("/CmsKit/Comments/Details", "/Cms/Comments/{Id}"); options.Conventions.AddPageRoute("/CmsKit/Comments/Details", "/Cms/Comments/{Id}");
options.Conventions.AddPageRoute("/CmsKit/Menus/MenuItems/Index", "/Cms/Menus/Items"); options.Conventions.AddPageRoute("/CmsKit/Menus/MenuItems/Index", "/Cms/Menus/Items");
options.Conventions.AddPageRoute("/CmsKit/GlobalResources/Index", "/Cms/GlobalResources"); options.Conventions.AddPageRoute("/CmsKit/GlobalResources/Index", "/Cms/GlobalResources");
options.Conventions.AddPageRoute("/CmsKit/Comments/Approve/Index", "/Cms/Comments/Approve");
}); });
Configure<AbpPageToolbarOptions>(options => Configure<AbpPageToolbarOptions>(options =>
@ -163,7 +187,7 @@ public class CmsKitAdminWebModule : AbpModule
); );
}); });
}); });
Configure<DynamicJavaScriptProxyOptions>(options => Configure<DynamicJavaScriptProxyOptions>(options =>
{ {
options.DisableModule(CmsKitAdminRemoteServiceConsts.ModuleName); options.DisableModule(CmsKitAdminRemoteServiceConsts.ModuleName);
@ -173,6 +197,11 @@ public class CmsKitAdminWebModule : AbpModule
{ {
options.ConventionalControllers.FormBodyBindingIgnoredTypes.Add(typeof(CreateMediaInputWithStream)); options.ConventionalControllers.FormBodyBindingIgnoredTypes.Add(typeof(CreateMediaInputWithStream));
}); });
Configure<SettingManagementPageOptions>(options =>
{
options.Contributors.Add(new CommentSettingPageContributor());
});
} }
public override void PostConfigureServices(ServiceConfigurationContext context) public override void PostConfigureServices(ServiceConfigurationContext context)

4
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Create.cshtml

@ -60,8 +60,8 @@
<abp-card-header title="@L["New"].Value"></abp-card-header> <abp-card-header title="@L["New"].Value"></abp-card-header>
<abp-card-body> <abp-card-body>
<div class="mb-3"> <div class="mb-3">
<label class="form-label">@L["CoverImage"]</label> <label class="form-label">@L["CoverImage"] <span class="badge text-bg-light">16:9</span></label>
<input type="file" id="BlogPostCoverImage" class="form-control" /> <input type="file" id="BlogPostCoverImage" class="form-control" accept="image/*" />
</div> </div>
<form asp-page="/CmsKit/BlogPosts/Create" id="form-blog-post-create"> <form asp-page="/CmsKit/BlogPosts/Create" id="form-blog-post-create">

4
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/BlogPosts/Update.cshtml

@ -68,8 +68,8 @@
<br/> <br/>
} }
</div> </div>
<label class="form-label">@L["CoverImage"]</label> <label class="form-label">@L["CoverImage"]<span class="badge text-bg-light">16:9</span></label>
<input type="file" id="BlogPostCoverImage" class="form-control"/> <input type="file" id="BlogPostCoverImage" class="form-control" accept="image/*" />
</div> </div>
<form asp-page="/CmsKit/BlogPosts/Update" id="form-blog-post-update"> <form asp-page="/CmsKit/BlogPosts/Update" id="form-blog-post-update">

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

@ -0,0 +1,75 @@
@page
@using Microsoft.AspNetCore.Mvc.Localization
@using Volo.Abp.AspNetCore.Mvc.UI.Layout
@using Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments
@using Volo.CmsKit.Admin.Web.Menus
@using Volo.CmsKit.Localization
@using Volo.Abp.AspNetCore.Mvc.UI.Packages.MarkdownIt
@inject IPageLayout PageLayout
@inject IHtmlLocalizer<CmsKitResource> L
@model IndexModel
@{
PageLayout.Content.Title = L["CommentsAwaitingApproval"].Value;
PageLayout.Content.BreadCrumb.Add(L["Menu:CMS"].Value);
PageLayout.Content.MenuItemName = CmsKitAdminMenus.Comments.CommentsMenu;
}
@section styles {
<abp-style-bundle>
<abp-style src="/Pages/CmsKit/Comments/index.css" />
</abp-style-bundle>
}
@section scripts {
<abp-script-bundle>
<abp-script src="/client-proxies/cms-kit-common-proxy.js" />
<abp-script src="/client-proxies/cms-kit-admin-proxy.js" />
<abp-script src="/Pages/CmsKit/Comments/Approve/index.js" />
<abp-script type="typeof(MarkdownItScriptContributor)" />
</abp-script-bundle>
}
<abp-card class="mb-4">
<abp-card-body>
<div id="CmsKitCommentsWrapper">
<form id="CmsKitCommentsFilterForm" method="post">
<abp-row class="align-items-end">
<abp-column size-lg="_4" size-md="_12">
<abp-row>
<abp-column size-lg="_6" size-md="_6">
<abp-input asp-for="@Model.CreationStartDate" class="singledatepicker" label="@L["StartDate"].Value" type="text" />
</abp-column>
<abp-column size-lg="_6" size-md="_6">
<abp-input asp-for="@Model.CreationEndDate" class="singledatepicker" label="@L["EndDate"].Value" type="text" />
</abp-column>
</abp-row>
</abp-column>
<abp-column size-lg="_3" size-md="_6">
<abp-input asp-for="@Model.Author" label="@L["Username"].Value" type="text" />
</abp-column>
<abp-column size-lg="_3" size-md="_6">
<abp-input asp-for="@Model.EntityType" label="@L["EntityType"].Value" type="text" />
</abp-column>
<abp-column size-lg="_2" size-md="_6">
<abp-button class="w-100 mb-3" button-type="Primary" type="submit">
<i class="fa fa-search" aria-hidden="true"></i>
</abp-button>
</abp-column>
</abp-row>
</form>
</div>
</abp-card-body>
</abp-card>
<abp-card>
<abp-card-body>
<abp-table id="CommentsTable" class="nowrap"></abp-table>
</abp-card-body>
</abp-card>

16
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/Index.cshtml.cs

@ -0,0 +1,16 @@
using System;
namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments.Approve;
public class IndexModel : CmsKitAdminPageModel
{
public string EntityType { get; set; }
public string Author { get; set; }
public DateTime? CreationStartDate { get; set; }
public DateTime? CreationEndDate { get; set; }
public string IsApproved { get; set; }
}

164
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/Approve/index.js

@ -0,0 +1,164 @@
$(function () {
var l = abp.localization.getResource("CmsKit");
var commentsService = volo.cmsKit.admin.comments.commentAdmin;
moment()._locale.preparse = (string) => string;
moment()._locale.postformat = (string) => string;
var getFormattedDate = function ($datePicker) {
if (!$datePicker.val()) {
return null;
}
var momentDate = moment($datePicker.val(), $datePicker.data('daterangepicker').locale.format);
return momentDate.isValid() ? momentDate.toISOString() : null;
};
$('.singledatepicker').daterangepicker({
"singleDatePicker": true,
"showDropdowns": true,
"autoUpdateInput": false,
"autoApply": true,
"opens": "center",
"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 () {
var filterObj = filterForm.serializeFormToObject();
filterObj.creationStartDate = getFormattedDate($('#CreationStartDate'));
filterObj.creationEndDate = getFormattedDate($('#CreationEndDate'));
filterObj.commentApproveState = "Waiting";
return filterObj;
};
var _dataTable = $('#CommentsTable').DataTable(abp.libs.datatables.normalizeConfiguration({
processing: true,
serverSide: true,
paging: true,
scrollX: true,
searching: false,
scrollCollapse: true,
ajax: abp.libs.datatables.createAjax(commentsService.getList, getFilter),
columnDefs: [
{
width: "10%",
title: l("Actions"),
targets: 0,
orderable: false,
visible: abp.auth.isGranted('CmsKit.Comments.Update'),
render: function (data, type, row) {
let approveButton = $(`<button class="btn btn-xs btn-success change-status" data-id="${row.id}" data-status="true" data-toggle="tooltip" data-placement="top" title="${l('Approve')}"><i class="fa fa-check"></i></button>`);
let rejectButton = $(`<button class="btn btn-xs btn-danger change-status" data-id="${row.id}" data-status="false" data-toggle="tooltip" data-placement="top" title="${l('Disapproved')}"><i class="fa fa-times"></i></button>`);
let buttons = [];
buttons.push(approveButton);
buttons.push(rejectButton);
let result = `<div class="btn-group">`;
buttons.forEach(x => {
if(x.data("status") !== data) {
result += x.get(0).outerHTML;
}
} );
result += `</div>`;
return result;
}
},
{
width: "10%",
title: l("Username"),
orderable: false,
data: "author.userName",
render: function (data) {
if (data !== null) {
return GetFilterableDatatableContent('#Author', $.fn.dataTable.render.text().display(data)); //prevent against possible XSS
}
return "";
}
},
{
width: "15%",
title: l("EntityType"),
orderable: false,
data: "entityType",
render: function (data) {
if (data !== null) {
return GetFilterableDatatableContent('#EntityType', $.fn.dataTable.render.text().display(data));
}
return "";
}
},
{
title: l("Text"),
data: "text",
orderable: false,
render: function (data) {
var md = window.markdownit();
var htmlContent = md.render(data);
return (
'<span data-toggle="tooltip" title="' +
htmlContent +
'" style="display: block; white-space: normal; word-break: break-all; max-width: 100%; overflow: hidden;">' +
htmlContent +
"</span>"
);
}
},
{
width: "15%",
title: l("CreationTime"),
data: "creationTime",
orderable: true,
dataFormat: "datetime"
}
]
}));
function GetFilterableDatatableContent(filterSelector, data) {
return '<span class="datatableCell" data-field="' + filterSelector + '" data-val="' + data + '">' + data + '</span>';
}
$(document).on('click', '.datatableCell', function () {
var inputSelector = $(this).attr('data-field');
var value = $(this).attr('data-val');
$(inputSelector).val(value);
_dataTable.ajax.reload();
});
filterForm.submit(function (e) {
e.preventDefault();
_dataTable.ajax.reload();
});
_dataTable.on('draw.dt', function () {
var changeStatusButton = $(".change-status");
changeStatusButton.click(function () {
$(this).html("<i class='fa fa-spinner fa-spin'></i>");
$(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();
})
});
});
});

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

@ -5,6 +5,7 @@
@using Volo.Abp.AspNetCore.Mvc.UI.Layout @using Volo.Abp.AspNetCore.Mvc.UI.Layout
@using Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments @using Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments
@using Volo.CmsKit.Admin.Web.Menus @using Volo.CmsKit.Admin.Web.Menus
@using Volo.CmsKit.Comments
@using Volo.CmsKit.Localization @using Volo.CmsKit.Localization
@inject IPageLayout PageLayout @inject IPageLayout PageLayout
@ -93,6 +94,17 @@
<abp-column size-lg="_4" size-md="_12"> <abp-column size-lg="_4" size-md="_12">
<abp-input asp-for="@Model.Author" label="@L["Username"].Value" type="text"/> <abp-input asp-for="@Model.Author" label="@L["Username"].Value" type="text"/>
</abp-column> </abp-column>
<abp-column size-lg="_2" size-md="_12">
<div class="mb-3" id="IsApprovedSelectInput" style="display: none">
<label class="mb-1" for="IsApprovedSelect">@L["CommentFilter:ApproveState"].Value</label>
<select id="IsApprovedSelect" asp-for="@Model.CommentApproveState" class="form-control">
@foreach (var status in (CommentApproveState[])Enum.GetValues(typeof(CommentApproveState)))
{
<option value="@((int)status)">@L["CommentFilter:" + (int)status]</option>
}
</select>
</div>
</abp-column>
<abp-column size-lg="_2" size-md="_12"> <abp-column size-lg="_2" size-md="_12">
<div class="d-grid gap-2"> <div class="d-grid gap-2">
<abp-button class="mt-md-4" button-type="Primary" type="submit"> <abp-button class="mt-md-4" button-type="Primary" type="submit">

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

@ -2,6 +2,7 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Volo.CmsKit.Admin.Comments; using Volo.CmsKit.Admin.Comments;
using Volo.CmsKit.Comments;
namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments; namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments;
@ -16,6 +17,8 @@ public class DetailsModel : CmsKitAdminPageModel
public DateTime? CreationEndDate { get; set; } public DateTime? CreationEndDate { get; set; }
public CommentApproveState CommentApproveState { get; set; }
public CommentWithAuthorDto CommentWithAuthorDto { get; protected set; } public CommentWithAuthorDto CommentWithAuthorDto { get; protected set; }
protected readonly ICommentAdminAppService CommentAdminAppService; protected readonly ICommentAdminAppService CommentAdminAppService;

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

@ -4,6 +4,7 @@
@using Volo.Abp.AspNetCore.Mvc.UI.Layout @using Volo.Abp.AspNetCore.Mvc.UI.Layout
@using Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments @using Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments
@using Volo.CmsKit.Admin.Web.Menus @using Volo.CmsKit.Admin.Web.Menus
@using Volo.CmsKit.Comments
@using Volo.CmsKit.Localization @using Volo.CmsKit.Localization
@inject IPageLayout PageLayout @inject IPageLayout PageLayout
@ -31,6 +32,9 @@
</abp-script-bundle> </abp-script-bundle>
} }
<abp-alert id="CommentsWaitingAlert" alert-type="Warning" style="display: none">
</abp-alert>
<abp-card class="mb-4"> <abp-card class="mb-4">
<abp-card-body> <abp-card-body>
<div id="CmsKitCommentsWrapper"> <div id="CmsKitCommentsWrapper">
@ -39,7 +43,7 @@
<abp-column size-lg="_4" size-md="_12"> <abp-column size-lg="_4" size-md="_12">
<abp-row> <abp-row>
<abp-column size-lg="_6" size-md="_6"> <abp-column size-lg="_6" size-md="_6">
<abp-input asp-for="@Model.CreationStartDate" class="singledatepicker" label="@L["StartDate"].Value" type="text" /> <abp-input asp-for="@Model.CreationStartDate" class="singledatepicker" label="@L["StartDate"].Value" type="text" value="" />
</abp-column> </abp-column>
<abp-column size-lg="_6" size-md="_6"> <abp-column size-lg="_6" size-md="_6">
<abp-input asp-for="@Model.CreationEndDate" class="singledatepicker" label="@L["EndDate"].Value" type="text" /> <abp-input asp-for="@Model.CreationEndDate" class="singledatepicker" label="@L["EndDate"].Value" type="text" />
@ -47,14 +51,26 @@
</abp-row> </abp-row>
</abp-column> </abp-column>
<abp-column size-lg="_3" size-md="_6"> <abp-column size-lg="_2" size-md="_6">
<abp-input asp-for="@Model.Author" label="@L["Username"].Value" type="text" /> <abp-input asp-for="@Model.Author" label="@L["Username"].Value" type="text" />
</abp-column> </abp-column>
<abp-column size-lg="_3" size-md="_6"> <abp-column size-lg="_2" size-md="_6">
<abp-input asp-for="@Model.EntityType" label="@L["EntityType"].Value" type="text" /> <abp-input asp-for="@Model.EntityType" label="@L["EntityType"].Value" type="text" />
</abp-column> </abp-column>
<abp-column size-lg="_2" size-md="_6">
<div class="mb-3" id="IsApprovedSelectInput" style="display: none">
<label class="mb-1" for="IsApprovedSelect">@L["CommentFilter:ApproveState"].Value</label>
<select id="IsApprovedSelect" asp-for="@Model.CommentApproveState" class="form-control">
@foreach (var status in (CommentApproveState[])Enum.GetValues(typeof(CommentApproveState)))
{
<option value="@((int)status)">@L["CommentFilter:" + (int)status]</option>
}
</select>
</div>
</abp-column>
<abp-column size-lg="_2" size-md="_6"> <abp-column size-lg="_2" size-md="_6">
<abp-button class="w-100 mb-3" button-type="Primary" type="submit"> <abp-button class="w-100 mb-3" button-type="Primary" type="submit">
<i class="fa fa-search" aria-hidden="true"></i> <i class="fa fa-search" aria-hidden="true"></i>

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

@ -1,4 +1,5 @@
using System; using System;
using Volo.CmsKit.Comments;
namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments; namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Comments;
@ -8,7 +9,9 @@ public class IndexModel : CmsKitAdminPageModel
public string Author { get; set; } public string Author { get; set; }
public DateTime? CreationStartDate { get; set; } public DateTime? CreationStartDate { get; set; } = null;
public DateTime? CreationEndDate { get; set; } public DateTime? CreationEndDate { get; set; }
public CommentApproveState CommentApproveState { get; set; }
} }

69
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/details.js

@ -3,9 +3,12 @@ $(function (){
var commentsService = volo.cmsKit.admin.comments.commentAdmin; var commentsService = volo.cmsKit.admin.comments.commentAdmin;
var detailsModal = new abp.ModalManager(abp.appPath + "CmsKit/Comments/DetailsModal"); var commentRequireApprovement = abp.setting.getBoolean("CmsKit.Comments.RequireApprovement");
if (commentRequireApprovement) {
$('#IsApprovedSelectInput').show();
}
var getFormattedDate = function ($datePicker) { var getFormattedDate = function ($datePicker) {
return $datePicker.data('date'); return $datePicker.data('date');
}; };
@ -32,7 +35,7 @@ $(function (){
}); });
var filterForm = $('#CmsKitCommentsFilterForm'); var filterForm = $('#CmsKitCommentsFilterForm');
var getFilter = function () { var getFilter = function () {
var filterObj = filterForm.serializeFormToObject(); var filterObj = filterForm.serializeFormToObject();
@ -78,6 +81,42 @@ $(function (){
abp.notify.success(l('DeletedSuccessfully')); abp.notify.success(l('DeletedSuccessfully'));
}); });
} }
},
{
text: function (data) {
return data.isApproved ? l('Disapproved') : l('Approve');
},
visible: commentRequireApprovement,
action: function (data) {
var newApprovalStatus = !data.record?.isApproved;
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) {
if (data.isApproved == null) {
return l('Disapproved')
}
},
visible: commentRequireApprovement,
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);
})
}
} }
] ]
} }
@ -123,6 +162,28 @@ $(function (){
data: "creationTime", data: "creationTime",
orderable: true, orderable: true,
dataFormat: "datetime" dataFormat: "datetime"
},
{
width: "10%",
title: l("ApproveState"),
visible: commentRequireApprovement,
orderable: false,
data: "isApproved",
render: function (data, type, row) {
var icons = ''
if (data === null) {
icons = '<i class="fa-solid fa-hourglass-half text-muted"></i>';
} else if (typeof data === "boolean") {
if (data) {
icons = '<i class="fa-solid fa-check text-success"></i>';
} else {
icons = '<i class="fa-solid fa-x text-danger"></i>';
}
}
return icons;
}
} }
] ]
})); }));
@ -139,7 +200,7 @@ $(function (){
_dataTable.ajax.reloadEx(); _dataTable.ajax.reloadEx();
}); });
filterForm.submit(function (e){ filterForm.submit(function (e){
e.preventDefault(); e.preventDefault();
_dataTable.ajax.reloadEx(); _dataTable.ajax.reloadEx();

2
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.css

@ -1,3 +1,3 @@
.datatableCell{ .datatableCell{
cursor: pointer; cursor: pointer;
} }

135
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Comments/index.js

@ -1,24 +1,25 @@
$(function (){ $(function () {
var l = abp.localization.getResource("CmsKit"); var l = abp.localization.getResource("CmsKit");
var commentsService = volo.cmsKit.admin.comments.commentAdmin; var commentsService = volo.cmsKit.admin.comments.commentAdmin;
var detailsModal = new abp.ModalManager(abp.appPath + "CmsKit/Comments/DetailsModal");
moment()._locale.preparse = (string) => string; moment()._locale.preparse = (string) => string;
moment()._locale.postformat = (string) => string; moment()._locale.postformat = (string) => string;
var commentRequireApprovement = abp.setting.getBoolean("CmsKit.Comments.RequireApprovement");
if (commentRequireApprovement) {
$('#CommentsWaitingAlert').show()
$('#IsApprovedSelectInput').show();
}
var getFormattedDate = function ($datePicker) { var getFormattedDate = function ($datePicker) {
if(!$datePicker.val()) { if (!$datePicker.val()) {
return null; return null;
} }
var momentDate = moment($datePicker.val(), $datePicker.data('daterangepicker').locale.format); var momentDate = moment($datePicker.val(), $datePicker.data('daterangepicker').locale.format);
return momentDate.isValid() ? momentDate.toISOString() : null; return momentDate.isValid() ? momentDate.toISOString() : null;
}; };
var defaultStartDate = moment().add(-7, 'days');
$("#CreationStartDate").val(defaultStartDate.format('L'));
$('.singledatepicker').daterangepicker({ $('.singledatepicker').daterangepicker({
"singleDatePicker": true, "singleDatePicker": true,
@ -29,27 +30,23 @@ $(function (){
"drops": "auto" "drops": "auto"
}); });
$('.singledatepicker').attr('autocomplete', 'off'); $('.singledatepicker').attr('autocomplete', 'off');
$('.singledatepicker').on('apply.daterangepicker', function (ev, picker) { $('.singledatepicker').on('apply.daterangepicker', function (ev, picker) {
$(this).val(picker.startDate.format('l')); $(this).val(picker.startDate.format('l'));
}); });
var filterForm = $('#CmsKitCommentsFilterForm'); var filterForm = $('#CmsKitCommentsFilterForm');
var getFilter = function () { var getFilter = function () {
var filterObj = filterForm.serializeFormToObject(); var filterObj = filterForm.serializeFormToObject();
filterObj.creationStartDate = getFormattedDate($('#CreationStartDate')); filterObj.creationStartDate = getFormattedDate($('#CreationStartDate'));
filterObj.creationEndDate = getFormattedDate($('#CreationEndDate')); filterObj.creationEndDate = getFormattedDate($('#CreationEndDate'));
return filterObj; return filterObj;
}; };
var _dataTable = $('#CommentsTable').DataTable(abp.libs.datatables.normalizeConfiguration({ var _dataTable = $('#CommentsTable').DataTable(abp.libs.datatables.normalizeConfiguration({
processing: true, processing: true,
serverSide: true, serverSide: true,
@ -83,9 +80,52 @@ $(function (){
.delete(data.record.id) .delete(data.record.id)
.then(function () { .then(function () {
_dataTable.ajax.reloadEx(); _dataTable.ajax.reloadEx();
CheckWaitingComments()
abp.notify.success(l('DeletedSuccessfully')); abp.notify.success(l('DeletedSuccessfully'));
}); });
} }
},
{
text: function (data) {
return data.isApproved ? l('Disapproved') : l('Approve');
},
action: function (data) {
var newApprovalStatus = !data.record?.isApproved;
commentsService
.updateApprovalStatus(data.record.id, { IsApproved: newApprovalStatus })
.then(function () {
_dataTable.ajax.reloadEx();
CheckWaitingComments()
var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully');
abp.notify.success(message);
})
},
visible: function (data) {
return commentRequireApprovement;
}
},
{
text: function (data) {
if (data.isApproved == null) {
return l('Disapproved')
}
},
action: function (data) {
var newApprovalStatus = false;
commentsService
.updateApprovalStatus(data.record.id, { IsApproved: newApprovalStatus })
.then(function () {
_dataTable.ajax.reloadEx();
CheckWaitingComments()
var message = newApprovalStatus ? l('ApprovedSuccessfully') : l('ApprovalRevokedSuccessfully');
abp.notify.success(message);
})
},
visible: function (data) {
return commentRequireApprovement && data.isApproved == null;
}
} }
] ]
} }
@ -119,7 +159,7 @@ $(function (){
data: "url", data: "url",
render: function (data, type, row) { render: function (data, type, row) {
if (data !== null) { if (data !== null) {
return '<a href="' + data + '#comment-'+ row.id + '" target="_blank"><i class="fa fa-location-arrow"></i></a>'; return '<a href="' + data + '#comment-' + row.id + '" target="_blank"><i class="fa fa-location-arrow"></i></a>';
} }
return ""; return "";
} }
@ -147,6 +187,28 @@ $(function (){
} }
} }
}, },
{
width: "5%",
title: l("ApproveState"),
orderable: false,
data: "isApproved",
visible: commentRequireApprovement,
render: function (data, type, row) {
var icons = ''
if (data === null) {
icons = '<i class="fa-solid fa-hourglass-half text-muted"></i>';
} else if (typeof data === "boolean") {
if (data) {
icons = '<i class="fa-solid fa-check text-success"></i>';
} else {
icons = '<i class="fa-solid fa-x text-danger"></i>';
}
}
return icons;
}
},
{ {
width: "15%", width: "15%",
title: l("CreationTime"), title: l("CreationTime"),
@ -156,22 +218,43 @@ $(function (){
} }
] ]
})); }));
function GetFilterableDatatableContent(filterSelector, data){ function GetFilterableDatatableContent(filterSelector, data) {
return '<span class="datatableCell" data-field="'+ filterSelector +'" data-val="'+ data +'">' + data + '</span>'; return '<span class="datatableCell" data-field="' + filterSelector + '" data-val="' + data + '">' + data + '</span>';
} }
$(document).on('click', '.datatableCell', function () { $(document).on('click', '.datatableCell', function () {
var inputSelector = $(this).attr('data-field'); var inputSelector = $(this).attr('data-field');
var value = $(this).attr('data-val'); var value = $(this).attr('data-val');
$(inputSelector).val(value); $(inputSelector).val(value);
_dataTable.ajax.reloadEx(); _dataTable.ajax.reloadEx();
}); });
filterForm.submit(function (e){ filterForm.submit(function (e) {
e.preventDefault(); e.preventDefault();
_dataTable.ajax.reloadEx(); _dataTable.ajax.reloadEx();
}); });
function CheckWaitingComments() {
commentsService.getWaitingCount().then(function (count) {
if (count > 0) {
var alertMessage = l("CommentAlertMessage", count);
var alertElement = '<abp-alert alert-type="Warning">' + alertMessage + ' ' + ' <i class="fa-solid fa-arrow-up-right-from-square"></i> </abp-alert>';
var commentAlert = $('#CommentsWaitingAlert');
commentAlert.html(alertElement);
commentAlert.click(function () {
window.location.href = '/Cms/Comments/Approve'
});
commentAlert.css('cursor', 'pointer');
} else {
$('#CommentsWaitingAlert').hide()
}
});
}
CheckWaitingComments()
}); });

31
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingPageContributor.cs

@ -0,0 +1,31 @@
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 : SettingPageContributorBase
{
public CommentSettingPageContributor()
{
RequiredPermissions(CmsKitAdminPermissions.Comments.SettingManagement);
}
public override Task ConfigureAsync(SettingPageCreationContext context)
{
var l = context.ServiceProvider.GetRequiredService<IStringLocalizer<CmsKitResource>>();
context.Groups.Add(
new SettingPageGroup(
"Volo.Abp.CmsKit",
l["Settings:Menu:CmsKit"],
typeof(CommentSettingViewComponent)
)
);
return Task.CompletedTask;
}
}

13
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingScriptBundleContributor.cs

@ -0,0 +1,13 @@
using System.Collections.Generic;
using Volo.Abp.AspNetCore.Mvc.UI.Bundling;
namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Shared.Components.Comments;
public class CommentSettingScriptBundleContributor : BundleContributor
{
public override void ConfigureBundle(BundleConfigurationContext context)
{
context.Files.AddIfNotContains("/client-proxies/cms-kit-admin-proxy.js");
context.Files.AddIfNotContains("/Pages/CmsKit/Shared/Components/Comments/default.js");
}
}

18
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/CommentSettingViewComponent.cs

@ -0,0 +1,18 @@
using Microsoft.AspNetCore.Mvc;
using Volo.Abp.AspNetCore.Mvc.UI.Widgets;
using Volo.Abp.AspNetCore.Mvc;
namespace Volo.CmsKit.Admin.Web.Pages.CmsKit.Shared.Components.Comments;
[Widget(
ScriptTypes = new[] { typeof(CommentSettingScriptBundleContributor) },
AutoInitialize = true
)]
[ViewComponent(Name = "CmsCommentSetting")]
public class CommentSettingViewComponent : AbpViewComponent
{
public virtual IViewComponentResult Invoke()
{
return View("~/Pages/CmsKit/Shared/Components/Comments/Default.cshtml");
}
}

36
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/Default.cshtml

@ -0,0 +1,36 @@
@using Microsoft.AspNetCore.Mvc.Localization
@using Volo.CmsKit.Localization
@section scripts {
<abp-script-bundle>
<abp-script src="/Pages/CmsKit/Shared/Components/Comments/default.js"></abp-script>
</abp-script-bundle>
}
@{
@inject IHtmlLocalizer<CmsKitResource> L
<abp-tabs>
<abp-tab active="true" title="@L["CmsKit:Comment"].Value">
<abp-form id="CmsKitCommentSettingsForm">
<abp-row>
<abp-column size-md="_12">
<div class="form-group">
<div class="form-check">
<input type="checkbox" id="RequireApprovementCheckbox" class="form-check-input"/>
<label for="RequireApprovementCheckbox" class="form-check-label">@L["CmsKitCommentOptions:RequireApprovement"].Value</label>
</div>
<small class="form-text text-muted">@L["CmsKitCommentOptions:RequireApprovementDescription"].Value</small>
<hr class="my-4"/>
<div>
<abp-button id="Save" button-type="Primary" type="submit">
<i class="fa fa-save"></i> @L["Save"]
</abp-button>
</div>
</div>
</abp-column>
</abp-row>
</abp-form>
</abp-tab>
</abp-tabs>
}

37
modules/cms-kit/src/Volo.CmsKit.Admin.Web/Pages/CmsKit/Shared/Components/Comments/default.js

@ -0,0 +1,37 @@
var l = abp.localization.getResource("CmsKit");
(function () {
abp.widgets.CmsCommentSetting = function ($wrapper) {
var _service = volo.cmsKit.admin.comments.commentAdmin;
var _init = function () {
_getSettings();
_bindEvents();
};
var _getSettings = function () {
$wrapper.find('#RequireApprovementCheckbox').prop('checked', abp.setting.getBoolean("CmsKit.Comments.RequireApprovement"));
};
var _bindEvents = function () {
var $requireApprovalCheckbox = $('#RequireApprovementCheckbox');
var previousValue = $requireApprovalCheckbox.prop('checked');
$wrapper.find('#Save').click(function () {
var isRequireApproved = $requireApprovalCheckbox.prop('checked');
function UpdateSettings(commentRequireApprovement) {
_service.updateSettings({commentRequireApprovement: commentRequireApprovement}).then(function (response) {
abp.notify.success(l("SavedSuccessfully"));
previousValue = commentRequireApprovement;
})
}
UpdateSettings(isRequireApproved);
});
};
return {
init: _init
};
};
})();

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

@ -40,5 +40,4 @@
<_ContentIncludedByDefault Remove="Pages\Admin\Index.cshtml" /> <_ContentIncludedByDefault Remove="Pages\Admin\Index.cshtml" />
<_ContentIncludedByDefault Remove="Pages\Admin\_ViewImports.cshtml" /> <_ContentIncludedByDefault Remove="Pages\Admin\_ViewImports.cshtml" />
</ItemGroup> </ItemGroup>
</Project> </Project>

377
modules/cms-kit/src/Volo.CmsKit.Admin.Web/wwwroot/client-proxies/cms-kit-admin-proxy.js

@ -5,207 +5,246 @@
(function(){ (function(){
// controller volo.cmsKit.admin.tags.entityTagAdmin // controller volo.cmsKit.admin.blogs.blogAdmin
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.admin.tags.entityTagAdmin'); abp.utils.createNamespace(window, 'volo.cmsKit.admin.blogs.blogAdmin');
volo.cmsKit.admin.tags.entityTagAdmin.addTagToEntity = function(input, ajaxParams) { volo.cmsKit.admin.blogs.blogAdmin.get = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/entity-tags', url: abp.appPath + 'api/cms-kit-admin/blogs/' + id + '',
type: 'GET'
}, ajaxParams));
};
volo.cmsKit.admin.blogs.blogAdmin.getList = function(input, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '',
type: 'GET'
}, ajaxParams));
};
volo.cmsKit.admin.blogs.blogAdmin.create = function(input, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs',
type: 'POST', type: 'POST',
dataType: null,
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.tags.entityTagAdmin.removeTagFromEntity = function(input, ajaxParams) { volo.cmsKit.admin.blogs.blogAdmin.update = function(id, input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/entity-tags' + abp.utils.buildQueryString([{ name: 'tagId', value: input.tagId }, { name: 'entityType', value: input.entityType }, { name: 'entityId', value: input.entityId }]) + '', url: abp.appPath + 'api/cms-kit-admin/blogs/' + id + '',
type: 'PUT',
data: JSON.stringify(input)
}, ajaxParams));
};
volo.cmsKit.admin.blogs.blogAdmin['delete'] = function(id, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/' + id + '',
type: 'DELETE', type: 'DELETE',
dataType: null dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.tags.entityTagAdmin.setEntityTags = function(input, ajaxParams) { })();
// controller volo.cmsKit.admin.blogs.blogFeatureAdmin
(function(){
abp.utils.createNamespace(window, 'volo.cmsKit.admin.blogs.blogFeatureAdmin');
volo.cmsKit.admin.blogs.blogFeatureAdmin.getList = function(blogId, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/entity-tags', url: abp.appPath + 'api/cms-kit-admin/blogs/' + blogId + '/features',
type: 'GET'
}, ajaxParams));
};
volo.cmsKit.admin.blogs.blogFeatureAdmin.set = function(blogId, dto, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/' + blogId + '/features',
type: 'PUT', type: 'PUT',
dataType: null, dataType: null,
data: JSON.stringify(input) data: JSON.stringify(dto)
}, ajaxParams)); }, ajaxParams));
}; };
})(); })();
// controller volo.cmsKit.admin.tags.tagAdmin // controller volo.cmsKit.admin.blogs.blogPostAdmin
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.admin.tags.tagAdmin'); abp.utils.createNamespace(window, 'volo.cmsKit.admin.blogs.blogPostAdmin');
volo.cmsKit.admin.tags.tagAdmin.create = function(input, ajaxParams) { volo.cmsKit.admin.blogs.blogPostAdmin.create = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/tags', url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts',
type: 'POST', type: 'POST',
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.tags.tagAdmin['delete'] = function(id, ajaxParams) { volo.cmsKit.admin.blogs.blogPostAdmin['delete'] = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/tags/' + id + '', url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '',
type: 'DELETE', type: 'DELETE',
dataType: null dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.tags.tagAdmin.get = function(id, ajaxParams) { volo.cmsKit.admin.blogs.blogPostAdmin.get = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/tags/' + id + '', url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.tags.tagAdmin.getList = function(input, ajaxParams) { volo.cmsKit.admin.blogs.blogPostAdmin.getList = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/tags' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '', url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'blogId', value: input.blogId }, { name: 'authorId', value: input.authorId }, { name: 'tagId', value: input.tagId }, { name: 'status', value: input.status }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.tags.tagAdmin.update = function(id, input, ajaxParams) { volo.cmsKit.admin.blogs.blogPostAdmin.update = function(id, input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/tags/' + id + '', url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '',
type: 'PUT', type: 'PUT',
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.tags.tagAdmin.getTagDefinitions = function(ajaxParams) { volo.cmsKit.admin.blogs.blogPostAdmin.publish = function(id, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/tags/tag-definitions',
type: 'GET'
}, ajaxParams));
};
})();
// controller volo.cmsKit.admin.pages.pageAdmin
(function(){
abp.utils.createNamespace(window, 'volo.cmsKit.admin.pages.pageAdmin');
volo.cmsKit.admin.pages.pageAdmin.get = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/pages/' + id + '', url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '/publish',
type: 'GET' type: 'POST',
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.pages.pageAdmin.getList = function(input, ajaxParams) { volo.cmsKit.admin.blogs.blogPostAdmin.draft = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/pages' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '', url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '/draft',
type: 'GET' type: 'POST',
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.pages.pageAdmin.create = function(input, ajaxParams) { volo.cmsKit.admin.blogs.blogPostAdmin.createAndPublish = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/pages', url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/create-and-publish',
type: 'POST', type: 'POST',
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.pages.pageAdmin.update = function(id, input, ajaxParams) { volo.cmsKit.admin.blogs.blogPostAdmin.sendToReview = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/pages/' + id + '', url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '/send-to-review',
type: 'PUT', type: 'POST',
data: JSON.stringify(input) dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.pages.pageAdmin['delete'] = function(id, ajaxParams) { volo.cmsKit.admin.blogs.blogPostAdmin.createAndSendToReview = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/pages/' + id + '', url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/create-and-send-to-review',
type: 'DELETE', type: 'POST',
dataType: null data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.pages.pageAdmin.setAsHomePage = function(id, ajaxParams) { volo.cmsKit.admin.blogs.blogPostAdmin.hasBlogPostWaitingForReview = function(ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/pages/setashomepage/' + id + '', url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/has-blogpost-waiting-for-review',
type: 'PUT', type: 'GET'
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
})(); })();
// controller volo.cmsKit.admin.menus.menuItemAdmin // controller volo.cmsKit.admin.comments.commentAdmin
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.admin.menus.menuItemAdmin'); abp.utils.createNamespace(window, 'volo.cmsKit.admin.comments.commentAdmin');
volo.cmsKit.admin.menus.menuItemAdmin.getList = function(ajaxParams) { volo.cmsKit.admin.comments.commentAdmin.getList = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/menu-items', url: abp.appPath + 'api/cms-kit-admin/comments' + abp.utils.buildQueryString([{ name: 'entityType', value: input.entityType }, { name: 'text', value: input.text }, { name: 'repliedCommentId', value: input.repliedCommentId }, { name: 'author', value: input.author }, { name: 'creationStartDate', value: input.creationStartDate }, { name: 'creationEndDate', value: input.creationEndDate }, { name: 'commentApproveState', value: input.commentApproveState }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.menus.menuItemAdmin.get = function(id, ajaxParams) { volo.cmsKit.admin.comments.commentAdmin.get = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/menu-items/' + id + '', url: abp.appPath + 'api/cms-kit-admin/comments/' + id + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.menus.menuItemAdmin.create = function(input, ajaxParams) { volo.cmsKit.admin.comments.commentAdmin['delete'] = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/menu-items', url: abp.appPath + 'api/cms-kit-admin/comments/' + id + '',
type: 'POST', type: 'DELETE',
data: JSON.stringify(input) dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.menus.menuItemAdmin.update = function(id, input, ajaxParams) { volo.cmsKit.admin.comments.commentAdmin.updateApprovalStatus = function(id, input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/menu-items/' + id + '', url: abp.appPath + 'api/cms-kit-admin/comments/' + id + '/approval-status',
type: 'PUT', type: 'PUT',
dataType: null,
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.menus.menuItemAdmin['delete'] = function(id, ajaxParams) { volo.cmsKit.admin.comments.commentAdmin.updateSettings = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/menu-items/' + id + '', url: abp.appPath + 'api/cms-kit-admin/comments/settings',
type: 'DELETE', type: 'POST',
dataType: null dataType: null,
data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.menus.menuItemAdmin.moveMenuItem = function(id, input, ajaxParams) { volo.cmsKit.admin.comments.commentAdmin.getWaitingCount = function(ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/menu-items/' + id + '/move', url: abp.appPath + 'api/cms-kit-admin/comments/waiting-count',
type: 'PUT', type: 'GET'
dataType: null,
data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.menus.menuItemAdmin.getPageLookup = function(input, ajaxParams) { })();
// controller volo.cmsKit.admin.globalResources.globalResourceAdmin
(function(){
abp.utils.createNamespace(window, 'volo.cmsKit.admin.globalResources.globalResourceAdmin');
volo.cmsKit.admin.globalResources.globalResourceAdmin.get = function(ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/menu-items/lookup/pages' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '', url: abp.appPath + 'api/cms-kit-admin/global-resources',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.globalResources.globalResourceAdmin.setGlobalResources = function(input, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/global-resources',
type: 'POST',
dataType: null,
data: JSON.stringify(input)
}, ajaxParams));
};
})(); })();
// controller volo.cmsKit.admin.mediaDescriptors.mediaDescriptorAdmin // controller volo.cmsKit.admin.mediaDescriptors.mediaDescriptorAdmin
@ -231,217 +270,203 @@
})(); })();
// controller volo.cmsKit.admin.globalResources.globalResourceAdmin // controller volo.cmsKit.admin.menus.menuItemAdmin
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.admin.globalResources.globalResourceAdmin'); abp.utils.createNamespace(window, 'volo.cmsKit.admin.menus.menuItemAdmin');
volo.cmsKit.admin.globalResources.globalResourceAdmin.get = function(ajaxParams) { volo.cmsKit.admin.menus.menuItemAdmin.getList = function(ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/global-resources', url: abp.appPath + 'api/cms-kit-admin/menu-items',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.globalResources.globalResourceAdmin.setGlobalResources = function(input, ajaxParams) { volo.cmsKit.admin.menus.menuItemAdmin.get = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/global-resources', url: abp.appPath + 'api/cms-kit-admin/menu-items/' + id + '',
type: 'GET'
}, ajaxParams));
};
volo.cmsKit.admin.menus.menuItemAdmin.create = function(input, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/menu-items',
type: 'POST', type: 'POST',
dataType: null,
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
})(); volo.cmsKit.admin.menus.menuItemAdmin.update = function(id, input, ajaxParams) {
return abp.ajax($.extend(true, {
// controller volo.cmsKit.admin.comments.commentAdmin url: abp.appPath + 'api/cms-kit-admin/menu-items/' + id + '',
type: 'PUT',
(function(){ data: JSON.stringify(input)
}, ajaxParams));
abp.utils.createNamespace(window, 'volo.cmsKit.admin.comments.commentAdmin'); };
volo.cmsKit.admin.comments.commentAdmin.getList = function(input, ajaxParams) { volo.cmsKit.admin.menus.menuItemAdmin['delete'] = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/comments' + abp.utils.buildQueryString([{ name: 'entityType', value: input.entityType }, { name: 'text', value: input.text }, { name: 'repliedCommentId', value: input.repliedCommentId }, { name: 'author', value: input.author }, { name: 'creationStartDate', value: input.creationStartDate }, { name: 'creationEndDate', value: input.creationEndDate }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '', url: abp.appPath + 'api/cms-kit-admin/menu-items/' + id + '',
type: 'GET' type: 'DELETE',
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.comments.commentAdmin.get = function(id, ajaxParams) { volo.cmsKit.admin.menus.menuItemAdmin.moveMenuItem = function(id, input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/comments/' + id + '', url: abp.appPath + 'api/cms-kit-admin/menu-items/' + id + '/move',
type: 'GET' type: 'PUT',
dataType: null,
data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.comments.commentAdmin['delete'] = function(id, ajaxParams) { volo.cmsKit.admin.menus.menuItemAdmin.getPageLookup = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/comments/' + id + '', url: abp.appPath + 'api/cms-kit-admin/menu-items/lookup/pages' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '',
type: 'DELETE', type: 'GET'
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
})(); })();
// controller volo.cmsKit.admin.blogs.blogAdmin // controller volo.cmsKit.admin.pages.pageAdmin
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.admin.blogs.blogAdmin'); abp.utils.createNamespace(window, 'volo.cmsKit.admin.pages.pageAdmin');
volo.cmsKit.admin.blogs.blogAdmin.get = function(id, ajaxParams) { volo.cmsKit.admin.pages.pageAdmin.get = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/' + id + '', url: abp.appPath + 'api/cms-kit-admin/pages/' + id + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogAdmin.getList = function(input, ajaxParams) { volo.cmsKit.admin.pages.pageAdmin.getList = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '', url: abp.appPath + 'api/cms-kit-admin/pages' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogAdmin.create = function(input, ajaxParams) { volo.cmsKit.admin.pages.pageAdmin.create = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs', url: abp.appPath + 'api/cms-kit-admin/pages',
type: 'POST', type: 'POST',
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogAdmin.update = function(id, input, ajaxParams) { volo.cmsKit.admin.pages.pageAdmin.update = function(id, input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/' + id + '', url: abp.appPath + 'api/cms-kit-admin/pages/' + id + '',
type: 'PUT', type: 'PUT',
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogAdmin['delete'] = function(id, ajaxParams) { volo.cmsKit.admin.pages.pageAdmin['delete'] = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/' + id + '', url: abp.appPath + 'api/cms-kit-admin/pages/' + id + '',
type: 'DELETE', type: 'DELETE',
dataType: null dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
})(); volo.cmsKit.admin.pages.pageAdmin.setAsHomePage = function(id, ajaxParams) {
// controller volo.cmsKit.admin.blogs.blogFeatureAdmin
(function(){
abp.utils.createNamespace(window, 'volo.cmsKit.admin.blogs.blogFeatureAdmin');
volo.cmsKit.admin.blogs.blogFeatureAdmin.getList = function(blogId, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/' + blogId + '/features',
type: 'GET'
}, ajaxParams));
};
volo.cmsKit.admin.blogs.blogFeatureAdmin.set = function(blogId, dto, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/' + blogId + '/features', url: abp.appPath + 'api/cms-kit-admin/pages/setashomepage/' + id + '',
type: 'PUT', type: 'PUT',
dataType: null, dataType: null
data: JSON.stringify(dto)
}, ajaxParams)); }, ajaxParams));
}; };
})(); })();
// controller volo.cmsKit.admin.blogs.blogPostAdmin // controller volo.cmsKit.admin.tags.entityTagAdmin
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.admin.blogs.blogPostAdmin'); abp.utils.createNamespace(window, 'volo.cmsKit.admin.tags.entityTagAdmin');
volo.cmsKit.admin.blogs.blogPostAdmin.create = function(input, ajaxParams) { volo.cmsKit.admin.tags.entityTagAdmin.addTagToEntity = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts', url: abp.appPath + 'api/cms-kit-admin/entity-tags',
type: 'POST', type: 'POST',
dataType: null,
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogPostAdmin['delete'] = function(id, ajaxParams) { volo.cmsKit.admin.tags.entityTagAdmin.removeTagFromEntity = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '', url: abp.appPath + 'api/cms-kit-admin/entity-tags' + abp.utils.buildQueryString([{ name: 'tagId', value: input.tagId }, { name: 'entityType', value: input.entityType }, { name: 'entityId', value: input.entityId }]) + '',
type: 'DELETE', type: 'DELETE',
dataType: null dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogPostAdmin.get = function(id, ajaxParams) { volo.cmsKit.admin.tags.entityTagAdmin.setEntityTags = function(input, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '',
type: 'GET'
}, ajaxParams));
};
volo.cmsKit.admin.blogs.blogPostAdmin.getList = function(input, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'blogId', value: input.blogId }, { name: 'authorId', value: input.authorId }, { name: 'tagId', value: input.tagId }, { name: 'status', value: input.status }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '',
type: 'GET'
}, ajaxParams));
};
volo.cmsKit.admin.blogs.blogPostAdmin.update = function(id, input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '', url: abp.appPath + 'api/cms-kit-admin/entity-tags',
type: 'PUT', type: 'PUT',
dataType: null,
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogPostAdmin.publish = function(id, ajaxParams) { })();
// controller volo.cmsKit.admin.tags.tagAdmin
(function(){
abp.utils.createNamespace(window, 'volo.cmsKit.admin.tags.tagAdmin');
volo.cmsKit.admin.tags.tagAdmin.create = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '/publish', url: abp.appPath + 'api/cms-kit-admin/tags',
type: 'POST', type: 'POST',
dataType: null data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogPostAdmin.draft = function(id, ajaxParams) { volo.cmsKit.admin.tags.tagAdmin['delete'] = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '/draft', url: abp.appPath + 'api/cms-kit-admin/tags/' + id + '',
type: 'POST', type: 'DELETE',
dataType: null dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogPostAdmin.createAndPublish = function(input, ajaxParams) { volo.cmsKit.admin.tags.tagAdmin.get = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/create-and-publish', url: abp.appPath + 'api/cms-kit-admin/tags/' + id + '',
type: 'POST', type: 'GET'
data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogPostAdmin.sendToReview = function(id, ajaxParams) { volo.cmsKit.admin.tags.tagAdmin.getList = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/' + id + '/send-to-review', url: abp.appPath + 'api/cms-kit-admin/tags' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '',
type: 'POST', type: 'GET'
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogPostAdmin.createAndSendToReview = function(input, ajaxParams) { volo.cmsKit.admin.tags.tagAdmin.update = function(id, input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/create-and-send-to-review', url: abp.appPath + 'api/cms-kit-admin/tags/' + id + '',
type: 'POST', type: 'PUT',
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.admin.blogs.blogPostAdmin.hasBlogPostWaitingForReview = function(ajaxParams) { volo.cmsKit.admin.tags.tagAdmin.getTagDefinitions = function(ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-admin/blogs/blog-posts/has-blogpost-waiting-for-review', url: abp.appPath + 'api/cms-kit-admin/tags/tag-definitions',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };

136
modules/cms-kit/src/Volo.CmsKit.Common.HttpApi.Client/ClientProxies/cms-kit-common-generate-proxy.json

@ -4,59 +4,75 @@
"rootPath": "cms-kit-common", "rootPath": "cms-kit-common",
"remoteServiceName": "CmsKitCommon", "remoteServiceName": "CmsKitCommon",
"controllers": { "controllers": {
"Volo.CmsKit.MediaDescriptors.MediaDescriptorController": { "Volo.CmsKit.Blogs.BlogFeatureController": {
"controllerName": "MediaDescriptor", "controllerName": "BlogFeature",
"controllerGroupName": "MediaDescriptor", "controllerGroupName": "BlogFeature",
"isRemoteService": true, "isRemoteService": true,
"isIntegrationService": false, "isIntegrationService": false,
"apiVersion": null, "apiVersion": null,
"type": "Volo.CmsKit.MediaDescriptors.MediaDescriptorController", "type": "Volo.CmsKit.Blogs.BlogFeatureController",
"interfaces": [ "interfaces": [
{ {
"type": "Volo.CmsKit.MediaDescriptors.IMediaDescriptorAppService", "type": "Volo.CmsKit.Blogs.IBlogFeatureAppService",
"name": "IMediaDescriptorAppService", "name": "IBlogFeatureAppService",
"methods": [ "methods": [
{ {
"name": "DownloadAsync", "name": "GetOrDefaultAsync",
"parametersOnMethod": [ "parametersOnMethod": [
{ {
"name": "id", "name": "blogId",
"typeAsString": "System.Guid, System.Private.CoreLib", "typeAsString": "System.Guid, System.Private.CoreLib",
"type": "System.Guid", "type": "System.Guid",
"typeSimple": "string", "typeSimple": "string",
"isOptional": false, "isOptional": false,
"defaultValue": null "defaultValue": null
},
{
"name": "featureName",
"typeAsString": "System.String, System.Private.CoreLib",
"type": "System.String",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null
} }
], ],
"returnValue": { "returnValue": {
"type": "Volo.Abp.Content.RemoteStreamContent", "type": "Volo.CmsKit.Blogs.BlogFeatureDto",
"typeSimple": "Volo.Abp.Content.RemoteStreamContent" "typeSimple": "Volo.CmsKit.Blogs.BlogFeatureDto"
} }
} }
] ]
} }
], ],
"actions": { "actions": {
"DownloadAsyncById": { "GetOrDefaultAsyncByBlogIdAndFeatureName": {
"uniqueName": "DownloadAsyncById", "uniqueName": "GetOrDefaultAsyncByBlogIdAndFeatureName",
"name": "DownloadAsync", "name": "GetOrDefaultAsync",
"httpMethod": "GET", "httpMethod": "GET",
"url": "api/cms-kit/media/{id}", "url": "api/cms-kit/blogs/{blogId}/features/{featureName}",
"supportedVersions": [], "supportedVersions": [],
"parametersOnMethod": [ "parametersOnMethod": [
{ {
"name": "id", "name": "blogId",
"typeAsString": "System.Guid, System.Private.CoreLib", "typeAsString": "System.Guid, System.Private.CoreLib",
"type": "System.Guid", "type": "System.Guid",
"typeSimple": "string", "typeSimple": "string",
"isOptional": false, "isOptional": false,
"defaultValue": null "defaultValue": null
},
{
"name": "featureName",
"typeAsString": "System.String, System.Private.CoreLib",
"type": "System.String",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null
} }
], ],
"parameters": [ "parameters": [
{ {
"nameOnMethod": "id", "nameOnMethod": "blogId",
"name": "id", "name": "blogId",
"jsonName": null, "jsonName": null,
"type": "System.Guid", "type": "System.Guid",
"typeSimple": "string", "typeSimple": "string",
@ -65,86 +81,82 @@
"constraintTypes": [], "constraintTypes": [],
"bindingSourceId": "Path", "bindingSourceId": "Path",
"descriptorName": "" "descriptorName": ""
},
{
"nameOnMethod": "featureName",
"name": "featureName",
"jsonName": null,
"type": "System.String",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null,
"constraintTypes": [],
"bindingSourceId": "Path",
"descriptorName": ""
} }
], ],
"returnValue": { "returnValue": {
"type": "Volo.Abp.Content.RemoteStreamContent", "type": "Volo.CmsKit.Blogs.BlogFeatureDto",
"typeSimple": "Volo.Abp.Content.RemoteStreamContent" "typeSimple": "Volo.CmsKit.Blogs.BlogFeatureDto"
}, },
"allowAnonymous": null, "allowAnonymous": null,
"implementFrom": "Volo.CmsKit.MediaDescriptors.IMediaDescriptorAppService" "implementFrom": "Volo.CmsKit.Blogs.IBlogFeatureAppService"
} }
} }
}, },
"Volo.CmsKit.Blogs.BlogFeatureController": { "Volo.CmsKit.MediaDescriptors.MediaDescriptorController": {
"controllerName": "BlogFeature", "controllerName": "MediaDescriptor",
"controllerGroupName": "BlogFeature", "controllerGroupName": "MediaDescriptor",
"isRemoteService": true, "isRemoteService": true,
"isIntegrationService": false, "isIntegrationService": false,
"apiVersion": null, "apiVersion": null,
"type": "Volo.CmsKit.Blogs.BlogFeatureController", "type": "Volo.CmsKit.MediaDescriptors.MediaDescriptorController",
"interfaces": [ "interfaces": [
{ {
"type": "Volo.CmsKit.Blogs.IBlogFeatureAppService", "type": "Volo.CmsKit.MediaDescriptors.IMediaDescriptorAppService",
"name": "IBlogFeatureAppService", "name": "IMediaDescriptorAppService",
"methods": [ "methods": [
{ {
"name": "GetOrDefaultAsync", "name": "DownloadAsync",
"parametersOnMethod": [ "parametersOnMethod": [
{ {
"name": "blogId", "name": "id",
"typeAsString": "System.Guid, System.Private.CoreLib", "typeAsString": "System.Guid, System.Private.CoreLib",
"type": "System.Guid", "type": "System.Guid",
"typeSimple": "string", "typeSimple": "string",
"isOptional": false, "isOptional": false,
"defaultValue": null "defaultValue": null
},
{
"name": "featureName",
"typeAsString": "System.String, System.Private.CoreLib",
"type": "System.String",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null
} }
], ],
"returnValue": { "returnValue": {
"type": "Volo.CmsKit.Blogs.BlogFeatureDto", "type": "Volo.Abp.Content.RemoteStreamContent",
"typeSimple": "Volo.CmsKit.Blogs.BlogFeatureDto" "typeSimple": "Volo.Abp.Content.RemoteStreamContent"
} }
} }
] ]
} }
], ],
"actions": { "actions": {
"GetOrDefaultAsyncByBlogIdAndFeatureName": { "DownloadAsyncById": {
"uniqueName": "GetOrDefaultAsyncByBlogIdAndFeatureName", "uniqueName": "DownloadAsyncById",
"name": "GetOrDefaultAsync", "name": "DownloadAsync",
"httpMethod": "GET", "httpMethod": "GET",
"url": "api/cms-kit/blogs/{blogId}/features/{featureName}", "url": "api/cms-kit/media/{id}",
"supportedVersions": [], "supportedVersions": [],
"parametersOnMethod": [ "parametersOnMethod": [
{ {
"name": "blogId", "name": "id",
"typeAsString": "System.Guid, System.Private.CoreLib", "typeAsString": "System.Guid, System.Private.CoreLib",
"type": "System.Guid", "type": "System.Guid",
"typeSimple": "string", "typeSimple": "string",
"isOptional": false, "isOptional": false,
"defaultValue": null "defaultValue": null
},
{
"name": "featureName",
"typeAsString": "System.String, System.Private.CoreLib",
"type": "System.String",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null
} }
], ],
"parameters": [ "parameters": [
{ {
"nameOnMethod": "blogId", "nameOnMethod": "id",
"name": "blogId", "name": "id",
"jsonName": null, "jsonName": null,
"type": "System.Guid", "type": "System.Guid",
"typeSimple": "string", "typeSimple": "string",
@ -153,26 +165,14 @@
"constraintTypes": [], "constraintTypes": [],
"bindingSourceId": "Path", "bindingSourceId": "Path",
"descriptorName": "" "descriptorName": ""
},
{
"nameOnMethod": "featureName",
"name": "featureName",
"jsonName": null,
"type": "System.String",
"typeSimple": "string",
"isOptional": false,
"defaultValue": null,
"constraintTypes": [],
"bindingSourceId": "Path",
"descriptorName": ""
} }
], ],
"returnValue": { "returnValue": {
"type": "Volo.CmsKit.Blogs.BlogFeatureDto", "type": "Volo.Abp.Content.RemoteStreamContent",
"typeSimple": "Volo.CmsKit.Blogs.BlogFeatureDto" "typeSimple": "Volo.Abp.Content.RemoteStreamContent"
}, },
"allowAnonymous": null, "allowAnonymous": null,
"implementFrom": "Volo.CmsKit.Blogs.IBlogFeatureAppService" "implementFrom": "Volo.CmsKit.MediaDescriptors.IMediaDescriptorAppService"
} }
} }
} }

4
modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs

@ -7,13 +7,15 @@ using Volo.CmsKit.Reactions;
using Volo.CmsKit.Web.Icons; using Volo.CmsKit.Web.Icons;
using Markdig; using Markdig;
using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.DependencyInjection;
using Volo.Abp.SettingManagement.Web;
namespace Volo.CmsKit.Web; namespace Volo.CmsKit.Web;
[DependsOn( [DependsOn(
typeof(AbpAspNetCoreMvcUiThemeSharedModule), typeof(AbpAspNetCoreMvcUiThemeSharedModule),
typeof(CmsKitCommonApplicationContractsModule), typeof(CmsKitCommonApplicationContractsModule),
typeof(AbpAutoMapperModule) typeof(AbpAutoMapperModule),
typeof(AbpSettingManagementWebModule)
)] )]
public class CmsKitCommonWebModule : AbpModule public class CmsKitCommonWebModule : AbpModule
{ {

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

@ -16,6 +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.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="..\..\..\..\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.Common.Application.Contracts\Volo.CmsKit.Common.Application.Contracts.csproj" />
<ProjectReference Include="..\..\..\..\modules\setting-management\src\Volo.Abp.SettingManagement.Web/Volo.Abp.SettingManagement.Web.csproj" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

16
modules/cms-kit/src/Volo.CmsKit.Common.Web/wwwroot/client-proxies/cms-kit-common-proxy.js

@ -5,30 +5,30 @@
(function(){ (function(){
// controller volo.cmsKit.mediaDescriptors.mediaDescriptor // controller volo.cmsKit.blogs.blogFeature
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.mediaDescriptors.mediaDescriptor'); abp.utils.createNamespace(window, 'volo.cmsKit.blogs.blogFeature');
volo.cmsKit.mediaDescriptors.mediaDescriptor.download = function(id, ajaxParams) { volo.cmsKit.blogs.blogFeature.getOrDefault = function(blogId, featureName, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit/media/' + id + '', url: abp.appPath + 'api/cms-kit/blogs/' + blogId + '/features/' + featureName + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
})(); })();
// controller volo.cmsKit.blogs.blogFeature // controller volo.cmsKit.mediaDescriptors.mediaDescriptor
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.blogs.blogFeature'); abp.utils.createNamespace(window, 'volo.cmsKit.mediaDescriptors.mediaDescriptor');
volo.cmsKit.blogs.blogFeature.getOrDefault = function(blogId, featureName, ajaxParams) { volo.cmsKit.mediaDescriptors.mediaDescriptor.download = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit/blogs/' + blogId + '/features/' + featureName + '', url: abp.appPath + 'api/cms-kit/media/' + id + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };

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

12
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";
}
}

12
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Comments/CommentApproveState.cs

@ -0,0 +1,12 @@
using System;
namespace Volo.CmsKit.Comments;
[Flags]
public enum CommentApproveState
{
All = 0,
Approved = 1,
Disapproved = 2,
Waiting = 4
}

20
modules/cms-kit/src/Volo.CmsKit.Domain.Shared/Volo/CmsKit/Localization/Resources/en.json

@ -168,7 +168,6 @@
"YourReply": "Your reply", "YourReply": "Your reply",
"MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> supported.", "MarkdownSupported": "<a href=\"https://www.markdownguide.org/basic-syntax/\">Markdown</a> supported.",
"GlobalResources": "Global resources", "GlobalResources": "Global resources",
"SavedSuccessfully": "Saved successfully",
"CmsKit.BlogPost.Status.0": "Draft", "CmsKit.BlogPost.Status.0": "Draft",
"CmsKit.BlogPost.Status.1": "Published", "CmsKit.BlogPost.Status.1": "Published",
"CmsKit.BlogPost.Status.2": "Waiting for review", "CmsKit.BlogPost.Status.2": "Waiting for review",
@ -228,6 +227,23 @@
"TagsHelpText": "Tags should be comma-separated (e.g.: tag1, tag2, tag3)", "TagsHelpText": "Tags should be comma-separated (e.g.: tag1, tag2, tag3)",
"ThisPartOfContentCouldntBeLoaded": "This part of content couldn't be loaded.", "ThisPartOfContentCouldntBeLoaded": "This part of content couldn't be loaded.",
"DuplicateCommentAttemptMessage": "Duplicate comment post attempt detected. Your comment has already been submitted.", "DuplicateCommentAttemptMessage": "Duplicate comment post attempt detected. Your comment has already been submitted.",
"NoBlogPostYet": "No blog post yet!" "NoBlogPostYet": "No blog post yet!",
"CmsKit:Comment": "Comment",
"CmsKitCommentOptions:RequireApprovement": "Require approval for comments",
"CmsKitCommentOptions:RequireApprovementDescription": "When enabled, comments will require approval before being published.",
"CommentFilter:ApproveState":"Approve State",
"ApproveState": "Approve State",
"CommentFilter:0":"All",
"CommentFilter:1":"Approved",
"CommentFilter:2":"Disapproved",
"CommentFilter:4":"Waiting",
"ApprovedSuccessfully":"Approved Successfully",
"ApprovalRevokedSuccessfully":"Approval Revoked Successfully",
"Approve":"Approve",
"Disapproved":"Disapproved",
"CommentAlertMessage":"There are {0} comments waiting for approval",
"Settings:Menu:CmsKit":"CMS",
"CommentsAwaitingApproval":"Comments Awaiting Approval",
"CommentSubmittedForApproval": "Your comment has been submitted for approval.",
} }
} }

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="..\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="..\..\..\..\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="..\..\..\..\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> </ItemGroup>
</Project> </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.Modularity;
using Volo.Abp.ObjectExtending; using Volo.Abp.ObjectExtending;
using Volo.Abp.ObjectExtending.Modularity; using Volo.Abp.ObjectExtending.Modularity;
using Volo.Abp.SettingManagement;
using Volo.Abp.Threading; using Volo.Abp.Threading;
using Volo.Abp.Users; using Volo.Abp.Users;
using Volo.CmsKit.Blogs; using Volo.CmsKit.Blogs;
@ -25,7 +26,8 @@ namespace Volo.CmsKit;
typeof(CmsKitDomainSharedModule), typeof(CmsKitDomainSharedModule),
typeof(AbpUsersDomainModule), typeof(AbpUsersDomainModule),
typeof(AbpDddDomainModule), typeof(AbpDddDomainModule),
typeof(AbpBlobStoringModule) typeof(AbpBlobStoringModule),
typeof(AbpSettingManagementDomainModule)
)] )]
public class CmsKitDomainModule : AbpModule public class CmsKitDomainModule : AbpModule
{ {

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

@ -27,6 +27,8 @@ public class Comment : AggregateRoot<Guid>, IHasCreationTime, IMustHaveCreator,
public virtual string IdempotencyToken { get; set; } public virtual string IdempotencyToken { get; set; }
public virtual bool? IsApproved { get; private set; }
protected Comment() protected Comment()
{ {
@ -62,4 +64,22 @@ public class Comment : AggregateRoot<Guid>, IHasCreationTime, IMustHaveCreator,
{ {
Text = Check.NotNullOrWhiteSpace(text, nameof(text), CommentConsts.MaxTextLength); Text = Check.NotNullOrWhiteSpace(text, nameof(text), CommentConsts.MaxTextLength);
} }
public virtual Comment Approve()
{
IsApproved = true;
return this;
}
public virtual Comment Reject()
{
IsApproved = false;
return this;
}
public virtual Comment WaitForApproval()
{
IsApproved = null;
return this;
}
} }

51
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Comments/CommentManager.cs

@ -1,9 +1,9 @@
 using JetBrains.Annotations;
using JetBrains.Annotations;
using System; using System;
using System.Threading.Tasks; using System.Threading.Tasks;
using Volo.Abp; using Volo.Abp;
using Volo.Abp.Domain.Services; using Volo.Abp.Domain.Services;
using Volo.Abp.SettingManagement;
using Volo.CmsKit.Users; using Volo.CmsKit.Users;
namespace Volo.CmsKit.Comments; namespace Volo.CmsKit.Comments;
@ -11,18 +11,22 @@ namespace Volo.CmsKit.Comments;
public class CommentManager : DomainService public class CommentManager : DomainService
{ {
protected ICommentEntityTypeDefinitionStore DefinitionStore { get; } protected ICommentEntityTypeDefinitionStore DefinitionStore { get; }
protected ISettingManager SettingManager { get; }
public CommentManager(ICommentEntityTypeDefinitionStore definitionStore) public CommentManager(
ICommentEntityTypeDefinitionStore definitionStore,
ISettingManager settingManager)
{ {
DefinitionStore = definitionStore; DefinitionStore = definitionStore;
SettingManager = settingManager;
} }
public virtual async Task<Comment> CreateAsync([NotNull] CmsUser creator, public virtual async Task<Comment> CreateAsync([NotNull] CmsUser creator,
[NotNull] string entityType, [NotNull] string entityType,
[NotNull] string entityId, [NotNull] string entityId,
[NotNull] string text, [NotNull] string text,
[CanBeNull] string url = null, [CanBeNull] string url = null,
[CanBeNull] Guid? repliedCommentId = null) [CanBeNull] Guid? repliedCommentId = null)
{ {
Check.NotNull(creator, nameof(creator)); Check.NotNull(creator, nameof(creator));
Check.NotNullOrWhiteSpace(entityType, nameof(entityType), CommentConsts.MaxEntityTypeLength); Check.NotNullOrWhiteSpace(entityType, nameof(entityType), CommentConsts.MaxEntityTypeLength);
@ -34,14 +38,27 @@ public class CommentManager : DomainService
throw new EntityNotCommentableException(entityType); throw new EntityNotCommentableException(entityType);
} }
return new Comment( var comment = new Comment(
GuidGenerator.Create(), GuidGenerator.Create(),
entityType, entityType,
entityId, entityId,
text, text,
repliedCommentId, repliedCommentId,
creator.Id, creator.Id,
url, url,
CurrentTenant.Id); CurrentTenant.Id);
var isRequireApprovementEnabled = bool.Parse(await SettingManager.GetOrNullGlobalAsync(CmsKitSettings.Comments.RequireApprovement));
if (isRequireApprovementEnabled)
{
comment.WaitForApproval();
}
else
{
comment.Approve();
}
return comment;
} }
} }

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

@ -21,6 +21,7 @@ public interface ICommentRepository : IBasicRepository<Comment, Guid>
string sorting = null, string sorting = null,
int maxResultCount = int.MaxValue, int maxResultCount = int.MaxValue,
int skipCount = 0, int skipCount = 0,
CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
); );
@ -31,12 +32,14 @@ public interface ICommentRepository : IBasicRepository<Comment, Guid>
string authorUsername = null, string authorUsername = null,
DateTime? creationStartDate = null, DateTime? creationStartDate = null,
DateTime? creationEndDate = null, DateTime? creationEndDate = null,
CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
); );
Task<List<CommentWithAuthorQueryResultItem>> GetListWithAuthorsAsync( Task<List<CommentWithAuthorQueryResultItem>> GetListWithAuthorsAsync(
[NotNull] string entityType, [NotNull] string entityType,
[NotNull] string entityId, [NotNull] string entityId,
CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
); );
@ -46,4 +49,4 @@ public interface ICommentRepository : IBasicRepository<Comment, Guid>
); );
Task<bool> ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default); Task<bool> ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default);
} }

4
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; namespace Volo.CmsKit.Settings;
@ -10,4 +10,4 @@ public class CmsKitSettingDefinitionProvider : SettingDefinitionProvider
* Use names from CmsKitSettings class. * Use names from CmsKitSettings class.
*/ */
} }
} }

4
modules/cms-kit/src/Volo.CmsKit.Domain/Volo/CmsKit/Settings/CmsKitSettings.cs

@ -1,4 +1,4 @@
namespace Volo.CmsKit.Settings; namespace Volo.CmsKit.Settings;
public static class CmsKitSettings public static class CmsKitSettings
{ {
@ -7,4 +7,4 @@ public static class CmsKitSettings
/* Add constants for setting names. Example: /* Add constants for setting names. Example:
* public const string MySettingName = GroupName + ".MySettingName"; * public const string MySettingName = GroupName + ".MySettingName";
*/ */
} }

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

@ -22,7 +22,8 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
{ {
} }
public virtual async Task<CommentWithAuthorQueryResultItem> GetWithAuthorAsync(Guid id, public virtual async Task<CommentWithAuthorQueryResultItem> GetWithAuthorAsync(
Guid id,
CancellationToken cancellationToken = default) CancellationToken cancellationToken = default)
{ {
var query = from comment in (await GetDbSetAsync()) var query = from comment in (await GetDbSetAsync())
@ -54,6 +55,7 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
string sorting = null, string sorting = null,
int maxResultCount = int.MaxValue, int maxResultCount = int.MaxValue,
int skipCount = 0, int skipCount = 0,
CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
) )
{ {
@ -65,7 +67,7 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
authorUsername, authorUsername,
creationStartDate, creationStartDate,
creationEndDate, creationEndDate,
token); commentApproveState);
if (!sorting.IsNullOrEmpty()) if (!sorting.IsNullOrEmpty())
{ {
@ -85,6 +87,7 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
string authorUsername = null, string authorUsername = null,
DateTime? creationStartDate = null, DateTime? creationStartDate = null,
DateTime? creationEndDate = null, DateTime? creationEndDate = null,
CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
) )
{ {
@ -96,7 +99,7 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
authorUsername, authorUsername,
creationStartDate, creationStartDate,
creationEndDate, creationEndDate,
token); commentApproveState);
return await query.LongCountAsync(token); return await query.LongCountAsync(token);
} }
@ -104,6 +107,7 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
public virtual async Task<List<CommentWithAuthorQueryResultItem>> GetListWithAuthorsAsync( public virtual async Task<List<CommentWithAuthorQueryResultItem>> GetListWithAuthorsAsync(
string entityType, string entityType,
string entityId, string entityId,
CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default) CancellationToken cancellationToken = default)
{ {
Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); Check.NotNullOrWhiteSpace(entityType, nameof(entityType));
@ -119,6 +123,9 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
Author = user Author = user
}; };
query = query.WhereIf(commentApproveState == CommentApproveState.Approved, c => c.Comment.IsApproved == true);
query = query.WhereIf(commentApproveState == (CommentApproveState.Approved | CommentApproveState.Waiting), c => c.Comment.IsApproved == true || c.Comment.IsApproved == null);
return await query.ToListAsync(GetCancellationToken(cancellationToken)); return await query.ToListAsync(GetCancellationToken(cancellationToken));
} }
@ -141,7 +148,9 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
await DeleteAsync(comment, cancellationToken: GetCancellationToken(cancellationToken)); await DeleteAsync(comment, cancellationToken: GetCancellationToken(cancellationToken));
} }
public virtual async Task<bool> ExistsAsync(string idempotencyToken, CancellationToken cancellationToken = default) public virtual async Task<bool> ExistsAsync(
string idempotencyToken,
CancellationToken cancellationToken = default)
{ {
return await (await GetDbSetAsync()).AnyAsync(x => x.IdempotencyToken == idempotencyToken, GetCancellationToken(cancellationToken)); return await (await GetDbSetAsync()).AnyAsync(x => x.IdempotencyToken == idempotencyToken, GetCancellationToken(cancellationToken));
} }
@ -153,8 +162,7 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
string authorUsername = null, string authorUsername = null,
DateTime? creationStartDate = null, DateTime? creationStartDate = null,
DateTime? creationEndDate = null, DateTime? creationEndDate = null,
CancellationToken cancellationToken = default CommentApproveState commentApproveState = CommentApproveState.All)
)
{ {
var commentDbSet = await GetDbSetAsync(); var commentDbSet = await GetDbSetAsync();
var cmsUserSet = (await GetDbContextAsync()).Set<CmsUser>(); var cmsUserSet = (await GetDbContextAsync()).Set<CmsUser>();
@ -173,6 +181,9 @@ public class EfCoreCommentRepository : EfCoreRepository<ICmsKitDbContext, Commen
.WhereIf(repliedCommentId.HasValue, c => c.Comment.RepliedCommentId == repliedCommentId) .WhereIf(repliedCommentId.HasValue, c => c.Comment.RepliedCommentId == repliedCommentId)
.WhereIf(!authorUsername.IsNullOrWhiteSpace(), c => c.Author.UserName.Contains(authorUsername)) .WhereIf(!authorUsername.IsNullOrWhiteSpace(), c => c.Author.UserName.Contains(authorUsername))
.WhereIf(creationStartDate.HasValue, c => c.Comment.CreationTime >= creationStartDate) .WhereIf(creationStartDate.HasValue, c => c.Comment.CreationTime >= creationStartDate)
.WhereIf(creationEndDate.HasValue, c => c.Comment.CreationTime <= creationEndDate); .WhereIf(creationEndDate.HasValue, c => c.Comment.CreationTime <= creationEndDate)
.WhereIf(CommentApproveState.Approved == commentApproveState, c => c.Comment.IsApproved == true)
.WhereIf(CommentApproveState.Disapproved == commentApproveState, c => c.Comment.IsApproved == false)
.WhereIf(CommentApproveState.Waiting == commentApproveState, c => c.Comment.IsApproved == null);
} }
} }

37
modules/cms-kit/src/Volo.CmsKit.MongoDB/Volo/CmsKit/MongoDB/Comments/MongoCommentRepository.cs

@ -45,6 +45,7 @@ public class MongoCommentRepository : MongoDbRepository<ICmsKitMongoDbContext, C
string sorting = null, string sorting = null,
int maxResultCount = int.MaxValue, int maxResultCount = int.MaxValue,
int skipCount = 0, int skipCount = 0,
CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
) )
{ {
@ -56,6 +57,7 @@ public class MongoCommentRepository : MongoDbRepository<ICmsKitMongoDbContext, C
authorUsername, authorUsername,
creationStartDate, creationStartDate,
creationEndDate, creationEndDate,
commentApproveState,
token); token);
var comments = await query.OrderBy(sorting.IsNullOrEmpty() ? "creationTime desc" : sorting) var comments = await query.OrderBy(sorting.IsNullOrEmpty() ? "creationTime desc" : sorting)
@ -66,20 +68,18 @@ public class MongoCommentRepository : MongoDbRepository<ICmsKitMongoDbContext, C
var commentIds = comments.Select(x => x.Id).ToList(); var commentIds = comments.Select(x => x.Id).ToList();
var authorsQuery = from comment in (await GetMongoQueryableAsync(token)) var authorsQuery = from comment in (await GetMongoQueryableAsync(token))
join user in (await GetDbContextAsync(token)).CmsUsers on comment.CreatorId equals user.Id join user in (await GetDbContextAsync(token)).CmsUsers on comment.CreatorId equals user.Id
where commentIds.Contains(comment.Id) where commentIds.Contains(comment.Id)
orderby comment.CreationTime orderby comment.CreationTime
select user; select user;
var authors = await ApplyDataFilters<IMongoQueryable<CmsUser>, CmsUser>(authorsQuery).ToListAsync(token); var authors = await ApplyDataFilters<IMongoQueryable<CmsUser>, CmsUser>(authorsQuery).ToListAsync(token);
return comments return comments
.Select( .Select(
comment => comment =>
new CommentWithAuthorQueryResultItem new CommentWithAuthorQueryResultItem {
{ Comment = comment, Author = authors.FirstOrDefault(a => a.Id == comment.CreatorId)
Comment = comment,
Author = authors.FirstOrDefault(a => a.Id == comment.CreatorId)
}).ToList(); }).ToList();
} }
@ -90,6 +90,7 @@ public class MongoCommentRepository : MongoDbRepository<ICmsKitMongoDbContext, C
string authorUsername = null, string authorUsername = null,
DateTime? creationStartDate = null, DateTime? creationStartDate = null,
DateTime? creationEndDate = null, DateTime? creationEndDate = null,
CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
) )
{ {
@ -100,6 +101,7 @@ public class MongoCommentRepository : MongoDbRepository<ICmsKitMongoDbContext, C
authorUsername, authorUsername,
creationStartDate, creationStartDate,
creationEndDate, creationEndDate,
commentApproveState,
cancellationToken); cancellationToken);
return await query.As<IMongoQueryable<Comment>>() return await query.As<IMongoQueryable<Comment>>()
@ -109,6 +111,7 @@ public class MongoCommentRepository : MongoDbRepository<ICmsKitMongoDbContext, C
public virtual async Task<List<CommentWithAuthorQueryResultItem>> GetListWithAuthorsAsync( public virtual async Task<List<CommentWithAuthorQueryResultItem>> GetListWithAuthorsAsync(
string entityType, string entityType,
string entityId, string entityId,
CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default) CancellationToken cancellationToken = default)
{ {
Check.NotNullOrWhiteSpace(entityType, nameof(entityType)); Check.NotNullOrWhiteSpace(entityType, nameof(entityType));
@ -122,8 +125,16 @@ public class MongoCommentRepository : MongoDbRepository<ICmsKitMongoDbContext, C
var authors = await ApplyDataFilters<IMongoQueryable<CmsUser>, CmsUser>(authorsQuery).ToListAsync(GetCancellationToken(cancellationToken)); var authors = await ApplyDataFilters<IMongoQueryable<CmsUser>, CmsUser>(authorsQuery).ToListAsync(GetCancellationToken(cancellationToken));
var comments = await (await GetMongoQueryableAsync(cancellationToken)) var commentsQuery = (await GetMongoQueryableAsync(cancellationToken))
.Where(c => c.EntityId == entityId && c.EntityType == entityType) .Where(c => c.EntityId == entityId && c.EntityType == entityType);
commentsQuery = commentApproveState switch {
CommentApproveState.Approved => commentsQuery.Where(c => c.IsApproved == true),
CommentApproveState.Approved | CommentApproveState.Waiting => commentsQuery.Where(c => c.IsApproved == true || c.IsApproved == null),
_ => commentsQuery
};
var comments = await commentsQuery
.OrderBy(c => c.CreationTime) .OrderBy(c => c.CreationTime)
.ToListAsync(GetCancellationToken(cancellationToken)); .ToListAsync(GetCancellationToken(cancellationToken));
@ -172,6 +183,7 @@ public class MongoCommentRepository : MongoDbRepository<ICmsKitMongoDbContext, C
string authorUsername = null, string authorUsername = null,
DateTime? creationStartDate = null, DateTime? creationStartDate = null,
DateTime? creationEndDate = null, DateTime? creationEndDate = null,
CommentApproveState commentApproveState = CommentApproveState.All,
CancellationToken cancellationToken = default CancellationToken cancellationToken = default
) )
{ {
@ -190,6 +202,9 @@ public class MongoCommentRepository : MongoDbRepository<ICmsKitMongoDbContext, C
.WhereIf(!entityType.IsNullOrWhiteSpace(), c => c.EntityType == entityType) .WhereIf(!entityType.IsNullOrWhiteSpace(), c => c.EntityType == entityType)
.WhereIf(repliedCommentId.HasValue, c => c.RepliedCommentId == repliedCommentId) .WhereIf(repliedCommentId.HasValue, c => c.RepliedCommentId == repliedCommentId)
.WhereIf(creationStartDate.HasValue, c => c.CreationTime >= creationStartDate) .WhereIf(creationStartDate.HasValue, c => c.CreationTime >= creationStartDate)
.WhereIf(creationEndDate.HasValue, c => c.CreationTime <= creationEndDate); .WhereIf(creationEndDate.HasValue, c => c.CreationTime <= creationEndDate)
.WhereIf(CommentApproveState.Approved == commentApproveState, c => c.IsApproved == true)
.WhereIf(CommentApproveState.Disapproved == commentApproveState, c => c.IsApproved == false)
.WhereIf(CommentApproveState.Waiting == commentApproveState, c => c.IsApproved == null);
} }
} }

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

@ -12,5 +12,4 @@
<ProjectReference Include="..\Volo.CmsKit.Common.Application\Volo.CmsKit.Common.Application.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" /> <ProjectReference Include="..\Volo.CmsKit.Public.Application.Contracts\Volo.CmsKit.Public.Application.Contracts.csproj" />
</ItemGroup> </ItemGroup>
</Project> </Project>

17
modules/cms-kit/src/Volo.CmsKit.Public.Application/Volo/CmsKit/Public/Comments/CommentPublicAppService.cs

@ -12,6 +12,7 @@ using Volo.Abp.Data;
using Volo.Abp.EventBus.Distributed; using Volo.Abp.EventBus.Distributed;
using Volo.Abp.Features; using Volo.Abp.Features;
using Volo.Abp.GlobalFeatures; using Volo.Abp.GlobalFeatures;
using Volo.Abp.SettingManagement;
using Volo.Abp.Users; using Volo.Abp.Users;
using Volo.CmsKit.Comments; using Volo.CmsKit.Comments;
using Volo.CmsKit.Features; using Volo.CmsKit.Features;
@ -32,27 +33,35 @@ public class CommentPublicAppService : CmsKitPublicAppServiceBase, ICommentPubli
protected ICmsUserLookupService CmsUserLookupService { get; } protected ICmsUserLookupService CmsUserLookupService { get; }
public IDistributedEventBus DistributedEventBus { get; } public IDistributedEventBus DistributedEventBus { get; }
protected CommentManager CommentManager { get; } protected CommentManager CommentManager { get; }
protected CmsKitCommentOptions CmsCommentOptions { get; } protected CmsKitCommentOptions CmsCommentOptions { get; }
private readonly ISettingManager SettingManager;
public CommentPublicAppService( public CommentPublicAppService(
ICommentRepository commentRepository, ICommentRepository commentRepository,
ICmsUserLookupService cmsUserLookupService, ICmsUserLookupService cmsUserLookupService,
IDistributedEventBus distributedEventBus, IDistributedEventBus distributedEventBus,
CommentManager commentManager, CommentManager commentManager,
IOptionsSnapshot<CmsKitCommentOptions> cmsCommentOptions) IOptionsSnapshot<CmsKitCommentOptions> cmsCommentOptions,
ISettingManager settingManager
)
{ {
CommentRepository = commentRepository; CommentRepository = commentRepository;
CmsUserLookupService = cmsUserLookupService; CmsUserLookupService = cmsUserLookupService;
DistributedEventBus = distributedEventBus; DistributedEventBus = distributedEventBus;
CommentManager = commentManager; CommentManager = commentManager;
CmsCommentOptions = cmsCommentOptions.Value; CmsCommentOptions = cmsCommentOptions.Value;
SettingManager = settingManager;
} }
public virtual async Task<ListResultDto<CommentWithDetailsDto>> GetListAsync(string entityType, string entityId) public virtual async Task<ListResultDto<CommentWithDetailsDto>> GetListAsync(string entityType, string entityId)
{ {
var commentsWithAuthor = await CommentRepository var isRequireApprovementEnabled = bool.Parse(await SettingManager.GetOrNullGlobalAsync(CmsKitSettings.Comments.RequireApprovement));
.GetListWithAuthorsAsync(entityType, entityId);
var commentsWithAuthor = isRequireApprovementEnabled
? await CommentRepository.GetListWithAuthorsAsync(entityType, entityId, CommentApproveState.Approved)
: await CommentRepository.GetListWithAuthorsAsync(entityType, entityId, CommentApproveState.Approved | CommentApproveState.Waiting);
return new ListResultDto<CommentWithDetailsDto>( return new ListResultDto<CommentWithDetailsDto>(
ConvertCommentsToNestedStructure(commentsWithAuthor) ConvertCommentsToNestedStructure(commentsWithAuthor)

1804
modules/cms-kit/src/Volo.CmsKit.Public.HttpApi.Client/ClientProxies/cms-kit-generate-proxy.json

File diff suppressed because it is too large

5
modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/default.js

@ -111,7 +111,7 @@
$form.submit(function (e) { $form.submit(function (e) {
e.preventDefault(); e.preventDefault();
abp.ui.setBusy($form.find("button[type='submit']")); abp.ui.setBusy($form.find("button[type='submit']"));
let formAsObject = $form.serializeFormToObject(); let formAsObject = $form.serializeFormToObject();
@ -178,6 +178,9 @@
}), }),
success: function () { success: function () {
widgetManager.refresh($widget); widgetManager.refresh($widget);
if (abp.setting.getBoolean("CmsKit.Comments.RequireApprovement")) {
abp.message.success(l("CommentSubmittedForApproval"), l("SavedSuccessfully"));
}
$form.trigger('reset'); $form.trigger('reset');
abp.ui.clearBusy(); abp.ui.clearBusy();
}, },

2
modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/BlogPost.cshtml

@ -56,7 +56,7 @@
<div class="row"> <div class="row">
<div @Html.Raw(isScrollIndexEnabled ? "class=\"col-md-10 col-sm-12\"" : "class=\"col-md-12\"")> <div @Html.Raw(isScrollIndexEnabled ? "class=\"col-md-10 col-sm-12\"" : "class=\"col-md-12\"")>
<abp-card class="mb-4"> <abp-card class="mb-4">
<img src="/api/cms-kit/media/@Model.ViewModel.CoverImageMediaId" class="card-img-top" onerror="this.src='@dummyImageSource'" /> <img src="/api/cms-kit/media/@Model.ViewModel.CoverImageMediaId" class="card-img-ratio" onerror="this.src='@dummyImageSource'" />
<input hidden id="BlogId" value="@Model.ViewModel.Id" /> <input hidden id="BlogId" value="@Model.ViewModel.Id" />
<abp-card-body> <abp-card-body>
<abp-row> <abp-row>

2
modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/Index.cshtml

@ -80,7 +80,7 @@
<span class="font-weight-bold author-name-span" data-author-id="@blog.Author.Id">@@@blog.Author?.UserName</span> <span class="font-weight-bold author-name-span" data-author-id="@blog.Author.Id">@@@blog.Author?.UserName</span>
<small style="opacity:.65;">@blog.CreationTime</small> <small style="opacity:.65;">@blog.CreationTime</small>
</p> </p>
<p style="min-height: 60px;">@blog.ShortDescription</p> <p class="cms-blogpost-desc-preview">@blog.ShortDescription</p>
<div class="d-grid gap-2"> <div class="d-grid gap-2">
<a href="/@CmsBlogsWebConsts.BlogsRoutePrefix/@Model.BlogSlug/@blog.Slug" class="btn btn-light"> <a href="/@CmsBlogsWebConsts.BlogsRoutePrefix/@Model.BlogSlug/@blog.Slug" class="btn btn-light">
@L["Read"] @L["Read"]

5
modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/blogPost.css

@ -22,6 +22,11 @@ span.area-title {
min-width: 276px; min-width: 276px;
} }
.card-img-ratio {
aspect-ratio: 16 / 9;
object-fit: cover;
}
#scroll-index { #scroll-index {
position: sticky; position: sticky;
top: 20px; top: 20px;

12
modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/Public/CmsKit/Blogs/index.css

@ -1,4 +1,6 @@
.card-img-top { .card-img-top {
aspect-ratio: 16 / 9;
object-fit: cover;
} }
.popover { .popover {
@ -7,4 +9,12 @@
.author-name-span{ .author-name-span{
cursor: pointer; cursor: pointer;
}
.cms-blogpost-desc-preview {
min-height: 60px;
overflow: hidden;
display: -webkit-box;
-webkit-box-orient: vertical;
-webkit-line-clamp: 3;
} }

179
modules/cms-kit/src/Volo.CmsKit.Public.Web/wwwroot/client-proxies/cms-kit-proxy.js

@ -5,99 +5,112 @@
(function(){ (function(){
// controller volo.cmsKit.public.tags.tagPublic // controller volo.cmsKit.public.blogs.blogPostPublic
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.public.tags.tagPublic'); abp.utils.createNamespace(window, 'volo.cmsKit.public.blogs.blogPostPublic');
volo.cmsKit.public.tags.tagPublic.getAllRelatedTags = function(entityType, entityId, ajaxParams) { volo.cmsKit.public.blogs.blogPostPublic.get = function(blogSlug, blogPostSlug, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/tags/' + entityType + '/' + entityId + '', url: abp.appPath + 'api/cms-kit-public/blog-posts/' + blogSlug + '/' + blogPostSlug + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
})(); volo.cmsKit.public.blogs.blogPostPublic.getList = function(blogSlug, input, ajaxParams) {
return abp.ajax($.extend(true, {
// controller volo.cmsKit.public.reactions.reactionPublic url: abp.appPath + 'api/cms-kit-public/blog-posts/' + blogSlug + '' + abp.utils.buildQueryString([{ name: 'authorId', value: input.authorId }, { name: 'tagId', value: input.tagId }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '',
type: 'GET'
(function(){ }, ajaxParams));
};
abp.utils.createNamespace(window, 'volo.cmsKit.public.reactions.reactionPublic');
volo.cmsKit.public.reactions.reactionPublic.getForSelection = function(entityType, entityId, ajaxParams) { volo.cmsKit.public.blogs.blogPostPublic.getAuthorsHasBlogPosts = function(input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/reactions/' + entityType + '/' + entityId + '', url: abp.appPath + 'api/cms-kit-public/blog-posts/authors' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.reactions.reactionPublic.create = function(entityType, entityId, reaction, ajaxParams) { volo.cmsKit.public.blogs.blogPostPublic.getAuthorHasBlogPost = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/reactions/' + entityType + '/' + entityId + '/' + reaction + '', url: abp.appPath + 'api/cms-kit-public/blog-posts/authors/' + id + '',
type: 'PUT', type: 'GET'
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.reactions.reactionPublic['delete'] = function(entityType, entityId, reaction, ajaxParams) { volo.cmsKit.public.blogs.blogPostPublic['delete'] = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/reactions/' + entityType + '/' + entityId + '/' + reaction + '', url: abp.appPath + 'api/cms-kit-public/blog-posts/' + id + '',
type: 'DELETE', type: 'DELETE',
dataType: null dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.blogs.blogPostPublic.getTagName = function(tagId, id, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/blog-posts/tags/' + id + '' + abp.utils.buildQueryString([{ name: 'tagId', value: tagId }]) + '',
type: 'GET'
}, { dataType: 'text' }, ajaxParams));
};
})(); })();
// controller volo.cmsKit.public.ratings.ratingPublic // controller volo.cmsKit.public.comments.commentPublic
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.public.ratings.ratingPublic'); abp.utils.createNamespace(window, 'volo.cmsKit.public.comments.commentPublic');
volo.cmsKit.public.ratings.ratingPublic.create = function(entityType, entityId, input, ajaxParams) { volo.cmsKit.public.comments.commentPublic.getList = function(entityType, entityId, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/ratings/' + entityType + '/' + entityId + '', url: abp.appPath + 'api/cms-kit-public/comments/' + entityType + '/' + entityId + '',
type: 'PUT', type: 'GET'
}, ajaxParams));
};
volo.cmsKit.public.comments.commentPublic.create = function(entityType, entityId, input, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/comments/' + entityType + '/' + entityId + '',
type: 'POST',
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.ratings.ratingPublic['delete'] = function(entityType, entityId, ajaxParams) { volo.cmsKit.public.comments.commentPublic.update = function(id, input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/ratings/' + entityType + '/' + entityId + '', url: abp.appPath + 'api/cms-kit-public/comments/' + id + '',
type: 'DELETE', type: 'PUT',
dataType: null data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.ratings.ratingPublic.getGroupedStarCounts = function(entityType, entityId, ajaxParams) { volo.cmsKit.public.comments.commentPublic['delete'] = function(id, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/ratings/' + entityType + '/' + entityId + '', url: abp.appPath + 'api/cms-kit-public/comments/' + id + '',
type: 'GET' type: 'DELETE',
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
})(); })();
// controller volo.cmsKit.public.pages.pagesPublic // controller volo.cmsKit.public.globalResources.globalResourcePublic
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.public.pages.pagesPublic'); abp.utils.createNamespace(window, 'volo.cmsKit.public.globalResources.globalResourcePublic');
volo.cmsKit.public.pages.pagesPublic.findBySlug = function(slug, ajaxParams) { volo.cmsKit.public.globalResources.globalResourcePublic.getGlobalScript = function(ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/pages/' + slug + '', url: abp.appPath + 'api/cms-kit-public/global-resources/script',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.pages.pagesPublic.findDefaultHomePage = function(ajaxParams) { volo.cmsKit.public.globalResources.globalResourcePublic.getGlobalStyle = function(ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/pages', url: abp.appPath + 'api/cms-kit-public/global-resources/style',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
@ -119,106 +132,114 @@
})(); })();
// controller volo.cmsKit.public.globalResources.globalResourcePublic // controller volo.cmsKit.public.pages.pagesPublic
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.public.globalResources.globalResourcePublic'); abp.utils.createNamespace(window, 'volo.cmsKit.public.pages.pagesPublic');
volo.cmsKit.public.globalResources.globalResourcePublic.getGlobalScript = function(ajaxParams) { volo.cmsKit.public.pages.pagesPublic.findBySlug = function(slug, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/global-resources/script', url: abp.appPath + 'api/cms-kit-public/pages/by-slug' + abp.utils.buildQueryString([{ name: 'slug', value: slug }]) + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.globalResources.globalResourcePublic.getGlobalStyle = function(ajaxParams) { volo.cmsKit.public.pages.pagesPublic.findDefaultHomePage = function(ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/global-resources/style', url: abp.appPath + 'api/cms-kit-public/pages/home',
type: 'GET'
}, ajaxParams));
};
volo.cmsKit.public.pages.pagesPublic.doesSlugExist = function(slug, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/pages/exist' + abp.utils.buildQueryString([{ name: 'slug', value: slug }]) + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
})(); })();
// controller volo.cmsKit.public.comments.commentPublic // controller volo.cmsKit.public.ratings.ratingPublic
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.public.comments.commentPublic'); abp.utils.createNamespace(window, 'volo.cmsKit.public.ratings.ratingPublic');
volo.cmsKit.public.comments.commentPublic.getList = function(entityType, entityId, ajaxParams) {
return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/comments/' + entityType + '/' + entityId + '',
type: 'GET'
}, ajaxParams));
};
volo.cmsKit.public.comments.commentPublic.create = function(entityType, entityId, input, ajaxParams) { volo.cmsKit.public.ratings.ratingPublic.create = function(entityType, entityId, input, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/comments/' + entityType + '/' + entityId + '', url: abp.appPath + 'api/cms-kit-public/ratings/' + entityType + '/' + entityId + '',
type: 'POST', type: 'PUT',
data: JSON.stringify(input) data: JSON.stringify(input)
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.comments.commentPublic.update = function(id, input, ajaxParams) { volo.cmsKit.public.ratings.ratingPublic['delete'] = function(entityType, entityId, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/comments/' + id + '', url: abp.appPath + 'api/cms-kit-public/ratings/' + entityType + '/' + entityId + '',
type: 'PUT', type: 'DELETE',
data: JSON.stringify(input) dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.comments.commentPublic['delete'] = function(id, ajaxParams) { volo.cmsKit.public.ratings.ratingPublic.getGroupedStarCounts = function(entityType, entityId, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/comments/' + id + '', url: abp.appPath + 'api/cms-kit-public/ratings/' + entityType + '/' + entityId + '',
type: 'DELETE', type: 'GET'
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
})(); })();
// controller volo.cmsKit.public.blogs.blogPostPublic // controller volo.cmsKit.public.reactions.reactionPublic
(function(){ (function(){
abp.utils.createNamespace(window, 'volo.cmsKit.public.blogs.blogPostPublic'); abp.utils.createNamespace(window, 'volo.cmsKit.public.reactions.reactionPublic');
volo.cmsKit.public.blogs.blogPostPublic.get = function(blogSlug, blogPostSlug, ajaxParams) { volo.cmsKit.public.reactions.reactionPublic.getForSelection = function(entityType, entityId, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/blog-posts/' + blogSlug + '/' + blogPostSlug + '', url: abp.appPath + 'api/cms-kit-public/reactions/' + entityType + '/' + entityId + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.blogs.blogPostPublic.getList = function(blogSlug, input, ajaxParams) { volo.cmsKit.public.reactions.reactionPublic.create = function(entityType, entityId, reaction, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/blog-posts/' + blogSlug + '' + abp.utils.buildQueryString([{ name: 'authorId', value: input.authorId }, { name: 'tagId', value: input.tagId }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '', url: abp.appPath + 'api/cms-kit-public/reactions/' + entityType + '/' + entityId + '/' + reaction + '',
type: 'GET' type: 'PUT',
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.blogs.blogPostPublic.getAuthorsHasBlogPosts = function(input, ajaxParams) { volo.cmsKit.public.reactions.reactionPublic['delete'] = function(entityType, entityId, reaction, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/blog-posts/authors' + abp.utils.buildQueryString([{ name: 'filter', value: input.filter }, { name: 'sorting', value: input.sorting }, { name: 'skipCount', value: input.skipCount }, { name: 'maxResultCount', value: input.maxResultCount }]) + '', url: abp.appPath + 'api/cms-kit-public/reactions/' + entityType + '/' + entityId + '/' + reaction + '',
type: 'GET' type: 'DELETE',
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.blogs.blogPostPublic.getAuthorHasBlogPost = function(id, ajaxParams) { })();
// controller volo.cmsKit.public.tags.tagPublic
(function(){
abp.utils.createNamespace(window, 'volo.cmsKit.public.tags.tagPublic');
volo.cmsKit.public.tags.tagPublic.getAllRelatedTags = function(entityType, entityId, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/blog-posts/authors/' + id + '', url: abp.appPath + 'api/cms-kit-public/tags/' + entityType + '/' + entityId + '',
type: 'GET' type: 'GET'
}, ajaxParams)); }, ajaxParams));
}; };
volo.cmsKit.public.blogs.blogPostPublic['delete'] = function(id, ajaxParams) { volo.cmsKit.public.tags.tagPublic.getPopularTags = function(entityType, maxCount, ajaxParams) {
return abp.ajax($.extend(true, { return abp.ajax($.extend(true, {
url: abp.appPath + 'api/cms-kit-public/blog-posts/' + id + '', url: abp.appPath + 'api/cms-kit-public/tags/popular/' + entityType + '/' + maxCount + '',
type: 'DELETE', type: 'GET'
dataType: null
}, ajaxParams)); }, ajaxParams));
}; };

2
modules/cms-kit/test/Volo.CmsKit.Application.Tests/Comments/CommentAdminAppService_Tests.cs

@ -2,6 +2,7 @@
using System.Threading.Tasks; using System.Threading.Tasks;
using Shouldly; using Shouldly;
using Volo.Abp.Domain.Entities; using Volo.Abp.Domain.Entities;
using Volo.Abp.SettingManagement;
using Volo.CmsKit.Admin.Comments; using Volo.CmsKit.Admin.Comments;
using Xunit; using Xunit;
@ -11,7 +12,6 @@ public class CommentAdminAppService_Tests : CmsKitApplicationTestBase
{ {
private readonly ICommentAdminAppService _commentAdminAppService; private readonly ICommentAdminAppService _commentAdminAppService;
private readonly CmsKitTestData _cmsKitTestData; private readonly CmsKitTestData _cmsKitTestData;
public CommentAdminAppService_Tests() public CommentAdminAppService_Tests()
{ {
_commentAdminAppService = GetRequiredService<ICommentAdminAppService>(); _commentAdminAppService = GetRequiredService<ICommentAdminAppService>();

14
modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/EntityFrameworkCore/CmsKitEntityFrameworkCoreTestModule.cs

@ -2,19 +2,27 @@
using Microsoft.EntityFrameworkCore; using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Infrastructure; using Microsoft.EntityFrameworkCore.Infrastructure;
using Microsoft.EntityFrameworkCore.Storage; using Microsoft.EntityFrameworkCore.Storage;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore; using Volo.Abp.EntityFrameworkCore;
using Volo.Abp.EntityFrameworkCore.Sqlite; using Volo.Abp.EntityFrameworkCore.Sqlite;
using Volo.Abp.Modularity; using Volo.Abp.Modularity;
using Volo.Abp.SettingManagement.EntityFrameworkCore;
namespace Volo.CmsKit.EntityFrameworkCore; namespace Volo.CmsKit.EntityFrameworkCore;
[DependsOn( [DependsOn(
typeof(CmsKitTestBaseModule), typeof(CmsKitTestBaseModule),
typeof(CmsKitEntityFrameworkCoreModule), typeof(CmsKitEntityFrameworkCoreModule),
typeof(AbpEntityFrameworkCoreSqliteModule) typeof(AbpEntityFrameworkCoreSqliteModule),
typeof(AbpSettingManagementEntityFrameworkCoreModule)
)] )]
public class CmsKitEntityFrameworkCoreTestModule : AbpModule public class CmsKitEntityFrameworkCoreTestModule : AbpModule
{ {
public override void PreConfigureServices(ServiceConfigurationContext context)
{
context.Services.AddDataMigrationEnvironment();
}
public override void ConfigureServices(ServiceConfigurationContext context) public override void ConfigureServices(ServiceConfigurationContext context)
{ {
var sqliteConnection = CreateDatabaseAndGetConnection(); var sqliteConnection = CreateDatabaseAndGetConnection();
@ -37,6 +45,10 @@ public class CmsKitEntityFrameworkCoreTestModule : AbpModule
new DbContextOptionsBuilder<CmsKitDbContext>().UseSqlite(connection).Options new DbContextOptionsBuilder<CmsKitDbContext>().UseSqlite(connection).Options
).GetService<IRelationalDatabaseCreator>().CreateTables(); ).GetService<IRelationalDatabaseCreator>().CreateTables();
new SettingManagementDbContext(
new DbContextOptionsBuilder<SettingManagementDbContext>().UseSqlite(connection).Options
).GetService<IRelationalDatabaseCreator>().CreateTables();
return connection; return connection;
} }
} }

1
modules/cms-kit/test/Volo.CmsKit.EntityFrameworkCore.Tests/Volo.CmsKit.EntityFrameworkCore.Tests.csproj

@ -10,6 +10,7 @@
<PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" /> <PackageReference Include="Microsoft.EntityFrameworkCore.Proxies" />
<ProjectReference Include="..\..\src\Volo.CmsKit.EntityFrameworkCore\Volo.CmsKit.EntityFrameworkCore.csproj" /> <ProjectReference Include="..\..\src\Volo.CmsKit.EntityFrameworkCore\Volo.CmsKit.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\Volo.CmsKit.TestBase\Volo.CmsKit.TestBase.csproj" /> <ProjectReference Include="..\Volo.CmsKit.TestBase\Volo.CmsKit.TestBase.csproj" />
<ProjectReference Include="..\..\..\..\modules\setting-management\src\Volo.Abp.SettingManagement.EntityFrameworkCore/Volo.Abp.SettingManagement.EntityFrameworkCore.csproj" />
<ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.EntityFrameworkCore.Sqlite\Volo.Abp.EntityFrameworkCore.Sqlite.csproj" /> <ProjectReference Include="..\..\..\..\framework\src\Volo.Abp.EntityFrameworkCore.Sqlite\Volo.Abp.EntityFrameworkCore.Sqlite.csproj" />
</ItemGroup> </ItemGroup>

4
modules/docs/app/VoloDocs.Web/package.json

@ -3,7 +3,7 @@
"name": "volo.docstestapp", "name": "volo.docstestapp",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.4", "@abp/aspnetcore.mvc.ui.theme.basic": "~8.2.0-rc.5",
"@abp/docs": "~8.2.0-rc.4" "@abp/docs": "~8.2.0-rc.5"
} }
} }

318
modules/docs/app/VoloDocs.Web/yarn.lock

@ -2,238 +2,238 @@
# yarn lockfile v1 # yarn lockfile v1
"@abp/anchor-js@~8.2.0-rc.4": "@abp/anchor-js@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.2.0-rc.4.tgz#69449d3b6f2844bcf39ff07fd09db87897c4a60e" resolved "https://registry.yarnpkg.com/@abp/anchor-js/-/anchor-js-8.2.0-rc.5.tgz#6628b7c0cc6971f38ff6c1bb58e13e2ec1c355f0"
integrity sha512-EICaf9WXW/zMOvtejwUTwlDzmXEpTcnJZxRmKi5yVlABkcX81b5bH5ZuYhBxkoDHW5yGbxEQPw/QTG3ZfqH9xQ== integrity sha512-nZPHVWWX6cM1+Lpkht393LK8BZnimrM2USGArNiQ+1m4nvA+UBEc4fFXfZ9iqIYkqhC4g20j3zSEM+LcOi2YCA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
anchor-js "^4.3.1" anchor-js "^4.3.1"
"@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.basic@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.4.tgz#dc9e9e6541694531726127e2e387156a24dd7f9e" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.basic/-/aspnetcore.mvc.ui.theme.basic-8.2.0-rc.5.tgz#5cc3231d27e9e12e6fdc3e4fc5eb3e6f2019cf13"
integrity sha512-Ixs3yr5fHkB1h8PuuJdPiY0uDf+Dq9jUdbaHsoJmaYRdOSqhLDpNkyAqFFrqDmoEmZvmrThCupt5ZSg9laQ8yw== integrity sha512-SKr5Zm6k2SxrRBW2gqJAsTag4KacVzuVG3sTCD5P5BZLYn5OvknwSeky4tg/wzCodWp20wf89hWyET4E0iKExg==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui.theme.shared" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui.theme.shared@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.4.tgz#2b1468bf05fc505d11d5c0253a782a328088d283" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui.theme.shared/-/aspnetcore.mvc.ui.theme.shared-8.2.0-rc.5.tgz#97b86ea4daf4392a1067e2a7e7c03b4c381ccc82"
integrity sha512-QveGyyMKAMnY48+AsUqkB/LnqtnTc3Fd5m1wLPNVF+P0j6CaaETmfJNc0xw+WYF14r+NC8K4PeC58z3SYMGlLw== integrity sha512-lR3XbbNct+8QH1dRhED5s/CHCgkANVyNBrWCQbo4BwBFJ27d3wuJDVt39VxQUsgNfxEmyoJdVZNDRUKDv6fTOw==
dependencies: dependencies:
"@abp/aspnetcore.mvc.ui" "~8.2.0-rc.4" "@abp/aspnetcore.mvc.ui" "~8.2.0-rc.5"
"@abp/bootstrap" "~8.2.0-rc.4" "@abp/bootstrap" "~8.2.0-rc.5"
"@abp/bootstrap-datepicker" "~8.2.0-rc.4" "@abp/bootstrap-datepicker" "~8.2.0-rc.5"
"@abp/bootstrap-daterangepicker" "~8.2.0-rc.4" "@abp/bootstrap-daterangepicker" "~8.2.0-rc.5"
"@abp/datatables.net-bs5" "~8.2.0-rc.4" "@abp/datatables.net-bs5" "~8.2.0-rc.5"
"@abp/font-awesome" "~8.2.0-rc.4" "@abp/font-awesome" "~8.2.0-rc.5"
"@abp/jquery-form" "~8.2.0-rc.4" "@abp/jquery-form" "~8.2.0-rc.5"
"@abp/jquery-validation-unobtrusive" "~8.2.0-rc.4" "@abp/jquery-validation-unobtrusive" "~8.2.0-rc.5"
"@abp/lodash" "~8.2.0-rc.4" "@abp/lodash" "~8.2.0-rc.5"
"@abp/luxon" "~8.2.0-rc.4" "@abp/luxon" "~8.2.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.4" "@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.5"
"@abp/moment" "~8.2.0-rc.4" "@abp/moment" "~8.2.0-rc.5"
"@abp/select2" "~8.2.0-rc.4" "@abp/select2" "~8.2.0-rc.5"
"@abp/sweetalert2" "~8.2.0-rc.4" "@abp/sweetalert2" "~8.2.0-rc.5"
"@abp/timeago" "~8.2.0-rc.4" "@abp/timeago" "~8.2.0-rc.5"
"@abp/toastr" "~8.2.0-rc.4" "@abp/toastr" "~8.2.0-rc.5"
"@abp/aspnetcore.mvc.ui@~8.2.0-rc.4": "@abp/aspnetcore.mvc.ui@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.4.tgz#5e4613f506a02d45d7adcee1060032774e635fe5" resolved "https://registry.yarnpkg.com/@abp/aspnetcore.mvc.ui/-/aspnetcore.mvc.ui-8.2.0-rc.5.tgz#4a845ebd4b6465b9ac04641d7479b449ca9e1c5f"
integrity sha512-rr3BE6RhimlHcNv0HKT3xIi/+6Sq5TSqRDvmiFqa7bvxemKMstHiEa2lxpx5XP9CPpV9gNzjC/NV+TQy4YDIqg== integrity sha512-l3brGHAD2jnlAWwITGNAY5zOtmc0WItVabYCTvKrYyNuKIPEtW9getUNFp9BFMT9x0KZiGnkkrRkvxH+DzIcug==
dependencies: dependencies:
ansi-colors "^4.1.1" ansi-colors "^4.1.1"
"@abp/bootstrap-datepicker@~8.2.0-rc.4": "@abp/bootstrap-datepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.4.tgz#7f6b7b0da2c8fd46dc08b1976c57b80b65069246" resolved "https://registry.yarnpkg.com/@abp/bootstrap-datepicker/-/bootstrap-datepicker-8.2.0-rc.5.tgz#0e8755a51d7a691837951f7a071a9e59a2e9e6cf"
integrity sha512-+Ylw8PFuAmpza714vQPjfU/lCOS2NsUX2cGp12Yyy4fS36udPCa/HYWTVdpH36OGae1dV/GzrfgnlZsCvUNhBA== integrity sha512-bLt8l6kYbVblThd2iuXcp6Ydss8TefpnZXHyXrQCxZGmVb79I/vf48CekJo1OWY/WcyEi/bm0m4LEI8Q0Y/LZQ==
dependencies: dependencies:
bootstrap-datepicker "^1.9.0" bootstrap-datepicker "^1.9.0"
"@abp/bootstrap-daterangepicker@~8.2.0-rc.4": "@abp/bootstrap-daterangepicker@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.4.tgz#579e8a4fd9d235385514da3f2ca73283294a78e3" resolved "https://registry.yarnpkg.com/@abp/bootstrap-daterangepicker/-/bootstrap-daterangepicker-8.2.0-rc.5.tgz#e37792f24c3c8a8643e5ba5744967505e54f836c"
integrity sha512-KIinwEwkCzlYd7gDJt3htgflfrdWnyW4fr/V6GVi2EGxK6UA5HWMRG8MkvUKXmJ4rCHfEUdpWeGBXLbPR8R4eQ== integrity sha512-dN02S1g9sVgACMz+A5FJw0uz4u5lXTFd/7xjE+cmhj0p5AcGvDD3gTbes6d3QNKiwvsPge063lG9pisdn3uEjg==
dependencies: dependencies:
bootstrap-daterangepicker "^3.1.0" bootstrap-daterangepicker "^3.1.0"
"@abp/bootstrap@~8.2.0-rc.4": "@abp/bootstrap@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.4.tgz#dc08a0db67a2a652c03087d299da1abfab677ebf" resolved "https://registry.yarnpkg.com/@abp/bootstrap/-/bootstrap-8.2.0-rc.5.tgz#1acc191f8156d81e1794bc161bfb394ae8f7372e"
integrity sha512-wwZQk2XU6puEzBJ7W+80Oh/8z6n+DNc2YJnCnJNPbURgclMsN4v3/WJ2iKlO4g0fOkepvlgYkbYWPf+pusxSCQ== integrity sha512-FacgSrDlS3QSR+5WdOy06Qw0qF7OoqoBwAGqro2WOfY5sFR5OwEiqXHXUF95+a/q9B9NuYKXBjBfOPhljdiuuA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
bootstrap "^5.1.3" bootstrap "^5.1.3"
"@abp/clipboard@~8.2.0-rc.4": "@abp/clipboard@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.0-rc.4.tgz#c3d20d642765dc235749d4f95f599cb97f23325d" resolved "https://registry.yarnpkg.com/@abp/clipboard/-/clipboard-8.2.0-rc.5.tgz#5cec3d9c89bdad8d50f41807b3be68d4cdecb003"
integrity sha512-w94YGLT/UVn1haLGlH8zOcgrCS64OrnVlzh3QXps+8m4S9g7KDeVk3g4ju/VUao2YKCHmRJ3uRhOGCb58of1iw== integrity sha512-cBaMy8A1CIU00X6SoGyuMTVf6z9iyEaR6smVRWCVmkf2VayAHFES981+iE+VmT2bezgbCidA2GXtkBZ/kunbJg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
clipboard "^2.0.8" clipboard "^2.0.8"
"@abp/core@~8.2.0-rc.4": "@abp/core@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.4.tgz#bf6b343ab43468ca88cdb4697caf25d65aa2c269" resolved "https://registry.yarnpkg.com/@abp/core/-/core-8.2.0-rc.5.tgz#67eb75df046f8997f6af14e86bf8dbf249388a8d"
integrity sha512-rGUDzLIiUJZ+7ZgzOGXxzc4k//9EBjVY4P4kO0XKCOEv08YwsUJmTzddsiMHZLIqRJ2wdT1UiH7PrcolBiW1UQ== integrity sha512-XVunQMbK/MApkfnpL+8WsVqsJxARBl6W0TZwKfPyfm1QzPWE75P4oW3CIdNis0+Ob5HfhSFFp78tVrbSoEdzYQ==
dependencies: dependencies:
"@abp/utils" "~8.2.0-rc.4" "@abp/utils" "~8.2.0-rc.5"
"@abp/datatables.net-bs5@~8.2.0-rc.4": "@abp/datatables.net-bs5@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.4.tgz#869021a6639d765abb645a5de7501881b67e7095" resolved "https://registry.yarnpkg.com/@abp/datatables.net-bs5/-/datatables.net-bs5-8.2.0-rc.5.tgz#fe04af4b14530545a05c4c58361aadfdddd8e8c2"
integrity sha512-CdYfn4qhB/KdTYfOrAsUSPtw8AGAbZHOTc4EyWAmxDKFCFyakj27+uoV/Stgs25nCaAXn1JHysfOxoNkP1ikyg== integrity sha512-yZKC111JVxcOkDz/WxJyQ0lw3JpbBBWr21LVNjyhEiN62w8tJN1Gwo7CjL+7WFm7RPnAUUf/qwitRWmWl7M4YA==
dependencies: dependencies:
"@abp/datatables.net" "~8.2.0-rc.4" "@abp/datatables.net" "~8.2.0-rc.5"
datatables.net-bs5 "^1.11.4" datatables.net-bs5 "^1.11.4"
"@abp/datatables.net@~8.2.0-rc.4": "@abp/datatables.net@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.4.tgz#4f0e612a11813f38331aae221c342efc4443138d" resolved "https://registry.yarnpkg.com/@abp/datatables.net/-/datatables.net-8.2.0-rc.5.tgz#94e4b933750332732eeef02119a6cdfca67811e7"
integrity sha512-omEYXlB/OzUGmvTy7k7rhZjWtXILpl7idLwV1yXzJUkdjLjaBzIgrbWj/80YAI5K7MdpKE0/pdPnORX6G5ij9Q== integrity sha512-IAXbC29eiHvA3unVMsFh2sNfiw+Jlgah0D++IUKOlz1eAzHMrpwP5KE4jmF6GESF7Al95NkgqH7cd6MUst+UlA==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
datatables.net "^1.11.4" datatables.net "^1.11.4"
"@abp/docs@~8.2.0-rc.4": "@abp/docs@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.2.0-rc.4.tgz#be28155266c1f28f17f4c9f1c9d444e80408b97f" resolved "https://registry.yarnpkg.com/@abp/docs/-/docs-8.2.0-rc.5.tgz#ab30792f824d1f4f24abc8252662dacf8e45cf6d"
integrity sha512-Sjvo24z4Wt176yB1JDidQ5hvP6f4EHmUdhQi+Urr4zaj4Xg800UrkVFdUWkDMXgnpTN8tiYOj8cM6RTbYn0ybw== integrity sha512-jUv5KC5hc8rqe8cEhNS5TziWenChsPyxCr3gmxXjOYeBR4X6Zjps7L0nVrIVGp3fhtpJAxmnnTBchFrOPGcckA==
dependencies: dependencies:
"@abp/anchor-js" "~8.2.0-rc.4" "@abp/anchor-js" "~8.2.0-rc.5"
"@abp/clipboard" "~8.2.0-rc.4" "@abp/clipboard" "~8.2.0-rc.5"
"@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.4" "@abp/malihu-custom-scrollbar-plugin" "~8.2.0-rc.5"
"@abp/popper.js" "~8.2.0-rc.4" "@abp/popper.js" "~8.2.0-rc.5"
"@abp/prismjs" "~8.2.0-rc.4" "@abp/prismjs" "~8.2.0-rc.5"
"@abp/font-awesome@~8.2.0-rc.4": "@abp/font-awesome@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.4.tgz#5c977e54c428e80af2a93166e968ec7635b0694d" resolved "https://registry.yarnpkg.com/@abp/font-awesome/-/font-awesome-8.2.0-rc.5.tgz#5ae19305a373a6dd083944bd825ccea84aadf40b"
integrity sha512-zyQwZhhOgKi6JLWbkI+iycwS1lcCx/tvn+AskQSdV2+ycnrcjm9TMWmWosAGwS6VW9demRamuegUNOgiVpy/SA== integrity sha512-VbcM80e9KrZzY6TJ9l/eW42CTpdQ0eBr5gOEW+/UWGTRalCLdGve9YVJZJA55bD1VtcgaR1sV342jw2B1XeN8w==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
"@fortawesome/fontawesome-free" "^6.5.1" "@fortawesome/fontawesome-free" "^6.5.1"
"@abp/jquery-form@~8.2.0-rc.4": "@abp/jquery-form@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.4.tgz#3ef39f9f716ff17b34d61eeb3c234ed3867b91da" resolved "https://registry.yarnpkg.com/@abp/jquery-form/-/jquery-form-8.2.0-rc.5.tgz#b955fe2c226f1f35a3736aa3b2170f265a797552"
integrity sha512-nD5c2g4aPlDSggoR2lJ0Zd9Jg/2yrpVKnJqNuvx7DIdxPIZed2LL5ONaOtO8pLTsKqh5ua1UsqgsyfJ/mb9T1w== integrity sha512-M9fUUYywljudem/K7aYlcIG2W+KTzUJPviSeOLo5KNxvVrScWr+Jf4M8Nbj6uWX1saYWmm5kYnfsDs+nOUcmDg==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-form "^4.3.0" jquery-form "^4.3.0"
"@abp/jquery-validation-unobtrusive@~8.2.0-rc.4": "@abp/jquery-validation-unobtrusive@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.4.tgz#5124068f01db8c0e4365594fefb236f91bd60e8d" resolved "https://registry.yarnpkg.com/@abp/jquery-validation-unobtrusive/-/jquery-validation-unobtrusive-8.2.0-rc.5.tgz#c790dc1b707ee7d24fe99c2b7be6bc558af09667"
integrity sha512-JKtZoeSSbSGbTl28ZEHvqCvC2cCX3aOV7PHKhpIzQSfVK22Uo3swsc2bv3sH2HdxNi3jWAGcd7YUG093STMm3Q== integrity sha512-sUkfb17cR2zM669U83R8dviv+p+uGNl5nmOV0AP4ch6CzLfnTOYzKsqV7ESGVxqB8oVHO/Wnr8sXaaLdsoQzJw==
dependencies: dependencies:
"@abp/jquery-validation" "~8.2.0-rc.4" "@abp/jquery-validation" "~8.2.0-rc.5"
jquery-validation-unobtrusive "^3.2.12" jquery-validation-unobtrusive "^3.2.12"
"@abp/jquery-validation@~8.2.0-rc.4": "@abp/jquery-validation@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.4.tgz#95540b7a6ef1f27b511e42b03cdf0c1c364ce8df" resolved "https://registry.yarnpkg.com/@abp/jquery-validation/-/jquery-validation-8.2.0-rc.5.tgz#294254556e804d641d3bf4ea50d1c3eb42f191d1"
integrity sha512-fN2ZJ0eCjQ5nu5fdwKx0cmGTWZyzltwrfhnI0JG27EsBP8EtyO8aWHZEFKgL+vXTy07LraTJD1KSpIIZSsrHVw== integrity sha512-C7sOuSShkX5Ba6LiSBGuxlrORcxiYczZtsxyjRZzNzATYwEBHcLqMxDvgAsWeWtvtkMotkbB2k99vD93nlGuCQ==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
jquery-validation "^1.19.3" jquery-validation "^1.19.3"
"@abp/jquery@~8.2.0-rc.4": "@abp/jquery@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.4.tgz#327452ce3f49f6a9fe32a1934a6f347e2a0a309b" resolved "https://registry.yarnpkg.com/@abp/jquery/-/jquery-8.2.0-rc.5.tgz#9b01156a80d8da6407abb6d51541cb89624cb906"
integrity sha512-JYeQwpa671AyYf7sv+XgCaie2mOjWCDZYlFHEqH4whjTqT5SU8WwSkhux+/KLtBImSeQyTzyup7CuQYWBuk15w== integrity sha512-KcRVhxEmUuJHd4JNBSeJV+3Ush4w9ambKxwPi3+q1fqdePekrLk9jKNud5HkP6JredBoESJ+TkeVFFQ5HnYPVg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
jquery "~3.6.0" jquery "~3.6.0"
"@abp/lodash@~8.2.0-rc.4": "@abp/lodash@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.4.tgz#229be25a0e09f4e1b74b7e064113c3a1347d28c7" resolved "https://registry.yarnpkg.com/@abp/lodash/-/lodash-8.2.0-rc.5.tgz#b6fa8754258dd2db59b0df65fb9f7d90c8611af6"
integrity sha512-zhLlPlhrCZNngx2ns3reKG2Nmec8g2KWbN55Z1gx0XYqaymT/0zuzfkfPBdpuoyIqrXcPJL0aK21SH4Tu8LjUA== integrity sha512-LvK03DSk9lDNGEFrjMdiaAkaH58ll+PIn663KJk0kVZvtNLy/egCOMCc6EBuE5DUsjwebLi6YZYzgRQRRKirgw==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
lodash "^4.17.21" lodash "^4.17.21"
"@abp/luxon@~8.2.0-rc.4": "@abp/luxon@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.4.tgz#fdb6c8d13be6ded1d531e2d66b532d0453597c01" resolved "https://registry.yarnpkg.com/@abp/luxon/-/luxon-8.2.0-rc.5.tgz#e4300d1deebab16432737c831cfae0025b7c5891"
integrity sha512-3iat30cVfmymoW208PjCLlrKO6VTuU8lgk/Vg0XnaX/DbNldNhBUHHzEgC9TiHLUejBSd5cunz88rhFuODz14Q== integrity sha512-UdAToIlS0CwmavErMtd5dwyssKNPa6oqlHrll5h7T26nHDPEdXzSi9rP8RvwqBkrt+BFPMctRSv6DYk8OwoWzA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
luxon "^2.3.0" luxon "^2.3.0"
"@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.4": "@abp/malihu-custom-scrollbar-plugin@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.4.tgz#1eb1621edd8559b43734590f123c331a360a2d93" resolved "https://registry.yarnpkg.com/@abp/malihu-custom-scrollbar-plugin/-/malihu-custom-scrollbar-plugin-8.2.0-rc.5.tgz#8f39683e55fbc5487de08b9209a552cf32ea8087"
integrity sha512-OoqjoW1e5U/J77zr6A5DPyWha/b4UeTWaAXtl8xigJmhcDhvKe0jfvE33iHgZupFWiGu354mICNT+rQ1S2wMyA== integrity sha512-e20kLUvnu6tD5GBjzGLQjTMeyeco4q5wO4H4mMuahJpCHue+EUrL0tT1IbWiE+eEmbePw/lAn7Yfhfwjq/+Eeg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
malihu-custom-scrollbar-plugin "^3.1.5" malihu-custom-scrollbar-plugin "^3.1.5"
"@abp/moment@~8.2.0-rc.4": "@abp/moment@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.4.tgz#97eef0f868ad95057493e97f386c791871c063c3" resolved "https://registry.yarnpkg.com/@abp/moment/-/moment-8.2.0-rc.5.tgz#e38c7e66ee383a986c7972f4ba2b19d79a43f60e"
integrity sha512-q06AsfUbut7Rxgp0JMlN0dvP7C1QRMfPNO+95ZXEEnqDDlajqaIt4X/7l1gb/Iz+7yc5XVT7FJdmT+bR22etGA== integrity sha512-F//4TZySaFBTfWgBxzwTFLeStrS0nklmKcTMU+MOtb/7Zx3QtscJpNm4CmxiBpB8pLwK8xiJQGoiuMQdoTuq+g==
dependencies: dependencies:
moment "^2.9.0" moment "^2.9.0"
"@abp/popper.js@~8.2.0-rc.4": "@abp/popper.js@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.2.0-rc.4.tgz#64cb18eeb6aaaf8788416ec1d8abe535f7168deb" resolved "https://registry.yarnpkg.com/@abp/popper.js/-/popper.js-8.2.0-rc.5.tgz#f8258765ba55ee4cf2d116cd98bb13b4d21f24e4"
integrity sha512-0G4nLlaOzjRnr/VksUijSDNtJ0YukXyiNbL2o8ot2lghNN9bCLZ7WgMEDnSNXSqqoPWxJsYxrf/us4462TMP/A== integrity sha512-iq5Tk7epczJIyJULPpbccQMMRME5xuCYH1NonukSW/uSr+lGkW6/hsu4ZfxUy1xITqeVYebHMotM2kh3KCRVqA==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
"@popperjs/core" "^2.11.2" "@popperjs/core" "^2.11.2"
"@abp/prismjs@~8.2.0-rc.4": "@abp/prismjs@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.0-rc.4.tgz#f6df729333d4dc934c3978c29e62dddf6a22c19a" resolved "https://registry.yarnpkg.com/@abp/prismjs/-/prismjs-8.2.0-rc.5.tgz#7a7428bb2f118cef5121a196bc45cc5d1a5a8e93"
integrity sha512-+fLF7ndhgV9v3zcWFoNSR0kPasIcagJC6FT90ALWs2XccBtjAYOm9/365DK5lyDUh0ynHx9fBgDdCdIX0Zv9RA== integrity sha512-lNPqRvisf8jAxyL/05ppH26ZH4DEEzZUKqO7zqqS+yl7sBTpR/Wh8xX09spQl+wBQTLWAz2z+MouBZnMQIYKjg==
dependencies: dependencies:
"@abp/clipboard" "~8.2.0-rc.4" "@abp/clipboard" "~8.2.0-rc.5"
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
prismjs "^1.26.0" prismjs "^1.26.0"
"@abp/select2@~8.2.0-rc.4": "@abp/select2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.4.tgz#085ec0f915099201b75cbb7b4bfe6826039f542d" resolved "https://registry.yarnpkg.com/@abp/select2/-/select2-8.2.0-rc.5.tgz#5fc1dfa4bb871961db0ce9eb68a2c655c38b32d0"
integrity sha512-DrRNVxB0UcRCBhYkkp9TTmu3SDwaJ6kR3WCH7zMZgjYx/K250ojcuIot98fzuecuT3Te3qiGxKwBIclr2Yt/aw== integrity sha512-fT5L+mgiEOBtf2mmXNv6GtXVNjv22qQlgWp1UjI7c0jLtNPHa7P8idVTaP3g6d8b7VCP5zxIUGgjf6sZMxhADg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
select2 "^4.0.13" select2 "^4.0.13"
"@abp/sweetalert2@~8.2.0-rc.4": "@abp/sweetalert2@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.4.tgz#6866295a91602167cf314f1eb3bc315825cc0cb3" resolved "https://registry.yarnpkg.com/@abp/sweetalert2/-/sweetalert2-8.2.0-rc.5.tgz#502d6dbaf2c5296f67722e085e52dd0fe62e8dde"
integrity sha512-3NdBP/4ZhkroWrCVyfHoc0PM6ZJD0IhqXkPO/bMDTjX8scilU85SkC2iAnReD6BoLF6ywriMpozHiU2Ax8aH2Q== integrity sha512-S0LTMU0a9SPdSA3ezEpo03ZGfrr7XtouEs0O5c4fA0kWYsddNkalighy3CYTgZZwaR9oWNnY6t4pyka3WXAaqg==
dependencies: dependencies:
"@abp/core" "~8.2.0-rc.4" "@abp/core" "~8.2.0-rc.5"
sweetalert2 "^11.3.6" sweetalert2 "^11.3.6"
"@abp/timeago@~8.2.0-rc.4": "@abp/timeago@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.4.tgz#777793699f0271e81b3fe96d46066a30925ed298" resolved "https://registry.yarnpkg.com/@abp/timeago/-/timeago-8.2.0-rc.5.tgz#8bd78f2ee6b27b8ffd77e75a2851b61013e481ee"
integrity sha512-TfxUi1gn0dPuWFYCwo+g3xh4kkCo1otbvoUQOvrHp6VuQdHbXtSz0kP8VBPGKtVtlRsNe91+gDkv7n8njwrQ9g== integrity sha512-eLG9WFtP1dOoYHaNxyV8gOx1xnKmqSTwgviTU45qUFSNsgQHH1n0bpBxUXSSvaFw5mWRbF3R/JJQHql+Dl6Cow==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
timeago "^1.6.7" timeago "^1.6.7"
"@abp/toastr@~8.2.0-rc.4": "@abp/toastr@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.4.tgz#5edfc10d6123219cc86286ed8b1249af5dbadfde" resolved "https://registry.yarnpkg.com/@abp/toastr/-/toastr-8.2.0-rc.5.tgz#baecda4e6fed5676f58de2228bf8d1c6ae66d49e"
integrity sha512-QDJXroe1Fp2VEWU0Yza/L+DU9R0ZDBw0RcopRcliwAm5RgsVVaaxHZ+jO7LLDfP8JQ6Pi0wTamhKwrfglnG7Ww== integrity sha512-y7aOY1LF62yRwXRSrvimtqIilrsOgSAM8lHcp2RogZAFdmw7yU1R5a6fJlLDGeRBIgjdcIlSpaOuoi6T2hCjFw==
dependencies: dependencies:
"@abp/jquery" "~8.2.0-rc.4" "@abp/jquery" "~8.2.0-rc.5"
toastr "^2.1.4" toastr "^2.1.4"
"@abp/utils@~8.2.0-rc.4": "@abp/utils@~8.2.0-rc.5":
version "8.2.0-rc.4" version "8.2.0-rc.5"
resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.4.tgz#be59dd4b5dfc085b88528639047699a9e5486e81" resolved "https://registry.yarnpkg.com/@abp/utils/-/utils-8.2.0-rc.5.tgz#526d64aa3e059d2f6e595b22e35dda2d652377e4"
integrity sha512-imIFmlP0gY+rXFbwufo8jMzcmEuz/6uKr/e8/bW4bOhPDD65go/3TTVkNLr0hzB9qSahZG/LGu2eDFTqlowlrg== integrity sha512-ZU7jHFpDh7jDYgCrX6aXqy/v4LrMGgYJN+siyWUMpVddg2lTTO2MsxI+KmSxJwD7H01Mqj1sZ+LBAOVxGR3hsw==
dependencies: dependencies:
just-compare "^2.3.0" just-compare "^2.3.0"

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save