docs: #314 making couplet related bookmarking less buggy
This commit is contained in:
parent
647982f364
commit
91f60a4762
@ -149,7 +149,7 @@
|
||||
</p>
|
||||
|
||||
<script src="~/lib/jquery/dist/jquery.min.js"></script>
|
||||
<script src="~/js/bk.js?version=26"></script>
|
||||
<script src="~/js/bk.js?version=27"></script>
|
||||
<script src="~/js/jplayersupport.js"></script>
|
||||
<script src="~/js/vaabd.js"></script>
|
||||
<script src="~/dist/jplayer/jquery.jplayer.min.js"></script>
|
||||
|
||||
@ -104,7 +104,7 @@
|
||||
</div>
|
||||
|
||||
<script src="/lib/jquery/dist/jquery.min.js"></script>
|
||||
<script src="/js/bk.js?version=26"></script>
|
||||
<script src="/js/bk.js?version=27"></script>
|
||||
<script src="/js/vaabd.js"></script>
|
||||
|
||||
@if (!string.IsNullOrEmpty(ViewData["GoogleAnalyticsCode"].ToString()))
|
||||
|
||||
@ -193,7 +193,7 @@
|
||||
</div>
|
||||
|
||||
<script src="/lib/jquery/dist/jquery.min.js"></script>
|
||||
<script src="/js/bk.js?version=26"></script>
|
||||
<script src="/js/bk.js?version=27"></script>
|
||||
<script src="/js/vaabd.js"></script>
|
||||
|
||||
@if (!string.IsNullOrEmpty(ViewData["GoogleAnalyticsCode"].ToString()))
|
||||
|
||||
@ -20,7 +20,7 @@
|
||||
<script>
|
||||
var playerScrollLock = false;
|
||||
</script>
|
||||
<script src="/js/bk.js?version=26"></script>
|
||||
<script src="/js/bk.js?version=27"></script>
|
||||
|
||||
@if(Model.GanjoorPage != null && Model.GanjoorPage.NoIndex)
|
||||
{
|
||||
|
||||
@ -363,16 +363,18 @@ namespace GanjooRazor.Pages
|
||||
foreach (GanjoorCommentSummaryViewModel comment in GanjoorPage.Poem.Comments)
|
||||
{
|
||||
comment.MyComment = comment.UserId == userId;
|
||||
_markMyReplies(comment, userId);
|
||||
_markMyReplies(comment, userId, null);
|
||||
}
|
||||
}
|
||||
|
||||
private void _markMyReplies(GanjoorCommentSummaryViewModel parent, Guid userId)
|
||||
private void _markMyReplies(GanjoorCommentSummaryViewModel parent, Guid userId, GanjoorUserBookmarkViewModel[] bookmarks)
|
||||
{
|
||||
foreach (var reply in parent.Replies)
|
||||
{
|
||||
reply.MyComment = reply.UserId == userId;
|
||||
_markMyReplies(reply, userId);
|
||||
if (bookmarks != null)
|
||||
reply.IsBookmarked = bookmarks.Where(b => b.CoupletIndex == -reply.Id).Any();
|
||||
_markMyReplies(reply, userId, bookmarks);
|
||||
}
|
||||
}
|
||||
|
||||
@ -813,23 +815,25 @@ namespace GanjooRazor.Pages
|
||||
if (Guid.TryParse(Request.Cookies["UserId"], out Guid userId))
|
||||
if (userId != Guid.Empty)
|
||||
{
|
||||
foreach (GanjoorCommentSummaryViewModel comment in comments)
|
||||
{
|
||||
comment.MyComment = comment.UserId == userId;
|
||||
_markMyReplies(comment, userId);
|
||||
}
|
||||
|
||||
using (HttpClient secureClient = new HttpClient())
|
||||
{
|
||||
if (await GanjoorSessionChecker.PrepareClient(secureClient, Request, Response))
|
||||
{
|
||||
HttpResponseMessage responseIsBookmarked = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/bookmark/{poemId}/{coupletIndex}");
|
||||
HttpResponseMessage responseIsBookmarked = await secureClient.GetAsync($"{APIRoot.Url}/api/ganjoor/bookmark/{poemId}");
|
||||
if (!responseIsBookmarked.IsSuccessStatusCode)
|
||||
{
|
||||
return BadRequest(JsonConvert.DeserializeObject<string>(await responseIsBookmarked.Content.ReadAsStringAsync()));
|
||||
}
|
||||
|
||||
isBookmarked = JsonConvert.DeserializeObject<bool>(await responseIsBookmarked.Content.ReadAsStringAsync());
|
||||
var bookmarks = JsonConvert.DeserializeObject<GanjoorUserBookmarkViewModel[]>(await responseIsBookmarked.Content.ReadAsStringAsync());
|
||||
if (bookmarks.Where(b => b.CoupletIndex == coupletIndex).Any())
|
||||
isBookmarked = true;
|
||||
foreach (GanjoorCommentSummaryViewModel comment in comments)
|
||||
{
|
||||
comment.MyComment = comment.UserId == userId;
|
||||
comment.IsBookmarked = bookmarks.Where(b => b.CoupletIndex == -comment.Id).Any();
|
||||
_markMyReplies(comment, userId, bookmarks);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,7 +19,7 @@
|
||||
<script>
|
||||
var playerScrollLock = false;
|
||||
</script>
|
||||
<script src="/js/bk.js?version=26"></script>
|
||||
<script src="/js/bk.js?version=27"></script>
|
||||
|
||||
@if (Model.Poet != null)
|
||||
{
|
||||
|
||||
@ -184,7 +184,7 @@
|
||||
</div>
|
||||
|
||||
<script src="/lib/jquery/dist/jquery.min.js"></script>
|
||||
<script src="/js/bk.js?version=26"></script>
|
||||
<script src="/js/bk.js?version=27"></script>
|
||||
<script src="/js/vaabd.js"></script>
|
||||
|
||||
@if (!string.IsNullOrEmpty(ViewData["GoogleAnalyticsCode"].ToString()))
|
||||
|
||||
@ -30,7 +30,7 @@
|
||||
});
|
||||
</script>
|
||||
<script src="/lib/diff.js"></script>
|
||||
<script src="/js/bk.js?version=26"></script>
|
||||
<script src="/js/bk.js?version=27"></script>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
|
||||
@ -202,7 +202,7 @@
|
||||
</div>
|
||||
|
||||
<script src="/lib/jquery/dist/jquery.min.js"></script>
|
||||
<script src="/js/bk.js?version=26"></script>
|
||||
<script src="/js/bk.js?version=27"></script>
|
||||
<script src="/js/vaabd.js"></script>
|
||||
|
||||
@if (!string.IsNullOrEmpty(ViewData["GoogleAnalyticsCode"].ToString()))
|
||||
|
||||
@ -49,7 +49,7 @@
|
||||
<a role="button" id="share-@Model.CoupletIndex" class="cursor-pointer" onclick="webShareCouplet(@Model.CoupletIndex)" title="همرسانی"><i class="material-icons color-white">share</i></a>
|
||||
@if (Model.LoggedIn)
|
||||
{
|
||||
<a role="button" id="bookmark-@Model.CoupletIndex" class="cursor-pointer" onclick="switchBookmark(@Model.PoemId, @Model.CoupletIndex)" title="@Model.BookmarkingText"><i class="material-icons color-white" id="bookmark-icon-@Model.CoupletIndex">@Model.BookmarkingIcon</i></a>
|
||||
<a role="button" id="bookmark-@Model.CoupletIndex" class="cursor-pointer" onclick="switchBookmark(@Model.PoemId, @Model.CoupletIndex, '-@Model.CoupletIndex')" title="@Model.BookmarkingText"><i class="material-icons color-white" id="bookmark-icon-@Model.CoupletIndex">@Model.BookmarkingIcon</i></a>
|
||||
<a role="button" id="listen-@Model.CoupletIndex" class="cursor-pointer" onclick="editCouplet(@Model.PoemId, @Model.CoupletIndex)" title="ویرایش از اینجا"><i class="material-icons color-white">edit</i></a>
|
||||
}
|
||||
@if (Model.SectionsWithMetreAndRhymes.Any())
|
||||
|
||||
@ -80,6 +80,7 @@ namespace GanjooRazor.Pages
|
||||
LoggedIn = LoggedIn,
|
||||
DivSuffix = $"-{comment.CoupletIndex}",
|
||||
PoemId = PoemId,
|
||||
Bookmarked = comment.IsBookmarked,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -49,7 +49,7 @@ else
|
||||
<a role="button" class="w3tooltip cursor-pointer" href="#menu"><i class="pageicons">apps</i><span class="w3tooltiptext">منو</span></a>
|
||||
@if (Model.LoggedIn)
|
||||
{
|
||||
<a role="button" id="bookmark-comment-@Model.Comment.Id" class="w3tooltip cursor-pointer" onclick="switchBookmark(@Model.PoemId, -@Model.Comment.Id)"><i class="pageicons" id="bookmark-icon-comment-@Model.Comment.Id">star_border</i><span class="w3tooltiptext">نشان کردن / حذف نشان</span></a>
|
||||
<a role="button" id="bookmark-comment-@Model.Comment.Id@Model.DivSuffix" class="w3tooltip cursor-pointer" onclick="switchBookmark(@Model.PoemId, -@Model.Comment.Id, '@Model.DivSuffix')"><i class="pageicons" id="bookmark-icon-comment-@Model.Comment.Id@Model.DivSuffix">@(@Model.Comment.IsBookmarked ? "star" : "star_border")</i><span class="w3tooltiptext">نشان کردن / حذف نشان</span></a>
|
||||
}
|
||||
</p>
|
||||
<div class='spacer'> </div>
|
||||
|
||||
@ -6,16 +6,11 @@ namespace GanjooRazor.Pages
|
||||
public class _CommentPartialModel : PageModel
|
||||
{
|
||||
public GanjoorCommentSummaryViewModel Comment { get; set; }
|
||||
|
||||
public string Error { get; set; }
|
||||
|
||||
public GanjoorCommentSummaryViewModel InReplyTo { get; set; }
|
||||
|
||||
public bool LoggedIn { get; set; }
|
||||
|
||||
public string DivSuffix { get; set; }
|
||||
public int PoemId { get; set; }
|
||||
|
||||
public string Wrote
|
||||
{
|
||||
get
|
||||
@ -23,7 +18,7 @@ namespace GanjooRazor.Pages
|
||||
return InReplyTo == null ? "äæÔÊå" : "<22>ÇÓÎ ÏÇÏå";
|
||||
}
|
||||
}
|
||||
|
||||
public bool Bookmarked { get; set; }
|
||||
public _CommentPartialModel GetCommentModel(GanjoorCommentSummaryViewModel comment)
|
||||
{
|
||||
return new _CommentPartialModel()
|
||||
@ -34,6 +29,7 @@ namespace GanjooRazor.Pages
|
||||
LoggedIn = LoggedIn,
|
||||
DivSuffix = DivSuffix,
|
||||
PoemId = PoemId,
|
||||
Bookmarked = Bookmarked,
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@ -347,7 +347,7 @@
|
||||
@if (Model.LoggedIn)
|
||||
{
|
||||
<text>
|
||||
<a role="button" id="bookmark" class="pagebutton" onclick="switchBookmark(@Model.GanjoorPage.Id, 0)">نشان کردن / حذف نشان<i class="info-buttons" id="bookmark-icon">star_border</i></a>
|
||||
<a role="button" id="bookmark" class="pagebutton" onclick="switchBookmark(@Model.GanjoorPage.Id, 0, '')">نشان کردن / حذف نشان<i class="info-buttons" id="bookmark-icon">star_border</i></a>
|
||||
</text>
|
||||
}
|
||||
|
||||
|
||||
@ -390,11 +390,15 @@ function editCouplet(poemId, coupletIndex) {
|
||||
location.href = '/User/Editor?id=' + poemId + '#id-' + String(vIndex + 1);
|
||||
}
|
||||
|
||||
function switchBookmark(poemId, coupletIndex) {
|
||||
var iconElementId = coupletIndex < 0 ? 'bookmark-icon-comment-' + String(-coupletIndex) : 'bookmark-icon-' + String(coupletIndex);
|
||||
function switchBookmark(poemId, coupletIndex, divSuffix) {
|
||||
var iconElementId = coupletIndex < 0 ? 'bookmark-icon-comment-' + String(-coupletIndex) + divSuffix : 'bookmark-icon-' + String(coupletIndex);
|
||||
var secondIconElementId = divSuffix != '' && coupletIndex < 0 ? 'bookmark-icon-comment-' + String(-coupletIndex) : null;
|
||||
if (document.getElementById(iconElementId) != null) {
|
||||
document.getElementById(iconElementId).innerHTML = 'star_half';
|
||||
}
|
||||
if (document.getElementById(secondIconElementId) != null) {
|
||||
document.getElementById(secondIconElementId).innerHTML = 'star_half';
|
||||
}
|
||||
if (coupletIndex == 0) {
|
||||
document.getElementById('bookmark-icon').innerHTML = 'star_half';
|
||||
}
|
||||
@ -415,6 +419,9 @@ function switchBookmark(poemId, coupletIndex) {
|
||||
if (document.getElementById(iconElementId) != null) {
|
||||
document.getElementById(iconElementId).innerHTML = 'star';
|
||||
}
|
||||
if (document.getElementById(secondIconElementId) != null) {
|
||||
document.getElementById(secondIconElementId).innerHTML = 'star';
|
||||
}
|
||||
|
||||
if (coupletIndex == 0) {
|
||||
document.getElementById('bookmark').innerHTML = 'نشان شده<i class="info-buttons" id="bookmark-icon">star</i>';
|
||||
@ -425,6 +432,10 @@ function switchBookmark(poemId, coupletIndex) {
|
||||
document.getElementById(iconElementId).innerHTML = 'star_border';
|
||||
}
|
||||
|
||||
if (document.getElementById(secondIconElementId) != null) {
|
||||
document.getElementById(secondIconElementId).innerHTML = 'star_border';
|
||||
}
|
||||
|
||||
if (coupletIndex == 0) {
|
||||
document.getElementById('bookmark').innerHTML = 'نشان کردن<i class="info-buttons" id="bookmark-icon">star_border</i>';
|
||||
}
|
||||
|
||||
@ -69,6 +69,11 @@ namespace RMuseum.Models.Ganjoor.ViewModels
|
||||
/// </summary>
|
||||
public string CoupletSummary { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// for client
|
||||
/// </summary>
|
||||
public bool IsBookmarked { get; set; }
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -8228,6 +8228,11 @@
|
||||
couplet summary
|
||||
</summary>
|
||||
</member>
|
||||
<member name="P:RMuseum.Models.Ganjoor.ViewModels.GanjoorCommentSummaryViewModel.IsBookmarked">
|
||||
<summary>
|
||||
for client
|
||||
</summary>
|
||||
</member>
|
||||
<member name="T:RMuseum.Models.Ganjoor.ViewModels.GanjoorCoupletNumberViewModel">
|
||||
<summary>
|
||||
Ganjoor Couplet Number View Model
|
||||
|
||||
Loading…
Reference in New Issue
Block a user