From 963c10f9475ad2dbbbf60698440afc20a0550c27 Mon Sep 17 00:00:00 2001 From: Yunus Emre Kalkan Date: Fri, 21 Aug 2020 16:42:21 +0300 Subject: [PATCH] Add reactions to comments for the CMS Kit resolves https://github.com/abpframework/abp/issues/5071 --- .../CmsKitCommonWebModule.cs | 2 + .../CmsKitUiCommentOptions.cs | 12 +++ .../Volo.CmsKit.Common.Web/CmsKitUiOptions.cs | 3 + .../Components/Commenting/Default.cshtml | 93 ++++++++++++------- .../Shared/Components/Commenting/default.js | 2 +- 5 files changed, 78 insertions(+), 34 deletions(-) create mode 100644 modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitUiCommentOptions.cs diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs index 54743b948f..74d93204cf 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitCommonWebModule.cs @@ -26,6 +26,8 @@ namespace Volo.CmsKit.Web options.ReactionIcons[StandardReactions.Hooray] = new LocalizableIconDictionary("/cms-kit/icons/hooray.png"); options.ReactionIcons[StandardReactions.Rocket] = new LocalizableIconDictionary("/cms-kit/icons/rocket.png"); options.ReactionIcons[StandardReactions.ThumbsDown] = new LocalizableIconDictionary("/cms-kit/icons/thumbsdown.png"); + + options.CommentsOptions.IsReactionsEnabled = true; }); Configure(options => diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitUiCommentOptions.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitUiCommentOptions.cs new file mode 100644 index 0000000000..4d3bf670e3 --- /dev/null +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitUiCommentOptions.cs @@ -0,0 +1,12 @@ +namespace Volo.CmsKit +{ + public class CmsKitUiCommentOptions + { + public bool IsReactionsEnabled { get; set; } + + public CmsKitUiCommentOptions() + { + IsReactionsEnabled = true; + } + } +} diff --git a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitUiOptions.cs b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitUiOptions.cs index b04ae26fb6..2b640b9696 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitUiOptions.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Common.Web/CmsKitUiOptions.cs @@ -8,9 +8,12 @@ namespace Volo.CmsKit.Web [NotNull] public ReactionIconDictionary ReactionIcons { get; } + public CmsKitUiCommentOptions CommentsOptions { get; } + public CmsKitUiOptions() { ReactionIcons = new ReactionIconDictionary(); + CommentsOptions = new CmsKitUiCommentOptions(); } } } diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml index 5246f9a0f1..235902cdd4 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Pages/CmsKit/Shared/Components/Commenting/Default.cshtml @@ -1,15 +1,22 @@ @using Microsoft.AspNetCore.Html @using Microsoft.AspNetCore.Mvc.Localization +@using Microsoft.Extensions.Options +@using Volo.Abp.GlobalFeatures @using Volo.Abp.Users +@using Volo.CmsKit.GlobalFeatures @using Volo.CmsKit.Localization @using Volo.CmsKit.Public.Comments +@using Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.ReactionSelection +@using Volo.CmsKit.Web @inject ICurrentUser CurrentUser +@inject IOptionsSnapshot cmsKitUiOptions; @inject IHtmlLocalizer L @model Volo.CmsKit.Public.Web.Pages.CmsKit.Shared.Components.Commenting.CommentingViewComponent.CommentingViewModel @{ Func GetCommentTitle(CmsUserDto author, DateTime creationTime) => @ + @((string.IsNullOrWhiteSpace(author.Name) ? author.UserName : author.Name + " " + author.Surname).Trim()) @@ -18,7 +25,7 @@ } @{ Func GetCommentArea(Guid? repliedCommentId, bool cancelButton = false) => - @
@@ -36,44 +43,50 @@
; } @{ - Func GetCommentContentArea(Guid id, Guid authorId, bool isReply, string text) => + Func GetCommentContentArea(Guid id, string text) => @

@text

- - @if (!isReply) - { - @if (CurrentUser.IsAuthenticated) - { - - @L["Reply"] - - } - else - { - @L["LoginToReply"] - } - } - @if (authorId == CurrentUser.Id) - { +
; +} +@{ + Func GetCommentActionArea(Guid id, Guid authorId, bool isReply, string text) => + @
+
@if (!isReply) { - | + @if (CurrentUser.IsAuthenticated) + { + + @L["Reply"] + + } + else + { + @L["LoginToReply"] + } } + @if (authorId == CurrentUser.Id) + { + @if (!isReply) + { + | + } - - @L["Delete"] - + + @L["Delete"] + - | + | - - @L["Edit"] - - } + + @L["Edit"] + + } +