From 50578b63e3e977272a5dd61f99ab23ad1daaf349 Mon Sep 17 00:00:00 2001 From: Pavel Krymets Date: Sun, 26 Jan 2020 17:12:05 -0800 Subject: [PATCH] Upvote (#360) --- src/dotnet/APIView/APIViewWeb/Client/css/site.scss | 7 +++++++ .../APIViewWeb/Controllers/CommentsController.cs | 8 ++++++++ src/dotnet/APIView/APIViewWeb/Models/CommentModel.cs | 2 ++ .../Pages/Shared/_CommentThreadPartial.cshtml | 11 +++++++++++ .../APIViewWeb/Repositories/CommentsManager.cs | 11 +++++++++++ 5 files changed, 39 insertions(+) diff --git a/src/dotnet/APIView/APIViewWeb/Client/css/site.scss b/src/dotnet/APIView/APIViewWeb/Client/css/site.scss index ae1f09fa60..da09385a79 100644 --- a/src/dotnet/APIView/APIViewWeb/Client/css/site.scss +++ b/src/dotnet/APIView/APIViewWeb/Client/css/site.scss @@ -306,6 +306,13 @@ code-inner { margin: -8px -16px; } +.btn-upvote { + filter: grayscale(100%) opacity(30%); + &.active { + filter: unset; + } +} + .new-comment-content { position: relative; margin: 0 4px 8px; diff --git a/src/dotnet/APIView/APIViewWeb/Controllers/CommentsController.cs b/src/dotnet/APIView/APIViewWeb/Controllers/CommentsController.cs index d3bea62028..e507985178 100644 --- a/src/dotnet/APIView/APIViewWeb/Controllers/CommentsController.cs +++ b/src/dotnet/APIView/APIViewWeb/Controllers/CommentsController.cs @@ -64,6 +64,14 @@ public async Task Delete(string reviewId, string commentId, string return await CommentPartialAsync(reviewId, elementId); } + [HttpPost] + public async Task ToggleUpvote(string reviewId, string commentId, string elementId) + { + await _commentsManager.ToggleUpvoteAsync(User, reviewId, commentId); + + return await CommentPartialAsync(reviewId, elementId); + } + private async Task CommentPartialAsync(string reviewId, string elementId) { var comments = await _commentsManager.GetReviewCommentsAsync(reviewId); diff --git a/src/dotnet/APIView/APIViewWeb/Models/CommentModel.cs b/src/dotnet/APIView/APIViewWeb/Models/CommentModel.cs index ee948f3d44..0ad1196ed6 100644 --- a/src/dotnet/APIView/APIViewWeb/Models/CommentModel.cs +++ b/src/dotnet/APIView/APIViewWeb/Models/CommentModel.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using Newtonsoft.Json; namespace APIViewWeb.Models @@ -15,5 +16,6 @@ public class CommentModel public string Username { get; set; } public bool IsResolve { get; set; } public DateTime? EditedTimeStamp { get; set; } + public List Upvotes { get; set; } = new List(); } } diff --git a/src/dotnet/APIView/APIViewWeb/Pages/Shared/_CommentThreadPartial.cshtml b/src/dotnet/APIView/APIViewWeb/Pages/Shared/_CommentThreadPartial.cshtml index 77b424acd8..127350f0d4 100644 --- a/src/dotnet/APIView/APIViewWeb/Pages/Shared/_CommentThreadPartial.cshtml +++ b/src/dotnet/APIView/APIViewWeb/Pages/Shared/_CommentThreadPartial.cshtml @@ -19,6 +19,17 @@ {
+
+ + +
+ @if (comment.Username == User.GetGitHubLogin()) {